2022-04-12-TIL TIL 2022-04-12-TIL Today I Learned API 응답으로 code와 message를 보내는데 에러코드를 어떻게 분류할지에 대해서 팀원들과 논의하던 중에 그 필요성이나 실효성이 있는지 고민하게 되었다. 반대의 의견으로는 그냥 RuntimeException만 던지고 에러메시지만 적절히 적어두면 충분하며, 어차피 에러코드에 매핑되는 커스텀... 2022/04/12 2022-TIL
2022-04-11-TIL TIL Today I Learned Redis Cluster and Sentinel Redis를 한 대로 운영하면 그 서버가 죽는 순간 서비스가 멈춘다. 이를 막는 운영 방식이 Sentinel과 Cluster인데, 둘은 푸는 문제가 다르다. Redis Sentinel 문서는 Sentinel을 Redis Cluster를 쓰지 않을 때 고가용성을 제공하는 ... 2022/04/11 2022-TIL
2022-04-09-TIL TIL Today I Learned DB Lock 락은 여러 트랜잭션이 같은 데이터에 동시에 접근할 때 일관성을 지키기 위한 장치다. MySQL InnoDB 문서를 기준으로 종류를 정리하면 다음과 같다. 공유 락(S)과 배타 락(X): S 락은 행을 읽기 위해, X 락은 행을 수정하거나 삭제하기 위해 잡는다. S 락끼리는 함께 잡을 수 있지만 X ... 2022/04/09 2022-TIL
2022-04-07-TIL TIL 2022-04-07-TIL Today I Learned ResponseEntity https://stackoverflow.com/questions/22725143/what-is-the-difference-between-responseentityt-and-responsebody https://stackoverflow.com/question... 2022/04/07 2022-TIL
2022-04-04-TIL TIL Today I Learned Spring4Shell 제로데이 취약점 2022년 3월 말 공개된 Spring Framework의 원격 코드 실행 취약점(CVE-2022-22965)으로, Log4Shell에 빗대 Spring4Shell이라고 불렸다. Spring 공식 공지에 따르면 영향받는 조건은 다음과 같다. JDK 9 이상에서 실행 sp... 2022/04/04 2022-TIL
2022-03-30-TIL TIL Today I Learned Spring RestTemplate Logging RestTemplate으로 외부와 통신하는 부분에서 request body나 response body를 직접 로깅하고 싶다면 인터셉터를 추가해서 잡아서 보아야 한다. logging.level.org.springframework.web.client.RestTemplate... 2022/03/30 2022-TIL
2022-03-29-TIL TIL Today I Learned JIB JIB는 구글에서 제공하는 의존 라이브러리로 스프링 부트에서 메이븐이나 그레이들 의존 설정만으로도 도커라이징을 간편하게 해준다. 정확히는 의존 라이브러리가 아니라 Maven/Gradle 빌드 플러그인(jib-maven-plugin, com.google.cloud.tools.jib)이다. Jib README에 따... 2022/03/29 2022-TIL
2022-03-25-TIL TIL Today I Learned Entity 중복 한 테이블에 대해서 용도에 따라 여러개의 중복된 엔티티를 가지는게 나은가? 아니면 엔티티 중복을 하지않도록 현재는 불필요하지만 완전히 테이블과 1대1 매핑되는 엔티티를 하나만 가지도록 하는게 나을까? 3월 6일 TIL에서 본 것처럼, 한 테이블에 엔티티를 여러 개 두면 Hibernate가 같은 행이라... 2022/03/25 2022-TIL
2022-03-24-TIL TIL Today I Learned JIB Jib은 Google이 만든 도구로, Dockerfile이나 Docker 데몬 없이 Maven/Gradle 플러그인만으로 자바 애플리케이션의 Docker/OCI 이미지를 만들어 레지스트리에 푸시한다. 애플리케이션을 의존성, 리소스, 클래스 파일 레이어로 나누어 담기 때문에 코드만 바뀌면 클래스 레이어만 다시 만들... 2022/03/24 2022-TIL
2022-03-23-TIL TIL 2022-03-23-TIL Today I Learned Linux Crontab 특정 시간에 한 번만 특정 작업을 수행해야하는 경우에는 at 명령어로 예약을 걸어둘 수 있다. 하지만 주기적으로 반복해야하는 작업의 경우에는 crontab을 사용해야한다. * * * * * 분(0-59) 시간(0-2... 2022/03/23 2022-TIL