9/15

졸용·2025년 9월 15일

TIL

목록 보기
75/144

아는 것들은 일단 복습차원에서 빠르게 공부하고 넘어가고, 내가 미흡하다고 생각되어 한 번 더 짚고 넘어가야 하는 부분들만 블로깅 해보았다

🔹 동적 view 매핑 방법

package com.sparta.springmvc.html;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HtmlController {

    private static long visitCount = 0;

    @GetMapping("/static-hello")
    public String hello() {
    
        return "hello.html";
    }

    @GetMapping("/html/redirect")
    public String htmlStatic() {
    
        return "redirect:/hello.html";
    }

    @GetMapping("/html/templates")
    public String htmlTemplates() {
    
        return "hello";
    }

    @GetMapping("/html/dynamic")
    public String htmlDynamic(Model model) {
        visitCount++;
        model.addAttribute("visits", visitCount);
        
        return "hello-visit";
    }
}

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Hello Spring</title></head>
<body>
  <div>
    Hello, Spring 동적 웹 페이지!!
  </div>
  <div>
    (방문자 수: <span th:text="${visits}"></span>)
  </div>
</body>
</html>

model.addAttribute("visits", visitCount); 이 부분의
➡️ "visits"
(방문자 수: <span th:text="${visits}"></span>) 이 부분의
➡️ ${visits} 가 매핑된다




🔹 쿠키-세션 인증 방식 vs JWT 기반 인증


  • 쿠키-세션 인증 방식
  1. 사용자가 로그인 요청을 보낸다
  2. 서버는 DB의 유저 테이블을 뒤져서 아이디 비밀번호를 대조해본다
  3. 실제 유저테이블의 정보와 일치한다면 인증을 통과한 것으로 보고 “세션 저장소”에 해당 유저가 로그인 되었다는 정보를 넣는다
  4. 세션 저장소에서는 유저의 정보와는 관련 없는 난수인 session-id를 발급한다
  5. 서버는 로그인 요청의 응답으로 session-id를 내어준다
  6. 클라이언트는 그 session-id를 쿠키라는 저장소에 보관하고 앞으로의 요청마다 세션아이디를 같이 보낸다 (주로 HTTP header에 담아서 보냄)
  7. 클라이언트의 요청에서 쿠키를 발견했다면 서버는 세션 저장소에서 쿠키를 검증한다
  8. 만약 유저정보를 받아왔다면 이 사용자는 로그인이 되어있는 사용자일 것
  9. 이후에는 로그인 된 유저에 따른 응답을 내어준다


  • JWT 기반 인증
  1. 사용자가 로그인 요청을 보낸다
  2. 서버는 DB의 유저 테이블을 뒤져서 아이디 비밀번호를 대조해본다
  3. 실제 유저테이블의 정보와 일치한다면 인증을 통과한 것으로 보고 유저의 정보를 JWT로 암호화 해서 내보낸다
  4. 서버는 로그인 요청의 응답으로 jwt 토큰을 내어준다
  5. 클라이언트는 그 토큰을 저장소에 보관하고 앞으로의 요청마다 토큰을 같이 보낸다
  6. 클라이언트의 요청에서 토큰을 발견했다면 서버는 토큰을 검증한다
  7. 이후에는 로그인 된 유저에 따른 응답을 내어준다
profile
꾸준한 공부만이 답이다

0개의 댓글