토이프로젝트 4일차 회고록

두별·2022년 4월 20일
0

TIL

목록 보기
18/46

Backend 세션 관리

JWT

방법 1 : 사용자의 PK를 담고 해당 PK로 사용자의 정보, 권한을 매번 DB에 접속해서 조회하는 것

  • 장점
    • 가볍고 보안적인 문제를 해결
  • 단점
    • 네트워크에 붙어야 한다.

방법 2 : 사용자의 정보, 권한을 암호화 해서 담는 것

  • 장점
    • 사용자가 적은 경우 사용하기 적합
    • 네트워크를 타지 않아서 좋다.
    • 비용이 발생하지 않는다.
  • 단점
    • 토큰을 인코딩하면 1.6배 길어져서 데이터가 많을 수록 cpu를 잡아먹고 무거워짐

Redis (인메모리DB)

  • 장점
    • 가장 Best인 방법
    • AWS 에서 사용 가능
    • 별도의 DB처럼 쓸 수 있음
    • 서버가 다중화되어도 문제되지 않음
    • 어노테이션만 붙여주면 쉽게 사용 가능
    • 사용자가 많은 경우 적합함
  • 단점
    - 네트워크에 붙어야 한다.
    - AWS에서 지원하지만 비용이 발생한다.


Frontend 세션 관리

  • 로컬 스토리지에 저장하는 방법
  • 쿠키에 저장하는 방법

큰 차이는 없지만 공부할겸 로컬 스토리지에 저장하는 방법 권장.. 쿠키에 저장해도 상관은 없음!!


암복호화

대칭키 알고리즘

  • AES(많이 사용, 256이 안전), SEED, ARIA → JAVA에서 사용이 가능함.
  • 장점 : 빠르다

비대칭키 알고리즘

  • RSA
  • 단점 : 느리다

Hash 란 ?

  • 복호화할 수 없는 암호화
  • 알고리즘 : MD5, SHA256, Bcrypt (최근 가장 선호)
  • 주로 비밀번호, 전자서명등에 사용
  • 사용자가 설정한 비밀번호를 Hash로 암호화한 뒤 DB에 저장하고 로그인시 Hash값과 비교



오늘 못했지만 토요일에 할 것 !

  • Spring security 코드 분석
  • 로그인 구현
  • Cloud config 셋팅


느낀점

오늘은 실무 관련 질문을 많이 하다보니 계획했던 진도를 나가진 못했지만, 유익한 정보들을 배우게 되어서 너무 재미있었다. 세션 관리를 어떻게 할건지에 대해 선생님께서 다양한 방법을 제시해주셨고 각 장단점을 비교해보면서 어떤 방법이 실무 프로젝트에 적합한지 고민해볼 수 있었다. 개발은 참 배울게 많고 끝이 없지만, 하나 하나 알게 될때마다 정말 즐겁고 재미있다! :D

0개의 댓글