본문 바로가기

Spring3

[Spring] profile별 환경 분리 하기 Spring profile별 환경 분리 하기 1. 환경을 분리해야 하는 이유? 실무에서 개발할때는 운영 환경에 테스트를 할수는 없습니다. 테스트시에 혹여나 데이터를 잘못 건드리는 경우는 장애를 초래 할수 있기 때문인데요. 테스트간 별다른 큰 문제가 발생하지 않으면 좋겠지만, 그렇지 않을 확률이 높으니까요. 그래서 테스트시에는 별도로 분리된 환경에서 테스트하는것이 좋습니다. 혹여나 잘못되더라도 운영 환경에는 아무런 영향이 없기 위함입니다. 예를들면 테스트간 사용하는 DB는 개발용도로만 사용하는 DB이면 좋을것입니다. 2. 어떻게 분리된 환경을 사용할까? 스프링에서는 설정된 프로필에 따라 다른 환경에서 구동될수 있도록 하는 기능을 제공하고 있답니다. 예를 들어 개발환경에서 테스트하는 경우 로컬 DB에 접근 .. 2024. 2. 13.
[Spring] 의존성 주입(Dependency Injection, DI) 정리 [Spring] 의존성 주입(Dependency Injection, DI) 정리 1. 의존성 주입(DI) 이란 무엇인가? 의존성 주입 (Dependency Injection)에 대해 알아보기 전에 객체지향 프로그래밍에 대해 알아보겠습니다. 객체 지향 프로그래밍을 통해 애플리케이션을 만들때 다양한 객체를 생성하게 됩니다. 생성된 객체들은 특정 기능을 수행하기 위해 서로 다른 객체들과 상호 작용(message passing)을 하게됩니다. 좀더 쉽게 설명하기 위해 자동차, 휠, 타이어를 예로 들어보겠습니다. 1. 자동차는 4개의 바퀴를 가지고 있고, 바퀴는 휠과 타이어로 구성되어있습니다. 2. 경우에 따라 자동차의 휠과 타이어를 교체할 수 있습니다. 위의 문장에 객체를 대입해서 생각해보겠습니다. 1. 자동차.. 2023. 8. 8.
[Spring] @EnableJpaAuditing 기능 사용해 생성/수정 시간 등록하기 EnableJpaAuditing 사용해보기 1. JPA Auditing 이란 무엇인가? 데이터 베이스에 존재하는 테이블들에는 공통적으로 존재하는 데이터들이 있습니다. 바로 생성 날짜, 마지막 수정 날짜와 같은 컬럼 입니다. ORM을 사용하는 경우는 이런 공통 데이터들이 엔티티 마다 중복된 코드들이 존재하게 됩니다. 만일 공통된 부분의 수정이 있는 경우 관련된 코드를 전부 변경해줘야 합니다. 그래서 보통은 이런 공통 데이터만을 갖고 있는 엔티티를 별도로 만들고, 이 클래스를 상속 받아 사용합니다. 다음과 같이 말이죠. public abstract class BaseEntity { private LocalDateTime createdAt; private LocalDateTime updatedAt; } pub.. 2023. 6. 29.