반응형

Spring Boot 29

[Spring Boot] 정적 리소스 기본 설정 및 추가 설정 방법

정적 리소스란? 정적 리소스는 일반적으로 HTML, CSS, JavaScript, 이미지 파일, 동영상 파일 등과 같은 정적 콘텐츠를 말한다. 이러한 리소스는 클라이언트로부터의 요청이 발생하면 서버에서 추가적인 처리 없이 그대로 전달됩니다. 서버는 단순히 요청된 정적 파일을 찾고, 해당 파일을 클라이언트로 보내주는 역할을 수행한다. 1. 기본 리소스 위치 정적 리소스 맵핑 ( /** ) ex) /hello.html 요청 => /static/hello.html 파일이 있으면 해당 파일을 응답한다. 1. classpath:/static 2. classpath:/public 3. classpath:/resources/ 4. classpath:/META-INF/resources 기본 적으로 ROOT부터 맵핑이 ..

Java 2023.06.19

[Spring Boot/Spring MVC] HttpMessageConverters 인터페이스 개념 및 사용 방법

HttpMessageConverters이란? Spring MVC는 웹 애플리케이션에서 클라이언트로부터 오는 HTTP 요청을 처리하고, 해당 요청에 대한 응답을 생성하는 데 사용되는 웹 프레임워크로 HTTP 요청의 본문은 다양한 형식을 가질 수 있다. HttpMessageConverters는 이러한 본문을 객체로 변환하거나 객체를 본문으로 변환하는 역할을 담당한다. @RestController public class UserController { // 1) @RestController을 사용할 경우 @ResponseBody 생략가능 // ex) public @ResponseBody User create(){} => public User create(){} @PostMapping("/user") public..

Java 2023.06.17

[Spring Boot] 단위 테스트(JUnit) 사용 방법

단위 테스트란? 소프트웨어 개발에서 사용되는 테스트 방법 중 하나로 소프트웨어의 가장 작은 단위인 모듈, 함수, 클래스, 메서드 등의 개별적인 단위를 분리하여 테스트하는 것을 의미한다. * JUnit JUnit은 자바 프로그래밍 언어를 위한 단위 테스트 프레임워크로 Spring Boot로 프로젝트를 생성할 때 자동으로 의존성이 포함된다. * 전체 Git 소스 코드 https://github.com/kangilbin/Spring-Boot/tree/master/%EB%8B%A8%EC%9C%84%20%ED%85%8C%EC%8A%A4%ED%8A%B8/demo 1. 의존성 확인(pom.xml) org.springframework.boot spring-boot-starter-test test 2. 테스트 클래스 생..

Java 2023.06.16

[Spring Boot] 프로파일(Profile) 설정 방법

profile이란? Spring Boot에서 제공해 주는 기능으로 특정한 환경에서만 특정한 정보들을 제공할 때 사용한다. 1. 프로파일 propertes 파일 생성 * 이름 규칙 application-{profile}.properties Profile로 생성된 properties 파일이 기존에 있는 application.properties 보다 우선순위가 높다. 2. profile 적용 application.properties 파일에서 prod 프로파일을 적용하게 되므로 prod 프로퍼티 값들을 사용할 수 있다. * 프로퍼티 설정 방법(application.properties) 2023.06.14 - [Java] - [Spring Boot] 다양한 외부 설정(application.properties) 방..

Java 2023.06.15

[Spring Boot] 다양한 외부 설정(application.properties) 방법 및 활용

1. 프로퍼티 우선 순위 1. 유저 홈 디렉토리에 있는 spring-boot-dev-tools.properties 2. 테스트에 있는 @TestPropertySource 3. @SpringBootTest 애노테이션의 properties 애트리뷰트 4. 커맨드 라인 아규먼트 5. SPRING_APPLICATION_JSON (환경 변수 또는 시스템 프로티) 에 들어있는 프로퍼티 6. ServletConfig 파라미터 7. ServletContext 파라미터 8. java:comp/env JNDI 애트리뷰트 9. System.getProperties() 자바 시스템 프로퍼티 10. OS 환경 변수 11. RandomValuePropertySource 12. JAR 밖에 있는 특정 프로파일용 applicatio..

Java 2023.06.14

[Spring Boot] HTTPS와 HTTP 동시 적용 방법

기본적으로 커넥터가 하나기 때문에 HTTPS를 적용할 경우 HTTP 통신을 하지 못한다. 하지만 따로 설정을 하게 되면 두가지 모두 사용할 수 있다. * Git https://github.com/kangilbin/Spring-Boot/tree/master/%EB%82%B4%EC%9E%A5%20%EC%9B%B9%EC%84%9C%EB%B2%84/webserver 1. HTTP 커넥터 설정 @Bean public ServletWebServerFactory servletContainer() { TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); // 커넥터 추가 tomcat.addAdditionalTomcatConnectors(..

Java 2023.06.13

[Spring Boot] 사설 SSL 인증서 생성 및 적용 방법

SSL(Secure Sockets Layer)란? SSL 인증서는 웹사이트나 애플리케이션과 사용자 사이의 통신을 암호화하고 보안하는 데 사용되는 디지털 인증서로 SS웹사이트의 신원을 확인하고 데이터 전송을 암호화하여 중간에 제3자가 정보를 엿볼 수 없도록 보호한다. 이를 통해 사용자는 안전하게 개인 정보를 전송하고 민감한 데이터를 주고받을 수 있다. 1. Key Store 만드는 방법(SSL 인증서) keytool -genkey -alias spring -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 4000 keystore가 생성된다. 2. application.properties파일에 SSL 세팅 keystore..

Java 2023.06.12

[Spring Boot] 내장 웹 서버 개념 및 활용(서버 변경, 포트 변경)

1. 내장 서블릿 컨테이너(웹 서버) 스프링 부트는 서버가 아니라 내장 서블릿 컨테이너를 쉽게 사용할 수 있도록 해주는 Tool이다. 서버 : Tomcat, Netty, Jetty, undertow 스프링 부트를 사용해 프로젝트를 만들면 의존성에 톰캣이 들어와 있다. 2. 코드로 보는 Tomcat 아래 코드 과정을 스프링 부트에서 설정하고 실행해 준다. 서블릿 컨테이너는 설정에 따라(pom.xml) 달라질 수 있지만, 서블릿은 변하지 않기 때문에 따로 분리되어 작동한다. - ServletWebServerFactoryAutoConfiguration : 서블릿 컨텍스를 만들어준다. - DispatcherServletAutoConfiguration : 어떠한 컨텍스트를 사용하든 등록해 준다 public cla..

Java 2023.06.11

[Spring Boot] 자동 설정 JAR 파일 생성 및 사용 방법

* 공식 문서 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-developing-auto-configuration 1. 프로젝트 생성 Maven 선택 => [Next] 클릭 프로젝트명은 네이밍 규칙에 맞게 작성한다. - 자동 설정 모듈 : '기술명-spring-boot-autoconfigure' - 필요한 의존성 정의 모듈 : '기술명-spring-boot-starter' - 하나의 모듈만 만들 경우 : '기술명-spring-boot-starter' 2. 의존성 추가(pom.xml) org.springframework.boot spring-boot-autoconfigure org.springframew..

Java 2023.06.05

[Spring Boot] Spring Batch + scheduler 사용해 일정 주기로 실행 방법

Spring Batch란? 대용량 일괄처리의 편의를 위해 설계된 가볍고 포괄적인 배치 프레임워크다. 1. Gradle에 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-batch' implementation 'org.springframework.boot:spring-boot-starter-quartz' testImplementation 'org.springframework.batch:spring-batch-test' 2. BatchConfig.java 생성 @Slf4j @Configuration @EnableBatchProcessing public class BatchConfig { @Autowired public JobBuilde..

Java 2023.03.24
반응형