본문 바로가기

Spring49

SpringBoot의 깨알같은 팁 소개 이번에 출간된 스프링부트 코딩 공작소를 읽고나서 해당 내용을 정리도 할겸, 기존에 SpringBoot에 대해서 깨알같이 사용하던 내용들도 포함해서 한번에 정리하게 되었다. 스프링 부트 코딩 공작소국내도서저자 : 크레이그 월즈(Craig Walls) / 황인서역출판 : 길벗 2016.07.31상세보기 간편한 설정 기존에 SpringFramework가 기본적으로 해야할 셋팅이 너무 많고 어려웠던 점을 해소하기 위해 나옴 RoR (Ruby on Rails)나 Express (Nodejs 웹프레임워크)를 사용해보니 그 차이가 더 심하게 느껴짐 (SpringFramework 으로 하루가 걸릴 CRUD 게시판이 express로 1~2시간만에 작성되니 멘붕) 이런 이유로 이전까지 직접 하던 설정들 중 변경요소가.. 2016. 10. 1.
SpringBoot 1.4.0 Test 적용하기 (2) 2. @WebMvcTestDataJpa 어노테이션이 Repository (Dao) 에 대한 테스트라면 WebMvcTest는 Controller을 위한 테스트 어노테이션이다.Scan 대상은 아래와 같다.@Controller@ControllerAdvice@JsonComponentFilterWebMvcConfigurer and HandlerMethodArgumentResolverMockMvc를 자동으로 지원하고 있어 별도의 HTTP 서버 없이 Controller 테스트를 진행할 수 있다.사용법 역시 간단하다.@RunWith(SpringRunner.class) @WebMvcTest(HomeController.class) public class WebMvcTest { @Autowired private MockMv.. 2016. 9. 8.
SpringBoot 1.4.0 Test 적용하기 (1) 공식문서를 참고하며 기록하는 SpringBoot Test 적용하기TDD를 기반으로 프로젝트를 시작하는 예제 테스트 코드를 통해 Entity와 Dao 구현 테스트 코드를 통해 Controller 구현 테스트 코드를 통해 Oauth 인증 구현 TDD로 실전 프로젝트를 해본적이 없어 개인적으로 만들 서비스의 예행연습으로 보고 진행함을 먼저 얘기한다.1. @DataJpaTestSpringBoot에서 JPA만 테스트할 수 있도록 제공하는 어노테이션개발의 첫 단계인 Entity 설계 단계에서 불필요한 코드 작성 없이, Entity간의 관계 설정 및 기능 테스트가 가능해졌다.예를 들자면 View를 만들거나, Controller를 작성하는 것 등등 Entity 설계 확인을 위한 코드 작성이 필요없어졌다.사용법은 간단하.. 2016. 9. 8.
Swagger로 API 문서 자동화하기 일반적으로 여러명이서 개발하는 웹 서비스에서 단일 프로젝트가 DB에서 데이터를 가져오고, 화면을 그려주고, 회원정보를 저장하는등 모든것을 담당하진 않는다. 아무리 간단한 구조라해도 아래와 같은 형태정도는 유지한다. (웹구조)이런 구조로 처음 개발하거나 혹은 유지보수를 진행 중인 경우, 해당 API서버가 어떤 Spec을 가진 데이터를 주고 받는지에 대한 문서작업이 꼭 필요하다. 하지만 이런 문서작업은 굉장히 시간이 많이들고, 매번 기능이 추가되거나 변경될때마다 작업하기가 여간 귀찮은게 아니다. 그러다보니 이런 API Spec 문서를 자동화 하는것이 나오게 되었다. SwaggerSwagger는 간단한 설정으로 프로젝트에서 지정한 URL들을 HTML화면으로 확인할 수 있게 해주는 프로젝트이다. 백마디 말보다는.. 2016. 8. 28.
Freemarker(프리마커) 안전하게 사용하기 Freemarker(프리마커)는 현재 Java 진영에서 가장 대중적인 View Template Engine이다. (공식사이트) JSTL이나 Velocity같은 경우 업데이트가 이미 2~3년 전에 정지된 상태이고, Handlbar.java나 Thymeleaf는 아직까지 널리 퍼지진 않아서 많은 회사에서 사용중이다. (JSP 사용중이라면... 신규 프로젝트는 Freemarker로 바꾸자 아니면 Handlebar.java도 괜찮다) 공식 레퍼런스가 굉장히 잘되어있고, 기능도 좋아 거의 모든 프로젝트에서 Freemarker를 사용중인데 실제 서비스에서 사용하려면 몇가지 안전장치가 필요하여 소개한다. (문법이나 소개글이 필요하다면 여기를 참고하자) 모든 코드는 Github에서 관리중이니 코드를 보면서 읽으면 더욱.. 2016. 8. 5.
ServletContainer? DI Container? Bean? POJO? 매주 월/목요일 저녁마다 박재성(a.k.a 자바지기)님의 Java 강의를 수강중이다. (현재 1기인데 다음 2기가 시작되면 꼭꼭 듣길 추천한다. 참고)매 시간마다 즐거운 깨달음의 연속이지만 특히나 어제 (2016년 7월 29일)의 경우 그동안 답답했던 내용들이 속시원하게 해결이 되어 기쁜 마음에 아침부터 정리를 하게 되었다. (풀렸다!!) SpringFramework는 웹 프레임워크가 아니다. Java기반의 프레임워크로서 여러 모듈로 구성되어 있는데, 이중 웹 어플리케이션을 만들고자 등장한게 SpringMVC 모듈이다SpringMVC를 사용중 이라면 자주 만나는 용어가 Servlet Container(서블릿 컨테이너) 와 DI Container (DI 컨테이너 혹은 Spring Container, IoC.. 2016. 7. 29.