2023-06-03-TIL TIL 2023-06-03-TIL Today I learned Chain of Responsibility Pattern 책임 연쇄(Chain of Responsibility) 패턴은 요청을 핸들러들의 사슬을 따라 전달하는 행위 패턴이다. 요청을 받은 각 핸들러는 직접 처리할지, 다음 핸들러에게 넘길지를 스스로 정한다(Refactoring.Guru: Ch... 2023/06/03 2023-TIL
2023-05-30-TIL TIL 2023-05-30-TIL Today I Learned 저작인접권 음원을 다루는 서비스를 이해하려면 저작권뿐 아니라 저작인접권(neighboring rights)을 알아야 한다. 문화체육관광부의 설명에 따르면 저작인접권은 저작물을 직접 창작하지는 않지만 저작물의 해설자, 매개자, 전달자 역할을 하는 사람에게 주는 권리다. 노래 한 곡을 예로 들면... 2023/05/30 2023-TIL
2023-05-24-TIL TIL 2023-05-24-TIL Today I Learned Spring Boot의 요청 값 검증 Bean Validation에서 가장 헷갈리는 세 가지 제약의 차이는 다음과 같다. @NotNull: null만 막는다. 빈 문자열 ""은 통과한다. @NotEmpty: null과 길이 0을 막는다. 문자열, 컬렉션, 배열, 맵에 쓸 수 있고 ... 2023/05/24 2023-TIL
2023-05-22-TIL TIL 2023-05-22-TIL Today I Learned @Transactional REQUIRES_NEW https://woodcock.tistory.com/40 GraphQL Pros & Cons Pros of GraphQL for Frontend: Efficient Data Fetching: With Gr... 2023/05/22 2023-TIL
2023-05-19-TIL TIL 2023-05-19-TIL Today I Learned 퍼실리테이터 퍼실리테이터(facilitator)는 회의나 워크숍에서 직접 답을 내기보다 구성원들이 대화하고 합의에 이르도록 과정을 설계하고 진행하는 사람이다. 링크한 글들의 설명을 정리하면, 회의 목적과 진행 방식을 미리 정하고, 발언이 한쪽으로 쏠리지 않게 참여를 고르게 이끌고, 논의 내용... 2023/05/19 2023-TIL
2023-05-16-TIL TIL 2023-05-16-TIL Today I Learned findAll vs findById findById에서는 예외가 발생하지 않는데, findById에서만 바로 발생하는 이유? 이 질문은 조회 메서드마다 SQL이 실행되는 시점이 다르다는 데서 나온다. Thorben Janssen의 비교 글을 기준으로 정리하면 다음과 같다. findB... 2023/05/16 2023-TIL
2023-05-15-TIL TIL 2023-05-15-TIL Today I Learned ArchUnit으로 아키텍처 테스트하기 계층형 구조나 헥사고날 구조를 정해 두어도, 시간이 지나면 컨트롤러가 리포지토리를 직접 부르거나 도메인 패키지가 인프라 패키지를 import하는 식으로 규칙이 조금씩 깨진다. 사용자 가이드의 설명대로 ArchUnit은 Java 바이트코드를 분석해 패키지... 2023/05/15 2023-TIL
2023-05-12-TIL TIL 2023-05-12-TIL Today I Learned Spring Boot에서 동적으로 작업 스케줄링하기 @Scheduled는 주기와 cron 식이 코드나 설정에 고정되어 있어서, 관리자 화면에서 작업을 등록하거나 주기를 바꾸는 요구에는 맞지 않는다. 이때는 TaskScheduler를 직접 쓴다. Spring 문서에 나오듯 TaskSchedul... 2023/05/12 2023-TIL
2023-05-11-TIL TIL 2023-05-11-TIL Today I Learned Java Record를 쓸 때 부딪히는 문제 record는 불변 데이터를 담는 클래스를 짧게 선언하게 해 주지만, 기존 Java 관례와 부딪히는 지점이 있다. JEP 395에 따르면 record 클래스는 암묵적으로 final이고 추상 클래스가 될 수 없으며, 각 컴포넌트는 private fi... 2023/05/11 2023-TIL
2023-05-08-TIL TIL 2023-05-08-TIL Today I Learned 도메인 이벤트 도메인 이벤트는 DDD의 전술적 설계 요소 중 하나로, 도메인에서 일어난 의미 있는 사건을 과거형 이름의 객체로 표현한 것이다(OrderPlaced, MemberWithdrawn). 주문이 완료되면 알림을 보내고 포인트를 적립해야 할 때, 주문 서비스가 알림과 포인트 서비스를 ... 2023/05/08 2023-TIL