개발 동기 회사에서 근래에 대응개발을 해야할일들이 많아졌다.현재 운영중인 서비스에서 타 서비스와 연동하는 부분이 생겼고 그에 따라 Restful API를 통해데이터를 주고 받아야 할일들이 발생했다. 현재 담당하는 서비스가 엔드포인트로서 사용자들에게 보여지는 부분들이 많이 있다보니보통 대응개발이면 다른 서비스의 데이터를 받아와 사용자들에게 화면으로 보여줘야 할 부분들이 좀 있다. 문제는 현재 타서비스와 연동하려면 CORS 정책에 걸려 브라우져에서 요청 할 수 없는 경우가 많다.결국 우리 서버에서 타서비스 서버로 요청을 보내야하므로 대응개발건이 생길때마다API 요청 서비스 개발, 데이터를 보여줄 화면단 개발, 배포등 일련의 과정을 거쳐야 하고또 문서로 정리해둬야 하는 등의 공수가 발생한다. 이때 서비스개..
이번 프로젝트는 핵심기능부터 먼저 만들어 사용하기 위해 TDD를 사용해 진행하기로 했다. 지금까지 핵심테이블,인터페이스의 구현이 완료되었으니 식단 생성의 핵심기능중 BMR, 일일소비칼로리의 계산기능을 만들기전 단위테스트 먼저 작성하기로 했다. 이전에 생성해온 프로젝트에서는 JUnit4를 사용해 단위테스트를 사용했었는데 이번 프로젝트는 JUnit5를 사용하고 assertj 라이브러리등 테스트코드의 가독성을 높이고 좀 더 사용하기 편한 친구들을 통해 원활한 단위 테스트를 진행하기 위해 별도의 설정을 해주기로 했다. 먼저 JUnit4에서 5로 버전 변경을 위해 pom.xml에서 dependency를 수정해주어야 한다. 기존의 JUnit4로 되어있는 dependency를 지우고, 다음의 dependency를 추..
이전 포스팅에서 정리했듯 핵심기능의 DB설계가 얼추 마무리 되었으니 이제 스프링으로 넘어가 interface 설계를 진행하겠다. 그전에 스프링 프레임 워크를 사용한 웹서비스의 흐름을 따라 인터페이스 설계의 목적을 설명하도록 하겠다. 왜 인터페이스 설계가 필요한가? 한가지 예시를 들어 설명하도록 하겠다. 현재 진행하는 식단생성기가 완성되었다 가정하고 웹서비스를 이용하는 유저가 식단생성기 웹에 방문해 정보를 입력 후 식단 생성버튼을 클릭했다라고 가정해보도록 하겠다. 이 과정을 클라이언트의 요청이라 부르는데, 클라이언트의 요청이 발생하게 되면 해당 요청에 대한 정보를 서버로 넘기게 된다. 이때 현재 프로젝트에서 사용하기로한 웹서버는 아파치 톰켓 V8.5을 사용하고있고 웹서버를 거쳐 서버컴으로 요청이 전송된다...
개발 동기 초기에 생각한 프로젝트의 방향성은 영국의 한 스타트업에서 영감을 받았다. https://www.pet-news.or.kr/news/articleView.html?idxno=2177 [펫타트업 특집]해외 반려동물 스타트업 기업, 어떻게 성공했나 - 한국반려동물신문 최근 반려동물 양육 인구가 전 세계적으로 늘어남에 따라 다양한 반려동물 관련 스타트업이 글로벌 펫시장에 참여해 펫산업 또한 급진적인 성장세를 보이고 있다.실제로, 미래에셋증권의 글로 www.pet-news.or.kr 기사에서 언급되는 '버터넛박스'라는 스타트업은 구독형 팻푸드 배송 시스템으로 반려견을 위한 팻푸드를 정기구독형 서비스로 제공해준다. 이런 시스템을 개발해보고싶어 생각하던차 반려동물이 아닌 사람을 대상으로 만들어보고 싶단 생..