본문 바로가기

☕️ JAVA/🍃 Spring5

스프링 부트 살펴보기 / 의존성 관리 간소화, 배포 간소화, 자동 설정 웹 백엔드 개발을 시작하며 많은 언어와 프레임워크를 사용해 보았습니다. 튜토리얼 수준으로 Python의 Django, Flask, Node Express, Nest를 접했고 주로 Java SpringBoot, Golang의 Gin을 사용하였습니다. 최근 Gin을 주로 사용하면서 SpringBoot가 그리울 때가 있습니다. Gin에서는 SpringBoot에서 당연히 해주는 것들이 없고, 직접 구현해야 하는 경우가 많았거든요. (언어, 프레임워크가 추구하는 바가 다르기 때문에 직접적인 비교는 실례지만요.) 아무쪼록 Golang Gin 사용 덕분에 직접 구현하며 날 것의 맛을 알게 되었고, MSG 가득한 SpringBoot의 마법(?)에도 관심이 가게 되었습니다. SpringBoot를 사용하며 당연하게(또는 .. 2023. 6. 4.
Maven Standard Directory Layout과 plain jar, executable jar 이번 글에서는 간략하게 Maven Standard Directory Layout와 plain jar, executable jar에 대해 소개하려 합니다. Maven Standard Directory Layout 흔히 spring boot 프로젝트를 생성하면 아래와 같은 패키지 구조를 가지게 됩니다. > tree src src ├── main │ ├── java │ │ └── com │ │ └── kukim │ │ └── recipe │ │ └── RecipeApplication.java │ └── resources │ ├── application.properties │ ├── static │ └── templates └── test └── java └── com └── kukim └── recipe └─.. 2022. 12. 28.
Spring VS Spring Boot 몇 가지 차이점 Spring Boot로 스프링을 처음 학습하며 Boot의 편리한 기능에 물들어 기존 Spring은 어떻게 구성되고 사용되는지 잘 몰랐습니다. Spring과 Spring Boot의 차이점을 간단히 살펴보려 합니다. (반성을 하며.. 🥹) 자세한 내용은 하단 레퍼런스를 참고해주세요. +a) Spring Boot Starter Spring Boot Starter란 Spring에서 사용하는 라이브러리 간의 의존성과 버전 조합을 확인하여 공개한 의존성 그룹(?)이라고 볼 수 있습니다. Spring Boot는 이를 활용하여 의존성 문제를 해결하고 있습니다. 차이점 설정 파일 관리 Spring 프레임워크의 경우 Dependency를 설정해줄 설정 파일과 버전을 직접 작성해야 합니다. # Spring 프레임워크 Mav.. 2022. 9. 23.
./gradlew bootRun vs java -jar로 실행할 때의 차이점 (리소스 경로) 😰 상황 ./gradlew bootRun으로 스프링 부트 실행할 때 동적 페이지 리소스 경로에 문제가 없었다. 하지만 heroku 배포할 때 ./gradlew bootRun으로 자바 프로젝트가 실행되는 것이 아니라 빌드된 jar 파일을 실행하여 작동한다. 이때 java -jar로 실행할 때 동적 페이지 리소스 경로에 문제가 발생하였다. 🤔 원인 ./gradlew bootRun 실행과 java -jar jarPath로 실행할 때 리소스 위치가 다르다. gradle의 경우 좀 더 유연한 기능을 제공하지만 java -jar 로 실행할 때 문제가 될 수 있다. ✅ 해결 java-spring-cafe 프로젝트 commit 중 : fix 동적 리소스 경로 에러 수정 만약 resource/index.html을 동적 .. 2022. 3. 19.
Spring boot에서 H2 DB 3가지 모드 사용하기(embedded, In-Memory, Server) 잘못된 내용이 있습니다. 참고용으로만 사용해주시기 바랍니다. 글을 내리려다 꾸준히 오시는 분들이 계셔서 그대로 유지하고 있습니다. 감사합니다. 환경 : Java 11 + Spring Boot 2.6.2 + Gradle 데이터베이스 : H2 DB H2 DB의 3가지 모드 H2DB는 자바 기반 오픈소스 RDBMS(관계형 데이터 베이스 관리 시스템)이다. H2DB Cheat Sheet를 살펴보면 세 가지 용도를 찾을 수 있다. 1. Embedded Mode 2. In-Memory Mode 3. Server Mode Server Mode Server Mode는 공식 사이트에서 H2를 Plafform-Independent 버전을 다운로드하고 h2/bin/h2.sh를 터미널로 실행하면 h2가 TCP 통신을 할 수.. 2022. 3. 16.