목록Framework (6)
나의 길

DTO(Data Transfer Object)란?계층 간에 데이터 교환을 위해 사용하는 객체public class User { private Long id; private String name; private String email; private String password;} 위의 User 클래스를 바로 응답으로 넘겨주면 몇 개의 문제점이 있습니다. 1. 해당 클래스의 모든 정보가 보이며 이로 인해 민감한 정보가 노출되어 보안 문제가 발생할 수 있습니다.2. User 클래스가 변경될 경우 View가 View가 변경될 경우 User 클래스가 변경되는 강한 결합을 가지게 됩니다.3. JPA 사용시 직렬화 문제가 발생할 수 있습니다. Lazy 로딩 필드가 직렬화되지 않거나 예외 발생 ..

JWT(JSON Web Token)! JWT가 사용되는 경우는 권한 부여와 정보 교환을 할 때입니다. 가장 일반적으로는 권한 부여. 권한 부여는 사용자가 로그인을 하면 그 이후의 각 요청에 JWT가 포함되어 사용자가 해당 토큰으로 허용된 경로, 서비스 및 리소스에 액세스 할 수 있습니다. JWT는 Header, Payload, signature로 구성됩니다. 그리고 각 부분은 .(점)으로 구분됩니다. Header Header는 아래와 같이 구성됩니다. 토큰의 유형(typ), 서명 알고리즘(alg)입니다. 서명 알고리즘은 보통 (HMAC SHA256 또는 RSA 등) 입니다. 위의 JSON은 Base64Url로 인코딩 되어 JWT의 Header를 구성합니다. Payload Payload는 C..

이번 글은 제가 spring initializr로 당연하게 생성하던 프로젝트 구조를 살펴보겠습니다. 프로젝트 구조 해당 이미지는 spring initializr에서 기본적인 Dependencies만 추가하여 생성한 기본 프로젝트입니다. 맨 상위의 demo는 프로젝트 이름입니다.아래에 src/main/java 디렉토리부터 살펴보겠습니다!해당 디렉토리의 com/example/demo 패키지 안에는 .java 파일을 작성하고 우리가 개발을 할 때는 계층형 구조 - controller - member - order- dto - member - order- entity - member - order- service - member - order- repository..

사이드 프로젝트 진행 중 로그인 구현을 위해 공부한 쿠키 및 세션, 로그인 과정에 대한 정리입니다! ✅ 쿠키, 세션을 알아보는 이유 👀 HTTP(이전 게시물을 보고 오시면 이해가 조금 편할 것 같습니다!)를 통해 통신할 때 특징 중 무상태(stateless)와 비연결성(connectionless)을 생각해 보면 클라이언트가 서버에 요청을 보내고 이후 연결을 끊고, 이전 상태를 기억하지 못합니다. 하지만 서비스를 운영하면서 클라이언트의 상태 정보를 기억하고, 연결을 유지해야 될 필요가 있습니다. 예를 들면 로그인 검증을 페이지 이동을 할 때마다 실행한다거나, 일주일 간 이 창을 보지 않기 기능입니다. (로그인 검증을 계속하게 되면 서비스 속도에 영향을 줍니다!) 이런 필요성 때문에 쿠키와 세션을 사용합니다..

이번에 작성하는 글의 주제는 Spring Boot 강의(https://www.udemy.com/course/spring-boot-kimsonga/) 수강 후기입니다! 이 강의를 선택하시기 전 알아두시면 좋은 점과 이 강의를 완강! 한 입장에서 공부한 것들을 말씀드리겠습니다! 강의 선택 이유 Spring Boot를 사용해 본 지 얼마 되지 않아 입문자 수준의 강의를 원해서 미리 목표?로 작성해 주신 부분에 완강 후에도 혼자 공부할 수 있는 방법을 가져갈 수 있다고 해주셔서 마지막으로 강사님의 자기소개를 보고 이런 사소한 부분도 쉽게 만든다면 강의를 내가 원하는 수준으로 해주실 것 같아서 강의 내용 및 배운 점! 먼저 처음 강의부터 마지막까지 막 자바를 배우고 온 상황이라고 가정하고 강사님이 강의를 해주십니..
H2 DB란? 자바로 작성된 관계형 데이터베이스 관리 시스템이다. 특징은 작은 설치 공간(2.5MB)을 차지하고, 서버 모드, 임베디드 모드, 혼합모드를 지원한다. 실행 모드? 서버 모드 : 직접 서버를 설치하여(H2 다운로드) 애플리케이션이 JDBC 또는 ODBC를 사용하여 연결. TCP/IP를 통해 전송된다. 임베디드보다 속도가 느림. 임베디드 모드 : 애플리케이션이 JDBC를 사용하여 동일한 JVM 내에서 데이터베이스를 실행. 가장 빠르고 쉬운 모드. 혼합 모드 : 서버 모드와 임베디드 모드를 결합한 것. 자세한 설명은 공식문서를 읽어보시면 좋을 것 같습니다! 사용법 1. Gradle 의존성 라이브러리 추가 dependencies { runtimeOnly 'com.h2database:h2:' } 2..