Flyway 도입으로 정리한 데이터베이스 마이그레이션 관리
·
Programming/Spring
들어가며 회사 서비스 리뉴얼을 진행하면서 데이터베이스 변경 이력을 더 잘 관리할 필요가 생겼습니다. 스타트업에서는 요구사항이 자주 바뀝니다.저희 회사도 예외는 아니었습니다.기능이 바뀔 때마다 테이블과 컬럼도 계속 수정해야 했습니다. 처음에는 직접 SQL을 관리하며 대응했습니다.하지만 변경이 쌓일수록 한계가 분명해졌습니다.무엇을 언제 왜 바꿨는지 다시 찾는 일이 점점 어려워졌습니다. 그래서 데이터베이스 변경 이력을 더 체계적으로 관리하기 위해 Flyway를 도입하게 되었습니다.이 글에서는 데이터베이스 마이그레이션의 기본 개념과 Flyway를 선택한 이유, 그리고 우리 프로젝트에어떻게 적용하려고 했는지를 정리해보겠습니다. DB 마이그레이션이 필요한 이유 왜 DB 마이그레이션 관리가 필요했는가?처음에는 수..
@Component, @Controller, @Service, @Repository의 차이점은 무엇일까
·
Programming/Spring
스프링을 공부하다 보면 @Component, @Service, @Controller, @Repository를 자주 보게됩니다. 처음 보면 비슷합니다.모두 스프링이 관리하는 Bean으로 등록되기 때문입니다. 하지만 이들은 완전히 같은 의미가 아닙니다.공통점은 Bean 등록이고, 차이점은 역할과 사용 위치입니다. 이번 글에서는 네 어노테이션의 공통점과 차이점, 그리고 왜 구분해서 사용하는지를 간단하고 명확하게정리해보겠습니다.공통점@Component, @Service, @Controller, @Repository는 모두 스프링 빈으로 등록됩니다. 또한 @Service, @Controller, @Repository는 내부적으로 @Component를 기반으로 합니다.즉, 네 어노테이션의 공통점은 다음과 같습니다...