2025/06/07 3

태도를 반성하게 된 날

저번 주 금요일에 있었던 일이다.돌아오는 월요일, 6/9에 프로펙트 과정 진행상황에 대해 2차 발표가 있다.우리 팀의 프론트 개발 담당자 중 한 분이 취업이 되어 풀스택으로 하던 팀장이 프론트 쪽으로 완전히 전환을 했다.그래서 그 파트에 대한 테스트 코드 작성 및 리팩토링을 내가 맡았다.맡았으면 맡은 바 최선을 다하면 되는데 코드 상태가 좋지 않아 나도 모르게 투덜거렸다.그렇게 23시쯤 교육장 정리를 하고 혼자 나오는데 문득 엘리베이터에서 많은 생각을 하게 되었다.제미니의 개발실무에서 재민님께서 말씀하셨던 내용과 옆 팀의 개발 덕후 동료와 나눴던 대화가 떠올랐다.회사는 개인의 성장을 위해 존재하는 곳이 아니며 개인이 성장할 길은 본인이 생각해야 한다는 것이 전자였다.후자는 통제할 수 없는 내용에 마음쓰지..

도메인이 다른 데이터를 여러 곳에서 사용해도 되는가?

도메인이 다른 데이터를 합쳐서 사용해도 되는가?팀원 중 한 분이 프로젝션 관련해서 Payment(결제 내역 테이블)에 있는 데이터를 활용해서 최근 7일 사이의 가장 큰 낙찰가의 경매를 보여주는 API를 작성하는 데 도움을 달라는 요청이 왔다. 이 때 의문이 좀 들었다.약간의 배경 설명을 먼저 하겠다. 지금 경매 검색은 bid(입찰 테이블), scrap(쉽게 생각해서 즐겨찾기 기능의 테이블), auction_image(경매 이미지 url 저장 테이블)에 대해 조인 연산을 진행한 뒤에 데이터를 찾아온다. 그 이유는 입찰 횟수, 최고 입찰가, 즐겨찾기 횟수, 경매 썸네일을 가져와야 하기 때문이다. 이 때문에 한 번에 이해가 힘든 쿼리가 발생했다. (글의 마지막에 첨부된 SQL문)내가 구현한 경매 검색 쿼리와 ..

잘못된 리팩토링, OOP와 순수 함수

잘못된 리팩토링, OOP와 순수 함수이전에 올렸던 포스트가 잘못된 부분이 있었다.순수 함수를 사용하면서 테스트가 더 쉬워진 것은 분명히 맞는 사실이다.하지만 JPA와 엔티티, 객체지향의 관점에서는 좋은 코드가 아니었다.사진으로 살펴보자.이전 글에서 이런 코드를 보여주며 테스트하기 어려운 코드를 분리하고 순수 함수를 사용하자는 의견을 냈었다.이런 패턴을 가질 때 좋은 점은 비즈니스 레이어의 코드를 쉽게 테스트할 수 있다는 것이다.테스트 코드를 쉽게 작성할 수 있고 스프링부트 테스트 혹은 JPA 테스트처럼 스프링 컨텍스트를 활용하지 않고도 테스트할 수 있어 속도가 매우 빠르다.이제 단점에 대해 살펴보자.순수 함수에서의 객체순수 함수에서는 객체의 값이 변경되면 새로운 객체를 생성해서 반환한다.그래서 나는 주황..