토큰은 일반적으로 쿠키, 세션스토리지, 로컬 스토리지, 로컬변수 등에 저장한다.사용자의 토큰을 탈취당하지 않게 하기 위해 어떤 방식을 사용할 지 선택해야한다. 1. 쿠키에 저장하는 경우특징브라우저에서 HTTP 요청 시 자동으로 서버로 전송됩니다.보안 옵션(HttpOnly, Secure, SameSite)을 통해 공격 방지 가능.장점자동 전송: 브라우저가 쿠키를 자동으로 서버로 전송하므로 추가 코드 없이 편리.HttpOnly 보호: JavaScript로 접근할 수 없어 XSS 공격에 강함.옵션 강화 가능: Secure와 SameSite로 보안을 강화할 수 있음.단점CSRF 취약: 기본적으로 CSRF에 취약하며 추가 보호 장치가 필요.쿠키 크기 제한: 브라우저 별로 쿠키 크기에 제한(보통 4KB)이 있음.설..
SpringBoot/개념정리
쿠키(Cookie)란?브라우저(크롬, 엣지)가 서버로부터 받은 데이터를 클라이언트(사용자)의 컴퓨터에 저장하는 작은 파일로주로 사용자 식별 정보나 설정 값을 저장한다. 특징 1. 브라우저는 서버에서 받은 쿠키를 저장해두었다가 동일한 서버로 요청할 때마다 쿠키를 함께 전송한다.2. 참고로 쿠키는 도메인에 따라 제한이 된다.예를 들면 유튜브가 준 쿠키는 유튜브에게만 전송된다. 3. 쿠키는 유효기간이 있다.서버가 정한 기간에 따라 유효하다.4. 쿠키는 인증뿐만 아니라 여러가지 정보를 저장할 수 있다.예를 들면 내가 유튜브에 들어가서 언어설정을 한국어로 바꾸면 서버는 내가 선택한 언어를 저장한 쿠키를 주고다음에 내가 유튜브에 들어갈 때 쿠키는 요청과 함께 서버로 보내지고 유튜브는 내가 설정한 언어로 이루어진 ..

MVC : 유지보수가 편해지는 코드 구성 방식 Model은 데이터와 관련된 일을 하는 곳 Controller는 Model 과 View의 중개자 역할을 하는 곳View는 사용자한테 보여지는 부분을 담당하는 곳▶MVC 를 지키면서 코딩하는 방법 1. Model은 Controller 와 View 에 의존하지 않아야 한다.(Model 내부에 Controller와 View에 관련된 코드가 있으면 안 된다.) Model은 데이터와 관련된 부분이다보니 언제든 깔끔하고 정제된 데이터를 꺼내 쓸 수 있게 View나 Controller에 코드를 섞어서 넣지 않고 데이터에 관련된 코드만 넣으려고 한다. 2. View는 Model에만 의존해야 하고 Controller에는 의존하면 안 된다.(View 내부에 Mod..

서버의 URL 을 요청할 때 도메인명 뒤에 아무런 주소도 덧붙이지 않는 URL 을 루트 URL 이라고 한다.루트 URL 을 요청했을 때 보여지는 페이지를 메인 페이지라고 한다. 즉 http://localhost:8080 을 입력했을 때 http://localhost:8080/question/list 로 이동해야한다. 그렇게 하기 위해서는 MainController.java 의 파일을 다음과 같이 수정해야한다. 다음 코드에서 redirect:/question/list 는 /question/list 로 페이지를 리다이렉트하라는 명령이다. 리다이렉트란 클라이언트가 요청하면 새로운 URL로 전송하는 것을 의미한다.

우선 h2 란주로 개발 환경에서 사용하는 자바 기반의 경량 DBMS 개발 시에는 h2 데베를 사용하여 빠르게 개발하고 실제 운영 시스템에는 좀 더 규모 있는 DBMS( MySQL, 오라클 DB, MS SQL 등) 을 사용하는 것이 일반적이라고 한다. 1. build.gradle 파일에 다음과 같이 입력한다. 2. src/main/resources 디렉터리의 application.properties 파일에 다음과 같이 설정을 추가한다. 3. spring.datasource.url 을 jdbc:h2:~/local 로 설정했으므로 사용자 홈 디렉터리 아래에 local.mv.db 라는 파일을 생성해야 한다.C:\Users\사용자명 경로에서 새로만들기 → 텍스트 문서 → 다른 이름으로 저장 파일 이름 : l..
● WAS(Web Application Service) : 사용자의 입력을 받아 서버에서 무언가를 처리하고 그 결과를 보여주는 동적인 데이터를 처리하는 웹서버(스프링 부트에는 톰캣 서버가 내장되어 있다.) ● IDE(Integrated Development Environment) : 통합 개발 환경(ex. 이클립스, 인텔리제이) ● ORM(Object Relational Mapping) : sql 을 사용하지 않고 자바 문법으로도 데이터베이스를 다룰 수 있도록 하는 도구 ● JPA(Java Persistence API) : 자바에서 ORM 을 사용하기 위한 인터페이스를 제공하는 API 이다. ● CRUD : Create, Read, Update, Delete 의 앞글자만 따 만든 단어로 데이터 ..