다시 돌이킬 수 없는 이 순간
다시 돌아올 수 없는 이 곳
망설이지말고 해보자
내가 포기하고 들어온 것을 생각하면서 내가 선택한 항해를 내가 책임져야한다. 설렁설렁 할 수 없다.
제자리에 있어보이지만 전진하고 있다.
프론트분들과의 약속
- 노션 API 설계할 때 백엔드/프론트엔드 구현완료 표시를 해서 누구든 알아볼 수 있게 하자
- request, response 바뀌면 바로바로 말해주자
오늘 회의 (22년 7월 15일 (금))
// 오전 11시 회의
- post 게시물들 get 할 때 comment count와 view 구현하기
- 커피 게시글들 미리 넣어놓기 (MySQL
// 오후 8시 회의
- [중요] 목요일(22년 7월 14일까지 트러블 슈팅, 아키텍쳐 작성 완료하자)
- 22년 7월 15일 토요일 오후12시 30분 발표
- 발표할 하기 전에 기술 스택 알고가자
[오늘 내가 해야할 거]
- 마이페이지 GET (내가 좋아요한 커피, 내가 좋아요한 게시글 아직 구현이 안되서 나중에 구현완료되면 하자) / 1순위
- 커픽 등 이전 기수 실전 프로젝트를 참고하면서 (accessToken, refreshToken 알아보자) / 3순위
- 로그아웃 API 작성하고 만들기 (RefreshToken 필요) / 3순위
(++ 토큰 재발급 묶어서 해보자 [Redis 필요])
- 카카오/네이버/구글 지금은 테스트로 로그인하고 있는데 나중에 앱 게시를 어떻게 하는지 찾아보기
- 프론트분과 맞춰 본거 로그인, 소셜 로그인 정리하기
- Rest API 보고 API URL 맞추기 / 2순위
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
내일 할 거 (22년 7월 16일 (토))
- 커픽 등 이전 기수 실전 프로젝트를 참고하면서 (accessToken, refreshToken 알아보자)
- 로그아웃 API 작성하고 만들기 (RefreshToken 필요)
(++ 토큰 재발급 묶어서 해보자 [Redis 필요])
- 카카오/네이버/구글 지금은 테스트로 로그인하고 있는데 나중에 앱 게시를 어떻게 하는지 찾아보기
- 프론트분과 맞춰 본거 로그인, 소셜 로그인 정리하기
- 마이페이지 GET (내가 좋아요한 커피, 내가 좋아요한 게시글 아직 구현이 안되서 나중에 구현완료되면 하자)
- Rest API 보고 API URL 맞추기
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
1개 브랜치 확인하기
Son/editLoginBody - redis쓴다. 로그아웃 기능/ RefreshToken, AccessToken 알아보는 중
PR 한 브랜치
feature/mypageGET - 마이페이지 GET 만드는 용도 브랜치
Son/testImage - 한 개 이미지를 프론트에서 등록하고 한 개 이미지를 다시 프론트에 내려다 주기
Son/socialLoginEdit - 소셜 로그인 이미지가 null이 들어오면 / 소셜로그인 이메일이 기존에
존재하는 이메일이 있으면
내가 해야 할 거
1. 소셜 로그인 - 네이버/구글
프론트 분과 같이 맞춰본 거 (내가 해야할 거)
1. 소셜 로그인에서 이메일 null 값이 들어오면 이메일 랜덤값으로 주자 ㅇ
-> 카카오는 이메일 선택 동의
-> 네이버는 이메일 필수 동의
-> 구글은 이메일 필수 동의
2. 카카오/네이버/구글 이미지 선택 동의 ㅇ
-> 이미지 없이 null값으로 들어오면 기본 이미지를 집어넣자
3. 닉네임은 랜덤값을 줄거니깐 사용자 정보 동의 에서 빼자
4. 네이버 소셜로그인에서 쓰던 이메일이랑 카카오 소셜로그인이랑 이메일이 같을때 ...
어떻게 하지 ㅠㅠ ->각 소셜로그인할 때 나오는 socialId를 쓰자
5. 소셜로그인 지금은 테스트인데 앱게시 하는 거 알아보자
- 카카오는 애플리케이션 다시 만들어보기
- 앱 게시 하기
2. 로그아웃 / accessToken, refreshToken
3. 마이페이지
(닉네임, 사진 수정가능하게) / 이메일도 수정 가능한데 이메일 인증 하고나서 수정 가능하게 하기
- 마이페이지 GET (내가 좋아요한 커피, 내가 좋아요한 게시글 아직 구현이 안되서 나중에 구현완료되면 하자)
4. 기본이미지 필요한 곳 ( 회원가입 Controller/Service, 소셜 로그인 Service, 마이페이지 수정부분 Service)
5. 나중에 WebMvcConfig에서 프론트쪽에서 열었는 서버 입력해주기 (localhost:3000도 같이 열어주자)
오늘 내가 한 거
내가 해야할 거
-- 백에서만 할 수 있는 거 생각해보기
- 나는 회원가입, 로그인, 소셜 로그인, 로그아웃, 마이페이지 담당
- 로그인, 회원가입 API, 마이페이지 API 작성하기, 로그아웃 API 작성
- accessToken, refreshToken 찾아보기
- 마이페이지 만들 때 피그마 보면서 하기
- API 반환값 ResponseEntity로 변경하기 그리고 API명세서 수정하기 - 다 한거 같지만 다시 확인하기
/ - 에러코드 exceptionHandler 로 바꾸기
회원가입, 로그인
- RestAPIException 알아보기
회원가입, 로그인, 소셜 로그인 (일단 2주간의 시간 안에 다 해야함)
=> 카카오/네이버/구글 로그인 해야함
- 회원가입할 때 존재하는 메일인지 메일 인증 (회원가입 누르면 메일 발송되게 해보자) -> 2차 구현
- 소셜 로그인에서 받아오는 이메일이나 닉네임들이 일반 로그인이랑 겹칠 수 있음 -> 카카오 로그인 할 때 이메일을 랜덤값으로 가져오자
- 회원가입 누르면 이메일 인증하고 이메일 인증 가능하게 하기
-> 회원가입 정보들을 적어놓고 이메일 인증을 하러가면 잠시 정보를 저장해야하는데 백에서 할지 프론트에서 할지 정하기!! 알아보자
-> 잠시 저장하고 이메일 인증이 완료되면 그 저장된 정보 DB에 저장하기
- 비밀번호 찾기
- 회원가입할 때 동의 사항 물어보기
소셜로그인
마이페이지
-- 마이페이지 / PUT, GET (로그인 한 사용자)
=> 닉네임, 사진
- 마이페이지 닉네임, 프로필 사진, 현재 내 포인트(자동으로 적립), 찜한 목록/찜한 게시글 볼 수 있게하기
- (닉네임, 사진 수정가능하게)
-> 이메일도 수정 가능한데 이메일 인증 하고나서 수정 가능하게 하기
- 사진, 닉네임, 메일, 내가 좋아요한 목록들(좋아요한 커피/ 좋아요한 게시판, 내가 쓴 글)
기타
- 이전 기수 실전프로젝트 코드 분석하기
- SkipPahtList로 GET으로 불러올 수 있는 거 다 허용해주기 / 주기적으로 확인하면서 바꾸기
- 백엔드 카카오 로그인 APP key 깃이그노어에 등록하기 / sw님꺼를 참고해서 물어보자
=> 내 카카오앱키도 깃허브에 올라가져있어서 나중에 따로 빼는 방법 알아보자.
아니면 다시 삭제하고 새로 만들어야겠다.
//백엔드
- 내가 NGINX(8081, 8082), SSL 하기로 함
-- 발표날 / 백에서 서기는 내가 한다.
완료한 거
회원가입, 로그인
- 사용자에게 관리자 권한 부여하는 건 했고 관리자 허용 가능한 인증 코드가 필요한데 이거를 이메일 인증으로 해볼까 생각중 이었는데 관리자 권한 한개 아이디에만 부여하기로 바꿈
(우리 팀만 아는 아이디 하나만 관리자 권한을 부여하자)
- 닉네임 한글로 적을 때 프론트에 가면 한글 깨지는 현상 공부하기 -> 프론트에서 받을 때 이상 없다고 하셨음
- JWT 토큰 안에 USER 정보를 담아서 보내야한다. 로그인 시 중요한 사항 -> 프론트분께 token에 user 정보를 담아서 보내는 데 프론트 쪽에서 복호화해야 한다고 말해드리기 (프론트에 복호화 라이브러리가 있다.)
=> 로그인 성공하면 body값에 넣기로 함
- 마이페이지 로그인된 사람만 활성화 되는지 물어보기 -> 그렇다
-- ID, 닉네임 중복, 패스워드
-- 로그인 - 관리자 권한 설정
=> 로그인 후 따로 관리자 권한 설정 할 수 있는 API 작성
-- 로그인 / 월요일까지 하기(22년 6월 27일)
- 아이디(username) 형식 / 이메일로 할지 그냥 기존 아이디 (예. dkdlel78) 로 할지 프론트분께 물어보기
- 회원가입, 로그인 등 ResponseEntity 반환하는 거로 바꾸기 / errorcode 추가함
- 회원가입할 때 사진 저장 / 사용자(USER) DB에 프로필 이미지 추가하기
- 이메일 글자 수 제한 -> 정규식으로 대체
- 회원가입 formdata로 받을 수 있게 하기
- 패스워드 체크 넣을 지 물어보자 -> 백에서는 password 하나만 받아오기로 함
- 구글링으로 소셜 로그인(네이버, 구글) 따라해보기 -> 실전 프로젝트 보고 따라하기
-- 회원가입 약관 동의 를 만들어야 하나? ->회원가입 약관동의 프론트에서 백은 아무것도 안함
- 닉네임 길이 제한 둘지 물어보기 / 2자 이상 10자 이하
- 비밀번호 8자 이상 20자 이하 / 영어, 숫자, 특수문자 필수
- 닉네임 2자 이상 10자 이하 / 영어, 한글, 특수문자 다 가능하게 하자
- 네이버 로그인 할 때 String state 추가해줘야 한다.
- JWT 토큰 안에 USER 정보를 담아서 보내야한다. 로그인 시 중요한 사항
- 로그인할 때 유저 닉네임 정보 프론트로 갈 수 있게 해주자 -> 로그인시 body에 담아서 보낸다.
- API마다 반환타입에 Status 붙여주기 필수
- 프론트분과 맞춰보기 / 로그인 ResponseEntity에서 뭐 받으실지 결정하기
- 회원가입할 때 이미지를 서버에 안 넣어줄 때
- 닉네임 바꾸기 싫은데 중복검사되면 바꿔야할 때
=> 내 닉네임 제외하고 중복 검사하게 하자 (백에서)
- 닉네임은 2자 이상 8자 이하 / 정규식 프론트분과 맞추자
소셜 로그인
- 회원가입할 때 이미지를 등록 안하고 싶은 분들을 위해서 기본이미지 생성 의견 말해보기 - 추진
- 구글 로그인은 HTTPS 필요 -> 네이버랑 구글 로그인 https 안 해도 됨
-- 카카오 로그인 / 아이디, 사진
-- 네이버 로그인 / 프로필 사진
-- 구글 로그인 / 프로필 사진
=> 사진 들고 올 수 있는 지 확인하기 (카카오/네이버/구글 모두 사진 가능)
- 소셜로그인 사용자 정보 동의 불러올 때 나이 성별 해야하는지 물어보기 / 이건 안하고 그냥 기존에 했던대로 한다.
- 소셜 로그인에서 받아오는 이메일이나 닉네임들이 일반 로그인이랑 겹칠 수 있음
-> 소셜 로그인의 닉네임은 다 랜덤값으로 주고 마이페이지에서 변경하도록하자
- 프론트분과 같이 소셜로그인 카카오/네이버/구글 같이 맞춰보기 -> 잘 되었다.
- 프론트분과 같이 소셜로그인 카카오/네이버/구글 같이 맞춰보기
- 이메일 (카카오/네이버/구글 안 겹치려나..)
=> 그래서 socialId로 구분을 해봤다.
- 소셜 로그인 이미지가 null이 들어오면 기본이미지 넣어주기
=> 카카오 이미지 성공
=> 카카오는 이메일 사용자 정보 선택이다. 사용자가 이메일 정보 동의를 선택 안하면 임의의 이메일을 적어주자
=> 네이버도 기본 이미지 설정을 했다. 프론트분과 테스트해보자
=> 카카오 맞춰보면서 수정하자.
- 소셜 로그인 사용자 정보도 프론트에 전달 하자 ( /social/user/islogin )
=> 필요한 정보 (login : true, userId, nickname, procileImage)
- 소셜 로그인 사용자 정보도 프론트에 전달 하자 ( /social/user/islogin )
=> 필요한 정보 (login : true, userId, nickname, procileImage)
- 카카오 로그인 할 때 kakaoService 코드에서 system.out 다 없애기 -프론트랑 연동 잘 된거 본 후에 없애자
- 카카오 로그인 username을 email로 받아오기 + 프로필 사진도 추가해야함
=> 카카오 email 로 받아오는 거 그냥 회원가입 한 사람이랑 겹칠 수 있는 문제 해결하기(socialId)
- 카카오/네이버/구글에서 이메일 가져올 때 이미 존재하는 이메일이면 회원가입 안되게 하자
=>socialId로 해결
- 회원가입 할 때나 소셜 로그인 할 때 프로필 사진 없으면 기본 사진 넣을 수 있게 만들기 -> 일단 기본 이미지 넣음
->- 회원가입, 소셜로그인 둘다 이미지 없을 때 null일 때 기본 이미지 넣는 거 생각해보기
=> 구글은 이미지를 어떻게 받아오는지 프론트분과 맞춰보면서 알자 -> 기본이미지는 없고 사용자가 이미지가 없으면 사용자 커스텀 이미지가 있다.
마이페이지
-- 마이페이지 / PUT (로그인 한 사용자) => 사진 포함 되어있으니 다 formdata로 만들기
-> JSON형식으로 받기로 했음 사진을 S3에 저장하는 건 프론트에서 하기로 함
=> 닉네임, 사진, (선호커피브랜드는 빼기로 했음)
- 회원가입할 때 FormData 필요 프로필 사진이 필요해서
=> 마이페이지 수정할 때도 FormData 필요 수정(PATCH로 해보자) or PUT 알아보기
- (선호커피브랜드는 빼기로 했음)
- 마이페이지 GET (내가 좋아요한 커피)
기타
- develop에 코드 합치기 전에 comment Controller에 있는 URL 들 앞에 슬래시(/) 붙이고 합치자
프로젝트 해야할 거
- HTTPS => 지도 golocation하려면 HTTPS 사용해야 함
=> front쪽
=> 백엔드쪽 Springboot에서 SSL 인증 적용하는 방식
- 도커는 자동으로 인스턴스 배포 (무중단 배포)
무중단 배포는 테스트? 실제 배포는 EC2
- NGINX - 서버의 부하를 줄여준다.
- 로그인 (+ SSL은 이메일 인증)
- 실전 이전 기수들 보면서 아키텍처 연구하기
- S3ㅠㅠ (dg님 블로그 참고하기 - 서버설계)
- NGINX 무중단 배포
github 자동화 배포
S3를 깃허브에 오릴 때 IAM 만들기가 필요 / codeploy
매일 해야할 거
- 알고리즘 하루에 1개 풀기 - 1시간이상 고민하지 말기 1시간 후에 답지보면서 이해하고 정리하기
- TIL 쓰기
- 공책에 적은 거 정리하기
- 메모장에 적은 거 정리하기
↓↓↓↓↓
-- 정신차리자
- 수학 - 하루에 한개만이라도 풀어보기
- 단계별로 풀어보기
- TIL 적기
- 알고리즘 하루 한개라도
-- 알고리즘 하루 1개 해보자 (자료구조 스택/큐/힙 중요!!)
- exceptionHandler
- 공책정리
'Today I Learned' 카테고리의 다른 글
2022년 11월 15일 화요일 TIL (0) | 2022.11.16 |
---|---|
2022년 11월 14일 월요일 TIL (0) | 2022.11.15 |
TIL_항해99_67일차 (실전 프로젝트 21일 차) - 정신 차리자 (0) | 2022.07.14 |
TIL_항해99_66일차 (실전 프로젝트 20일 차) - 정신 차리자 (0) | 2022.07.14 |
TIL_항해99_65일차 (실전 프로젝트 19일 차) - 정신 차리자 (0) | 2022.07.12 |