전체 글65 [EatToFit] 매개변수가 매우 많을 때에는 도메인 생성 로직을 어떻게 작성해야 할까? (feat. 빌더 패턴, DDD) 안녕하세요. dev_writer입니다. F-Lab 멘토링 기간이 얼마 안 남았기도 했고, 리뷰를 받고 싶은 최소 부분들이 거의 다 구현 완료가 되어 추가 리뷰를 위해 리팩터링 작업을 진행하고 있습니다. 그러던 중 마주친 고민점에 대해 공유드리고자 글을 작성하게 되었습니다. 마주친 문제: Food (도메인)를 FoodService (서비스)에서 직접 생성? 🤷리팩터링을 하기 전에는, 음식 (Food) 도메인 엔티티 (정확히 말하면 Food의 vo인 FoodNutrient)를 직접 FoodService에서 빌더 패턴을 이용해 생성했었습니다. 우선 상황을 더 잘 이해하실 수 있도록, 음식 데이터를 저장하는 데 사용되는 FoodCreateRequest, Food / FoodNutrient / FoodWeight.. 2024. 10. 30. [Spring & Github] Pull Request를 할 때 마다 테스트 커버리지를 확인하자 (feat. Jacoco) 안녕하세요. dev_writer입니다. 이번 시간에는 코드 커버리지 도구 중 하나인 Jacoco를 적용한 과정에 대해 알려드리겠습니다. JacocoJacoco는 자바 코드 커버리지를 측정하고 리포팅할 수 있는 오픈 소스 툴킷입니다. (위키백과) 애초에 Jacoco라는 단어 자체가 Java code coverage tools라는 단어를 내포하고 있습니다. 코드 커버리지 (code coverage)코드 커버리지는 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타내는 지표입니다. 소프트웨어 테스트를 진행했을 때 코드 자체가 얼마나 실행되었는지를 뜻합니다. - 위키백과 일반적으로 테스트 코드를 꼼꼼하게 작성할수록 예외 케이스들을 잘 탐지할 수 있으며, 그렇기에 소프트웨어의 품질을 높이기 위해서는 테.. 2024. 10. 14. [Spring AI 🤖] 이미지를 분석하고 JSON 포맷팅을 해보자! (feat. EatToFit) 안녕하세요 dev_writer입니다. 요즘 회사 일과 다른 일들로 인해 블로그 작성을 잠시 하지 않았었는데요, 이번에 다시 EatToFit 프로젝트를 하면서 Spring AI를 연결한 과정이 있어 이 부분을 공유드리고자 합니다. 개발 계기: 음식 AI API 만료 문제 발생 🙅사실 Spring AI를 적용하는 것은 음식 검색이 아니라 음식과 회원의 정보를 기반으로 운동 플랜을 생성할 때에만 진행할 계획이었습니다. 기존에는 음식 AI 회사로부터 API를 발급받아서, 분석 품질과 속도, 신뢰성 면에서 모두 우수한 음식 AI 회사의 서비스를 이용할 계획이었습니다. 그러나 API를 받았던 시점이 5월이었는데, 그래서인지 재시도한 결과 만료되었다는 문제가 발생되어 당장은 프로젝트에 사용할 수 없게 되었습니다. .. 2024. 9. 29. [EatToFit] DB 설계 과정에서의 고민 안녕하세요 dev_writer입니다. 이번에는 이전 글에서 말씀드렸듯이 프로젝트의 DB 설계 과정에서 발생한 고민들을 작성해 보겠습니다. 1. JPA DDL 자동 생성에만 의존하여 DDL을 까먹지 말자.가장 크게 느꼈던 점입니다. 그동안 프로젝트를 할 때에는 언제부턴가 JPA의 DDL 옵션을 create로 하면 자동으로 데이터베이스 테이블들을 만들어주니, 크게 신경 쓰지 않았었습니다. 하지만 JPA DDL을 자동 (create, create-drop)으로 만들도록 하면 다음 단점이 있습니다.create로 할 경우, 애플리케이션을 재시작할 때마다 자동으로 기존 데이터를 전부 삭제하고 다시 만들게 된다.create-drop으로 할 경우에도 기존 테이블을 삭제하는 것은 동일하다.위의 둘 중 어떤 것을 하더라도.. 2024. 9. 15. [회고 #8] 4학년 1학기 여름방학 회고 (7월, 8월) 안녕하세요 dev_writer입니다. 6월 말 여름방학이 시작되면서 6월 달 회고를 작성했었으나, 실질적인 여름방학은 7월부터이기도 했고 7월에 취준을 하게 되면서 회고적인 측면에서 작성을 못했기 때문에 여름방학 회고 (7월, 8월 회고 통합)를 이번에 작성하게 되었습니다. 7월 회고공부보다는 취준을 하던 시기6월에 작성했던 회고록에서는 7월에 구직 활동과 취업에 필요한 기술을 함께 공부해야겠다는 생각을 가졌었는데, 생각보다 이를 병행하는 것은 쉽지 않다는 것을 느꼈습니다. 시간의 투자도 80% 정도는 사람인이나 잡코리아에서 여러 곳을 알아보고, 지원하는 과정을 거쳤습니다. 그래서 아예 취준에만 집중했습니다. 돌이켜보면 7월 달에 한 게 취준밖에 없는 것 같아, 처음 6월에 방학을 시작했을 때 가진 목표.. 2024. 8. 31. [EatToFit] API 설계 과정에서의 고민 (2) 안녕하세요 dev_writer입니다. 원래 DB 설계 과정에서의 고민을 바로 올리려 하였으나, 추가적인 고민점들이 여러 개 생겨 2번째 API 설계 과정 고민 글을 올리게 되었습니다. 1. DELETE 행위는 200 OK가 맞을까 204 No Content가 맞을까?프로젝트에서는 DELETE API와 관련된 작업이 존재하는데, 로그아웃과 음식 삭제가 그 예입니다.로그아웃은 레디스에서 보관한 refresh token을 삭제하는 방식으로 이루어집니다.음식 삭제는 음식의 상태를 soft delete화 하여, deleted_at을 현재 시각으로 업데이트합니다. 일부분인 deleted_at이 업데이트되는 것이기에 PATCH로도 쓸 수 있지만, API의 의도를 명확히 하기 위해 DELETE를 사용하기로 결정하였습니.. 2024. 8. 27. 이전 1 2 3 4 5 6 ··· 11 다음