<인프런 워밍업 스터디 클럽 0기> - BE 발자국 2주차
2주차는 좀 많이 아쉬운 주였습니다. 몸이 아파서 학습에 온전히 시간을 쓰지 못했고, 연휴에도 골골대면서 누워있던 시간이 많았습니다. 그래도 중간중간 기운이 좀 나거나 상태가 괜찮아지면 다시 책상에 앉아 코드를 작성했는데요.
미니 프로젝트는 Java 21, 스프링부트 3버전을 사용하고 있습니다. Java 버전을 21로 선택한 이유는 추후 태현님께서 Java 21과 관련된 강의를 출시할 것이라고 예고를 해주셨고 후에 Java 21을 적용할 수 있는 부분을 찾아 연습을 해보기 위해 선택했습니다. 종종 인텔리제이로 코딩을 하면서, Java 최신 기능을 적용할 수 있는 부분은 ToolTip으로 알려주었던 것 같은데, 아직까진 이러한 부분을 찾질 못했습니다.
이번 미니 프로젝트를 진행하면서 새롭게 시도한 부분은 record를 좀 더 적극적으로 사용하는 것이었습니다. 레코드를 사용하게 되면 기존의 DTO 클래스를 작성하는 것보다 좀 더 간결하게 DTO의 목적 자체에 맞는 코드를 작성할 수 있고 롬복과 관련된 애노테이션들을 사용할 필요가 없다는 점이 큰 장점으로 다가왔습니다.
프로젝트는 현재 1단계는 다 완성이 되었고 2단계를 수행하고 있습니다. 한 걸음 더!에 나와있는 edge-case들을 다루는 내용을 해결하는 과정에서 큰 재미를 느끼고 있습니다. 실제 개발에서도 이러한 부분을 사전에 얼마나 잡아내느냐에 따라 제품의 퀄리티와도 직결될 것 같은데, 이런 케이스들을 사전에 고안해내고 핸들링하는 부분에 있어서 경쟁력을 가지고 싶다고 생각이 들었습니다.
현재는 코드리뷰어를 구하지 못해서 GPT에게 코드 리뷰를 대신 부탁해주고 있는 실정인데, 초기에 매우 지저분했던 서비스 레이어가 그래도 나름 깔끔해졌습니다. 물론 여전히 레포지토리에 선언한 쿼리메서드의 메서드명이 좀 긴 것은 고쳐야할 부분입니다. isAttendToday의 경우는 그래도 나름 빨리 적절한 메서드명을 떠올렸는데 퇴근 시간을 기록하는 메서드의 경우는 잘 떠오르지 않아 냅둔 상태네요. 현재 이 부분에서 이미 같은 날의 출근과 퇴근을 모두 마친 직원이 다시 출근을 하려고하는 경우를 핸들링 해야하는데 좋은 방법이 없을 지 생각 중입니다.
미니 프로젝트에서 남은 과제들을 보면, 변경에 유연하게 대처할 수 있는 코드를 작성할 수있고, 설계를 할 수 있는지에 대한 역량을 시험할 수 있는 것 같습니다. 그래서 엔티티에 필드하나를 추가하거나, 코드 한 줄, 한 줄에도 근거를 담아보려고 노력하고 있습니다. 3단계와 4단계가 정말 그 시험대가 될 것 같아요. 부디 다음 주 한주는 최상의 컨디션으로 과제와 강의 모두 잘 병행할 수 있기를 바랍니다.
댓글을 작성해보세요.