springboot(4)
-
[Spring] Gradle multi-module 프로젝트 세팅하기
Gradle Multi Module로 프로젝트를 구성하는 이유 꽤나 잘 만들어진 오픈소스 프로젝트나 회사의 대부분 프로젝트에서는 멀티모듈로 구성하여 프로젝트를 운영합니다. 여러 이유가 있겠지만, 가장 큰 이유 1개만 꼽자면 모듈간 의존성을 줄이기 위함이라고 생각합니다. ( '멀티 모듈 = 모듈의 분산' -> 분산의 가장 큰 이점은 의존성 감소 ) 여러사람이 함께 참여하는 프로젝트에서는 작업 결과물의 반영, 그리고 배포 파이프라인의 분리 등의 이유로 멀티 모듈을 사용한다고 알고 있습니다. Multi Module로 프로젝트 단점 멀티 모듈 구성은 단점도 있습니다. 관리 포인트가 늘어나는 것은 명백한 단점입니다. 흔히 core 혹은 common (같이 쓰는데도 있고)이라 불리는 공통 영역을 두고 사용하는데, ..
2023.02.18 -
[Spring] Spring Framework Modules - 스프링 프레임워크 큰 그림 이해하기
요즘 토비의 스프링을 파보고 있는 백엔드 뉴비입니다. 힘드네요. ^^ 3년전 첫 취업으로 국비 배울때 Spring을 했었는데, 임베디드 C언어 개발자가 되고 다시 백엔드로 돌아오려고하니 Spring이 조금 발목이 잡힙니다. 로그 파싱 목적이나 데이터를 취합하는 과정에서 C언어보다는 자바 기반의 스프링 프레임워크가 솔직히 DB 접근이나 클래스단위로 파싱된 내용을 Row단위로 잘 저장가능하다 보니 업무에서도 종종 쓰긴 했는데, 엔터프라이즈 단위의 프로덕션을 개발하려고 생각하니 사실 조금 더 깊이 알아야겠다는 생각이듭니다. 김영한님 강의 중 언급한 말씀을 조금 언급하자면, 정말 스프링을 다시금 접한 저는 망망대해에 표류중인 돛단배 같습니다. 그래서 어디부터 시작하면 좋을까하고 일단 '토비의 스프링'을 딱 펼쳤..
2022.11.30 -
[Error] Jenkins build 과정에서 Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
Jenkins를 설치하고 아래와 같은 구성으로 세팅을 잡았습니다. webhook 방식이 아니라 Jenkins에서 '지금 빌드하기'를 눌렀을 때 GitHub의 소스를 가져와서 빌드를 진행하고 배포하는 구성입니다. Docker로 2개의 컨테이너를 띄웠습니다. 하나는 Jenkins가 구동되는 컨테이너이며, 다른 하나는 Spring Application이 배포 될 컨테이너이며 우분투를 설치하였습니다. 이런 구성을 선택한 이유는 2가지 입니다. 하나는 사이드 프로젝트라 규모가 작기 때문이고, 또 다른 하나는 이전에 해보았던 방식들과는 조금 다른 방식으로 사용하기 위함입니다. 해당 구성방식은 링크를 남기고 에러에 대한 이야기로 넘어가겠습니다. 에러내용은 아래와 같습니다. ... 중략 ... ( git pull 로그..
2022.11.24 -
[에러] javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify
아시는 분들은 다 아시는 너무 당연한 이야기를 기록삼아 한번 적어본다. 아마도 가끔 설정을 새로이 잡아주다가 보면 한번씩 마주치는 에러 같다. javax.net.ssl.SSLException인에 메시지는 closing inbound before receiving peer's close_notify 이다. 전체 내용은 아래와 같다. SpringBoot Application은 잘 동작하고 있는데, Socket과 관련된 Thread가 종료되고, Socket 연결이 끊어진것만 같은(?) 에러들이 발생했다. 결론 부터 이야기하면 SSL 옵션을 지정해주지 않았기 때문에 SQL을 실행하고 해당 DB Connection을 유지하지 않고 바로 종료하면서 발생시키는 에러라고 한다. 해결책은 SSL = false를 해주거나..
2022.11.22