프로그래밍 일기 — Java의 봄(Spring) 9일차

배우는 자(Learner Of Life)
4 min readSep 5, 2023

--

제발 문제없이 과제를 끝낼 수 있기를

산 넘어 산이라는게 이런 기분이 아닐까싶다(1).

지난 주에 과제를 마무리하고 겨우 한 숨을 돌렸지만, 그 후에 과정을 들으면서 생각보다 진행이 안되어 답답해하다가 결국 월요일 저녁이나 되어서야 끝냈다. 과제를 할 시간은 48시간 밖에 남지않았는데, 그 안에 이 모든 것을 마무리할 수 있을까하는 걱정부터 들었다.

다행히도 절반의 과제는 성공했으나, 아직 나머지 절반이 남았다. 내일 저녁까지 반드시 끝낼 수 있기를 바라고, 모레 있을 시험도 문제없이 준비할 수 있기를 바란다. 산 넘어 산이다. 문제는 한 봉우리씩 넘는 시간이 너무 타이트하다는 것이다.

어쨌든 오늘 하루를 무사히 지나왔고, 내일은 과제를 반드시 끝내야한다. 그럼에도 불구하고 오늘 배운 것을 기록하는 습관은 멈출 수 없다.

Spring 팁

  • 같은 타입의 Bean이 여러개 있을 때 지엽적인 것(범위가 좁은 것)에 대해서는 @Qualifier 를 활용하고, 범용적인 것(범위가 넓은 것)은 @Primary 사용 권장(범위가 작을수록 우선순위가 높다.)
  • Entity: DB와 서버 사이에서 통신하는 레이어이다.
  • 기본생성자가 없을 때에만 매개변수를 받는 생성자를 이용하여 객체 매핑이 가능하다.

인증(Authentication)/인가(Authorization)

  • 인증(Authentication): 해당 유저가 실제 유저인지 확인하는 것(로그인에서 계정과 비번을 입력하는 것)
  • 인가(Authorization): 해당 유저가 특정한 리소스에 접근이 가능한지 허가를 확인하는 것(로그인 이후 권한을 받는 과정)

인증처리

  • Stateless: HTTP protocol상에서 정의하는, “비연결성 무상태"를 말한다. 서버와 클라이언트가 연결이 되어 있지 않은 상태를 말한다.
  • 일반적으로 벡엔드 개발시, 서버의 비용을 줄이며 리소스를 절약하기 위해 계속 연결하는 상태를 방지한다.
  • URL을 통해 요청을 순서대로 쌓아놓고 차례대로 처리하는 방식을 많이 활용한다.
  • 쿠키 검증 방식은 세션 저장소에 인증정보를 저장하고 필요시에 획득하는 방법이다. 쿠키(Cookies)란 쿠키를 저장하는 저장소이며, 쿠키(Cookie)는 클라이언트에 저장할 목적으로 생성한 작은 정보가 담긴 파일이다.
  • 쿠키와 세션은 클라이언트 별로 인증 및 인가가 가능하다는 장점이 있다.
  • 일반적으로 JWT방식이 쿠키보다 더 서버에게 효율적이다.
  • 세션은 requestDto 는 생성자가 있어야 받아올 수 있다( requestDto 는 클라이언트가 서버에 보내주는 정보이다.

쿠키 세션 방식

  1. 사용자가 로그인 한다.
  2. 사용자를 DB에서 확인한다.
  3. 회원정보셰션을 생성한다.
  4. 세션 저장소에서 난수 Session Id를 발급한다(유저 정보와 관련이 없는 무작위)
  5. 발급한 것을 세션 아이디와 함께 클라이언트에 응답
  6. 클라이언트 데이터 요청(HTTP헤더에 담겨져 쿠키와 같이 송신)
  7. 서버는 세션 저장소에 있는 쿠키와 검증한다.
  8. 서버는 클라이언트에게 요청 데이터와 함께 응답한다.

JWT방식

  1. 사용자 로그인
  2. DB에서 회원 사용자 확인
  3. 서버가 Access Token(JWT)발급
  4. 서버가 응답과 Access Token을 함께 클라이언트에 보낸다.
  5. 클라이언트는 JWT와 데이터를 요청한다.
  6. 서버가 클라이언트에게서 받은 Aceess Token 검증
  7. 서버는 클라이언트에게 요청 데이터와 함께 응답한다.

Sticky Session

  • 클라이언트마다 서버를 고정하여 세션(Session) 저장소를 생성하고 모든 세션을 저장한다.

참조:

(1) https://pixabay.com/illustrations/achievement-across-advantage-703442/

--

--

배우는 자(Learner Of Life)
배우는 자(Learner Of Life)

Written by 배우는 자(Learner Of Life)

배움은 죽을 때까지 끝이 없다. 어쩌면 그게 우리가 살아있다는 증거일지도 모른다. 배움을 멈추는 순간, 혹은 배움의 기회가 더 이상 존재하지 않는 순간, 우리의 삶은 어쩌면 거기서 끝나는 것은 아닐까? 나는 배운다 그러므로 나는 존재한다. 배울 수 있음에, 그래서 살아 있음에 감사한다.

No responses yet