본문 바로가기

전체 글

(204)
[SQLD] 오라클 계층형 쿼리 오라클 계층형 쿼리 : 계층형 쿼리는 오라클에서만 지원 부모-자식 관계를 가지는 데이터를 검색하거나 조작할 때 사용 ex) 트리 구조 데이터, 상하 관계 데이터 Employee 계층구조 테이블 EMPLOYEE_ID : 직원 고유 식별자 POSITION : 직급 정보 EMPLOYEE_NAME : 직원 이름 MANAGER_ID : 해당 직원의 상사의 EMPLOYEE_ID EMPLOYEE_ID POSITION EMPLOYEE_NAME MANAGER_ID 1 CEO AAA NULL 2 Manager BBB 1 3 Manager CCC 1 4 Employee DDD 2 5 Employee EEE 3 6 Employee FFF 2 7 Employee GGG 2 조직 계층 구조 - CEO AAA (EMPLOYEE_I..
[JWT] JWT (JSON Web Token) JWT (JSON Web Token) 란JSON Web Token의 약자로, 데이터를 안전하게 전송하기 위한 토큰 형식 웹에서 정보를 주고받을 때 사용되고, 사용자 인증과 관련된 정보를 안전하게 전송하는데 사용 JWT 구조 1. Header alg : 토큰을 서명하는 알고리즘 typ : 토큰의 유형 { "alg" : "HS256", "typ" : "JWT" } 2. Payload : 클레임(Claim) 정보 sub : 토큰의 주제 및 사용자의 고유 식별자 name : 사용자의 이름 iss : 토큰을 발급한 엔터티(서버)의 식별자 aud : 토큰의 대상(수신자) exp : 토큰의 만료시간 (UNIX 타임스탬프 사용) nbf : 토큰이 사용이 허용되는 시간 (UNIX 타임스탬프 사용) iat : 토큰이 발급..
분산처리_메시지큐(MQ), rabbitMQ 메시지 큐(MQ)란메시지 큐는 분산 시스템 간에 비동기적으로 데이터를 교환하기 위한 중간 매개체송신자는 메시지를 큐에 전송하고, 수신자는 큐에서 메시지를 받아 처리메시지 큐 특징비동기 통신 : 송신자가 메시지를 큐에 넣고, 수신자는 큐에서 메시지를 가져와 처리 동기적인 방식보다 유연하고 효율적인 통신 가능결합도 감소 : 메시지 큐를 통해 각 컴포넌트는 서로 독립적으로 동작 각 컴포넌트가 메시지 큐를 통해 통신하므로 직접적인 결합도 감소 및 모듈화 확장 가능비동기 처리 이벤트 처리 : 이벤트 기반 시스템에서 유용하게 사용 이벤트가 발생하면 해당 이벤트를 메시지로 큐에 전송하고, 수신자는 해당 이벤트를 처리확장성 및 부하분산 : 대량의 메시지를 안정적으로 처리 여러 수신자가 큐에서 메시지를 처리하므로 부하를..
Java_BeanUtils.copyProperties() BeanUtils.copyProperties() : 두 개의 Java Bean 사이에 속성 값(데이터)을 복사하는데 사용 소스 객체의 속성 값(데이터)을 대상 객체로 복사할 수 있음 public static void copyProperties(Object dest, Object source) throws IllegalAccessException, InvocationTargetException dest : 복사의 대상이 되는 객체 source : 객체로부터 속성 값(데이터)을 복사하는 객체 예제 @Data @NoArgsConstructor @AllArgsConstructor public class SourceBean { private String name; private int age; } @Data @N..
SQLD_DB의 구조 DB의 구조 1. 테이블 엔터티(Entity) : 테이블이 표현하는 대상 레코드(Record) : 테이블에 저장된 엔터티 하나, 테이블의 가로줄 필드(Field) : 레코드의 세부 속성, 테이블의 세로줄 정식 명칭 도표 관련 용어 모델링 용어 레코드 로(Row) 튜플(Tuple) 필드 컬럼(Column) 어트리뷰트(Attribute) 2. DB 오브젝트 : 데이터베이스에 저장되는 모든 것을 통칭, 간단하게 개체(Object)라고 함 3. 명칭 규칙 같은 범위 내에서 이름 중복 불가 ex) 같은 이름의 테이블이 두 개 있다거나 한 테이블에 같은 이름의 필드가 두개 존재할 수 없음 대소문자는 구분하지 않음 그러나 일관성을 지키는 것이 좋음 길이는 최대 128자까지 가능 SQL 예약어 사용 불가 ex) SEL..
JavaScript_Proxy 객체 Proxy 객체: Proxy 객체를 사용하면 한 객체에 대한 기본 작업을 가로채어 다른 동작을 할 수 있게 재정의하여 사용할 수 있다. 두 개의 메서드를 사용하여 생성한다. 1. target : Proxy의 대상이 되는 객체 2. handler : 가로채는 작업과 가로채는 작업을 재정의하는 객체 handler로 가로챌 수 있는 동작핸들러 메서드작동 시점get프로퍼티를 읽을 때set프로퍼티에 값을 쓸 때hasin 연산자가 작동할 때deletePropertydelete 연산자가 작동할 때apply함수를 호출할 때constructornew 연산자가 작동할 때getPrototypeOfObject.getPrototypeOfsetPrototypeOfObject.setPrototypeOfisExtensibleObje..
Oracle_MERGE INTO 문 MERGE INTO 문 데이터를 처리할 때 데이터의 존재 여부를 SELECT하고 해당 값이 없으면 INSERT 처리, 있으면 UPDATE 처리함 MERGE INTO 문을 사용하면 데이터의 존재 여부를 확인하는 쿼리 (SELECT), 데이터를 삽입하는 쿼리 (INSERT), 데이터를 수정하는 쿼리 (UPDATE)를 한 번에 처리할 수 있다. MERGE INTO 문 사용 예시 MERGE INTO EXAMPLE_A A -- UPDATE 또는 INSERT할 테이블|뷰 USING EXAMPLE_B B -- 있는지 없는지 조회할 대상이 되는 테이블|뷰|서브쿼리 ON (A.EXAMPLE_NO = B.EXAMPLE_NO) WHEN MATCHED THEN -- 조건이 일치하는 경우 UPDATE SET A.EXAMPLE_..
Spring Boot_@ModelAttribute 사용법 @ModelAttribute @ModelAttribute는 사용자가 요청시 전달하는 값을 오브젝트 형태로 매핑해주는 어노테이션이다. @ModelAttribute 사용 이유 @RequestParam은 하나씩 매핑을 해주지만, @ModelAttribute는 객체 매핑이라 수정할 필요없이 매핑 처리를 할 수 있다. Controller HTML 삽입 미리보기할 수 없는 소스 testList.jsp HTML 삽입 미리보기할 수 없는 소스 태그를 이용해 commandName="testVO"라는 이름으로 컨트롤러에 전달하여, "testVO"에 맞춰 매핑하여 @ModelAttribute를 이용할 수 있음