SSAFY에서 1학기 FINAL 프로젝트를 시작했다. 내 프로젝트도 해야하고, 팀 프로젝트도 해야하고,,, 몸이 2개여도 부족하다. 거기다가 SSAFY에서 따로 수업까지 진행한다! 시간이 너무 부족하다. 😢 SSAFY에서 리프레시 토큰을 공부했다.
알고리즘 문제 풀이를 계속 하고있다. 그날그날 기분따라서 아무 주제나 잡고 문제를 푼다.
리팩토링 강의를 듣고 있다. 기존에 객체 구분없이 만들어진 클래스들을 리팩토링하는 내용이다.
아무 의미없는 변수(i, j) 사용은 지양할 것 -> 변수명이 길어져도 괜찮으니 의도가 전달되도록 작성
매직 넘버 사용은 지양할 것 -> 상수로 정의하여 의도가 전달되도록 작성
부정어를 사용하는 메서드명을 지양할 것 -> notRight 보다는 left 라는 이름이 낫다!
개인 프로젝트에 개선이 있었다.
완료 🙌 🙌 🙌 🙌
api url 변경 필요 -> 스네이크에서 케밥으로
jwt 지급 방식 변경 필요 -> 헤더에서 쿠키로
oauth2 구현하기 (구글, 깃허브)
프론트 리팩토링
Components -> 재사용가능한 단위 UI
views -> 라우팅 대상이 되는 페이지 단위
프론트 코드 리팩토링을 조금씩 하고있다. 지금까지는 일단은 되는대로 작성했었다. 그랬더니 구조 파악도 안 되고, 당시에 왜 이렇게 구조를 만들었는지 의도 파악이 어려운 문제가 있다. 그래서 vue 문법에 맞게, 읽기 쉽게, 함수가 중첩되지 않도록 리팩토링 작업을 시작했다. 기존에는 컴포넌트에 불필요한 메서드를 정의해서 사용했다면 지금은 라우터에서 쉽게 처리할 수 있는 내용들을 책임지도록 수정 중이다.
리팩토링을 하면서 로그인 로직이 터무니없이 허접하단 생각이 들었다. 백엔드에서 헤더에 jwt를 담아 프론트에 전해주면 프론트는 해당 값을 쿠키에 저장한다. 이후 요청을 할 때마다 쿠키에서 jwt를 추출해 헤더에 담아 백엔드에 요청한다. API 요청이 있을 때마다 매번 jwt를 쿠키에서 헤더로, 헤더에서 쿠키로 이동하는 로직이 실행됐다. 맘에 안 들었다. 더 단순하고 확실한 로직이 있을 것이다. 그래서 jwt 부분도 리팩토링이 진행됐다. 이제는 HttpOnly 쿠키로 jwt를 보관한다. 이렇게 되면 프론트에서는 jwt와 관련하여 신경쓸 부분이 없다. 자세한 내용은 여기서 볼 수 있다.
저번 주에 포트폴리오 제작을 하다가 깨달은 사실이 있다. 지금 내 프로젝트는 너무나 빈약하다는 사실이다. 그래서 기능을 추가하기로 했다. 가장 먼저 생각이 든 기능은 oauth2 로그인이다. 배경지식 학습, 코드 설계 등등 간략하게 준비 후 작업에 들어갔다. 반나절만에 구현 성공이다. 구글 로그인만 구현하긴 했지만 일단은 된다는 사실! 추후 필요하면 다른 도메인 추가가 가능하니까 oauth2 기능은 일단 여기까지 개발하기로 했다.
<한 권으로 읽는 컴퓨터 구조와 프로그래밍>을 계속 읽고 있다.