캡스톤 프로젝트 일지 #3

김호준·2021년 4월 13일
0

캡스톤 프로젝트

목록 보기
3/6

Oauth2를 안드로이드에 어떻게 적용할지 한참 헤메다가 그냥 Web방식이랑 동일하게 하면 될거같아서 그렇게 했다.

"스프링 부트와 AWS로 혼자 구현하는 웹 서비스" 라는 책을 매우 많이 참고하여 구글 로그인을 구현했다.
그 전에 거의 이해하지 못한 채로 따라만 했었던 책인데, 이번에는 좀더 제대로 살펴봐서 얻어가는게 많은 것 같다.

지금 만든 회원가입, 로그인 플로우는 다음과 같다.

  1. 구글 로그인을 이용하여 로그인을 한다.
  2. 등록된 계정이 없다면 Member타입으로 자동으로 회원가입을 한다. 이 때 멤버십에 가입되지 않은 상태에다.
  3. Member타입이면 멤버십을 가입해야 기능을 이용 할 수 있다.
  4. Dancer타입이면 모든 기능을 이용 할 수 있다.

2번에서 회원가입이라고 표현했지만 Member엔티티에 등록하는 것 뿐이다.
아마 나중에는 추가정보를 입력받는 것 까지 회원가입 절차를 늘릴 것이다.

로그인 여부, 멤버 타입과 멤버십 여부에 따라 접근 가능한 요청페이지와, 그에 따른 Http response 테스트를 만들었다.

지금까지는 할만 했지만 AWS와 연동 할 때 제대로 할 수 있을지 걱정이다.


슈퍼 테이블과 서브타입 테이블을 조인전략으로 짰는데
@DiscriminatorColumn 요놈이 좀 골치아프다.

DB엔 자동으로 dtype이 생기지만, 객체 자체엔 dtype 변수가 없어서 getDtype()이 불가능하다...
dtype을 유용하게 이용할 방법이 없는 것 같다.

그래서 그냥 @DiscriminatorColumn를 없애고 User에 dtype을 직접 추가했다. Member와 Dancer를 세이브 할 때 마다 dtype을 설정하게 바꿨는데 어떤 영향이 있을지는 아직 잘 모르겠다.

@Builder
    public Member(String email, String nickname, String name,
                  Boolean membership, String profile_description, String profile_picture){
        super(email,nickname,name,"Member"); //dtype에 Member를 직접 넣어준다
        this.membership = membership;
        this.profile_description = profile_description;
        this.profile_picture = profile_picture;
    }

이번주 한 일

✔ OAuth2 공부
✔ HttpSession의 작동원리 그리고 HttpSession으로 로그인을 관리하는 법.
✔ 회원가입, 로그인 구현
✔ 회원가입, 로그인 테스트 작성

다음주 해야 할 일

✔ 메인 화면이나 크루관련 개발(팀원 분 작업에 따라 달라질것 같다)
✔ JPA 공부 (꾸준히)
✔ 중간 발표 준비

profile
알고리즘을 좋아하는 컴공 학부생입니다

0개의 댓글