Spring
Spring RestDocs를 통한 Swagger 페이지 구축기 - 1. 구성하기
Spring RestDocs를 통한 Swagger 페이지 구축기 - 1. 구성하기
2022.07.24테스트 코드로 API docs 관리를 할 수 있다고? Spring Rest Docs 라이브러리는 테스트 코드를 작성하면 Asciidoc 파일을 통해서 테스트 코드를 구현할 수 있다. 하지만, 불편한 점들이 눈에 밟혔다. Asciidocs 파일에 대한 이해도가 반드시 필요했으며, Rest Docs가 기본적으로 제공하는 Docs 제공 하는 페이지가 나랑 취향이 너무 안맞았다. 솔직히 보면서 이렇게 까지 써야할까라는 생각을 했었는데… 웹사이트를 뒤적뒤적 거리다 마침 RestDocs 테스트 코드를 바탕으로 Swagger 문서를 구성할 수 있는 라이브러리를 찾아, 그 기능을 사용해보기로 했다. 구축기 가장 본 바탕이 되었던 이 레포지토리를 기준으로 개발 환경 세팅 방법을 확인하자. https://github.co..
Slack으로 Spring boot 에러 로깅 관제하기
Slack으로 Spring boot 에러 로깅 관제하기
2022.07.18토이프로젝트에 로깅은 필수.. 로깅(log)은 프로젝트를 처음 접해본 사람이 아니면, 솔직히 한번쯤은 겪고 가야할 문제이다. 로깅 자체의 구현이 어렵진 않을 것이다. Spring과 같은 Web Framework에서는 이미 로깅 프레임워크를 제공해주기 때문이다. 그중에서 우리는 logback 기능을 활용해서, 서비스를 구현해놓는게 심적으로 편하다. (이미 구현되어있으니까) 로깅 다 좋은데 말야… 로깅이 에러 대응과 같은 역할을 하는게 있고, logback에서는 파일, 콘솔과 같은 툴로 이미 로그를 여러 모습으로 관리를 해주고 있기 때문에, 우리가 이러한 로그 파악에 있어서 파일을 통한 로깅, 혹은 콘솔창에 대한 로그를 통해서 확인을 해줄 수 있다. 문제는 그것이 실시간성으로 확인이 어렵다는 점이다. 왜냐하..
스프링 롤백 테스트 하는 방식에 대한 생각
스프링 롤백 테스트 하는 방식에 대한 생각
2022.05.01JPA 관련해서 게시물 찾다가 위와 같은 블로그를 발견했어서 무슨 문제인지를 파악해보고 싶어서 해결기와 관련한 글을 작성해보았습니다 https://ttl-blog.tistory.com/523?category=906284 [JPA] 살려주세요 문제 상황을 간단하게 나타내 보도록 하겠습니다.. TestEntity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class TestEntity { @Id @GeneratedValue(strategy = Generat.. ttl-blog.tistory.com TL; DR! 블로그의 질문 사항의 핵심은 롤백 상황을 테스트 환경에서 테스트 가능하도록 만드는것이었다. 블로..
Spring Batch를 활용한 토이프로젝트 - 1. 영화 업체를 가져와보자!
Spring Batch를 활용한 토이프로젝트 - 1. 영화 업체를 가져와보자!
2022.03.13안녕하세요. 2021년도 연말에 회사에서 사내 배치 프로그램을 만들일이 있어서 어떤 툴을 쓸지 고민하던 도중 Spring 공부에도 큰 도움이 되지 않을까 싶어서 Spring Batch를 공부하기 시작했었습니다. 실제로 Spring Batch에 대해서 공부하는데 큰 도움을 줄만한 게 뭐가 있을까 고민해보았는데요. 아무래도 가장 큰 도움을 줄만한 건 딱봐도 토이(파일럿) 프로젝트 같았습니다. 그래서 어떤 프로젝트를 하는게 좋을지 큰 고민을 했었는데 Spring Batch 관련한 토이프로젝트를 만들어주셨던 한 블로그에 글에 큰 도움을 받아 형식은 좀 다르지만, 여러 가지 Batch에 대해서 구현을 해보았습니다. Spring Batch를 공부하시는 분들이라면, 어느 정도의 절차를 바탕으로 진행하면서 점진적으로 ..
Spring Batch Partition 병렬 처리 해결기
Spring Batch Partition 병렬 처리 해결기
2021.12.19TL;DR 병렬처리는 아예 ItemReader에 AbstractPagingItemReader 재정의후 페이징 doPageRead() 재정의하면 쉽게 처리가능. ListItemReader에는 InputStreamReader가 없어서 non-thread-safe해서, 아예 병렬처리 없이 싱글 스레드로 돌았던 것. 해결을 위한 여정.. 병렬 처리는 스프링 배치에서 여러가지 방법을 제공해주는데 그중 가장 좋은 방법인 partition방식을 이용해서 해결하려 했다. 문제는 병렬처리는 마음처럼 잘 해결이 안되는 게 문제였는데, 동기식으로 Blocking되는 방식으로 시스템이 돌아갔던것이 가장 큰 문제였다. 배치 개수 배치 방법 시작 시간 종료 시간 총 걸린시간 비고 700개 partition 2021년 12월 10..
Spring boot 버전별 업데이트 사항 정리 - 1. 2.4버전 업데이트
Spring boot 버전별 업데이트 사항 정리 - 1. 2.4버전 업데이트
2021.12.05도대체 왜 그대로 따라서 쳤는데 왜 안되는걸까? 내가 스프링부트를 이용하면서 가장 짜증났었던 부분 중 하나는 버전 업 이슈 사항들이 딱히 전파가 잘 되지 않는다라는 점이었다. Spring boot를 사용하다보면 가끔 내가 쓰고 있는 버전과 블로그나 인터넷에서 제공하는 기능이 정상작동을 하지 않는 경우가 있었는데, 그런 경우에는 버전업에 따른 Deprecated 이슈가 있는 상황이 간혹 있었다. 그리고 전에는 분명히 이렇게 하면 됬는데, https://start.spring.io/에서는 기본 스프링부트의 버전을 거의 최신으로 유지하고 있어서 낮은 버전을 강제할 수도 없는 상황이 많이 생긴다. 즉, 이런 낮은 상황을 강제하려면 Maven, gradle의 도움을 받아서 억지로 낮은 버전을 찾아서 세팅하는 방법..
Spring Boot와 React를 분리해서 연동해보자 2) Spring Boot 구성
Spring Boot와 React를 분리해서 연동해보자 2) Spring Boot 구성
2021.09.19왜 쓰게 되었는가? 제 블로그 중 가장 많이 사랑을 받은 게시글인 Spring Boot와 React를 연동하여 개발환경을 만들어보자 를 통해서 Spring Boot를 React와 동시에 구성하는 방식에 대해서 알아보았습니다. Spring Boot와 React를 연동하여 개발환경을 만들어보자 이글을 읽어보기전에!! 한번 고려해볼 점을 제가 적어뒀습니다 한번 참고 해보고 프로젝트를 진행해주세요! [Java/Spring] - Spring Boot와 React를 통한 개발환경을 구성할때 고민해볼점 Spring Boot와 React sundries-in-myidea.tistory.com Spring Boot를 통해 개발 환경 구성하기 1. Spring Boot 기본 설정하기 스프링 부트를 설정하는 방법은 이전 포..
JPA, JDBC의 DB MultiDataSource 적용하기
JPA, JDBC의 DB MultiDataSource 적용하기
2021.09.01JPA와 JDBC를 동시에 쓰고 싶다! JPA 그리고 JDBC 를 동시에 사용하는 방법은 그렇게 어렵지 않다. JPA 의존성 밑에 JDBC가 포함되어있어서 JDBC template를 이미 사용할 수 있는 구조로 되어있어서 의존성을 또 추가하지 않아도 되는 구조로 구성되어있다. 그래서 JPA 와 JDBC를 통해서 코드를 구성하는 편이 훨씬 편한 방식으로 코드를 짜는데 더 편리하다. 왜냐하면 JPA를 사용하면서 Mybatis와 같은 다른 형식의 코드를 사용하려면 그것에 맞는 형식을 또 따로 잡아줘야하는데 JDBC는 결국 의존성이 포함되어있는 형식으로 되어있어서, 큰틀은 변하지 않는다는 점을 잘 활용하는 것이 좋다. 문제는 이 두개를 동시에 다른 DB를 사용하는 경우 간단한 세팅으로는 문제 해결이 재대로 진행..
Spring Boot와 React를 분리해서 연동해보자 1) React 구성
Spring Boot와 React를 분리해서 연동해보자 1) React 구성
2021.06.07왜 쓰게 되었는가? 가장 많이 사랑을 받은 게시글인 Spring Boot와 React를 연동하여 개발환경을 만들어보자 를 통해서 Spring Boot를 React와 동시에 구성하는 방식에 대해서 알아보았습니다. Spring Boot와 React를 연동하여 개발환경을 만들어보자 이글을 읽어보기전에!! 한번 고려해볼 점을 제가 적어뒀습니다 한번 참고 해보고 프로젝트를 진행해주세요! [Java/Spring] - Spring Boot와 React를 통한 개발환경을 구성할때 고민해볼점 Spring Boot와 React sundries-in-myidea.tistory.com 물론 이 방식 자체는 나쁘지 않지만, 이런 경우 백엔드 서버가 완전히 다운된 경우 아예 화면 자체도 나오지 않을 수도 있고, 개인적으로 FE ..
SpringBoot와 MongoDB를 활용한 간단한 프로젝트 만들어보기
SpringBoot와 MongoDB를 활용한 간단한 프로젝트 만들어보기
2021.03.01MongoDB를 활용해보고 싶다... Spring boot는 MongoDB를 JPA를 활용할 수 있는데, MongoDB의 가장 큰 장점이라고 알려져 있는 Geolocation한 데이터 타입을 활용하는 예제를 만들려면, 실제로 MongoDB를 활용하는 것이 좋아보였다. [잡담/관심 가는 기술들] - if-kakao MongoDB 세션 정리 if-kakao MongoDB 세션 정리 사실 몽고 DB가 뭔지는 대충 알긴했지만... 몽고 DB가 NoSQL의 대표주자인 건 알고있고, RDBMS와는 다른 포지션을 가진 DB라는 것은 알고 있는데... 도대체 어디서 쓰는 게 좋을 까라는 생각을 되게 많 sundries-in-myidea.tistory.com 실제로 카카오모빌리티에서는 MongoDB를 활용한 사례가 있으..
Spring boot로 API를 통한 이메일 전송 기능 만들기
Spring boot로 API를 통한 이메일 전송 기능 만들기
2021.01.17웹서비스를 이용하다보면, 다음과 같은 메일을 받아봤을것이다. 이런 것을 한번 구현해보고 싶어서 만들어보았다. 회원가입시 이메일에 대한 검증이 필요합니다. Spring boot를 통해서 개발을 할때, user 등록시 유저이름을 email로 하거나, 혹은 id로 하는 경우가 있는데. 물론 이메일 인증의 경우 이메일의 양식만 맞으면 대부분 회원가입이 될 가능성이 큽니다. (그래서 FE 검증, BE 검증이 필요한 것이겠지만...) 예를 들면 test@test.com 이라던지.. Admin@admin.com 처럼 없는 이메일을 써서 회원가입을 처리할 수 있다 그러면 이런 있을수 없는 이메일을 확인하는 방법은 이메일 인증체계를 만드는 것이다. 즉, 백엔드에서 이메일과 관련된 서비스를 제공할 수 있어야 한다는 것이다..
Spring Boot와 React를 통한 개발환경을 구성할때 고민해볼점
Spring Boot와 React를 통한 개발환경을 구성할때 고민해볼점
2021.01.10[Java/Spring] - Spring Boot와 React를 연동하여 개발환경을 만들어보자 Spring Boot와 React를 연동하여 개발환경을 만들어보자 이번에는 Spring Boot와 React를 연동하여 개발 환경을 만드는 과정을 이야기해보겠습니다. Spring Boot와 React를 연동하는 과정들 Spring Boot로 백엔드를 만들고, 프론트엔드까지 다 만들었을때 프론트엔 sundries-in-myidea.tistory.com 일단 글에 앞서서 안녕하세요. 위의 예상보다 인기가 좋아 짐에 따라 제가 생각하고 있던 생각들을 공유해볼 겸 작성해보는 글입니다. 이 글이 정말 너무 많은 사람들이 좋아해 주신 덕에... 그래서 항상 감사하다는 생각도 있으나, 당시에는 리액트에 대해서도 정확하게 몰..