본문 바로가기

전체 글

(210)
분산처리_메시지큐(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를 이용할 수 있음
Spring Boot_MyBatis <![CDATA[]]> MyBatis CDATA = Character DATA, 즉 문자형 데이터를 뜻함 선언하고 안에 문자열을 채워 넣으면, []안에 있는 문장은 파싱되지 않고 그대로 문자열로 출력된다. 를 사용하는 이유 SELECT 문에 조건을 걸어 쿼리문을 조회하기 위해 , = 등의 기호를 사용하는데, 이 기호들이 파싱 중 태그로 인식되거나 하는 등의 문제가 생길 수 있기 때문에 이를 방지고자 사용함 사용 예시 = #{prStartDt}]]>
Oracle_WHERE 1=1 WHERE 1=1 동적 쿼리에서 특정상황마다 WHERE절을 다르게 작성해줘야 할 때 편리하다. 동적 쿼리에서 if문을 사용하여 조건을 특정상황마다 바꾸고 싶을 때 WHERE 1=1 선언 후 AND 조건을 적어주면 된다. 단, 일반 쿼리문 작성시 WHERE 조건의 1=1은 무의미하다. 번호, 이름, 시작일, 마지막일 조회하는 기능 AND PM.PR_NO like '%' || upper(#{prNo}) || '%' AND PM.PR_CMPY_CD like '%' || #{prCmpyCd} || '%' = #{prStartDt}]]> SELECT PM.PR_NO AS prNo , PM.PR_CMPY_CD AS prCmpyCd , CD.DESC_KOR AS prCmpyNm , TO_CHAR(PM.PR_START..