본문 바로가기

반응형

Spring

(5)
Spring - bean factory pattern (injecting Collections) Spring 프레임워크의 서비스를 개발할때, interface 를 통해 공통적인 기능을 명시하고 이를 참조하는클래스를 여러개 생성하여 개발을 하게 되는 경우가 있는데, 각 클래스에 enum 으로 별칭을 정해주고 factory class 를 구현하여 필요한 bean 을 get 할 수 있도록 개발하곤합니다. 문제는 원하는 클래스를 enum 값으로 얻기위해 bean 숫자만큼 항상 길어지고 보기싫은 코드가 생성되어야합니다. 이에 대한 개선을 한 후 내용을 정리합니다. 간단한 예제 Rest API 를 구현 후 설명하려고합니다. ※ 지극히 개인적인 코드 스타일을 공유하는 목적의 포스팅입니다 ※ 공통적으로 동물의 타입을 리턴하며 소리를 지를 수 있는 기능을 명세한 interface 를 생성합니다. 해당 interfa..
spring boot sql script 한글 깨짐 현상 Spring boot sql script 한글 깨짐 현상 Spring에서는 초기에 scheme 생성 및 데이터를 세팅하는 여러 가지 메커니즘을 제공한다. Spring 기본값으로 classpath 루트에 schema.sql, data.sql 파일이 있다면 서버 시작 시 자동으로 스크립트를 실행하게되며 보통 schema.sql은 DDL 스크립트를 명시해두고, 데이터를 위한 DML 문은 data.sql 파일로 작성한다. 토이 프로젝트를 Spring boot 로 개발한 후 Window에서 실행하는 테스트 중에 이슈가 발생했다. 로컬에선 이상없는데 배포하니까 오류나요! 가끔 로컬에선 완벽하다고 생각해도, 배포시에 문제가 생기는 경우가 많이 있다. 이번 경우도 배포 후 실행해보니 DB에서 load한 값만 한글이 깨..
Spring boot, annotation 정리 Spring boot annotation 들의 간단한 키워드 정리 Annotation 설명 @ComponentScan @Componen와 @Service, @Repository, @Controller, @Configuration이 붙은 클래스 Bean들을 찾아서 Context에 bean등록을 해주는 Annotation ApplicationContext.xml 에 이런식으로 xml에 bean을 직접등록하는 방법도 있고 위와 같이 애노테이션을 붙여서 하는 방법도 있음 base-package를 넣으면 해당 패키지 아래에 있는 컴포넌트들을 찾고 그 과정을 spring-context-버전(4.3.11.RELEASE).jar에서 처리한다. @Component로만 표기하지 않고 어노테이션을 분리하여 @Reposito..
@Valid BindingResult 으로 검증 및 에러처리 Spring 프로젝트 중 @Valid annotation을 이용해 간단하게 validation 방법에 대해 알아본다 입력 값을 전달받았을 때, Controller 에서 @Valid annotation 으로 지정된 필드값에 대해서 검증을 진행하고 조건에 부합하지 못할 시에 알맞게 오류처리하는 방법에 대해 알아보자 1. maven dependency 추가 javax.validation validation-api 2.0.1.Final org.hibernate hibernate-validator 5.2.2.Final 2. VO에 어노테이션을 valid 설정을 한다. @Pattern(regexp = "^[_0-9a-zA-Z-]+@[0-9a-zA-Z]+(.[_0-9a-zA-Z-]+)*$", message = "no..
Spring REST API - Swagger2 연동 기존에 개발했던 Rest API 들은 개발 완료 후 문서화 작업을 통해 API 정의서를 제작했고 신규 유저 연동시에 문서로 spec을 전달했다. 하지만 프로그램 수정이 필요할 때 수정되는 내용에 따라 문서도 수정 후 다시 유저에게 재 공지되는 등 불편한 점이 많았다 테스트 요청시에도 Junit 과 별도로 Postman/curl 을 통해서 각각 항목별 요청을 진행했는데, 로컬, 테스트서버, 운영서버 등 서버 주소가 변경되거나 환경에 따라 Postman 에 미리 세팅해논 request 파일들을 일일이 수정해야되는 경험이 있어 매우 불편했다. 하지만 Swagger라는 문서 자동화 툴을 이번에 접하게되었고 신규 RestAPI 프로젝트가 있어 검토 후 프로젝트에 반영해보려고 한다! 필자처럼 Swagger가 처음이..