반응형

Java 44

[Spring Boot] DBCP와 MySQL 개념 및 사용 방법

1. MySQL 설정 1-1) Spring Boot가 지원하는 DBCP HikariCP(기본 DBPC) DBCP는 데이터 베이스 커넥션 풀을 의미한다. 데이터 베이스의 커넥션을 만드는 과정이 많은 작업이 일어나는데 커넥션을 미리 여러개 만들어 필요에따라 사용하는 기능이다.(커넥션의 개수, 사용 기간, 최소 유지 개수 등 설정) * HiKariCP 문서 https://github.com/brettwooldridge/HikariCP#frequently-used 커넥션 개수를 많다고 전부 실행할 수 있는게 아니라 CPU Core 개수와 동일하다. 나머지는 대기한다. # application.properties spring.datasource.hikari.maximum-pool-size=4 커넥션의 개수를 지정..

Java 2023.07.01

[Spring Boot] 인메모리(H2) 데이터베이스 사용 방법

Spring Boot가 지원하는 인-메모리 DB Spring-JDBC 의존성이 추가되어 있다면 자동 설정이 필요한 Bean들을 설정해 준다. 1. H2 2. HSQL 3. Derb 1. H2 사용방법 1-1) 의존성 추가 JDBC와 H2 의존성을 추가, 아무런 설정을 하지 않아도 인-메모리 데이터 베이스를 사용하는 JDBC가 설정이 돼서 애플리케이션이 동작한다.(DataSource, JdbcTemplate 등) org.springframework.boot spring-boot-starter-jdbc com.h2database h2 runtime 1-2) 코드 작성 DataSource 작성 방법 package com.example.demo; import org.springframework.beans.fac..

Java 2023.06.26

[Spring Boot] 템플릿 엔진 Thymeleaf 사용 방법

템플릿 엔진이란? 주로 View를 만드는데 사용되지만, 코드 제너레이션 또는 시스템에서 만들어 놓은 이메일 템플릿에 파라미터만 넣어 변경하는 등 여러 가지 상황에 맞게 사용할 수 있다. * 전체 소스 코드 https://github.com/kangilbin/Spring-Boot/tree/master/Tyhmeleaf 1. Spring Boot에서 자동 구성을 지원하는 템플릿 엔진 Sring Boot는 JSP를 대체할 수 있는 다양한 뷰 템플릿 엔진 지원한다. 이러한 엔진들은 Spring Boot의 자동 구성 기능과 완벽하게 통합되어 개발자 편의성과 애플리케이션의 유지보수성을 높일 수 있다. * 뷰 템플릿 엔진 종류 1. Thymeleaf 2. FreeMarker 3. Groovy 4. Mustache 2..

Java 2023.06.23

[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
반응형