1조: 장호정, 양현진, 박경희, 노다민, 윤채연, 김시우
평균 점심 식사 가격 만원 시대! 들어오는 나의 급여, 용돈은 적은데.. 합리적인 소비를 할 수 있는 방법이 없을까? 있다면 어디에서 찾을 수 있을까?
=> 같은 목적(절약하고자 하는 의지)을 가진 유저들끼리 모여 착한 소비를 찾아 실천해보자!
그룹을 만들어 서로의 가계부 공유한다
- 비슷한 목적을 가진 회원들끼리 그룹을 만들어 다른 그룹원의 착한 소비를 구경할 수 있습니다.
착한가격업소 목록을 지도에서 찾기
- 행정안전부에서 제공하는 착한가격업소 목록을 확인하여 착한 가격의 가게를 검색할 수 있습니다.
다른 사람의 남긴 가게 리뷰 확인하기
- 가게에 대한 리뷰를 작성할 때 총 인원수/총 지출금액/한줄리뷰를 남길 수 있고, 세이브피그는 입력한 리뷰를 바탕으로 1인당 평균 소비를 계산하여 지도에 표시합니다.
- 각자 자신 만의 판단하에 적절한 금액이라고 생각되는 가게를 찾아볼 수 있습니다.
Domain-Driven Design (도메인 주도 설계)
- 이번에는 기획 단계에서 도메인 주도 설계 기법을 도입하여 세이브피그에 사용되는 도메인을 추출하였습니다.
- 회원: 세이브피그의 유저들
- 자산: 가계부를 작성할 때 이용된 유저의 자산 (계좌, 카드 등)
- 고정지출: 고정으로 지출되는 항목 (OTT 서비스 구독료, 주거 관리비 등)
- 가계부: 회원의 수입/지출/이체 내역
- 가계부 카테고리: 수입 카테고리 - 급여, 금융이자, 지출 카테고리 - 식비/관리비/통신비 (회원마다 본인의 가계부 카테고리를 꾸려나갈 수 있습니다.)
- 가계부 댓글: 가계부에 달린 댓글 (그룹 멤버가 남긴 댓글 or 본인이 메모성으로 남긴 댓글)
- 가게: 세이브피그에서 관리하는 가게 목록 (착한가격 업소도 포함)
- 가게 리뷰: 가게에 작성된 회원들의 리뷰
- 리뷰 첨부파일: 리뷰 작성 시 사용된 파일
- 그룹: 가계부를 공유할 수 있는 회원 모임의 단위
- 그룹 게시글: 그룹 멤버들끼리 공유되는 작은 게시판(커뮤니티)
- 그룹 게시글 댓글: 그룹 게시글에 달린 댓글 (대댓글 포함)
- 그룹 게시글 첨부파일: 그룹 게시글에 사용된 파일
- 커뮤니티 게시글: 세이브피그의 전체 회원들에게 공유되는 게시판(커뮤니티)
- 커뮤니티 댓글: 커뮤니티 게시글에 달린 댓글 (대댓글 포함)
- 커뮤니티 첨부파일: 커뮤니티 게시글에 사용된 파일
- 회원/가계부/나머지 도메인 3개의 마이크로서비스
- MariaDB 데이터베이스
- Eureka 서버와 Gateway 서버
- API 응답을 내보낼 때 정해진 틀로 응답을 보내기 위한 클래스
- 추후 유지보수 관점에서 용이하다 생각되어 제작
- 예외 상황 케이스 별로 Exception 클래스를 제작하여 추후 오류 발생에 대한 빠른 대응 가능
- 이 또한 유지보수 관점에서 용이하다 생각되어 제작
- 가계부 등록 기능을 구현할 때 FeignClient를 이용하여 다른 마이크로서비스의 조회 Controller를 호출
- 양현진: 개발에 대해 처음에는 조금 어려워 보이시는 듯 했으나 점점 개발이 진행되면서 능숙해지시는 모습이 멋졌습니다! 주말에도 시간을 할애하여 열심히 Pull Request를 보내주시는 모습에 감동받았습니다. 굉장한 노력파이시고 닮고 싶은 부분입니다 ㅎㅎ
- 박경희: DA#을 이용한 물리 모델링을 해주셨고 발표 때 프로젝트 구조에 대한 설명을 자세히 해주셔서 프로젝트 구현에 큰 도움이 되었습니다.
- 노다민: DA#을 이용해서 논리 모델링을 작성해 주셨습니다. 백엔드 개발에서 자산 도메인과 커뮤니티 도메인을 구현해 주셨고, 1차 발표에서 개념/논리/물리 모델링 파트를 맡아 발표해 주셨습니다. 필요한 메서드를 요청드렸을 때 빠르게 구현해 주셔서 감사했습니다!
- 윤채연: 모델링 정리부터 코드 개발까지 정말 열심히 참여해주셨습니다 ! 깃허브에 에러가 생겨서 해결하는데 어려움이 있었는데 도움을 주셔서 감사했습니다 ! 맡은 부분 외의 코드 개발도 먼저 나서서 열심히 해주신 덕분에 일찍 마무리할 수 있었습니다 !
- 김시우: 자산 및 커뮤니티 기능을 구현해 주셨습니다. GitHub 전체적인 세팅 및 논리 모델링을 바커 표기법으로 작성해주셨습니다.
- 장호정: 항상 리더처럼 개발 방향을 이끌어 주시면서, 분리한 서버들을 하나의 파일로 합쳐 테스트까지 하시느라 고생 많으셨습니다.
- 박경희: 팀원들의 의견을 잘 취합하셨고 서비스 패키지 구조 등을 잘 구성해 주셔서 프로젝트 완성도를 높이는데 큰 도움이 되었습니다.
- 노다민: 프로젝트 초반에 예외 클래스, 설정 클래스 등을 세팅해 주셔서 개발을 편리하게 진행할 수 있었습니다. 백엔드 개발에서 가게 도메인을 맡아서 구현해 주셨고, MSA 분리작업을 주도적으로 진행해 주셔서 프로젝트가 잘 진행될 수 있었던 것 같습니다. 또한 2차 발표에서 프로젝트 구조와 시연을 발표해 주셨습니다. 프로젝트를 진행하면서 모르는 부분을 질문했을 때 많은 도움을 주셨고, 팀을 잘 이끌어 주셔서 많은 점들을 배울 수 있었던 것 같습니다!
- 윤채연: 프로젝트 전 기간동안 팀원들을 정말 잘 이끌어주셨고 진행 과정에서 새로운 방법을 시도하려고 많이 노력해주셔서 덕분에 다양한 경험을 할 수 있었습니다! 뿐만 아니라 현재 팀의 상황, 앞으로 해야할 일 등을 명확하게 인지하고 다음 단계로 잘 이끌어주셔서 방황하지 않고 잘 마무리할 수 있었습니다 !
- 김시우: 전체적으로 프로젝트의 방향성을 제시해주셨고 (Slack 활용하는 등) 의견을 내어 잘 이끌어 주셨습니다. 최종 발표시 postman을 통한 시현 과정을 잘 설명해 주셨습니다.
- 장호정: 빠른 개발 속도로 여러 파트를 개발하시는 게 대단하다고 느꼈고, 항상 개발 팁을 공유해 주셔서 감사했습니다.
- 양현진: 개발 속도가 정말 빨라서 저희의 이슈 목록 정리에 큰 도움을 주셨습니다. 그리고 개발 중간 중간에도 기획적으로 오류가 없는지 생각해주셔서 기획 단계에 생각하지 못했던 부분도 찾아낼 수 있었습니다!! 묵묵히 개발 열심히 하는 모습도 너무 감동입니다. 그동안 고생하셨습니다!!
- 노다민: 백엔드 개발에서 가계부 커뮤니티, 그룹, 가계부 카테고리 등 다양한 도메인을 맡아서 개발해 주셨습니다. 또한 지원 도메인의 DDL 작성 등 놓치기 쉬운 부분을 작성해 주셨습니다!
- 윤채연: 모델링 설계 및 전반적인 코드 작성 과정에서 다양한 의견을 주셔서 덕분에 오류를 잡을 수 있었고, 꼼꼼하게 모델링을 검토해주신 덕분에 이전에 생각해보지 못한 부분도 고려할 수 있었습니다. !
- 김시우: 가계부 카테고리 및 그룹 기능을 구현해주셨습니다.기획 단계에서 놓친 부분이나 모순 점에 대해서 의견을 많이 내 주셨습니다.
- 장호정: 우리 프로젝트의 핵심 기능을 너무 잘 개발해 주셨고, 시연 발표를 위해 서버 테스트까지 하시느라 고생 많으셨습니다.
- 양현진: 개발 에이스라고 생각합니다. 그리고 수업 때 배우지 않은 Spring 스케줄러를 이용하여 이슈를 해결하시는 모습이 너무 멋졌습니다. 다음 번에도 만나면 좋을 팀원 입니다!!ㅎㅎ
- 박경희: 팀원들의 의견을 꼼꼼히 정리하셨고 발표도 잘 해주셔서 프로젝트 진행에 도움이 되었습니다.
- 윤채연: 개인적으로 이해하지 못한 부분에 대해 잘 설명해주셔서 도움을 많이 받았습니다 ! 제가 코드 개발을 어려워해서 초반에 막막했는데 설명을 잘 해주신 덕분에 많이 이해했고 잘 마무리할 수 있었습니다 .!
- 김시우: 가계부 기능을 구현해주셨습니다. Slack 세팅과 Swagger를 사용하는 방법을 잘 알려주셔서 빠르게 진행할 수 있었던 것 같습니다.
- 장호정: 기획을 시각화하여 발표하시느라 고생하셨고, 맡은 기능에 대해 확실히 이해하신 후 잘 개발해 주셔서 감사했습니다.
- 양현진: 개발을 어려워하시는 모습을 보이시긴 했으나 다른 팀원의 코드를 참고해서라도 끝까지 자신의 임무(?)를 마치는 모습이 책임감 있어서 너무 좋았습니다!! 짱!! 그리고 매 발표 때마다 피피티를 만들어 주셨는데 제가 유치하게 만든 피피티 초안을 너무 고급스럽게 만들어주셔서 발표하는 데에 힘을 얻었습니다. 감사합니다!!
- 박경희: 발표때마다 ppt를 예쁘게 만들어 주셨고, 발표도 잘 해주셔서 프로젝트가 사람들에게 잘 소개가 되었습니다.
- 노다민: 1차 발표를 맡아 프로젝트 설명/기획 파트를 발표해 주셨습니다. 또한 백엔드 개발에서 가게 리뷰 파트를 맡아서 구현해 주셨습니다!
- 김시우: 리뷰기능을 구현해 주셨습니다. 저희 프로젝트의 표지(Readme)로고 제작 및 중간발표&발표 ppt를 완성해 주셨습니다.
- 장호정: 회원가입과 로그인 기능을 개발하는 게 어려웠을텐데, 책임지고 열심히 개발하셔서 결국 잘 해내신 게 정말 대단하다고 생각했습니다.
- 양현진: 스프링 시큐리티라는 어려운 부분을 하나 맡아서 진행해주셨는데 혼자 공부하셔서 결국엔 해내시는 모습이 너무 멋졌습니다!! 앞으로 Spring Security에 대해 궁금한 게 있으면 물어볼 예정입니다 ㅎㅎ
- 박경희: 프로젝트 기능 중 어려운 부분을 잘 구현해 주셔서 프로젝트 시현이 원활하게 진행이 되었습니다.
- 노다민: Spring Security 파트를 맡아 회원가입, 로그인, 회원정보 조회 등을 구현해 주셨습니다! 또한 모놀리식 아키텍처 구조를 MSA로 변경하는 작업을 수행할 때, Member Server를 분리하는 작업을 수행해 주셨습니다.
- 윤채연: 다양한 아이디어를 내주셔서 수월한 진행이 가능했고 개발 단계에서 복잡한 로그인 부분을 잘 구현해주셨습니다. 개발 중간에 오류가 생기면 먼저 도와주셔서 도움을 많이 받았습니다. ! ! !