Backend 세션 관리
JWT
방법 1 : 사용자의 PK를 담고 해당 PK로 사용자의 정보, 권한을 매번 DB에 접속해서 조회하는 것
방법 2 : 사용자의 정보, 권한을 암호화 해서 담는 것
- 장점
- 사용자가 적은 경우 사용하기 적합
- 네트워크를 타지 않아서 좋다.
- 비용이 발생하지 않는다.
- 단점
- 토큰을 인코딩하면 1.6배 길어져서 데이터가 많을 수록 cpu를 잡아먹고 무거워짐
Redis (인메모리DB)
- 장점
- 가장 Best인 방법
- AWS 에서 사용 가능
- 별도의 DB처럼 쓸 수 있음
- 서버가 다중화되어도 문제되지 않음
- 어노테이션만 붙여주면 쉽게 사용 가능
- 사용자가 많은 경우 적합함
- 단점
- 네트워크에 붙어야 한다.
- AWS에서 지원하지만 비용이 발생한다.
Frontend 세션 관리
- 로컬 스토리지에 저장하는 방법
- 쿠키에 저장하는 방법
큰 차이는 없지만 공부할겸 로컬 스토리지에 저장하는 방법 권장.. 쿠키에 저장해도 상관은 없음!!
암복호화
대칭키 알고리즘
- AES(많이 사용, 256이 안전), SEED, ARIA → JAVA에서 사용이 가능함.
- 장점 : 빠르다
비대칭키 알고리즘
Hash 란 ?
- 복호화할 수 없는 암호화
- 알고리즘 : MD5, SHA256, Bcrypt (최근 가장 선호)
- 주로 비밀번호, 전자서명등에 사용
- 사용자가 설정한 비밀번호를 Hash로 암호화한 뒤 DB에 저장하고 로그인시 Hash값과 비교
오늘 못했지만 토요일에 할 것 !
- Spring security 코드 분석
- 로그인 구현
- Cloud config 셋팅
느낀점
오늘은 실무 관련 질문을 많이 하다보니 계획했던 진도를 나가진 못했지만, 유익한 정보들을 배우게 되어서 너무 재미있었다. 세션 관리를 어떻게 할건지에 대해 선생님께서 다양한 방법을 제시해주셨고 각 장단점을 비교해보면서 어떤 방법이 실무 프로젝트에 적합한지 고민해볼 수 있었다. 개발은 참 배울게 많고 끝이 없지만, 하나 하나 알게 될때마다 정말 즐겁고 재미있다! :D