본문 바로가기
반응형

Spring4

[Spring Tip] 엔티티 설계시 주의점 Setter Setter가 열려있다면 프로젝트 사이즈가 커진 뒤 유지보수가 굉장히 어렵다. 모든 연관관계는 지연로딩으로 설정!!! (중요) 즉시 로딩(EAGER)을 사용한다면 연관된 모든 테이블을 로딩해야한다. 따라서 지연 로딩(LAZY)로 설정하고 사용해야 한다. 만약 연관된 엔티티를 함께 조회해야 한다면, fetch join 또는 엔티티 그래프를 사용한다.(n+1문제?) ! ManyToOne은 default가 EAGER, OneToMany는 LAZY. 따라서 ManyToOne은 LAZY로 fetch 값을 변경이 필수적이다. 초기화와 동시에 메모리 할당을 하는것이 'null' 문제에서 안전하다. best practice. 테이블 네이밍 전략 주로 언더바 전략을 사용하고 스프링에서 카멜케이스와 .을 _로.. 2022. 10. 3.
[JAVA, JPA, SPRING] 어노테이션 모음집 @SpringBootApplication - 해당 어노테이션이 존재하는 패키지와 하위 패키지를 모두 스캔함. @Entity - DB 테이블과 매핑 대상임을 알림 @Id - primary key @GeneratedValue - auto increment @Column - 매핑할 column과 변수 명이 다를 경우 지정 가능 @ManyToMany @ManyToOne @OneToOne @OneToMany @JoinColumn @Controller @Service - component scan 대상 @Transactional - 쓸 수 있는 옵션이 spring에서 제공하는 어노테이션에 더 많다. 하지만 spring에 종속적이다. class에 어노테이션을 걸면 public 메소드에 모두 적용된다. ReadOnly.. 2022. 9. 30.
[Spring Boot] 스프링 컨테이너, @Bean, @Component 스프링 프로젝트에서 Configuration 관련 코드를 스프링 컨테이너에 Bean으로 등록시키는 데는 2가지 방법이 있다. 어노테이션 Bean을 사용하는 방법과 어노테이션 Component를 사용하는 방법이 그것이다. 해당 포스팅에서는 스프링 컨테이너, @Bean, @Component, 그리고 스프링 컨테이너에 등록된 Bean을 가져오는 방법을 기록해 보려 한다. 스프링 컨테이너 생성 방법 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext를 스프링 컨테이너라 한다. ApplicationContext는 인터페이스이다. AnnotationConfigA.. 2022. 3. 29.
SOLID SOLID란? 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것. SOLID의 5가지 내용 SRP : 단일 책임 원칙 OCP : 개방-폐쇄 원칙 LSP : 리스코프 치환 원칙 ISP : 인터페이스 분리 원칙 DIP : 의존관계 역전 원칙 하나하나 뜯어 보자! SRP (single responsibility principle) 한 클래스는 하나의 책임만을 가져야 한다. 쉽게 말해 변화가 있을 때 최대한 적은 수정을 할 수 있어야 한다. OCP (Open/Closed principle) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 다형성을 최대한 활용해야 함. LSP (Liskov substitution principle) 프로그램의 속성을 변경하지 않고.. 2022. 3. 18.
반응형