(Spring) Controller & RestController란 무엇인가
·
Spring
1. Controller 기본 개념Spring Framework에서 @Controller와 @RestController는 클라이언트 요청을 처리하기 위한 두 가지 방식입니다.@Controller주로 뷰 템플릿(HTML 등)을 반환하는 데 사용됩니다.Thymeleaf와 같은 템플릿 엔진과 결합해 동적인 HTML 페이지를 생성할 수 있습니다.@RequestMapping이나 @GetMapping, @PostMapping 등의 어노테이션을 사용하여 경로를 정의합니다.@RestControllerRESTful API를 위한 컨트롤러입니다. @Controller와 달리 JSON, XML 등의 데이터 형식을 반환합니다.내부적으로 @ResponseBody를 포함하고 있어 별도로 지정할 필요가 없습니다. 이는 HTTP 요..
(Spring) DI와 IOC 이해하기
·
Spring
1. Spring의 DI와 IOC 이해하기2. 내용IOC (Inversion of Control)객체 생성 및 의존성 관리의 제어 흐름이 외부로 전환되는 원칙.전통적인 프로그래밍에서는 객체가 직접 의존성을 관리하지만, IOC에서는 객체가 필요로 하는 의존성을 외부에서 주입받는다.DI (Dependency Injection)IOC의 구체적인 구현 방식 중 하나로, 객체가 의존하는 다른 객체를 외부에서 주입받는 방법.주입 방식생성자 주입 : 생성자를 통해 의존성을 주입.세터 주입 : 세터 메서드를 통해 의존성을 주입.인터페이스 주입 : 특정 인터페이스를 통해 의존성을 주입.3. 코드 예제// 인터페이스public interface MessageService { void sendMessage(String..
(Spring) Servlet & DispatcherServlet 개념
·
Spring
1. Servlet1.1 정의Servlet은 자바를 사용하여 동적으로 웹 페이지를 생성하는 서버 측 프로그램입니다. 웹 애플리케이션의 핵심 구성 요소로, 클라이언트의 요청에 따라 동적으로 HTML이나 XML을 생성하고 이를 응답으로 반환합니다.1.2 동작 원리Servlet의 동작 과정클라이언트 요청 : 사용자가 웹 브라우저를 통해 HTTP 요청을 보냄Servlet 컨테이너 : 요청을 받은 Servlet 컨테이너(예: Tomcat)는 HttpServletRequest와 HttpServletResponse 객체를 생성HttpServletRequest : 클라이언트의 요청 정보를 담고 있는 객체HttpServletResponse : 서버의 응답 정보를 담고 있는 객체Servlet 찾기 : 요청된 URL에 따라..
(Spring) MVC와 Spring MVC
·
Spring
1. MVC(Model-View-Controller) 패턴MVC 패턴은 소프트웨어 디자인 패턴 중 하나로, 사용자 인터페이스와 비즈니스 로직을 분리하여 개발을 용이하게 만드는 구조입니다.→ 구성 요소Model : 애플리케이션의 데이터와 그 데이터를 처리하는 비즈니스 로직을 담당합니다.View : 사용자에게 데이터를 표시하는 부분으로, UI 요소를 담당합니다.Controller : 사용자의 입력을 받아 Model과 View를 연결해주는 중간 역할을 합니다.→ MVC의 흐름사용자의 요청이 Controller로 전달됩니다.Controller는 적절한 Model을 호출하여 데이터를 처리합니다.Model의 데이터를 View에 전달하여 사용자에게 결과를 보여줍니다. 2. Spring MVCSpring MVC는 Sp..
(Spring) Lombok & Application Properties
·
Spring
1. LombokLombok은 자바 프로젝트에서 반복적인 코드 작성을 줄이기 위해 사용되는 라이브러리입니다. 예를 들어, getter/setter, 생성자, 그리고 equals/hashCode 같은 메서드를 자동으로 생성해주는 어노테이션을 제공합니다.주요 어노테이션@Getter / @Setter : 필드에 대한 getter와 setter 메서드를 자동 생성.@NoArgsConstructor / @AllArgsConstructor : 기본 생성자와 모든 필드를 인자로 받는 생성자 자동 생성.@ToString : toString() 메서드를 자동 생성.@EqualsAndHashCode : equals()와 hashCode() 메서드 자동 생성.@Data : @Getter, @Setter, @ToString,..
(Spring) 테스트 코드 작성
·
Spring
1. 테스트 코드란?테스트 코드는 애플리케이션의 특정 기능이 의도한 대로 동작하는지 확인하기 위한 코드입니다. Spring에서는 다양한 테스트 도구를 제공하며, 대표적으로 JUnit과 Spring Test가 있습니다.2. Spring에서의 테스트 코드 구성 요소JUnit : 자바 기반의 단위 테스트를 지원하는 프레임워크.Mockito : 객체 지향 프로그래밍에서 모의 객체(Mock)를 활용한 테스트 지원 라이브러리.Spring Test : Spring 컨텍스트에서의 테스트를 지원하는 도구.@SpringBootTest : 스프링 애플리케이션 전체를 테스트하는 데 사용됩니다. 주로 통합 테스트 시 사용됩니다.3. JUnit의 주요 어노테이션@Test : 테스트 메서드를 나타냅니다.@BeforeEach : 각..
(Spring) 서버 관련 개념 정리
·
Spring
1. Spring 서버 개념 소개Spring 프레임워크는 자바 기반의 서버 애플리케이션을 쉽게 개발할 수 있도록 다양한 기능을 제공하는 프레임워크입니다. 이 글에서는 Spring 서버의 핵심 개념과 함께, 서버 구성 시 유의해야 할 점들을 간단히 정리합니다.1-1. Spring 서버란?Spring 서버는 Spring 프레임워크를 사용하여 구성된 서버로, 주로 웹 애플리케이션 개발에 사용됩니다. Spring은 DI(Dependency Injection)와 IoC(Inversion of Control) 같은 개념을 기반으로 하여, 애플리케이션의 복잡도를 줄이고 테스트 용이성을 높입니다.1-2. Spring Boot와 Spring MVCSpring Boot : 간단한 설정으로 빠르게 서버를 구성할 수 있게 해..
(Spring) Gradle
·
Spring
개요Spring 프로젝트에서 Gradle을 사용하여 의존성 관리와 빌드를 자동화하는 방법에 대해 알아보겠습니다. Gradle은 빌드 자동화 도구로, 기존의 Maven보다 유연하고 빠른 성능을 제공합니다.1. Gradle의 장점빠른 빌드 속도 : Gradle은 병렬 빌드와 같은 성능 최적화 기능을 지원하여 빌드 속도가 매우 빠릅니다.유연한 설정 : Groovy 또는 Kotlin DSL로 빌드 스크립트를 작성할 수 있으며, 필요에 맞게 쉽게 확장 가능합니다.의존성 관리 : 빌드에서 필요한 라이브러리나 플러그인을 쉽게 추가하고 관리할 수 있습니다.2. Gradle 프로젝트 설정프로젝트 생성 : Spring Initializr(https://start.spring.io/에서 Gradle Project를 선택한 ..