오늘의 잔디
오늘은 Spring Boot 기반 백엔드 프로젝트에 JWT(Json Web Token)를 이용한 사용자 인증 기능을 구현했습니다. 실제 실무에서도 많이 쓰이는 구조라 백엔드 포트폴리오에 아주 잘 어울리는 기능입니다.
1. 회원가입 API (POST /api/auth/signup)

api/auth/signup으로 회원가입
비밀번호는 BCryptPasswordEncoder로 암호화 후 저장

// 예시 요청
{
"username": "testuser",
"password": "1234"
}
2. 로그인 API (POST /api/auth/login)

로그인 성공 시 HTTP 200 응답 + JWT 문자열 - 반환
// 응답 (JWT 토큰)
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0dXNlciIsImV4cCI6MTY5NDk0NDgwMH0...
3. JWT 유틸리티 (JwtUtil)
토큰 생성: createToken(username)
토큰 검증: validateToken(token)
사용자명 추출: getUsernameFromToken(token)
⚠️ 오류 해결 Tip
WeakKeyException발생 시에는 HS256 알고리즘에 적합한 보안 키로 변경해야 합니다.
io.jsonwebtoken.security.Keys.secretKeyFor(SignatureAlgorithm.HS256)메서드를 활용해 키를 생성해 해결했습니다.
Spring Boot 3.4.5
Spring Security
JPA + MySQL
jjwt (0.11.5)
JWT 토큰 발급 구조를 처음부터 직접 구성해보면서 Spring Security 동작 흐름을 이해할 수 있었다.
클라이언트(Postman)에서 직접 토큰을 발급받고 응답을 확인해보는 과정이 흥미로웠다.
이후에는 발급된 토큰을 통해 인증이 필요한 API를 호출하고 사용자 정보를 식별하는 기능을 개발할 계획이다.






