Backend (41) 썸네일형 리스트형 [Five Lines of Code] 코드 삭제의 미학을 읽고 나서 [Five Lines of Code] 코드 삭제의 미학을 읽고 나서 🔖 주제 Five Lines of Code는 TypeScript를 기반으로 코드를 어떻게 리펙토링 하는지 A to Z 형식으로 소개하는 책입니다. 사내 스터디에서 총 13챕터로 나누어 소개하고 있으며, 이번 주제는 코드 삭제의 미학 9 챕터입니다. 책에서는 리펙토링의 과정에 코드 삭제가 왜 필연적이고 지속적으로 발생해야 하는지 이야기하고 있습니다. 📓 설명 매몰 비용의 오류 매몰 비용(Sunk Cost Fallacy)은 “과거에 이미 소비되거나 투자된 비용으로 현재 및 미래의 의사결정에 관여되는 것”을 말하며 “경제학 및 의사결정 이론”에서 사용되는 개념입니다 책에서는 이를 “의사결정을 왜곡하는 오류”라고 표현합니다. 다양한 관점에서 부.. [SpringBoot] JUnit Test Class AssertJ기본 설정하기 [SpringBoot] JUnit Test Class AssertJ기본 설정하기 ⛳ 목표 설정 Intelij에서 JUnit Test Class를 생성 시 AssertJ를 바로 적용하기! 🔖 주제 Spring Test Code 작성 과정에 Jupiter 보다 AssertJ를 사용하는 분들에게 미약한 도움이 될 내용입니다. Intelij에서는 JUnit Test Class를 생성 시 기본적으로 Jupiter를 Import 하도록 되어 있지만, 해당 내용을 AssertJ를 적용하도록 수정할 수 있습니다. 📓 설명 Editor > File and Code Templates > Code > JUnit5 Test Class [질문-시리즈] Validate! 유효성 검사는 어디에서 해야할까? [질문 시리즈]는 주변 개발자 분들께 제가 생각하는 내용을 질문 후 답변받은 내용입니다. 답변엔 여러 사람들의 관점이 섞여있어 최대한 정리하여 작성하였습니다. 해당 포스팅은 질문에 대한 정답을 명확히 하는 것이 목표가 아닙니다. 프로젝트를 바라보는 관점에 따라 의견이 다양해질 수 있고, 이 글 또한 그중 하나의 관점 정도로 생각하고 읽어주세요. 주의! 이번 [질문-시리즈]에는 정해진 답변이 없습니다. 제 주관적인 관점만 가득히 담겨있으니 좋은 답변이 있다면 댓글로 이야기를 해보면 좋을 것 같습니다. 질문: Validate! 유효성 검사는 어디서 해야할까요? Data의 유효성 검사는 어디에서 진행하는 것이 맞을까요? Controller? Service? domain? 이전 포스트에서 Data의 유효성 검.. [SpringBoot]JUnit5 Mock기반 테스트 테스트 예시 Mock 객체 생성 public class ExampleTest { private ExampleService exampleService; private ExampleRepository mockExampleRepository; @SetUp public void setUp() { mockExampleRepository = Mockito.mock(ExampleRepository.class); exampleService = new ExampleService(mockExampleRepository); } } Annotation기반 예시 import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.junit.jupiter.MockitoEx.. [Spring Boot] main이외 디렉토리 추가 및 적용하기 통합 테스트를 구성하는 과정에 내용을 main 외에 별도의 디렉토리에 구성하는 사항을 해결하고자 합니다. maven에서는 org.codehaus.mojo:build-helper-maven-plugin 를 적용해서 POM에 디렉토리를 적용할 수 있습니다. source dir resource dir test source dir test resource dir 적용법은 아래와 같습니다. org.codehaus.mojo build-helper-maven-plugin add-integration-test-source generate-test-sources add-test-source src/integrationTest/java add-integration-test-resource generate-test-reso.. [Mybatis] All Elements are null Mapper파일로 정의된 프로시저를 호출 후 List를 반환받았지만 size만 변경되고 값이 null이 반환되는 현상이 발생했습니다. 제 경우 Mapper 파일에 정의한 resultMap의 속성 명이 잘못 작성되어 값이 전부 null로 반환되어 생긴 문제였습니다. 저와 동일한 문제가 발생한다면 Mapper파일을 확인해보길 바랍니다. [질문-시리즈] Data에게 TDA(Tell Don’t Ask)를 적용해야 할까? [질문 시리즈]는 주변 개발자 분들께 제가 생각하는 내용을 질문 후 답변받은 내용입니다. 답변엔 여러 사람들의 관점이 섞여있어 최대한 정리하여 작성하였습니다. 해당 포스팅은 질문에 대한 정답을 명확히 하는 것이 목표가 아닙니다. 프로젝트를 바라보는 관점에 따라 의견이 다양해질 수 있고, 이 글 또한 그중 하나의 관점 정도로 생각하고 읽어주세요. 질문 Request를 검증하는 RequestValidator는 알맞은 방법인가요? 사용자의 요청문인 Request를 검증하기 위해 RequestValidator를 만들어서 검증 처리를 해결했습니다. 그런데 TDA 원칙에 따르면 자신의 정보를 남에게 전달하지 말고 직접 행동(검증)을 하는 방법을 제시하는데, 이럴 경우 구현한 내용인 RequestValidator가 .. [질문-시리즈] 생성자? 정적 팩토리 메서드? 빌더? [질문 시리즈]는 주변 개발자 분들께 제가 생각하는 내용을 질문 후 답변받은 내용입니다. 답변엔 여러 사람들의 관점을 바탕으로 최대한 정리하여 작성하였습니다. 해당 포스팅은 질문에 대한 정답을 명확히 하는 것이 목표가 아닙니다. 프로젝트를 바라보는 관점에 따라 의견이 다양해질 수 있고, 이 글 또한 그중 하나의 관점 정도로 생각하고 읽어주세요. 질문 다들 뭐 사용해? 참여한 프로젝트에서 new 키워드, 정적 팩토리 메서드, 빌더 패턴 등 다양한 방법을 활용하여 인스턴스를 생성하는 것을 보았습니다. 곰곰이 지켜보다 문뜩 이런 질문이 떠올랐습니다. 왜 여러가지 방법을 사용해서 인스턴스를 생성하는 거야? 자문자답을 해보려 하니 마땅히 떠오르는 것은 어… 그냥 편해서? 였습니다. 고민을 해본 적이 없었고 스스로.. 이전 1 2 3 4 5 6 다음