기존 테이블들에 수정자와 등록자를 추가하고 수정 및 생성 메서드에 수정자와 등록자가 인입되도록 수정한다.
운영을 원할히 할 수 있게 필요한 부분들에 한해 로그를 남긴다.
파라미터들에 대한 유효성 검사 기능을 추가한다.
특정 부서에 속한 직원들의 특정기간동안의 일자별 평균 근무시간, 평균 출근시간, 평균 퇴근 시간을 구한다. (조건 : 시작일, 종료일, 부서 ID)
특정 기간동안의 부서별 지각자 수와 야근을 직원, 야간 근무를 한 직원들의 수를 구한다. (조건 : 시작일, 종료일)
지각은 10시 이후 출근한 사람에 한해 지각으로 처리한다.
근무시간이 9시간을 초과하는 사람을 야근한 직원으로 처리한다.
밤 10시 이후 근무한 사람을 야근 근무 직원으로 처리한다.
- 일관성 있게 코드 짜기 ( 반환 타입, 변수 이름, 로그 등 ) 같은 상황에서는 같은 처리
- 유효성 검사는 딱 파라미터 수준에서만 검사한다. db를 조회하는 등의 수준으로 유효성 검사를 하는 것을 너무 과함. 차라리 그럴 거면 service 차원에서 검사하는 게 맞음
- 메소드 명은 메소드가 하는 역할이 명확히 드러나게 짓는다.
- 성공케이스는 log를 거의 남기지 않는다. log를 남기는 행위 자체가 메모리를 사용하며, 로그 파일 자체가 너무 커져버리면 필요시에 추적하기에도 부적합하다. 또한 로그가 너무 많이 남아버리면 서버가 과부화될 위험도 있다.
- sql에서 여러 조건을 선언할 때는 범위를 많이 조이는 조건들을 먼저 선언하는 것이 효율적이다.
- 반복되는 부분들을 최소화 한다. 그러기 위해서 interceptor같은 기능들이 존재한다. 공통메소드 등 사용할 수 있는 기능들을 사용해 반복되는 부분을 없앨 것.
- 일반적인 관례에서 벗어난 코드를 사용하는데는 명확한 이유가 있어야한다. ( ex @transactional 생략)
- 주요 HTTP Status Code
- Index Scan과 Full Table Scan이란?
- Optional, 람다, Stream 학습하기
- GC에서 사용하는 기본 동작 원리는?
- 스프링 빈 스코프
- HTTP의 특징
- Http 주요 헤더 값들에 대해 알아보기 (예 Content-Type, Accept, Host, Allow, Referer 등)