2023. 10. 20. 22:51ㆍ개발
1. 프로젝트 소개
인스타, 쓰레드처럼 웹페이지에 글을 남길 수 있는 SNS 홈페이지 만들기
2. 프로젝트 사용 기술
javascript, node js
3. 내가 맡은 역할
백엔드 역할을 맡았다.
프론트 3명 백엔드 3명이서 진행
구현해 본 기능
회원가입 데이터를 받아서 비밀번호 암호화 후 mysql에 저장
사용자 로그인 데이터를 token 인증 후 로그인
전체 게시물 보여주기
특정 사용자 게시물 보여주기
token 인증된 사용자 본인 게시물 수정
token 인증된 사용자 본인 게시물 삭제
좋아요(token 인증기능 없음)
좋아요 취소(token 인증기능 없음)
git 링크 : https://github.com/wecode-bootcamp-korea/50-1st-E-Backend/tree/feature/junseok
4. 이해하기 어려웠던 기술
일단 body에서 받은 패스워드를 bcrypt로 해싱하여 저장하는 로직은 문제없이 이해했지만
이후 해싱된 비밀번호를 사용자에게 토큰 형식으로 내주고 그 토큰에 포함된 유저 정보를 이용하는 것을
이해하는 것에 큰 애를 먹었다.
도대체 npm 공식 문서에는 토큰 payLoad에는 foo:bar가 담기며 도대체 이 토큰에 개인 정보를 담아서 인증을 할 수 있는지 처음 이 개념을 들었을 때는 대혼란이었다.
글을 읽으면서 공부하는 것보다 실제로 이루어지는 과정을 보면서 공부하는 것이 이해가 더 잘될까 싶어 유튜브 예시 영상들을 참고하여
foo:bar 대신 body 값으로 들어오는 유저의 정보를 넣으면
header + payLoad + (header+payLoad)가 사용자 고유의 토큰 값이 된다는 것을 알게 되었다.
그렇게 이해한 후 header 값에는 다른 알고리즘 정보를 payLoad 값에는 토큰 유효 시간도 넣어 더욱 보안성 있는 토큰을 만들 수 있다는 사실을 알게 되었다.
그 이후 사용자가 가지고 온 토큰을 인증하는 코드인데
토큰 만드는 것 이해하는 것도 이렇게 어려운데 과연 그것을 분리해서 인증하는 것은 얼마나 어려울까? 생각했지만
생각보다 큰 문제없이 이해하고 코드를 작성하게 되어 나 혼자 낄낄 되며 웃었던 것 같다.
5. 프로젝트가 끝나고...

역시 어떤 분야든 기술을 배우고 사용한다는 것은 수많은 노력과 고통을 수반한다.
코드를 짜고 그다음 날 나의 코드를 보면 이해하기가 너무 힘들었다.
팀원이 나의 코드를 보면서 엄청 더럽고 이해하기 어려웠을 것 같다. (죄송하다)
또한 api를 다 구현해 놓고 postMan을 이용하여 확인해 봤지만 팀원과의 연결은
실패의 연속...
결국에 연결에 성공하기는 했지만 항상 나의 코드를 믿을 수 없고 불안하고 더 발전시키고 싶었다.
내가 다음 프로젝트에서 발전시키고 싶은 부분은
첫 번째 내가 담당하게 될 api 기능을 다양한 기술로 효율적이고 가독성 있게 짜기 위해 노력하는 것
두 번째 코드를 정확하고 지금보다는 빠르게 리펙토링 하는 것
세 번째 기능에 따라 코드를 나누고 위의 사항들을 진행하는 것
마지막으로 불안해하지 않고 주어진 상황과 문제해결에 집중하는 것
2차 프로젝트 화이팅!!
❗️안다고 생각하는 것은 사실 모르는 것이니 항상 겸손하며 끊임없이 학습해야 한다.❗️
'개발' 카테고리의 다른 글
| git hub 공부 (0) | 2023.11.22 |
|---|---|
| 2차 프로젝트 회고록 (0) | 2023.11.05 |
| mysql 에 대하여 1-2 (0) | 2023.10.15 |
| my sql 에 대하여 1-1 (0) | 2023.10.14 |
| 2년만에 돌아온 개발일지 (1) | 2023.10.05 |