Skip to content
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 이노] FE, iOS에 따른 GitHub OAuth 구현, 프로젝트 API 구현 #42

Open
wants to merge 73 commits into
base: team-11
Choose a base branch
from

Conversation

eNoLJ
Copy link

@eNoLJ eNoLJ commented May 26, 2021

새롭게 구현한 부분

  • FE, iOS 각 어플리케이션에서 login 요청시 typeCode를 파라미터로 받아 구분하여 처리 하였습니다.
  • JDBC Template을 사용하여 DAO를 만들어 사용했습니다.

이번에 처음 JDBC Template을 사용하면서 궁금한 점이 하나 생겼습니다.

DAO에서 쿼리에 해당하는 엔티티 클래스로 매핑을 진행했습니다. 여기서 궁금한 점이 생겼는데 테이블 join 시 컬럼이 늘어나게 되고 매핑 가능한 엔티티 클래스가 없어집니다. 이 때 엔티티 클래스가 아닌 별도의 클래스를 만들어 매핑을 진행하는 것이 좋은지 아니면 엔티티 클래스로 매핑하여 가져 온 뒤 코드 상에서 변환을 해주는 것이 좋은지 의견 주시면 감사하겠습니다.

전자의 경우 필요한 정보들을 얻기 위해 여러 DAO를 사용해야하는 단점이 있고, 후자의 경우 한번의 쿼리로 필요한 정보들을 얻을 수 있다는 장점이 있는 반면 엔티티 클래스가 아닌 다른 클래스가 db와 접촉을 한다는게 찝찝합니다. 그리고 그렇게 되면 자연스레 비지니스 로직 또한 매핑을 위해 새로 만든 별도의 클래스에 생기게 되는데 비지니스 로직은 service와 entity 에서 처리를 해줘야하는 걸로 알고 있어서 더 헷갈리네요.

지난 프로젝트에서는 API 만들어 지는게 늦어져 PR을 못 보냈기 때문에 엄청 오랜만에 PR을 보내게 되었네요.
OAuth든 JDBC Template이든 새롭게 적용한 것들이 많아 부족한 부분이 많으리라 생각됩니다. 사소한거 하나하나 다 지적해주시면 최대한 다 반영하도록 하겠습니다.
이번 리뷰도 잘 부탁드립니다!!

eNoLJ and others added 30 commits May 18, 2021 14:44
숙소 검색 요청에 대한 목업 API를 제공하기 위해 searchHouses 메소드 생성, 관련 dto 클래스 생성
범위 내 숙소 가격 요청에 대한 목업 API를 제공하기 위해 searchCharges 메소드 생성, 관련 DTO 클래스 생성
숙소 예약 페이지 요청에 대한 목업 API를 제공하기 위해 getReservationPage 메소드 생성, 관련 DTO 클래스 생성
숙소 예약 요청에 대한 목업 API를 제공하기 위해 makeReservation 메소드 생성, 관련 DTO 클래스 생성
위시 리스트 요청에 대한 목업 API를 제공하기 위해 getWishes 메소드 생성, 관련 DTO 클래스 생성
위시 요청에 대한 목업 API를 제공하기 위해 changeWish 메소드 생성
숙소 예약 리스트 요청에 대한 목업 API를 제공하기 위해 getReservationList 메소드 생성, 관련 DTO 클래스 생성
숙소 예약 디테일 정보 요청에 대한 목업 API를 제공하기 위해 getReservationDetail 메소드 생성, 관련 DTO 클래스 생성
숙소 예약 취소 요청에 대한 목업 API를 제공하기 위해 cancelReservation 메소드 생성
API 요청 시 메소드와 바디가 기록에 남도록 filter 설정
리액트에서 API를 사용할 수 있도록 cors 설정을 위해 WebConfig 클래스 생성
… 매개변수 수정

GET 요청에 body를 담을 수 없기 때문에 Parameter로 받도록 수정
로그인, 로그아웃 기능을 제공하기 위해 UserController 클래스 생성, 관련 비즈니스 로직을 가진 UserService 클래스 생성, 관련 DTO 클래스 생성
getTokenAPI, getUserInfoAPI, getEmailAPI 메소드를 가지는 OAuth 인터페이스를 상속 받는 GitHubOAuth 클래스 생성, 관련 비즈니스 로직과 이넘 클래스 생성, Jwt 토큰을 사용한 인증방식 구현
로그인/로그아웃 API 생성
eNoLJ and others added 11 commits June 3, 2021 15:55
JwtUtil 클래스 리팩토링
HouseController 클래스의 Reservation 부분과 Wish 부분을 ReservationController 클래스와 WishController 클래스로 분리
HouseService 클래스의 Reservation 부분과 Wish 부분을 ReservationService 클래스와 WishService 클래스로 분리
HouseController, HouseService 분리
makeLocation, makeHost, makeLocal, getHostImage 메소드 제거, 해당 정보들은 DTO 클래스에서 갖도록 수정
Optional로 만들기 위해 리스트로 받아 스트림으로 만든 후 찾아 반환하던 방식에서 직접 Optional.ofNullable 메소드를 사용하여 만들어 반환하도록 수정
makeDate, getCheckInTime, getCheckOutTime, makeOption 메소드 제거, 해당 정보는 각각의 DTO 클래스에서 만들어주도록 변경
@eNoLJ
Copy link
Author

eNoLJ commented Jun 4, 2021

@ksundong
으어어어 디온!!!
현재 적용 안된 리뷰가

application.properties 하나로 관리
uri 빌더 bean으로 만들어주기
user에 static 메소드 제거
URL path 설계
OAuth 판별은 host로

- dao 관련
필드 분리
사용자 지정 RowMapper 사용
stream안에 db접근 x
findAll 에는 WHERE, LIMIT 사용

정도인데 이렇게 주저리 말씀드리는 이유는 디온이 정말 정성스레 리뷰를 해주셨는데 다 하지 못할 수도 있을 것 같아 죄송해서 말씀드립니다.
이번에 다 못하더라고 꼭 잊지않고 다음 프로젝트에서 하나하나 적용해보도록 하겠습니다. 기회가 된다면 다음 프로젝트에서 pr 날릴 때 봐주세요!!
이번 리뷰로도 많이 배웠고 정말 너무너무 감사드립니다!!!!

swing-park pushed a commit that referenced this pull request Jun 5, 2021
swing-park pushed a commit that referenced this pull request Jun 5, 2021
swing-park pushed a commit that referenced this pull request Jun 5, 2021
swing-park pushed a commit that referenced this pull request Jun 5, 2021
서버 에러 및 badURL으로 미완성채 커밋함
swing-park pushed a commit that referenced this pull request Jun 5, 2021
swing-park pushed a commit that referenced this pull request Jun 5, 2021
crongro pushed a commit that referenced this pull request Jun 7, 2021
crongro pushed a commit that referenced this pull request Jun 7, 2021
crongro pushed a commit that referenced this pull request Jun 7, 2021
crongro pushed a commit that referenced this pull request Jun 7, 2021
crongro pushed a commit that referenced this pull request Jun 8, 2021
crongro pushed a commit that referenced this pull request Jun 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants