Service에서 다른 Service 의존 vs 다른 Repository(Dao) 의존
•
비즈니스 제약사항의 사용이 필요하다면 (일반적으로 CUD)Service, 그렇지 않다면 Repository (일반적으로 Read)!
•
파사드 패턴
◦
어디쪽인지 모호한 친구들 → 묶어서 더 상위 레이어 만든다.
•
추가 궁금증) 컨트롤러에서 여러 서비스들 의존하는 구조는 왜 나쁜가? 트랜잭션 전파가 안일어나나? 기존 police 레거시 구조가 이렇게 되어 있는데 바꿀 합당한 이유 찾기!
CICD
•
오랜만의 cicd 구축! 이번이 6,7번째 cicd 구축이었는데 예전과 달리 정말 수월하게 구축할 수 있었다.
•
에러 요인 : 보안 그룹 8080 안열어뒀었고, docker build할 때 경로를 dockerfile이 있는 곳에서 하지 않았음. private key로 openSSH 주는 거 까먹고 ppk 넣음.
•
2트만에 성공!
AccessToken 재발급 로직
•
먼저 깃허브를 탐방해 다른 프로젝트 코드들을 보면서 로직을 정리해보자.
◦
1번) 두둥 : Token Entity: refreshToken, user / token: id
▪
refreshToken으로 db에서 Token Entity 찾기
▪
Token Entity의 refreshToken을 파싱해서 id 찾기
▪
id로 db에서 User Entity 찾기
▪
User Entity의 oauthInfo로 재로그인 시키기
▪
User Entity로 accessToken 재생성하기
◦
2번) 아띠즈(내 플젝) : Token Entity: refreshToken, user / token: loginId, role
▪
refreshToken으로 db에서 Token Entity 찾기
▪
Token Entity의 refreshToken을 파싱해서 expiration 찾기
▪
만료 시간이 지니지 않았으면 refreshToken 속 내용으로 accessToken 재생성하기
▪
만료 시간이 지났으면 TOKEN_EXPIRED 에러 내보내기
◦
3번) 비치컴바인 (내 플젝) : Token Entity: refreshToken, user / token: loginId
▪
refreshToken 유효한지 확인
▪
refreshToken 파싱해서 loginId 찾기
▪
loginId와 refreshToken으로 db에서 Token Entity 찾기
▪
loginId로 db에서 Member Entity 찾기
◦
4번) 아이러빗(회사 다른 플젝) : Token Entity: refreshToken, accessToken, user / token: id