[GDG Campus Korea] 3주차 회고록

SIK407·2023년 9월 9일
3

GDGxWhatever

목록 보기
3/5

1. 이번주는 좋은 것과 나쁜 것이 무엇인가?

새로운 기술들이나 팁을 많이 배웠다. 이번 프로젝트를 진행하기 전에도 백엔드를 담당했지만, 그땐 대충 알고 있는 지식들로만 스프링을 접했다 보니, 프로젝트 결과는 성공적이었지만 내가 습득한 지식은 너무 얕았다.

이번 프로젝트에서도 백엔드를 담당했고, Spring으로 기능을 구현하면 구현할수록 어떠한 구조로 코드를 작성해야 되는지, 또 엄청 범주가 넓은 Spring의 새로운 기능들을 점차 한 개씩 사용함으로써 많은 지식과 경험을 습득하는 것 같다.

역시 프로젝트처럼 부딪히면서 배우는 것이 가장 재미있고 빠른 학습방법인 것 같다.

물론 좋은것만 느낀게 아니였다. 개강하고 알바하고 프로젝트까지 진행을 하다보니 체력이 감당이 안된다. 무턱대고 할일을 많이 만들어놓은 상태인데.... 하 왜그랬는지 싶다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
그래서 자꾸 내 일정 때문에 같이 작업하는 시간에 빠지게 된다 ㅠㅠㅠㅠㅠ 그래도 팀원들에게 피해를 최대한 끼치지 않기 위해 자는시간을 쪼개는 중이다..

(어 뭐여 느낀점이랑 비슷하네... 느낀점 퉁처야징)

2. 이번주 진행했던 학습/개발 내용은 무엇인가?

  • spring - mail을 통한 이메일 인증코드 전송
  • Radis를 이용해서 비교할 인증코드를 보관
  • 비밀번호 암호화 (Spring Security crypto)
  • 비밀번호 분실 시, 비밀번호 찾기 기능 구현
  • Docker로 Redis와 MariaDB를 Spring에 연결

3. 가장 고민을 했던 부분은 무엇인가?

  • 두 가지 정도를 고민했다.

1. 인증할 이메일로 랜덤한 숫자 4자리 전송은 성공했지만, 이 4자리 숫자의 코드(인증코드)를 어디에 저장하고, 어떻게 비교할 것인가...?

-> 처음에는 프런트로 백에서 만든 4자리 숫자를 그냥 Response 할 생각이었지만... 문제는 이렇게 되면 인증해야 할 숫자가 클라이언트에게 보일 수 있어서 보안상 가능할 것 같지 않았다.

그래서 Redis라는 인메모리 데이터베이스를 사용했다. 자세한 건 포스팅할 예정이다. (포스팅 완료!)
Redis에는 많은 자료구조가 있지만, {key, value}를 사용했다. key가 이메일, value가 인증코드로 생각하고 약 3~5분 정도의 유효시간만 지정해 주면 저장이 완료된다.

keyvalueexpire
ks06891@naver.com64834min

2. 한 User가 자신의 ID(email) 혹은 PW를 분실했을 경우, 본인을 어떻게 인증하고 값에 접근하게 할 것인가...?

-> 이번 프로젝트는 우리가 흔하게 말하는 '아이디'는 등록 시, 이메일이다.
즉, 이메일과 비밀번호로 로그인을 진행하게 되는데, 문제는 아이디를 분실했을 경우, 본인확인 방식을 어떻게 할까...? 가 큰 고민이었다.

우리 프로젝트는 이름이나 전화번호 등 개인정보를 받지 않는다. 그래서 전혀 본인인증을 할 방법이 없어서, ID 찾기는 지원하지 않기로 결정했다.

예시로 https://www.acmicpc.net/ 이 있다. 백준은 이메일이 아이디로 되어있는 형태를 보여주는데, 백준에서는 비밀번호 찾기 기능만 구현이 되어있다.

비밀번호 분실 시, 내가 가입한 이메일 인증을 한 후에, 비밀번호를 변경할 수 있는 API를 제작해 놓은 상태다.

-> 현재는 닉네임과 이메일을 기준으로 DB 쿼리를 생성할 예정이지만, 아마 닉네임은 제외할 듯 싶다.

4. 다음주는 어떻게 보낼 예정인가?

  • Security & JWT (Json Web Token)을 통한 로그인 기능 구현 시작.
profile
Spring 백엔드!

5개의 댓글

comment-user-thumbnail
2023년 9월 10일

백엔드도 함 배워보고싶은데 엄두가 안나네요...

답글 달기
comment-user-thumbnail
2023년 9월 10일

와우 담주에는 로그인 기능이 구현된다니...!! 어제 봤던 이메일 인증도 넘 신기했는데 로그인은 또 얼마나 신세계일지 다음주가 넘 기대됩니다요 디자인에 집중하느라 개발의 세계는 어떤지 잘 못보고 있었는데 이번 블로그를 통해 어떤 작업을 하고 있는지 알 수 있어서 넘 좋았습니다~~ 여기에도 장미 한 송이 놓고 가겠어요...@>--------

답글 달기
comment-user-thumbnail
2023년 9월 10일

바쁘지만 열심히 하는모습이 정말 보기 좋네요!!! 이번 활동을 통해 조금 더 성장해가는 개발자가 되길 바랍니다ㅎㅎ 기술적으로 많은 부분에서 고민해보고 조금 더 성장한것같아 보기 너무 좋네요~~!!

답글 달기
comment-user-thumbnail
2023년 9월 10일

알바도 그만두고 학교도 자퇴하고 프로젝트에 집중해봅시다!!

답글 달기
comment-user-thumbnail
2023년 9월 10일

우와우 로그인 기능 저도 배워보고싶어요! redis가 로그인 기능에도 쓰이고 채팅 기능에도 쓰인다니 저도 한 번 공부해봐야겠어요! 로그인 기능 완성하시면, 어렵겠지만 저도 함 배워보고 싶습니다~

답글 달기

관련 채용 정보