분류 전체보기
-
SpringBoot - MVC HttpMessageConvertersBack-end/Spring 2020. 6. 27. 23:17
HttpMessageConverters SpringFrameWork에서 제공하는 인터페이스 SpringMVC 의 일부분으로 HTTP 요청 본문을 객체로 변경하거나, 객체를 HTTP 응답 본문으로 변경할 때 사용합니다. 예제를 보면서 공부해보겠습니다. HttpMessageConverters에 사용되는 어노테이션 함께 사용하는 어노테이션 2가지가 있습니다. @RequestBody @ResponseBody @Controller에서는 반드시 붙여야됩니다. @RestController는 생략해도됩니다. 자동으로 설정 뷰 네임 리졸버를 안타고 바로 MessageConverter 타고 응답 본문으로 내용이 들어갑니다. Test 클래스 @RunWith(SpringRunner.class) @WebMvcTest(UserC..
-
SpringBoot - MVC SettingBack-end/Spring 2020. 6. 27. 23:14
SpringBoot MVC 스프링부트는 기존 Spring에서 MVC를 세팅할 때와는 다르게 기본 설정 덕분에 따로 세팅하지 않아도 바로 MVC 개발이 가능합니다. 예제를 만들어보면서 MVC 패턴이 세팅없이 바로 구현 가능한지 테스트 해보겠습니다. MVC Exam 전체 완성된 예제 코드는 각 주제 하단에 있으니 참고하시면 되겠습니다. Test 클래스 슬라이스 테스트로 Web만 테스트 하기 위해 @WebMvcTest를 활용합니다. 테스트할 클래스를 선언해줄 때 동일한 클래스를 만들기 번거로우므로 임의의 클래스명을 붙인 후 자동생성 기능을 이용하여 생성합니다. 단축키(맥 OS기준) : option + enter main 패키지에 있는 곳에 생성해줍니다. 다시 테스트클래스로 돌아와서 Web은 보통 MockMVC..
-
SpringBoot - DevtoolsBack-end/Spring 2020. 6. 27. 23:13
Devtools 데브툴즈는 스프링 부트가 제공하는 하나의 옵션입니다. 의존성을 추가만 해주면 자동으로 여러 기능들을 제공해줍니다. 하나하나 살펴봅시다. 참고문서 : 스프링공식문서 의존성 추가 org.springframework.boot spring-boot-devtools 위 의존성을 pom.xml에 추가합니다. Cache 설정 웹 개발을 할 때 캐시가 적용되어있으면 바뀌지 않는 상황 때문에 개발 환경이 불편했던 적이 있을겁니다. 하지만 이러한 캐시 설정을 자동으로 꺼주어 개발에 더 집중할 수 있도록 해줍니다. 참고 자료 : 캐시삭제코드 Auto Restart 개발시 수정된 코드를 build하면 자동으로 서버를 재구동시켜줍니다. 참고문서 : 스프링공식문서 Live Reload Chrome같은 브라우저에서..
-
SpringBoot - Test(테스트)Back-end/Spring 2020. 6. 27. 23:11
Test(테스트) 코드를 작성하고 해당 코드에 대해서 테스트가 필요할 때 사용하는 방법들을 공부해보겠습니다. TDD(테스트 주도형 개발)가 중요한 만큼 테스트의 중요성이 높으니 코딩시 꼭 테스트하는 습관을 길러보도록 합시다. 테스트 환경 구성하기 새로운 패키지에 Controller, Service 클래스를 생성합니다. SampleController.class @RestController public class SampleController { @Autowired private SampleService sampleService; @GetMapping("/hello") public String hello() { return "hello " + sampleService.getName(); } } SampleS..
-
SpringBoot - Logging(로깅)Back-end/Spring 2020. 6. 27. 23:07
Logging(로깅) 로그를 출력할 때 사용하는 설정 값들을 공부해보도록 하겠습니다. 스프링 부트 기본 로거 설정하기 로깅 퍼사드 로거를 바꿀 수 있게 해준다. 종류 : Commons Logging, SLF4j 로거 실제로 로그를 찍는 역할을 한다. 종류 : JUL, Log4J2, Logback 스프링 부트는 Commons Logging을 기본적으로 사용하고 있으며 Commons Logging을 사용해도 SLF4j로 가고 Logback로 가게 됩니다. 결국 Logback이 최종적으로 로깅을 합니다. Spring 5.x Version 스프링 5점대 버전부터 많은 변경이 있었습니다. 참고 : 스프링공식문서 Spring-JCL(자카르타 커먼스 로깅)이 기본적으로 구현되어 있고 Commins Loggins이..
-
SpringBoot - Profile(프로파일)Back-end/Spring 2020. 6. 27. 23:03
Profile(프로파일) 프로파일은 특정한 프로파일에서의 클래스의 빈을 등록하고 싶을 때 사용합니다. 프로파일 선언하기 프로파일을 실습하기 위해 두가지 클래스를 생성합니다. @Profile("prod") @Configuration public class TestConfiguration { @Bean public String hello() { return "hello"; } } @Profile("test") @Configuration public class TestConfiguration { @Bean public String hello() { return "hello test"; } } 생성한 클래스를 빈으로 등록하고 @Profile("프로파일명")을 통해 프로파일 선언을 합니다. 그리고 의존성 주입을 ..
-
SpringBoot - Configuration(외부설정)Back-end/Spring 2020. 6. 27. 22:59
외부 설정을 할 수 있는 종류들 properties YAML 환경변수 커맨드 라인 아규먼트 위 종류들 중에 properties를 활용하여 외부 설정을 하는 방법에 대해서 공부해보겠습니다. properties의 우선 순위 유저 홈 디렉토리에 있는 spring-boot-dev-tools.properties 테스트에 있는 @TestPropertySource @SpringBootTest 애노테이션의 properties 애트리뷰트 커맨드 라인 아규먼트 java -jar springinit-0.0.1-SNAPSHOT.jar --junjang.name=kimjunhyeung SPRING_APPLICATION_JSON (환경 변수 또는 시스템 프로티) 에 들어있는 프로퍼티 : 참고 ServletConfig 파라미터 S..
-
SpringBoot - SpringApplicationBack-end/Spring 2020. 6. 27. 22:56
Application 기존에 만들어지는 방법으로 실행시키면 스프링부트가 제공하는 기능을 전부 사용하기 어렵습니다. 그래서 인스턴스화 하여 기능을 사용하는 방법에 대해 알아보겠습니다. 참고 : 스프링공식문서 public static void main(String[] args) { SpringApplication app = new SpringApplication(Application.class); app.run(); } 그래서 위와 같은 코드로 app 인스턴스를 생성하여 실행시키는 방법을 사용합니다. Debug 사용하기 디버그 모드는 자동설정되는 사항들이 적용되는지 여부를 알려줍니다. Edit Configuration을 클릭합니다. VM options -Ddebug Program arguments --deb..