HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🚀
Random Bit Flip
/
🍓
[2기 - 에프] 3주차 RBF
🍓

[2기 - 에프] 3주차 RBF

주차
SpringBoot Part1
회고일
Apr 11, 2022
참여자
멘토
Property
tag
💡
왜 > 어떻게

나온 주제


dto & entity

  • entity에 왜 setter를 사용하지 말아야하며, 그에 대한 해결책은? → 빌더 사용
Builder 기반으로 객체를 안전하게 생성하는 방법 - Yun Blog | 기술 블로그
실무에서 Lombok 사용법 에서 기본적인 Lombk 사용법과 Builder 사용법을 간단하게 정리 한 내용을 먼저 참고하면 좋습니다. JPA를 이용하면 엔티티 객체들을 Builder 기반으로 생성하는 것이 흔한 패턴입니다. 이러한 경우 Builder의 문제점들과 이것을 더욱 안전하게 사용하는 방법에 대해서 이야기해보겠습니다. JPA 엔티티 객체들에 Builder 어노테이션을 이용해서 엔티티 객체를 Builder를 이용하는 것이 흔한 패턴입니다.
Builder 기반으로 객체를 안전하게 생성하는 방법 - Yun Blog | 기술 블로그
https://cheese10yun.github.io/spring-builder-pattern/

기본 생성자의 접근 제어자(protected vs private), @NoArgsConstructor(access = AccessLevel.PROTECTED)

  • 기본적으로 2가지 다 무분별한 객체 생성을 막기 위함
  • why? protected? → privite은 Jpa에서 proxy 생성 불가
[JPA] Entity Class의 @NoargsConstructor (access = AccessLevel.PROTECTED)
실무에서 JPA를 활용하다보면 Entity 생성시 @NoargsConstructor (access = AccessLevel.PROTECTED) 이라는 Annotation을 붙여서 개발을 하게 된다. 이에 조금 더 정확히 이해하고자 이번 블로그 글로 언급하고자 한다. 이 글을 읽는 분들은 모두 알다시피 Lombok 라이브러리에는 생성자 관련한 두개의 어노테이션이 존재한다. AllargsConstructor NoArgsConstructor 1. AllargsConstrutor 말 그대로 '모든 매개변수 생성자'인 것 처럼 해당 클래스 내의 모든 변수값을 가진 생성자를 자동으로 만들어 준다.
[JPA] Entity Class의 @NoargsConstructor (access = AccessLevel.PROTECTED)
https://erjuer.tistory.com/106
[JPA] Entity Class의 @NoargsConstructor (access = AccessLevel.PROTECTED)

try with resource → 자동 반환 굿

Java - Try-with-resources로 자원 쉽게 해제하기
try-with-resources는 try(...)에서 선언된 객체들에 대해서 try가 종료될 때 자동으로 자원을 해제해주는 기능입니다. try에서 선언된 객체가 AutoCloseable을 구현하였다면 Java는 try구문이 종료될 때 객체의 close() 메소드를 호출해 줍니다. 자바6에서 리소스 사용 및 해제하는 방법을 알아보고, try-with-resources로 동일한 코드를 리팩토링해보면서 장점이 무엇인지 알아보겠습니다. Java7 이전에, try-catch-finally 구문에서 자원을 해제하려면 정말 귀찮았고 코드 양도 많고 매우 지저분했습니다.
Java - Try-with-resources로 자원 쉽게 해제하기
https://codechacha.com/ko/java-try-with-resources/
Java - Try-with-resources로 자원 쉽게 해제하기
 

properties, yaml 을 같이 사용했을 때의 호출순서, 그에 따라 발생할 수 있는 문제점.

  • application.properties파일과 application.yaml 파일을 프로젝트에 동시에 포함시키지 않는 것이 좋다.
    • application.properties가 나중에 로드되어 이미 할당된 값을 재 정의할 수 있기 때문
www.baeldung.com
https://www.baeldung.com/spring-boot-yaml-vs-properties

resource 의 이해

[Spring] Resource 추상화
Spring Boot에서 resource를 설정할때 classpath로 mapping시 prefix 사용을 선호한다. java.net.URL 을 Resource로 감싸서 추상화 하는 기법을 기술한다 Spring은 java.net.URL 을 org.springframework.core.io.Resource 로 감싸서 추상화한 클래스이다. 스프링 내부에서 많이 사용하는 인터페이스이다 java.net.URL 이 기본적으로 여러 prefix를 지원하는 프로토콜은 http,https, ftp, file, jar 이지만 classpath 기준으로 리소스를 읽어오는 기능이 없다.
[Spring] Resource 추상화
https://sujl95.tistory.com/5
[Spring] Resource 추상화
 

@Qualifier vs @Profile

 

생성자 의존성 주입을 사용해야하는 이유

  • Setter, Field Injection 단점 (Null pointer exception 발생, 순환참조)
  • 생성자 주입을 사용할 경우 final을 사용할 수 있다는 부가적인 장점

@Qualifier

  • 오타를 컴파일 오류로 잡아내기 쉽지 않음 → 따로 어노테이션을 생성하여 문제를 해결할 수 있음.

YAML이란?

YAML, XML, JSON의 장단점 및 특징

Logback.xml에서 appender에 따른 별개의 log-level 지정

  • filter 태그를 사용

Optional & Exception