본문 바로가기

Spring19

Java 에서 다운로드받은 이미지의 타입 유추하기 개요 팀에서 Feign을 통해 이미지 다운로더를 구현해 사용하고 있다. 그런데 해당 클래스에 대해, 다운받은 이미지의 형식을 검증해달라는 요구사항이 추가되었다. 팀에서 요구한 사항은 png, jpg, bmp 에 대해 다운로드를 허용하고 이외엔 차단하는 것인데, 이를 구현하면서 겪은 문제를 간단히 공유해본다. 요구사항 png(png, apng), jpeg(jpg, jpeg), bmp 를 제외한 다른 파일 다운로드 금지 기존 DTO에 fileType이라는 필드를 추가로 전달 해당 클라이언트를 사용하는 서비스에 validation 로직 추가 이제 위의 요구사항 충족을 위해, 이미지 파일의 타입을 알아내고자 한다. 이미지 파일 타입 유추 파일의 타입을 유추하는 방법은 크게 다음과 같다. header 정보 참조 .. 2024. 4. 12.
[Jenkins] cron시 timezone 추가하기 본 글은 아래의 목적을 위해 작성되었다. Jenkins Pipeline에 대해 간단히 알아본다. Jenkins Pipeline의 cron 옵션에 timezone을 추가한다. Jenkinsfile의 cron 옵션에 timezone을 추가한다. Jenkins pipeline 젠킨스 파이프라인이 무엇일까? 젠킨스 파이프라인은 cd(지속적 전달) 파이프라인을 젠킨스에 구현하고 통합하는 것을 지원하는 플러그인 모음이다. 출처: https://www.jenkins.io/doc/book/pipeline/ 젠킨스 파이프라인을 통해, 다양한 목적을 수행할 수 있다. 프로젝트의 자동화된 CI/CD 환경 구축 자동화된 배치 프로세스 구축 나 역시 Jenkins를 통해 지속적 통합을 위한 테스트 수행, 배포 프로세스 수행,.. 2022. 7. 12.
Spring Cloud OpenFeign 테스트하기 본 글은 이전에 작성된 글 (링크) 에서 이어지는 글입니다. 개요: 테스트의 두 가지 방법 Feign 테스트하기: 직접 요청 보내기 직접 서버에 요청을 보내 테스트하면 다음의 이점을 누릴 수 있다. 테스트용 서버를 통해 통합 테스트처럼 진행할 수 있다. Mock Server를 통해 테스트할 경우, 실제 서버와 충돌이 일어나도 알 방법이 없다. 그러나 서버와 직접 통신하게 되면, 기능 외적인 문제에 대해 미리 대응할 수 있다. 코드는 아래와 같다. (Java로 작성) //테스트용 서버에 맞게 환경을 조절하고, logger Level을 FULL로 지정하여 상세한 로그를 출력한다. @SpringBootTest(properties = {"env=test", "feign.client.config.default.l.. 2022. 3. 7.
Spring Cloud OpenFeign 사용하기 본 글은 아래의 링크를 바탕으로 작성되었다. 우아한형제들 기술 블로그 [우아한 feign 적용기]:https://techblog.woowahan.com/2630/ Bealdung [Introduction to Spring Cloud OpenFeign]: https://www.baeldung.com/spring-cloud-openfeign Bealdung [Defferences Between Betflix Feign and OpenFeign]: https://www.baeldung.com/netflix-feign-vs-openfeign Intro Spring Cloud OpenFeign Docs: https://spring.io/projects/spring-cloud-openfeign about Feign.. 2022. 3. 7.
H2로 SpringBoot 테스트 도중 SQL이 실행되지 않는 경우 대응법 이 글은 다음 상황에 대처한 경험을 작성한 글이다. MySQL, PostgreDB 등에서 사용하던 SQL이 H2 DB에서 실행되지 않는 경우를 확인한다. H2 모드를 조정하여 테스트 환경 등에서 쿼리가 정상 실행되도록 한다. 여러 환경에서의 DB 운영 현재 졸업 프로젝트를 진행하면서, 아래처럼 DB 환경을 나눠 구축하고 있다. application.yml에서 여러 yaml 파일을 import하여 관리한다. application-prod.yml에서 운영서버 실행 환경을 설정한다. DB는 MariaDB를 사용하며, flyway를 사용한다. application-local.yml에서 로컬 실행 환경을 설정한다. DB는 MySQL을 사용하며, flyway를 사용한다. application-test.yml에서 테.. 2021. 10. 8.
[SpringBoot] 프로젝트에 Swagger 적용하기 오늘 글은 다음 목적을 바탕으로 작성되었다. SpringBoot 프로젝트의 문서화를 위해 Swagger를 적용한다. Swagger의 다양한 구성과 설정 방법에 대해 알아본다. Swagger를 통해 컨트롤러, 모델, 요청, 응답을 문서화한다. Swagger Swagger란 개발한 REST API를 편리하게 문서화 해주고, 이를 통해서 편리하게 API를 호출해보고 테스트할 수 있는 프로젝트이다. 기본 swagger2 프로젝트 뿐 아니라 다양한 구성을 가지고 있다. MVNRepository에 검색해보자. 본 글에서 다룰 주요 구성은 다음과 같다. SpringFox Swagger 2는 적용된 프로젝트의 응답, 요청, 예시 등의 정보를 JSON 쌍으로 만들어준다. SpringFox UI는 Swagger 2를 통해.. 2021. 9. 6.
반응형