[Spring || SpringBoot] Controller와 RestController 란?
·
Java/Spring || SpringBoot
서론Spring이나 Spring Boot를 사용해 웹 앱 혹은 API를 개발할 때 @Controller와 @RestController라는 두 가지 주요 어노테이션을 사용한다.하지만 이 둘은 용도가 다르고 동작 방식에도 차이가 있다. 해당 포스팅에서 두 가지의 차이점을 비교해 보자. @Controller란?기본 개념@Controller는 주로 HTML 페이지를 반환하는 용도로 사용한다.Spring MVC 패턴에서 View를 반환할 때 사용한다.메서드의 반환값은 ViewResolver에 의해 해석된다.MVC 패턴이 어떤 건지 정확히 모른다면 아래 MVC 패턴에 대해 정리한 포스팅을 보고 오자.2024.11.02 - [Backend/Spring || SpringBoot] - [Spring || SpringBo..
[Spring || SpringBoot] MVC 패턴이란? 스프링 MVC와 Counter 앱 예제
·
Java/Spring || SpringBoot
스프링 프레임워크를 경험하면 한 번씩은 들어본 MVC 패턴에 대해서 기록하려고 한다.MVC 패턴은 애플리케이션의 유지보수성과 확장성을 높이기 위해 UI와 비즈니스 로직을 분리하는 아키텍처 패턴이다.Counter 앱을 예제로 어떻게 구현이 되는지 작성하려고 한다. 서론MVC 패턴이란?MVC (Model-View-Controller) 패턴은 애플리케이션을 Model, View, Controller 세 가지 구성 요소로 나누어 각 컴포넌트가 독립적으로 동작하도록 구조화한 아키텍처 패턴이다.Model: 데이터와 비즈니스 로직을 관리하는 부분View: 사용자에게 보여지는 UIController: Model과 View를 중개하며, 사용자의 요청을 처리하고 응답을 생성스프링 MVC 패턴을 사용하면 비즈니스 로직과 U..
[Spring || SpringBoot] Thymeleaf Layout - 타임리프 레이아웃 적용 하기
·
Java/Spring || SpringBoot
화면 단에서 사용하는 헤더 혹은 푸터와 같은 화면에서 공통적으로 사용하는 부분을 모든 HTML이나 JSP 화면에 적용하게 되면, 수정이 이뤄지면 매번 고쳐야 하는 문제가 있다. 즉 비효율적이다. 필자는 JSP에서는 Include와 같은 것을 사용해 공통. jsp를 만들고 해당 jsp 부분을 가져오는 방식으로 개발했었다.하지만 타임리프에서는 이런 번거로운 과정을 줄여주기 위해 레이아웃 기능을 제공해 준다. build.gradleimplementation 'org.springframework.boot:spring-boot-starter-thymeleaf'implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' 위 Dependencies를 build..
[Spring || SpringBoot] IPv4 설정
·
Java/Spring || SpringBoot
서버에서 유저 IP를 받기 위해서, IPv4로 설정이 필요하다. 이는 실행 파일 VM 설정을 해주면 된다.  위 사진은 IntelliJ의 Run Configuration  설정이다. Build and Run > Modify Options를 누르면 위와 같은 리스트가 나온다.사진 속 Add VM Options를 선택하면 사진과 같이 실행시 옵션을 설정할 수 있다.-Djava.net.preferIPv4Stack=true​ 위 VM Arguments를 입력해주면 IP를 받는 부분에서 IPv4 형식으로 출력할 수 있다.
[Spring || SpringBoot] Spring에서 @Value로 Properties 값 가져오기
·
Java/Spring || SpringBoot
Spring boot에서는 외부 설정 파일을 통해 Properties 설정 값을 관리할 수 있다. application.properties  또는 application.yml 파일에 저장된 값을 Java 코드에서 불러오는 방법 중 하나는 @Value 어노테이션을 사용하는 것이다. @Value 어노테이션 사용하기# application.propertiesapp.name=MySpringApplicationapp.version=1.0.0 위와 같이 설정 값을 저장한다고 가정한다. import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;@Componentpublic class A..
[Spring || SpringBoot] Rest API 공통 Response 포맷 구현
·
Java/Spring || SpringBoot
클라이언트 서버 ps) 필자는 현재 스프링부트와 리액트를 이용해 프로젝트를 진행 중이어서 위와 같이 리액트와 스프링부트 이미지를 사용했다. 클라이언트는 요청을 보내고, 서버는 응답 요청이 들어오면 요청한 데이터를 서버 단 로직을 통해 수행 후, 클라이언트에게 응답 값을 보낸다. 참고 2024.03.26 - [Backend/Web] - [Web] REST API란 무엇인가? ResponseEntity vs. ApiResponse Spring에서 API Response를 구현하는 데에는 ResponseEntity와 ApiResponse 두 가지 접근 방식이 있다. ResponseEntity Spring의 HTTP응답을 나타내는 클래스 HTTP 응답 코드, Header와 Body를 포함할 수 있다. HTTP ..