-
백엔드 데브코스 12기 41일차
오늘은 JWT(JSON Web Token)를 학습했다. 수업을 따라가면서 개념을 이해하는 데에는 크게 어렵지 않았지만, 직접 처음부터 구현한다고 생각하면 아직은 많이 헤맬 것 같았다. 특히 Access Token을 발급하고 검증하는 과정과 기존 API Key 인증 방식과의 차이를 이해하는 데 집중했다. 오후에는 2차 프로젝트에서 구현할 기능을 정리했다. 기능만 정리했는데도 약 3시간이 지나갔고, 이후 ERD를 만들고 팀원들과 확인하는 데 또 1시간 정도가 걸렸다. 생각보다 별로 한 게 없는 것 같은데 시간이 빠르게 지나가서 당황스러웠다.이번에 프로젝트 기획을 직접 해보면서 기획 단계가 생각보다 많은 시간과 고민이 필요한 작업이라는 것을 느꼈다. 단순히 기능을 나열하는 것뿐만 아니라, 실제로 필요한 기능인..
2026.09.08
-
[Spring] JWT 구현하기 | Access Token 발급부터 인증 처리까지
앞에서 JWT의 개념과 Access Token, Refresh Token의 차이를 알아봤다.이번에는 Spring에서 JWT를 이용해 실제 인증을 구현하는 과정을 정리했다.전체적인 흐름은 다음과 같다.로그인 ↓아이디·비밀번호 확인 ↓Access Token 생성 ↓Cookie에 Access Token 저장 ↓인증이 필요한 API 요청 ↓Cookie에서 Access Token 확인 ↓JWT 검증 ↓Payload에서 회원 정보 확인 ↓인증 완료1. JWT 라이브러리 사용하기JWT를 생성하고 검증하기 위해 jjwt 라이브러리를 사용할 수 있다.implementation("io.jsonwebtoken:jjwt-api:...")implementation("io.jsonwebtoken:jjwt-impl:...")imp..
2026.09.08
-
[Spring] JWT란? Access Token과 Refresh Token 이해하기
1. JWT란?JWT(JSON Web Token)는 JSON 형태의 정보를 안전하게 전달하기 위한 토큰 형식이다.기존에 사용했던 API Key는 단순히 무작위 값을 이용해 사용자를 식별했다.반면 JWT는 토큰 내부에 필요한 정보를 담을 수 있고, 서명(Signature)을 이용해 토큰의 위변조 여부를 확인할 수 있다.예를 들어 다음과 같은 정보를 JWT에 담을 수 있다.{ "id": 1, "username": "user2"}이러한 정보를 Claims 또는 Payload라고 한다.JWT는 대략 다음과 같은 구조로 구성된다.Header.Payload.SignatureSignature는 토큰의 내용과 서버가 가진 Secret Key를 이용해 만들어진다.따라서 서버는 Secret Key를 이용해 해당..
2026.09.08
-
백엔드 데브코스 12기 40일차
오늘은 개인 사정으로 오전 수업에는 참여하지 않고 오후부터 팀원들과 2차 프로젝트 아이디어를 결정하고 기획서를 작성하는 시간을 가졌다.처음에는 팀원분이 제안해주신 아이디어와 비슷한 사이트가 거의 없는 줄 알았는데, 직접 찾아보니 생각보다 유사한 서비스가 많아서 조금 당황했다. 그래도 기존 서비스와 완전히 똑같이 만드는 것보다는 우리만의 기능을 추가해서 차별화된 서비스로 만들어보기로 했다. 처음에는 구현 자체는 크게 어렵지 않을 것이라고 생각했다. 하지만 막상 기획서를 작성해보니 어떤 기능을 실제로 구현할 것인지 명확하게 정해지지 않은 부분이 많았고, 기능을 구체화하지 않은 상태에서는 기획서를 계속 작성하기도 어려웠다. 이 상태로 기획서를 억지로 작성하는 것은 의미가 없다고 생각해서, 주말 동안 각자 담당..
2026.09.04
-
[React] localStorage로 브라우저에 데이터 저장하기
웹 애플리케이션에서는 브라우저에 데이터를 저장해야 하는 경우가 있다.이때 사용할 수 있는 방법 중 하나가 localStorage이다.localStorage는 브라우저에 데이터를 저장하는 Web Storage API로, 페이지를 새로고침하거나 브라우저를 종료해도 저장한 데이터가 유지되는 특징이 있다.1. localStorage에 데이터 저장하기localStorage.setItem()을 사용하면 데이터를 저장할 수 있다.localStorage.setItem("name", "홍길동");첫 번째 인자는 저장할 데이터의 이름이고, 두 번째 인자는 저장할 값이다.저장된 데이터는 브라우저의 개발자 도구에서 확인할 수 있다.개발자 도구→ Application→ Local Storage2. 저장된 데이터 가져오기loca..
2026.09.04
-
[Spring] Cookie를 이용한 인증 처리
Cookie를 이용해 인증 정보를 관리할 때 Spring에서는 HttpServletRequest와 HttpServletResponse를 사용할 수 있다.HttpServletRequest를 이용하면 클라이언트가 보낸 Header와 Cookie를 확인할 수 있고, HttpServletResponse를 이용하면 서버의 응답에 Cookie를 추가할 수 있다.1. HttpServletRequest와 HttpServletResponseController에서 두 객체를 주입받아 사용할 수 있다.private final HttpServletRequest request;private final HttpServletResponse response;객체역할HttpServletRequest클라이언트의 요청 정보 확인HttpS..
2026.09.04
-
백엔드 데브코스 12기 39일차
오전에는 localStorage와 Cookie를 이용해 브라우저에서 데이터를 저장하고 인증 정보를 관리하는 방법을 공부했다. 두 방식의 특징과 차이점을 비교하면서 상황에 따라 어떤 저장 방식을 사용하는 것이 적절한지 알게 되었다. 오후에는 2차 프로젝트를 위해 각자 생각해온 아이디어를 공유하고 서로 피드백하는 시간을 가졌다. 팀원들 덕분에 내가 생각하지 못했던 문제점이나 부족한 부분을 질문을 통해 발견할 수 있었다. 피드백을 통해 부족한 부분을 보완할 필요성을 느꼈고, 다음날까지 각자의 아이디어를 조금 더 구체적으로 다듬어 오기로 했다. 프로젝트를 직접 기획하는 과정이 생각보다 쉽지 않지만, 다양한 의견을 들으면서 아이디어를 발전시킬 수 있다는 점에서 의미 있는 시간이었다.2026.09.04 - [분류 ..
2026.09.04
-
백엔드 데브코스 12기 38일차
이 날은 로그인 기능과 API Key를 이용한 인증 방식을 공부했다. 로그인 기능을 직접 구현하는 흐름을 따라가면서 회원 조회부터 비밀번호 확인, 로그인 성공 후 API Key를 반환하는 과정까지 정리할 수 있었다.특히 로그인에 성공했을 때 비밀번호를 다시 사용하는 것이 아니라, 회원에게 발급된 API Key를 이용해 이후 API 요청을 인증한다는 점을 배울 수 있었다.API Key와 Postman 활용API Key를 실제 API 요청에서 어떻게 관리하고 사용할 수 있는지도 함께 공부했다.Postman에서는 Collection Variables를 이용해 baseURL이나 apiKey처럼 여러 요청에서 반복적으로 사용하는 값을 변수로 관리할 수 있었다. 특히 로그인 요청이 성공하면 After Respons..
2026.09.03
-
[Postman] API Key 변수 관리와 Authorization Header 활용하기
API를 테스트하면서 매번 baseURL이나 apiKey를 직접 입력하는 것은 번거로운 작업이다.Postman의 Collection Variables와 Authorization을 활용하면 이러한 값을 변수로 관리하고, 여러 요청에서 재사용할 수 있다.1. Collection VariablesPostman에서는 Collection의 Variables에 자주 사용하는 값을 변수로 등록할 수 있다.예를 들어 서버 주소를 baseURL이라는 변수로 저장하면 다음과 같이 요청 URL에서 사용할 수 있다.{{baseURL}}/api/v1/postsapiKey도 변수로 등록하여 여러 요청에서 사용할 수 있다.{{apiKey}}{{변수명}} 형식으로 작성하면 Postman에서 해당 변수에 저장된 값으로 자동으로 치환한..
2026.09.02