이 글의 코드 및 정보들은 강의를 들으며 정리한 내용을 토대로 작성하였습니다.
@EnableWebMvc 어노테이션 사용 이유와
선언 유무가 어떤 차이를 만드는지에 대해 알아보자.
2020년 Dev History
2019 Dev History에 이어
2020년에도 내가 어떤것에 관심을 갖고
어떤 공부를 했고 그로 인해 어떤 성장을 했는지 기록해두자.
DB에 데이터를 Insert하는 경우
일반적인 Flow라면 다음과 같다.
Sequence 값을 조회
DAO 같은곳에 Sequence 및 추가적인 데이터 세팅
2번에서 생성한 DAO를 DB에 Insert
그렇지만 데이터 보정을 위해 DB에 Insert를 해줘야하는 경우라면
일반적인 Flow로 해결 하기 보다는 다이렉트로 DB에 Row를 Insert 해줘야한다.
이럴 경우에 DB row에 Sequence 값을 어떻게 다이렉트로 세팅해 줄 수 있는지 알아보자.
public interface DatabaseUtilMapper {
final static String GET_SYSDATE = "SELECT sysdate FROM DUAL";
final static String GET_SEQUENCE = "SELECT ${sequenceName}.NEXTVAL FROM DUAL";
final static String GET_SEQUENCE_YMD =
"SELECT to_number(to_char(sysdate, 'yyyymmdd')||${sequenceName}.NEXTVAL) FROM DUAL";
@Select(GET_SYSDATE)
Date getSysdate();
@Select(GET_SEQUENCE)
Long getSequence(@Param("sequenceName") String sequenceName);
@Select(GET_SEQUENCE_YMD)
Long getSequenceYmd(@Param("sequenceName") String sequenceName);
}
일반적으로
Sequence 값을 세팅하여
DB에 Insert를 해주는 경우엔
Sequence를 채번하여 받아온 후
그 값을 사용하여 Sequence 값을 세팅한다.
예를 들면 다음과 같다.
이 글의 코드 및 정보들은 책을 바탕으로 작성하였습니다.
수동 커밋은
자동 커밋과 달리
메시지 처리가 완료될 때까지
메시지를 가져온 것으로 간주되어서는 안 되는 경우에 사용한다.
이 글의 코드 및 정보들은 책을 바탕으로 작성하였습니다.
컨슈머 어플리케이션들의 기본값으로
많이 사용하고 있는
자동 커밋 방식에 대해 알아보자.
자동 커밋을 사용하고 싶을 때는
컨슈머 옵션 중
enable.auto.commit = true로 설정하면
5초마다 컨슈머는 poll()를 호출할 때
가장 마지막 오프셋을 커밋한다.
5초 주기는 기본값이며
auto.commit.interval.ms 옵션을 통해 조정이 가능하다.