스프링부트
-
[Spring boot + Docker + Swagger3] Ubuntu 환경의 Docker 컨테이너로 Spring boot 배포하기(with Swagger3 And jar)프로젝트 노트 2024. 8. 8. 10:43
최근 우분투 환경의 도커에 외장 톰캣을 두고 war로 배포를 하고 있었습니다.Maven으로 빌드를 하여 손쉽게 War를 만들고 그를 Tomcat에 배포하며 쉽게쉽게 사용을 하고 있었습니다. 여기에 신규 프로젝트를 하면서 내장 톰캣을 쓰기위해 jar로 빌드를 하였고, 여기서 문제에 당면하게 되었습니다.기존의 방식대로 하니 배포가 잘 되지 아니하는 것이었죠..404 Not Found가 뜨며 멘붕에 빠져있었습니다.ServletInitializer를 통해 부트 환경을 이니셜라이즈하게 만들어보려 했으나 빠르게 실패...멘붕에 빠져있다가 아예 도커 이미지로 만들어서 내장 톰캣을 도커에 띄우는 방향으로 가닥을 잡았습니다. Gradle의 빌드에 보면 jar와 bootJar Task가 있습니다. clean 이후 boot..
-
[Spring Boot + Gradle] 외장 톰캣에 War로 배포하기프로젝트 노트 2024. 8. 6. 12:09
내장 톰캣 이외에 외장 톰캣에 프로젝트를 배포하기 위해선 War로 빌드를 해야 합니다.plugins { id 'java' id 'org.springframework.boot' version '3.3.1' id 'io.spring.dependency-management' version '1.1.5'}ext { springCloudVersion = "2023.0.2"}group = 'com.dkt.always'version = '0.0.1-SNAPSHOT'apply plugin: 'war'... build.gradle에 apply plugin: 'war'를 추가해줍니다.그러면 War로 빌드할 수 있게끔 Task가 생깁니다.이를 통해 빌드를 해줍니다.
-
[SPRING BOOT] jar가 아닌 war로 배포 및 구동을 원할 경우스터디 노트 2024. 2. 23. 10:57
소스코드를 보다보니 Spring Boot 프로젝트임에도 불구하고 희한한 코드를 볼 수 있었습니다. @SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 여기서 눈길을 끈 부분은 Sprin..
-
Redis로 초간단 Pub / Sub 구축하기! Redis + Spring Boot스터디 노트 2023. 12. 29. 15:26
일전에 Redis를 Spring Boot와 연동하여 캐시로 사용하는 방법에 대해 간략하게 알아보았습니다. 레디스(Redis)? 함 써봅시다. Spring Boot + Redis 연동하기! Redis..많이 들어보셨을거라 생각합니다. 인메모리 DB 중 가장 많이 쓰이며, 흔히 캐시 메모리로 많이 사용되고 있지요. 근데 정작 써볼려고하니, 뭘 어떻게 써야하나..살짝 막막하기도 했습니다. deguruv.tistory.com 📌 Pub/Sub은 왜 구축해보려 하는지? 몇 일 전 회사에서 이슈가 하나 있었습니다. 분당 30만건 정도의 트래픽이 발생하는 서비스 모듈에서 타 서비스 모듈로의 데이터 전달 시 지연이 발생하며 데이터의 실시간성이 훼손되는 문제였었습니다. 최대 10분정도까지 데이터 차이가 발생한다고 하더군..
-
[뉴스파이프라인 #3] MongoDB에 데이터를 저장해보자(Spring Boot + Spring Batch + Jsoup + Spring Cloud + Kafka Streams + MongoDB)프로젝트 노트 2023. 11. 10. 11:12
📌 들어가기에 앞서 [뉴스파이프라인 #1] Spring Boot + Spring Batch + JSOUP을 활용한 뉴스 크롤링 📌 만드는 이유 우선 저는 경제관련 뉴스 보는 것을 굉장히 즐깁니다. 그간 뉴스를 보려면 사이트에 접속을 하고 제가 직접 찾아봐야 함이 너무 귀찮더군요.. 누군가 제게 재깍재깍 알맞은 시간 deguruv.tistory.com [뉴스파이프라인 #2] Spring Boot + Spring Batch + Jsoup에 Kafka Streams 로 파이프라이닝 해보기! 📌 들어가기에 앞서.. 어제는 이런걸 해보았습니다. [뉴스파이프라인 #1] Spring Boot + Spring Batch + JSOUP을 활용한 뉴스 크롤링 📌 만드는 이유 우선 저는 경제관련 뉴스 보는 것을 굉장히 즐깁..
-
[뉴스파이프라인 #2] Spring Boot + Spring Batch + Jsoup에 Kafka Streams 로 파이프라이닝 해보기!프로젝트 노트 2023. 11. 8. 10:16
📌 들어가기에 앞서.. 어제는 이런걸 해보았습니다. [뉴스파이프라인 #1] Spring Boot + Spring Batch + JSOUP을 활용한 뉴스 크롤링 📌 만드는 이유 우선 저는 경제관련 뉴스 보는 것을 굉장히 즐깁니다. 그간 뉴스를 보려면 사이트에 접속을 하고 제가 직접 찾아봐야 함이 너무 귀찮더군요.. 누군가 제게 재깍재깍 알맞은 시간 deguruv.tistory.com Spring Batch를 통해 뉴스를 긁어와서 텔레그램으로 전송해주는 프로젝트를 가볍게(?) 만들어 보았습니다. 사실 이걸로도 충분히 경제와 부동산 뉴스를 텔레그램으로 볼 수 있게 되었습니다. 근데 막연하게 뇌리에 'Kafka Streams'를 공부했던 기억이 났습니다. 활용해보고 싶다는 생각이 강하게 들었습니다. '한 번 써..
-
[뉴스파이프라인 #1] Spring Boot + Spring Batch + JSOUP을 활용한 뉴스 크롤링프로젝트 노트 2023. 11. 6. 16:15
📌 만드는 이유 우선 저는 경제관련 뉴스 보는 것을 굉장히 즐깁니다. 그간 뉴스를 보려면 사이트에 접속을 하고 제가 직접 찾아봐야 함이 너무 귀찮더군요.. 누군가 제게 재깍재깍 알맞은 시간에 알려줬으면 좋겠다는 생각을 했습니다. 추가적으로 회사의 업무용 메신저로 텔레그램을 활용합니다. 오케이, 그럼 뉴스를 긁어와서 제 텔레그램으로 전송해주는 어플리케이션을 만들면 되겠군요? 해봅시다. 📌 아키텍쳐랄 것도 없지만.. 원대한 꿈을 꾸고 있습니다. 하지만 지금 스텝에서는 거기까지 얘기를 하진 않으려 해요. 그래도 아키텍쳐라는 것을 한 번이라도 그려보고 가는게 낫지 않을까요? 예상하셨겠지만, 크롤러에서 긁어와서 News라는 Record를 만들고 Telegram으로 전송하면 끝입니다. 📌 프로젝트 생성 'NewsP..
-
@RestControllerAdvice에 대하여스터디 노트 2023. 10. 18. 14:04
Spring Boot를 사용하면 기본적으로 에러를 처리하는 BasicErrorController라는 녀석이 있습니다. 이 컨트롤러는 Spring Boot를 사용하던 중 error가 발생할 경우 produces Type이 text/html일 경우 errorHtml이 호출됩니다. 여기서 RequestMapping의 produces는 contentType을 나타내는 속성입니다. 기본적으로 Spring Boot를 활용하면 별도의 에러 페이지 설정 없이도 error ModelAndView를 활용할 수 있습니다. 다만 우리가 직접 예외를 핸들링하고 싶을땐, Controller를 만들어 errorHtml() 메소드와 error()메소드를 직접 재정의하여 사용하면 됩니다. 하지만 url이 외부에 노출되기 때문에 에러 ..