Spring (11) 썸네일형 리스트형 POSTMAN 테스트의 한계, SPRING TEST 도입(단위 테스트) 기존에는 Postman을 사용해 API 테스트를 진행했지만, 단순한 요청 및 응답 검증만 가능해 내부 비즈니스 로직을 철저히 검증하기 어려웠다.Postman을 이용한 기존 테스트 방식애플리케이션 실행Postman을 이용해 API 요청 후 응답 확인콘솔에 출력된 로그를 직접 확인예상 결과와 다르면 코드 수정 후 다시 실행이 과정을 정상적인 결과가 나올 때까지 반복해야 했고, 테스트에 많은 시간을 소모하게 되었다.이러한 비효율적인 방식에서 벗어나기 위해, Spring Boot 테스트 프레임워크를 활용한 단위 테스트와 통합 테스트를 도입하기로 결정했다. 테스트를 위한 어노테이션기본 테스트 어노테이션@TestJUnit에서 제공하는 기본 테스트 메서드 어노테이션@DisplayName("테스트 설명")테스트의 가독.. Spring Boot - Querydsl 1. Querydsl이란?Querydsl은 Java 애플리케이션에서 타입 안전한 쿼리를 작성할 수 있도록 도와주는 라이브러리로, 기본적으로 Q 클래스를 통해 엔티티 클래스의 속성에 접근하여 동적 쿼리를 생성한다. Q 클래스는 컴파일 타임에 타입 안전성을 제공하며, 이를 통해 쿼리 빌더(JPAQuery, SQLQuery 등)를 사용해 조건에 맞는 쿼리를 동적으로 구성할 수 있다. 쿼리 실행 시, 데이터베이스에 맞게 변환된 쿼리가 실행되며, 결과는 fetch(), fetchOne(), fetchCount() 등의 메서드를 통해 반환된다. 이 방식은 SQL 문자열을 직접 작성하는 대신 Java 코드로 쿼리를 작성함으로써 가독성을 높이고 오류를 줄이며, 동적 쿼리 생성을 통해 복잡한 조건을 효율적으로 처리할 수.. Spring Boot - ResponseEntity 클래스 ResponseEntitySpring Framework에서 HTTP 응답을 제어할 수 있는 클래스이다. 주로 Web Apllication에서 RESTful API를 구현할 때 사용되며, 본문(body), 상태 코드(status code), 헤더(headers) 등을 설정하는데 사용한다. 주요 특징Body : 응답의 본문을 설정한다. JSON, 문자열, 객체 등을 반환할 수 있다.Status Code : HTTP 상태 코드를 설정할 수 있다. 200 OK, 404 Not found, 201 Created 등이 있다.Headers : HTTP 응답 헤더를 설정할 수 있다. Content-Type, Authroization 등의 헤더를 추가할 수 있다. 기본 사용법@GetMapping("/message")pu.. Spring Boot - Lombok LomBok은 반복적이고 지루한 코드를 줄이고 간결하고 가독성 코드를 작성할 수 있도록 도와주는 유용한 라이브러리 이다. 롬복은 어노테이션 기반으로 사용가능 하며 @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor, @ToString 등과 같은 어노테이션을 제공하여, 접근자 및 설정자, 생성자등의 메서드를 자동으로 생성한다. @Getter, @Setterimport lombok.*; @Getter @Setter public class Person { private String name; private int age; /* Getter와 Setter 메서드를 @Getter, @Setter 어노테이션으로 대체한다. public String getName().. Spirng Boot - REST API로 CRUD 만들기 Spring Boot REST API를 통한 CRUD를 만들고자 한다. 스프링 개발자라면 필수로 익숙해야 할 것이다. 이번의 CRUD는 Jpa와 mysql를 이용하여 실제 데이터베이스에 적용할 것이다. 먼저 필요한 의존성을 추가해보자. 의존성 추가, application.properties 설정 bulid.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'mysql:mysql-connector-java' runtimeOnly("com.mysql:.. Spring Security 살펴보기 Spring Security란? Spring Security는 Java 기반의 웹 응용 프로그램 및 서비스에서 보안을 제공하는 프레임워크이다. 주로 Spring 프레임워크 기반의 애플리케이션에서 사용되며, 주로 웹 사이트의 회원을 관리할 때, 인증(Authentication)과 권한 부여(Authorization)를 처리하는 데 사용된다. Spring Security는 다양한 보안 기능을 제공하여 웹 애플리케이션을 안전하게 개발하고 운영할 수 있도록 도와준다. 인증 인증은 사용자가 자신을 식별하고, 그사용자가 주장하는 주체가 맞는지 확인하는 프로세스이다. 인증은 주로 사용자의 신원을 확인하고 검증하기 위해 사용된다. 주로 아이디와 비밀번호, 토큰 등을 제공하여 자신을 인증하며 신원을 확인하고 성공적인 인.. 스프링 핵심 원리 - 스프링 컨테이너 생성, 빈 조회 스프링 컨테이너 생성 // 컨테이너 사용 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApllicationContext를 스프링 컨테이너라 하며, 인터페이스이다. XML을 기반으로 만들 수 있고, 어노테이션 기반의 자바 설정 클래스로 만들 수 있다. AppConfig를 사용했던 방식이 어노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. new AnnotationConfigApllicationContext(AppConfig.class) 스프링 컨테이너를 생성할 때는 구성 정보를 지정 해주어야 한다. 여기서는 AppConfig.class를 구성정보로 지정했다. 스.. 스프링 핵심 원리 - 예제 만들기 비즈니스 요구사항과 설계 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) 회원 도메인 설계 회원 도메인 요구사항 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 요구사항을 보면 회원 데이터, 할인 정책 같은 부분은 지금 결정하기 어려운 부분이다. 그렇다고 이.. 이전 1 2 다음