[Japring-Study 7] spring-core-2

Kim yohan·2024년 8월 14일

JapringStudy

목록 보기
7/12
post-thumbnail

spring-core-1에서는 @Component, @Autowired를 통해 spring bean간 의존성 주입을 해주는 것을 배웠는데, spring-core-2에서는 Java-based Configuration을 작성해 의존성 주입 해주는 방법을 배우게 되었다!


Configuration Type별 장단점

Configuration Type에는 XML, Annotation-based, Java-based가 있다!

XML

  • 장점
    • 설정을 한눈에 보기에 용이하다
    • Class 파일들과 설정을 분리함으로써, 관심사의 분리
    • 간단한 설정 변경은 별도의 컴파일 없이도 적용 가능
  • 단점
    • type safe하지 않다
    • 오타가 발생했을 때, debugging이 어렵다
    • JVM에 부하가 생긴다

Annotation-based

  • 장점
    • Java code로 작성해, type safe하다
    • 클래스 파일만 봐도, 설정을 쉽게 파악할 수 있다
  • 단점
    • POJO 개념에서 멀어진다
    • 설정이 변경될 경우 Application code 클래스 파일을 수정해야한다.
    • 변경사항 있을 경우 컴파일이 필요

Java-based

  • 장점
    • Java code로 작성해, type safe하다
    • 설정이 별도의 파일로 분리되어, 관심사의 분리
    • 한 곳에서 Application Configuration을 나타낼 수 있음
    • 설정을 변경할 때, 어플리케이션 코드를 수정할 필요 없음
  • 단점
    • 변경사항이 있을 경우 컴파일이 필요

Profile 분리 이유

  • 로컬에서 테스트를 하다가, 실제 운영 중인 DB의 테이블을 삭제하거나, 변경할 수도 있다
  • Local의 코드 변경이 CI/CD를 통해 Prod 환경에 올라갈 수 있다
  • 하나의 설정 파일만 가지고 있다면, Local, Dev, Prod 전환 시 파일을 매번 수정해야함
  • 분리하면 환경에 따라 다른 DB를 사용할 수 있다
profile
꾸준히 성실하게

1개의 댓글

comment-user-thumbnail
2024년 8월 19일

잘 봤습니다!

답글 달기