본문 바로가기

더 나은 엔지니어가 되기 위해/지금은 안쓰는 자바

(35)
[스프링 부트 개념과 활용] 웹 MVC 설정 3. ExceptionHandler 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 스프링 MVC의 ExceptionHandler 이번에는 Exception error 를 처리하는 ExceptionHandler 에 대해 알아본다. 먼저 예외 상황을 정의할 클래스 SampleExcepition 를 만든다. public class SampleException extends RuntimeException { } 다음으로, 에러의 정보를 담을 AppError 클래스를 정의하자. public class AppError { private String message; private String reason; public String getMessage() { return message; } .....
[스프링 부트 개념과 활용] 웹 MVC 설정 2. 정적 리소스와 웹 JAR 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 정적 리소스 지원 1) 기본 리소스 위치 기본 리소스 위치는 다음과 같다. classpath:/static classpath:/public classpath:/resources/ classpath:/META-INF/resources 예를 들어, resources/static/hello.html 을 만들면 http://localhost:8080/hello.html 로 접근할 수 있다. 2) 접근 url path 설정 기본 리소스 위치에 대한 접근 url 설정은 application.properties 에서 spring.mvc.static-path-pattern 을 통해서 바꾸면 된다. 예를 들어, spr..
[스프링 부트 개념과 활용] 웹 MVC 설정 1. MessageConverters 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 스프링 웹 MVC 설정 스프링부트는 자동설정을 통해 스프링 웹 MVC 설정들을 기본적으로 제공해준다. 그런데 이 중 일부를 수정하거나, 아니면 내가 원하는대로 완전히 바꾸고 싶을 땐 어떻게 해야할까. 다음과 같은 방법들이 있다. 자동설정된 스프링 MVC를 확장하는 경우 @Configuration + WebMvcConfigurer 아예 스프링 MVC를 원하는 대로 재정의 하는 경우 @Configuration + @EnableWebMvc HttpMessageConverters (HTTP 요청 -> 객체) 로 매핑 또는 (객체 -> HTTP 응답) 하는데 사용 예를 들면 다음과 같은 요청이 { "userNa..
[스프링 부트 개념과 활용] 테스트 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 세팅 테스팅에 들어가기 앞서, Controller 와 Service 클래스를 미리 정의해놓자. // SampleController.java @RestController public class SampleController { @Autowired private SampleService sampleService; @GetMapping("/hello") public String hello() { return "hello " + sampleService.getName(); } } // SampleService.java @Service public class SampleService { public String..
[스프링 부트 개념과 활용] 로깅 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 로깅 작업 1) 스프링5 부터 변경 사항 스프링 내 기본적인 로그 개념과 로거 종류는 이전에 포스팅한 [부스트코스 웹 프로그래밍] 로깅 참고하면 된다. 스프링5 부터 달라진 사항이 있다. 이전에는 pom.xml 에서 Commons Logging 을 exclusion 한 뒤, logback 을 로거로 붙여줘야 했다. 그런데 스프링 5부터는 내부에서 알아서 logback 으로 찍어준다. 대략 다음과 같은 플로우임. Commons Logging(Spring 내장) -> SLF4j or Log4j2 - Logback그래서 스프링5 부터는 그냥 써도 Logback 으로 찍히기 때문에, 별도의 설정이 필요없다. ..
[스프링 부트 개념과 활용] Profile 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. Profile 설정 Profile 은 어떤 특정환 환경에 설정 값을 다르게 하고싶을 때 사용한다. 각 Profile 들은 각각 다른 설정 값이나 각각 Bean 들을 정의한다. 그 후, 빌드 할 때, 원하는 Profile 에 맞춰 빌드할 수 있다. 예를 들어, 테스트 환경과 배포 환경을 다르게 두고 Profile 을 설정할 수 있다. 1) Profile 정의 예를 들어, 각기 다른 설정 값을 담는 두 개의 Configuration 클래스를 정의해보자. @Profile("name") 을 통해 Profile 을 정의한다. // BaseConfiguration.java @Profile("production")..
[스프링 부트 개념과 활용] 외부 설정 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 외부 설정 사용하기 Properties resources 디렉토리 안에 있는 application.properties 파일에 키 = 값 형태로 일종의 설정 값들을 따로 구분하여 저장해놓을 수 있다. 이를 코드에서는 @Value("${key}") 로 가져올 수 있다. 예를 들면 다음과 같다. // application.properties heumsi.name = heumsi // SampleRunner.java @Value("${heumsi.name}") private String name; // name 에 heumsi 가 바인딩 됨. ... Environment Environment 객체를 가져와 ...
[스프링 부트 개념과 활용] SpringApplication 이 글은 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. SpringApplication 실행 어플리케이션 실행 방법은 다음과 같은 방법이 있다. 먼저 가장 간단한 방법 @SpringBootApplication public class SpringinitApplication { public static void main(String[] args) { SpringApplication.run(SpringinitApplication.class, args); } } 조금 더 커스터마이징 할 수 있는 방법 @SpringBootApplication public class SpringinitApplication { public static void main(Str..