- Java를 활용해 Front-Backend 공통으로 사용할 수 있는 도메인 계층 구현
- TDD를 활용해 객체 지향적 구현하기, 클린 코드 체득
- 각자 작업에 대해서 자유롭게 이슈 생성
- (구헌이 필요한 이슈에 대해) 각자 이름과 이슈 번호가 포함된 브런치에서 요구사항을 구현( ex) #01_ohjuntaek)
- 구현이 완료되면 master 브런치로 PR 생성
- 생성 후 첫번째 리뷰는 자신이 달기
- 리뷰어가 리뷰를 달고 승인하기
- 이 때 궁금한 점, 알면 좋을 것 같은 정보나 링크 등을 가감없이 달기
- 모든 리뷰어의 승인을 받은 후 squash and rebase 방식으로 merge
- 반복
- 매주 토/일요일 오후 1시, 각자 소감 및 질문, 간략한 코드 리뷰, 다음 할일
- 11월 부터 개발 집중 기간이니 그 전까지 회원을 포함해 도메인 계층 개발 완료!
한글명 | 영문명 | 설명 | 동의어, 비고 |
---|---|---|---|
회원 | Member | 회원 가입한 사용자. 로그인 할 수 있다. | 사용자 : 회원,비회원 통틀어 쓰는 말 |
게시글 | Post | 회원이 생성한 글을 뜻한다. | 글 |
- master 브런치에 있는 요구사항을 토대로 코드를 작성해주세요.
- 요구사항은 각자 브런치에서 언제든 변경 가능합니다. master에 변경된 요구사항을 PR로 보내주세요.
- 이슈가 될 가능성이 높은 부분은 이탤릭체로 쓰고 이유를 취소선으로 적겠습니다. 그대로 구현하거나 요구사항을 변경해 구현해 주세요.
- 개인적으로 중요하다 생각하는 곳에 볼드체를 쓰고, 코드 리뷰 때 PR에서 이유를 밝히는 것을 권장드려요.
- 여행 기록을 지도에 남기는 서비스이다.
- 메인 화면에 지도가 보여지고, 지도에서 핀을 찍어 게시글을 생성해 게시글에 사진을 등록하고 간단한 기록을 남길 수 있다.
- 또한 빨, 주, 노, 초, 파의 색상이 있고 각 색상에 텍스트를 지정할 수 있다. (텍스트는 기쁨, 신남 등 감정 기록하는 방향)
- 현재 회원은 자신이 남긴 게시글만 볼 수 있지만, 추후 서비스 확장 시 타인의 게시글을 볼 수도 있다.
친구의 게시글 보기 기능 추가 가능성
-
회원은 특정 위치를 선택해 게시글을 생성할 수 있다.
-
좌표값(위도, 경도), 글내용, 생성된 시점을 정보로 가진다.
-
위도는 소수점 6자리를, 경도는 소수점 7자리를 넘지 않는다.
라이브러리 조사 후 확정! -
좌표값에 대한 주소를 정보로 가진다.
-
좌표값에 대한 주소의 시, 도, 구 정보를 가진다.
-
한 게시글에 여러 개의 사진을 달 수 있다.
-
한 게시글에 색상을 하나 지정할 수 있다.
-
지도에서 자신이 생성한 게시글을 볼 때는 썸네일을 포함한 핀으로 보인다. (화면 참조)
-
지도에서 게시글이 특정 범위 이하로 모여 있을 땐 썸네일을 포함한 클러스터로 보인다. (화면 참조)
-
핀에 해당하는 게시글의 사진 중 임의로 하나가 썸네일로 보여진다.
-
클러스터가 가진 게시글의 전체 사진 중 임의로 하나가 썸네일로 보여진다.
-
지도에서 핀을 클릭하면 핀에 해당하는 게시글의 정보를 조회할 수 있다.=> 무조건 모아보기로 -
지도에서 클러스터를 클릭하면 클러스터가 가진 전체 게시글을 모아볼 수 있다.
-
게시글은 수정, 삭제될 수 있다.
- 사진 파일이 올라가있는 저장소가 있고, 그 주소에 대한 url을 통해 사진을 출력할 수 있다.
- 컬러 5개(빨, 주, 노, 초, 파) 를 가지고 있다.
- 한 컬러에 한 감정을 기록할 수 있다.
- 감정은 변경할 수 있다.
추가기능 느낌이므로 추후 논의
- 요구사항을 토대로 객체의 정의와 속성, 로직을 README에 기록해주세요. 코드 이해에 중요한 정보가 됩니다.
- 객체의 로직은 테스트 되어야 합니다!
- 게시글
- (coordinate, address, [postImage], content, createDate)
저번에 LatLng도 있었는데 Coordinate가 더 소리내어 읽기 쉬워서 일단 채택
- 좌표 값을 담은 객체
- (lat, lng)
- Post의 일급 컬렉션
- ([post])
- (url)
- _RED, ORANGE, YELLOW, GREEN, BLUE_
기획과 논의 필요 - _(emotion)_
감정은 현재 객체로 나오기엔 하는게 아무것도 없어서 일단 뺐습니다.
- 클린 코드(로버트 마틴)
- 테스트 주도 개발(켄트 백)
- Effective Java 3판
- 우아한 객체지향
- 의식적인 연습으로 TDD 연습하기
- javable
- 모든 테스트 코드는 JUnit5의 DisplayName, assertj(assertThat)를 써주세요.
- 인수 테스트 (@ParameterizeTest) 를 권장합니다.
- 자바 코드 컨벤션을 지키는 것을 권장합니다. 번역
- 메소드가 하나의 일을 하도록 분리하기 위해 노력해봐요.
- 메소드가 15라인을 넘지 않도록 노력해봐요.
- 커밋 단위를 기능 단위로 되도록 노력해봐요. 코드 리뷰가 훨씬 편해집니다.
- 객체 지향 생활 체조
- 규칙 1: 한 메서드에 오직 한 단계의 들여쓰기만 한다.
- 규칙 2: else 예약어를 쓰지 않는다.
- 규칙 3: 모든 원시값과 문자열을 포장한다.
- 규칙 4: 한 줄에 점을 하나만 찍는다.
- 규칙 5: 줄여쓰지 않는다(축약 금지).
- 규칙 6: 모든 엔티티를 작게 유지한다.
- 50줄 이상 되는 클래스파일과 10개 이상인 패키지는 없어야 한다.
- 규칙 7: 2개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
- 규칙 8: 일급 콜렉션을 쓴다.
- 규칙 9: 게터/세터/프로퍼티를 쓰지 않는다.
다 지키긴 힘들지만 노력해봐요.