13강은 새로운 코드를 많이 치는 강의가 아니었다.
대신 지금까지 우리가 왜 이렇게 복잡한 구조를 만들었는지를 정리해주는 강의였다.
이 강의를 한 문장으로 요약하면 이거다.
스프링부트는 사용자를 기억하지 못한다.
강의에서 가장 인상 깊었던 표현이 있었다.
스프링부트는 금붕어다.
이 말의 의미는 이거다.
즉,
이 요청이 user1이 보낸 건지
user2가 보낸 건지
스프링부트는 모른다
사용자를 구분한다 =
이 요청을 누가 보냈는지 아는 것
예를 들면:
👉 이걸 모르면 생기는 문제:
그래서 모든 요청에는 “나는 누구다”라는 정보가 필요하다.
이걸 인증 정보(신분증)라고 부른다.
현재까지 우리가 쓰고 있는 인증 정보는 이거였다.
username
password
즉, 요청마다 이렇게 보냈다.
POST /api/v1/posts?username=user1&password=1234
또는 body + parameter 조합으로 전달했다.
이렇게 해서 스프링부트에게 알려준 것이다.
“이 요청은 user1이 보낸 거예요.”
이 둘은 민감한 개인정보다.
그런데:
👉 모든 요청마다 네트워크를 통해 전송됨
이건 보안적으로 굉장히 안 좋은 구조다.
인증 정보를 매 요청마다 보내려면,
클라이언트(앱)는 이 정보를 어딘가에 저장해야 한다.
즉:
👉 이것도 보안상 매우 위험하다.
여기까지의 구조를 정리하면 이렇다.
✅ 장점
❌ 단점
그래서 강의에서 분명히 말했다.
이 구조는 학습용이다.
이 문제를 해결하기 위해
이제부터 인증 정보를 이렇게 바꿀 것이다.
username/password ❌
API KEY ⭕
개념만 정리하면:
👉 이렇게 하면:
→ 요청마다 누군지 알려줘야 한다
→ 지금은 username/password
→ username/password 대신 API KEY 사용
13강은
“이제 JWT 들어가니까 외워라” 같은 강의가 아니었다.
오히려 이 질문에 답해주는 강의였다.
“우리가 지금까지 왜 이렇게 고생했는가?”
이제야 이해했다.