-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TEAM-11][BE][민지노&&필] 3주차 PR 입니다 #283
base: team11
Are you sure you want to change the base?
[TEAM-11][BE][민지노&&필] 3주차 PR 입니다 #283
Conversation
Airbnb의 Entity생성 및 매핑을 함
엔티티 설계 및 테스트 DB(RDS)에 더미 데이터 추가
chore: 초기 데이터 입력
Room의 ID를 입력받으면 해당 Room의 상세정보를 반환한다.
repository와 service 패키지 생성
- Address는 ios와 회의 결과 주소가 아닌 위도와 경도로 받아서 의미에 부합하도록 클래스 이름을 Location으로 변경 - Host와 Room의 DTO 생성 - Image 리스트의 경우 copyOf를 써서 불변객체를 반환 - 불필요한 import 삭제
[BE] 상세조회시 DTO를 반환하도록 변경
- gradle.yml 작성 - application-develop.yml의 datasource를 secret key로 관리하도록 수정
- deploy.sh에서 도커허브 레포지토리 변경
- 개발 메인 브랜치인 BE-develop에서 배포용 브랜치 BE-deploy로 수정
- 잘못 올린 파일 삭제
- IOS 기획서에 첫번째 페이지에서 히어로 이미지 영역의 내용 및 이미지 주소를 담당하는 클래스
- 홈화면에서 가까운 여행지 둘러보기를 담당하는 DTO
- Location은 각 행정지의 중심좌표를 의미
- HomeData는 MainEventDto, AroundSpotDto List, ThemeSpotDto List를 포함하고 있음
- api 구분을 주기위해서 Mapping에 room을 넣어줌
[BE] 가까운 여행지 기능을 위한 행정지역 클래스 생성
- 카카오 네비게이션 API를 사용
[BE] 카카오 api를 통해 현재 위치와의 거리와 이동 시간 계산
- 내장 라이브러리를 통해 시간 단위를 초에서 분으로 변경 - 외부 라이브러리를 통해 거리 단위를 미터에서 킬로미터로 변경
[BE] 라이브러리를 통한 시간 및 거리 단위 변환
- 단위 변환을 내장, 외장 라이브러리를 사용하여 해당 역할을 담당하던 DistanceInfo 클래스를 삭제하였습니다.
- district를 enum이 아닌 엔티티로 관리하기위해 수정 - DistanceInfoResponse를 AroundSpotDto로 대체
- HomeController에서 HomeService, DistrictSearchService를 통해 각 Dto를 반환받아 HomeData를 생성하는것으로 수정하였습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고하셨습니다!
리뷰 남긴 내용 참고해주세요~
@NoArgsConstructor | ||
public class District { | ||
|
||
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
한 줄에 하나의 애노테이션만 씁시다!!
|
||
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) | ||
@JsonIgnore | ||
private Long id; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
보니까 User
에는 칼럼명을 user_id
로 주셨네요. id
필드에 해당하는 칼럼명을요.
칼럼명을 따라가다 보니까 저쪽에선 user_user_id
가 됐고 여긴 그냥 room_id
가 된 겁니다. ㅎㅎ
|
||
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) | ||
@JsonIgnore | ||
private Long id; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
private String name; | ||
|
||
@OneToMany(mappedBy = "user") | ||
private List<WishList> wishLists = new ArrayList<>(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
순차성이 보장되어야 할 필요가 없다면(어차피 쿼리해서 꺼내오는 과정에서 많이 손상되기도 하고요)
Set
을 사용하시는 것도 좋습니다.
@GetMapping("/health") | ||
public String healthCheck(){ | ||
return "health ok"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actuator
사용은 어떨까요?
|
||
private Map<String, String> calculateDistanceAndTime(Position position, Location location) | ||
throws JsonProcessingException { | ||
RestTemplate restTemplate = new RestTemplate(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
항상 정해진 호스트에 호출하는 것이죠?
그렇다면 빈으로 등록해서 주입받아 사용해주세요.
List<ThemeSpotDto> themeSpotDtoList = new ArrayList<>(); | ||
for (ThemeSpot themeSpot : themeSpotList) { | ||
ThemeSpotDto themeSpotDto = new ThemeSpotDto(themeSpot.getImagePath(), | ||
themeSpot.getTitle()); | ||
themeSpotDtoList.add(themeSpotDto); | ||
} | ||
return themeSpotDtoList; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
스트림 한줄로 개선할 수 있을 듯 합니다
- TheamSpot 엔티티를 Dto로 변환하는 과정을 Stream을 이용하여 간소화하였습니다.
- 기존 HealthController를 통해 서버 상태를 확인하던 것을 Actuator로 바꾸었습니다.
workflow 수정
안녕하세요 브라이언! 오랜만에 다시 PR 보내드립니다...
그동안 인프라에 집중하기도 하였고 집중해서 코딩을 하다보니 PR 시간에 늦어 그동안 보내지 못했습니다 🥲
그래도 시작할때 한번 끝날때 한번 보내는건 아닌 것 같아서 오늘 한번 보내게 되었습니다! 죄송하구 감사합니다!
ps. 커밋 내역이 민지노만 있는 것은 저희가 항상 만나서 짝코딩을 해서 그렇습니당ㅎㅎㅎ 절대 싸운것 아니에요...🥹
API 명세서
방 상세정보 API
테스트 서버 URL: http://144.24.86.236/room/1
메인 홈화면 API
테스트 서버 URL: http://144.24.86.236/home
여행지 거리 계산 API
테스트 서버 URL: http://144.24.86.236/distance/times?x=127.033466&y=37.490868
현재 상황
궁금한점
반면 room은 해당 어노테이션을 해주지 않아도 이슈가 없었습니다.