부록 - 스프링 학습 중 궁금한 개념정리

김찬희·2024년 3월 24일

Spring

목록 보기
2/6

Log의 logback과 SLF4J

  • SLF4J는 Java 애플리케이션에서 로깅 기능을 추상화하는 역할을 합니다. 이는 다양한 로깅 프레임워크를 사용할 때 코드의 변경 없이 로깅 시스템을 쉽게 교체하고자 할 때 유용합니다.
  • 로깅(logging) 기능은 애플리케이션의 실행 중에 발생하는 이벤트나 상태를 기록하는 것입니다.
  • Logback은 SLF4J의 구현체 중 하나로, SLF4J와 함께 사용하기 위해 설계되었습니다. Logback은 기본적으로 로깅 시스템을 제공하며, 로깅 이벤트를 기록하고, 출력할 대상을 선택하고, 로깅 이벤트의 형식을 지정할 수 있습니다.

    SLF4J는 로깅 기능을 추상화하고, Logback은 이를 구현한 로깅 시스템입니다.

JSON

  • JSON(JavaScript Object Notation)은 데이터를 효율적으로 저장하고 교환하기 위한 경량의 데이터 형식입니다.
  • JSON은 객체와 배열로 데이터를 구조화하고 키-값 쌍을 사용하여 데이터를 표현합니다.

Optional< T >

  • Optional< T >은 Java 8에서 도입된 클래스로, 값이 존재하지 않을 수 있는 상황에서 NullPointerException을 방지하고자 만들어졌습니다.
  • 따라서 값의 존재 여부를 확인할 때 NullPointerExcepiton을 회피하기 위해 주로 활용합니다.

Lambda

  • 익명 함수를 간결하게 표현하는 방법입니다.
  • 람다식은 파라미터 목록, 화살표 ->, 그리고 함수 몸체로 구성됩니다. 예를 들어, (x, y) -> x + y는 두 개의 파라미터를 더하는 함수를 나타냅니다.

ArrayList

  • 자바 컬렉션 프레임워크에 속하는 클래스로, 크기가 가변적인 배열을 구현한 것입니다.
  • 배열과 마찬가지로 순차적인 데이터를 저장하며, 인덱스를 사용하여 요소에 접근할 수 있습니다. 하지만 ArrayList는 크기가 동적으로 조절되므로 배열보다 유연한 특징이 있습니다.
  • add(), remove(), get() 메서드 등을 사용해 요소의 추가, 제거, 조회 등 다양한 연산을 지원합니다.

@AfterEach,@BeforeEach

  • AfterEach : 이 애너테이션은 각각의 테스트 메소드가 실행된 후에 실행할 코드를 지정합니다
  • @BeforeEach: 이 애너테이션은 각각의 테스트 메소드가 실행되기 전에 실행할 코드를 지정합니다.

@Transactional

  • 트랜잭션 관리를 지원하기 위해 사용됩니다. @Transactional 어노테이션이 부착된 메서드에서 예외가 발생하면 자동으로 롤백됩니다. 이는 데이터베이스 작업이 일부 실패하더라도 전체 트랜잭션이 롤백되어 데이터 일관성을 유지하는 데 도움이 됩니다.
  • 이는 동시에 여러가지의 테스트가 동작할때 테스트가 독립적으로 실행되는데 있어 필요한 기능입니다.

JPA

  • JPA(Java Persistence API)는 자바 애플리케이션에서 데이터베이스를 사용하는 방법을 표준화한 인터페이스입니다. JPA를 사용하면 객체와 관계형 데이터베이스 간의 매핑을 쉽게 처리할 수 있습니다.
  • EntityManager
    • 엔터티의 영속성(persistence)을 관리하고, 엔터티 매니저 팩토리(EntityManagerFactory)를 통해 생성됩니다.
    • 데이터베이스에서 엔터티를 조회하거나 엔터티를 데이터베이스에 저장, 수정, 삭제하는 등의 작업을 수행할 수 있습니다.
    • 스프링 프레임워크에서는 보통 @PersistenceContext 어노테이션을 사용하여 EntityManager를 주입받습니다.
  • persist() 메서드
    • persist() 메서드는 EntityManager를 통해 엔터티를 영속 상태로 만드는 작업을 수행합니다.
    • 영속 상태란 엔터티가 데이터베이스에 저장되었다는 것을 의미합니다. 즉, 엔터티 객체가 데이터베이스와 동기화되어 영구 저장될 수 있는 상태입니다.
    • persist() 메서드는 엔터티를 영속성 컨텍스트(Persistence Context)에 추가합니다. 이후 트랜잭션이 커밋될 때 영속성 컨텍스트에 있는 엔터티들이 데이터베이스에 저장됩니다.
    • persist() 메서드를 호출할 때에는 해당 엔터티의 식별자(ID)가 이미 존재하지 않아야 합니다. 즉, 새로운 엔터티를 추가할 때 사용됩니다.

AOP

  • 공통 관심 사항과 핵심 관심 사항을 분리하는 방법입니다. AOP를 활용해 공통 관심 사항을 분리하여 관리할 수 있게 합니다.

Bean

  • Spring Framework에서의 "Bean"은 Spring 컨테이너가 관리하는 객체를 가리킵니다.
  • 스프링 Bean을 등록하는 방법
    - 컴포넌트 스캔과 자동 의존관계 설정
    - @Component 를 포함하는 @Controller,@Service,@Repository도 스프링 빈으로 자동으로 등록됩니다.
    -자바코드로 직접 스프링 Bean 등록하기

0개의 댓글