[Spring Boot] Flyway를 이용한 DB 형상관리
·
Spring/Spring Boot
1. Flyway란?Flyway는 데이터베이스의 버전 관리 및 마이그레이션을 간편하게 도와주는 오픈 소스 라이브러리입니다. 데이터베이스 스키마와 데이터의 변경 이력을 코드로 관리할 수 있으며, 변경 사항을 쉽게 추적하고 반영할 수 있게 합니다.  2. Flyway의 주요 기능버전 관리: 데이터베이스 변경 이력을 버전별로 관리할 수 있습니다.자동 마이그레이션: 애플리케이션 시작 시 자동으로 데이터베이스 변경 사항을 적용할 수 있습니다.다양한 데이터베이스 지원: MySQL, PostgreSQL, Oracle 등 다양한 데이터베이스를 지원합니다.Rollback 기능: 잘못된 마이그레이션을 쉽게 되돌릴 수 있습니다. 3. Flyway 설정 및 사용 방법3.1. Flyway 의존성 추가먼저 프로젝트에 Flyway..
Spring Data JPA: 메서드 이름 기반 쿼리와 @Query 애노테이션 기반 쿼리 비교
·
Spring/Spring
Spring Data JPA를 사용하면 데이터베이스와의 상호작용을 쉽게 처리할 수 있습니다. 두 가지 주요 방법으로 쿼리를 정의할 수 있습니다. 메서드 이름 기반 쿼리와 @Query 애노테이션 기반 쿼리 이 두 가지 방법의 차이점과 장단점을 설명하겠습니다. 1. 메서드 이름 기반 쿼리란?메서드 이름 기반 쿼리는 Spring Data JPA에서 제공하는 강력한 기능으로, 메서드 이름을 분석하여 자동으로 쿼리를 생성하는 방식입니다. 메서드 이름의 접두사와 속성 이름을 사용하여 쿼리를 생성합니다.public interface ChampionRepository extends JpaRepository { Champion findByName(String name);}이 예제에서 findByName 메서드는 S..
[Spring Boot]스프링 부트에서 ddl-auto 사용 방법
·
Spring/Spring Boot
스프링 부트에서 ddl-auto 설정은 애플리케이션의 JPA(Hibernate)와 관련된 데이터베이스 스키마 관리 방식을 제어하는 중요한 설정입니다. 이 블로그 게시글에서는 ddl-auto 옵션을 사용하여 스키마 관리 작업을 어떻게 수행할 수 있는지 설명하겠습니다.1. DDL-AUTO 옵션이란?ddl-auto 옵션은 JPA 구현체인 Hibernate가 애플리케이션 시작 시 데이터베이스 스키마를 어떻게 처리할지를 결정합니다. 가능한 값들은 다음과 같습니다:none: Hibernate가 스키마 관리 작업을 수행하지 않습니다.validate: Hibernate가 엔티티와 데이터베이스 스키마를 검증하지만, 변경하지 않습니다.update: Hibernate가 엔티티와 데이터베이스 스키마를 비교하여 필요한 변경을 ..
[GitHub] 빈 패키지 commit 하기(.gitkeep)
·
Spring/Spring
GitHub에 빈 패키지 구조 커밋하기소프트웨어 개발 프로젝트에서 팀과의 효율적인 협업을 위해 미리 패키지 구조를 짜두는 것은 좋은 선택이 될 수 있습니다.Spring Boot와 같은 프레임워크를 사용할 때 패키지 구조를 미리 정의해두면 코드 작성 시 일관성을 유지할 수 있습니다.프로젝트의 패키지 구조를 미리 정의하고 빈 패키지를 GitHub에 커밋하는 방법을 설명하겟습니다. 1. 패키지 구조 정의먼저 프로젝트의 패키지 구조를 정의합니다.com.joon.project├── domain│ ├── account│ │ ├── controller│ │ ├── service│ │ ├── model│ │ ├── repository│ │ └── exception│ ├── p..
[GitHub] 협업시 GitHub 커밋 유형별 규칙
·
Spring/Spring
1. 협업 시 유용한 커밋 메시지 유형협업을 하는 프로젝트에서는 커밋 메시지를 일관되게 작성하는 것이 매우 중요합니다. 일관된 커밋 메시지는 변경 사항을 명확히 이해할 수 있게 하고, 코드 리뷰나 디버깅 시에도 큰 도움이 됩니다. 이번 포스트에서는 협업 시 자주 사용하는 커밋 메시지 유형과 규칙을 설명하겠습니다.2. 커밋 메시지 유형 요약유형 설명 예시feat새로운 기능 추가feat: 사용자 로그인 기능 추가fix버그 수정fix: 사용자 프로필 업데이트 오류 수정docs문서 변경docs: API 사용법 문서 추가style코드 스타일 변경style: 코드 포맷팅 수정refactor코드 리팩토링refactor: 사용자 서비스 로직 리팩토링perf성능 개선perf: 데이터베이스 쿼리 성능 개선test테스트 추..
[Spring] 도메인형 패키지 구조로의 전환
·
Spring/Spring
1. Overview이번 포스트에서는 최근 스프링 부트 프로젝트에서 도메인형 패키지 구조를 사용해본 경험을 공유하려고 합니다. 기존에는 계층형 패키지 구조를 주로 사용했었는데, 이번에 팀 프로젝트를 진행하면서 도메인형 패키지 구조를 도입하게 되었고, 그 이유와 결과를 설명해보겠습니다. 2. 계층형 패키지 구조란?먼저, 계층형 패키지 구조에 대해 간단히 설명해보겠습니다. 계층형 패키지 구조는 일반적으로 다음과 같이 구성됩니다:com.joon.project├── controller│ └── UserController.java├── service│ └── UserService.java├── repository│ └── UserRepository.java├── model│ └── User.java..
[Kotlin] 1. 코틀린이란?
·
Kotlin/Kotlin 입문
1. 코틀린(Kotlin)코틀린(Kotliin)은 간결하고 안전하며 자바(Java) 언어와 100% 호환이 가능한 언어입니다.간결성자바(Java)의 경우 getter, setter, 명시적인 위임과 같이 불필요한데 반드시 써야하는 준 비 코드가 존재합니다. 그러나 코틀린(Kotlin)은 간결하게 코드를 줄여줍니다.안정성강력한 타입 추론null 안정성 코틀린(Kotlin)으로 할 수 있는 것안드로이드 앱 개발서버 개발(Spring)멀티플랫폼 모바일 앱 개발 컴파일 및 실행.kt 파일 같은 경우에는 사람이 알아볼 수 있는 언어였다면 Kotlin Compiler를 통하여 Banary File로 변경하여 컴퓨터가 알아보기 쉽게 변경하여 JVM에서 사용할 수 있다. JVMJava Virtual Machine의 약..
[Spring] IntelliJ에서 구글 자바 스타일 가이드 적용하기
·
Spring/Spring
오늘은 IntelliJ 프로젝트에 구글 자바 스타일 가이드를 적용해 코드를 일관되게 만드는 방법을 소개하겠습니다. 저는 최근에 코드 스타일의 통일성이 팀 전체의 효율성을 높이는 데 중요하다는 것을 깨달았습니다. 이로 인해 새로운 팀원이 들어올 때 코드 스타일에 대한 불필요한 논쟁을 줄일 수 있습니다. 최근 혼자 진행하던 프로젝트에 새로운 팀원이 합류하게 되면서 코드 스타일을 어떻게 맞출지 고민하게 되었습니다. 이 과정에서 구글 자바 스타일 가이드를 발견했고, 이를 통해 코드의 일관성을 유지하면 팀 전체의 효율성을 높일 수 있을 것 같았습니다. 오늘은 IntelliJ 프로젝트에 구글 자바 스타일 가이드를 적용하여 코드 스타일에 대한 불필요한 논쟁을 줄이는 방법을 소개하겠습니다.1. 구글 자바 스타일 가이드..
[Spring Boot] Lombok 어노테이션 정리
·
Spring/Spring Boot
안녕하세요! Spring Boot와 Lombok을 함께 사용할 때 유용한 Lombok 어노테이션들에 대해 알아보겠습니다.Lombok은 코드의 반복을 줄여주고, 생산성을 높여주는 라이브러리로, Spring Boot와 함께 사용하면 매우 편리합니다.1. @Getter와 @Setter가장 많이 사용되는 어노테이션입니다. 필드에 대한 getter와 setter 메서드를 자동으로 생성해줍니다.사용한 경우import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class User { private String name; private int age;}사용하지 않은 경우public class User { private String name; ..
[Spring] Path Variable vs Query Parameter
·
Spring/Spring Boot
1. 들어가며 API를 설계하는 과정에서 URL의 구성 방식은 사용자와의 인터랙션을 결정짓는 중요한 요소입니다. 특히, RESTful API를 설계할 때, 리소스의 식별과 검색 조건 등을 URL에 어떻게 표현할지는 매우 중요한 설계 결정 중 하나입니다. API 명세서를 작성하던중 Path Variable과 Query Parameter의 정확한 차이점에 대하여 알고자 이 글을 작성합니다.. Path Variable과 Query Parameter의 공통점은 유동적인 값을 전달하기 위하여 URL로 넘겨진다는 것입니다. Path Variable 또는 path variable path parameter paramter URL parameter Query Parameter 또는 query string query p..
JoonYong
Development Note