[Spring Boot] Lombok 어노테이션 정리
·
Spring/Spring Boot
안녕하세요! Spring Boot와 Lombok을 함께 사용할 때 유용한 Lombok 어노테이션들에 대해 알아보겠습니다.Lombok은 코드의 반복을 줄여주고, 생산성을 높여주는 라이브러리로, Spring Boot와 함께 사용하면 매우 편리합니다.1. @Getter와 @Setter가장 많이 사용되는 어노테이션입니다. 필드에 대한 getter와 setter 메서드를 자동으로 생성해줍니다.사용한 경우import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class User { private String name; private int age;}사용하지 않은 경우public class User { private String name; ..
[Spring] Path Variable vs Query Parameter
·
Spring/Spring Boot
1. 들어가며 API를 설계하는 과정에서 URL의 구성 방식은 사용자와의 인터랙션을 결정짓는 중요한 요소입니다. 특히, RESTful API를 설계할 때, 리소스의 식별과 검색 조건 등을 URL에 어떻게 표현할지는 매우 중요한 설계 결정 중 하나입니다. API 명세서를 작성하던중 Path Variable과 Query Parameter의 정확한 차이점에 대하여 알고자 이 글을 작성합니다.. Path Variable과 Query Parameter의 공통점은 유동적인 값을 전달하기 위하여 URL로 넘겨진다는 것입니다. Path Variable 또는 path variable path parameter paramter URL parameter Query Parameter 또는 query string query p..
[Spring] Bean이란?
·
Spring/Spring
1. Spring Bean 이전의 기술: EJB 2000년대 초반 Java 개발에서 주로 사용되었던 기술은 EJB(Enterprise JavaBeans)였습니다. EJB는 엔터프라이즈 애플리케이션 개발을 위한 표준 기술로서, 트랜잭션 관리, 보안, 객체 풀링 등 다양한 기능을 제공했습니다. 하지만 EJB는 다음과 같은 문제점을 가지고 있었습니다. 복잡성: EJB는 매우 복잡한 기술이었기 때문에 배우고 사용하기 어려웠습니다. 무거운 성격: EJB는 자체적으로 많은 기능을 제공했기 때문에 애플리케이션을 무겁게 만들었습니다. 비용: EJB를 사용하려면 서버에 EJB 컨테이너를 설치해야 했기 때문에 비용이 많이 들었습니다. 2. Spring Bean의 탄생 EJB의 문제점을 해결하기 위해 등장한 것이 바로 Sp..
[Spring] IoC, DIP, DI란?
·
Spring/Spring
1. 의존성(Dependency)이란? 의존성(dependency)이란 한 객체, 함수, 모듈 또는 시스템이 다른 것 없이는 제대로 작동할 수 없는 상황을 의미합니다. 예를 들어, Store 클래스가 Pencil 클래스의 메서드를 사용하고 있다면, Store 클래스는 Pencil 클래스에 의존하고 있습니다. 즉, Pencil 클래스 의 변경이 Store 클래스에 영향을 미치게 됩니다. IOC, DIP, DI는 모두 객체 간 의존성을 관리하는 데 사용되는 개념이지만, 서로 다른 역할과 특징을 가지고 있습니다. 2. IoC (Inversion of Control) : 제어의 역전 제어의 역전은 객체 생성 및 의존성 주입을 객체 자체가 아닌 외부에서 수행하는 방식입니다. 프로그램의 흐름을 개발자가 아닌 프레임..
[Spring Boot] Access Token & Refresh Token
·
Spring/Spring Boot
1. JWT 비밀키 탈취 JWT 토큰은 우리가 서버와 클라이언트 간에 안전하게 정보를 주고받을 수 있게 해주는 열쇠와 같습니다. 이 열쇠는 사용자의 신원이나 권한 같은 중요한 정보를 담고 있습니다. 그래서 이 열쇠를 사용하면, 클라이언트와 서버는 서로를 신뢰하고 통신할 수 있습니다. JWT 토큰 인증방식은 비밀키(개인키 or 대칭키)를 사용하여 암호화합니다. 누군가 이 비밀키를 가지고 있다면 그 사람은 신뢰할 수 있는 사람으로 인정받습니다. 비밀키를 탈취당하게 된다면 문제가 발생하기 때문에 비밀키에 유효 기간을 두어야합니다 그런데 유효기간을 짧게 두면 사용자가 로그인을 자주 해야하므로 사용자 경험적으로 좋지 않고, 유효기간을 길게 두면 보안상 탈취 위험에서 벗어날 수 없습니다. 이런 문제를 해결하기 위해..
[Spring Boot] JWT(Json Web Token) - 웹의 안전한 인증 방식
·
Spring/Spring Boot
JWT에 대하여 설명하기 이전에 Session / Cookie 방식과 Token 방식에 대하여 먼저 설명하겠습니다. 1. Session / Cookie 방식 vs Token 방식 사용자 인증 방식에는 크게 Session / Cookie 방식과 Token 방식이 있습니다. 1-1) Session / Cokie 방식 쿠키-세션 방식은 클라이언트와 서버 간에 세션 ID를 주고받으며 사용자 인증을 처리합니다. 로그인이 성공하면, 서버는 세션 ID를 생성하고 이를 클라이언트에게 전송합니다. 클라이언트는 이 세션 ID를 쿠키에 저장하고, 이후 요청마다 쿠키에 저장된 세션 ID를 함께 보내어 사용자 인증을 수행합니다. 이 방식의 장점은 상태를 유지하면서 사용자 인증을 처리할 수 있다는 것입니다. 하지만 서버 측에서 ..
[Spring Boot] Lombok 사용법
·
Spring/Spring Boot
안녕하세요, 오늘은 스프링 부트에서 롬복을 사용하는 방법에 대해 알아보겠습니다. 롬복은 자바 개발에서 반복적으로 작성해야 하는 코드를 줄여주는 다이어트 라이브러리입니다. Lombok 라이브러리 추가 먼저, 롬복을 사용하기 위해선 우리의 프로젝트에 롬복 라이브러리를 추가해야 합니다. build.gradle 파일에 다음과 같이 롬복 의존성을 추가해줍니다. dependencies { // 롬복 추가 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' } Lombok 플러그인 추가 다음으로 플러그인을 설치해야합니다. 인텔리제이 환경이라면 ctrl + shift + A 단축키를 사용하여 액션찾기로 플러그인에서 L..
[Spring Boot] DTO를 DB에 저장
·
Spring/Spring Boot
https://achieve-dev.tistory.com/41 [Spring boot] 폼데이터를 DTO로 받기 오늘은 스프링 부트에서 웹 폼(form) 데이터를 DTO(Data Transfer Object)로 받는 방법에 대해 알아보겠습니다. ● 폼 데이터(Form Data): 웹 페이지에서 사용자가 입력한 데이터를 서버로 전송하기 위한 형 achieve-dev.tistory.com 이전 시간에 웹 브라우저에서 전송한 폼 데이터를 DTO에 담아 컨트롤러로 받아왔었습니다. 이번에는 DTO를 데이터베이스에 저장하는 방법을 작성하겠습니다. ● JPA 스프링 부트는 자바언어를 사용합니다. 하지만 DB는 SQL이라는 언어를 사용하기 때문에 JPA(Java Persistence API)란 언어를 사용하여 자바 언..
[Spring boot] 폼데이터를 DTO로 받기
·
Spring/Spring Boot
오늘은 스프링 부트에서 웹 폼(form) 데이터를 DTO(Data Transfer Object)로 받는 방법에 대해 알아보겠습니다. ● 폼 데이터(Form Data): 웹 페이지에서 사용자가 입력한 데이터를 서버로 전송하기 위한 형식을 의미합니다. ● DTO(Data Transfer Object)는 서버와 클라이언트 간에 데이터를 효율적으로 전송하기 위해 사용하는 객체를 말합니다. 1. 뷰페이지 생성 {{>layouts/header}} 제목 내용 제출 Back {{>layouts/footer}} 뷰페이지를 생성하고 태그의 action 속성으로 데이터를 어디에 보낼지 정의하고 method 속성으로 데이터를 어떻게 보낼지 정의합니다. 2. 컨트롤러 생성 @Controller public class Artic..
[Spring Boot] 스프링 부트 폴더 구조 이해하기
·
Spring/Spring Boot
스프링 부트 프로젝트를 처음 생성하면, 주로 다음과 같은 폴더 구조를 가지게 됩니다. 1. java 폴더 /src/main/java 폴더는 애플리케이션의 주요 소스 코드가 위치하는 곳입니다. 이곳에는 컨트롤러, 서비스, 리포지토리, 도메인 모델 등의 자바 클래스 파일들이 저장됩니다. 2. resources 폴더 /src/main/resources 폴더는 애플리케이션에서 사용하는 각종 리소스 파일들이 위치하는 곳입니다. 이곳에는 정적 리소스, 뷰 템플릿, 설정 파일 등이 저장됩니다. 2.1. static 폴더 /src/main/resources/static 폴더는 웹 애플리케이션의 정적 리소스를 담기 위한 폴더입니다. 정적 리소스란, 웹 페이지에서 사용되는 CSS, JavaScript, 이미지 파일 등을 ..
JoonYong
'Spring' 카테고리의 글 목록 (2 Page)