본문 바로가기

반응형

Study/Java

(187)
Spring Rest Docs response body 한글 깨짐 문제 (mockmvc 설정 문제) Spring Rest Doc 문서를 만드는데 generated-snippets에 생성된 response-body.adoc 가 eclipse에서 test 코드를 실행했을 땐 정상적으로 결과가 나오는데 mvn 명령으로 실행했을 땐 한글이 깨져서 생성되었다. 처음엔 maven-compiler-plugin의 encoding 문제인가 의심했지만 해당 문제가 아니었다. 한글 깨짐을 해결할 수 있는 방법이 2가지가 있는데 하나는 요청 accept header에 charset=UTF-8을 추가하는 것이다. this.mockMvc.perform( post("/someUrl") .accept(MediaType.APPLICATION_JSON_UTF8) .params(params) .cookie(getLoginCookie()..
spring reference 문서는 어떻게 만들어질까? Spring은 모든 프로젝트가 reference 문서를 제공하고 있다. 이 문서가 어떻게 만들어지는지 궁금할 사람들을 위해 소개해본다. 다만 자세한 사용법을 설명하기엔 양이 너무 많기 때문에 링크를 통해 각각의 자세한 설명을 참조해야 한다. Markdown 문서 작성을 하는 방법은 여러 가지가 있다. 그중 Markdown 문법이 있다. Markdown 문법은 정말 간단하다. 티스토리 편집기가 HTML과 Markdown 두 가지 모드를 지원할 만큼 대중적이고 간단하다. 하지만 문법이 간단한 만큼 제공되는 기능도 간단하다. GitHub의 경우 프로젝트에 README.md 파일을 만들도록 가이드하는데 이 파일에 쓰이는 문법이 Markdown 문법이다. https://help.github.com/en/githu..
[troubleshooting] 아직 명확한 해결법을 찾지 못한 Spring Boot web No ServletContext set 에러 현상 spring boot 2.3.0에서 아무것도 없이 빈 web을 띄울 때 아래 에러가 발생했다. 자체 구현한 autoConfigure 모듈을 사용한 아무것도 없는 빈 프로젝트 구축의 경우였다. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Bean instantiation via factory method ..
Spring Boot 2.3 Release Notes 전체 Release Notes 목록은 이 곳에서 확인할 수 있습니다. https://luvstudy.tistory.com/tag/Release%20Notes Spring Boot 2.3 Release Notes spring-projects/spring-boot Spring Boot. Contribute to spring-projects/spring-boot development by creating an account on GitHub. github.com Spring Boot 2.3이 지난 5월 15일 Release 되었다. Upgrading from Spring Boot 2.2 Deprecations from Spring Boot 2.2 deprecated 상태였던 상당 수의 class, method..
JDK 14 New Features JDK의 버전별 변경 사항은 이곳을 참고하세요. Spec Java SE 14 Platform JSR 389에 정의된 바와 같이 JSR 389 구현이 목표 실제 Spec은 Final Release Specification 문서를 참고해야 함 Final Release Specification Feature Summary 전체 JEP Feature 목록은 OpenJDK의 JDK 14 문서로 확인할 수 있다. Component Feature specification / language Pattern Matching for instanceof (Preview) hotspot / runtime Helpful NullPointerExceptions specification / language Records (Prev..
Spring Custom HandlerExceptionResolver 사용하기 Spring Framework 5.2.3.RELEASE, Spring Boot 2.2.4.RELEASE 기준으로 작성됨 Spring webmvc를 사용하는 경우에 대한 설명 Spring Framework를 쓰면 @ExceptionHandler를 사용하여 전역 에러 처리를 한다. (기존 작성한 글 참조) 2019/04/30 - [Study/Java] - Spring Boot 전역 에러 처리 Spring Boot 전역 에러 처리 Spring 5.1.6, Spring Boot 2.1.4 기준 문서 정리 Spring framework는 전역 에러를 처리하기 위해 아래의 인터페이스를 제공한다. 제공되는 interface servlet (webmvc) HandlerExceptionResolver reacitve (..
재미로 보는 Spring Project release train naming Release Train Naming 여러 라이브러리를 묶어서 그룹 단위로 배포하는 프로젝트의 경우 상위 모듈에서 하위 모듈에 대한 버전을 관리하게 된다. 상위 모듈이 만들어지면 이 상위 모듈에 대해서도 버전 관리를 해야 하는데 하위 모듈의 여러 버전을 관리하는 모듈의 버전이기 때문에 release train이라 부르고 상위 모듈의 버전에 대한 release train naming은 보통 알파벳 순서를 많이 쓴다. Spring Project의 release train naming Spring Project의 경우 이런 release train이 여러 묶음이 있다. Spring Data Spring Data의 release train naming은 유명한 컴퓨터 공학자들의 이름을 따서 명명되었다. (rel..
OOP 개발 원칙 YAGNI - You aren't gonna need it 당장 필요하지 않은 것은 미리 구현하지 말자. 기능이 실제로 필요하기 전까지는 추가하지 않는 것이 좋다는 익스트림 프로그래밍(XP) 원칙 처음부터 필요 이상의 기능을 추가하면 설계가 복잡해진다. 또한 실제 해당 기능을 사용하려는 시점에 설계에 변경이 생겨 기존 코드를 다시 재작성해야 해서 일이 더 많아지게 되는 경우가 있다. KISS - Keep it simple, stupid 단순하게 하라. 처음부터 복잡하게 준비하지 말아야 한다. 가장 단순한 것이 확장하기 쉬운 것이다. 역할에 맞는 적절한 위치의 코드인지, 단순하고 명료해서 타인이 봐도 이해가 쉽게 되는 지를 고민해야 한다. 이 후에 확장해서 쓰려고 할 때 기존 코드를 고치기 힘들거나 많이 ..

반응형