본문 바로가기

☕️ JAVA25

스프링 부트 살펴보기 / 의존성 관리 간소화, 배포 간소화, 자동 설정 웹 백엔드 개발을 시작하며 많은 언어와 프레임워크를 사용해 보았습니다. 튜토리얼 수준으로 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.
매개변수가 유효한지 검사하기 이 글은 책 이펙티브 자바 3판 Item 49와 하단 Reference 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 메서드, 생성자들의 입력값이 특정 조건을 만족하길 바란다. 예를 들어 인덱스 값은 음수 X, 객체 참조는 null이 아니어야 한다. 보통 메서드, 생성자의 몸체가 실행되기 전에 매개 변수 확인한다면 잘못된 값이 넘어왔을 때 즉각적, 깔끔한 방식으로 예외를 던질 수 있다. 어떻게 유효한지 검사해야 할까? public, protected 메서드 보통, 몸체(주요 로직) 실행되기 전 상단에서 매개변수 값 확인 후 예외를 던진다 자바독에 @throws, 예외 경우를 작성한다. public 또는 protected 메서드는 패키지 개발자가 아닌 외부 사용자가 사용한다. 따라서 매개변수.. 2022. 3. 21.
./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.