1. 추상 클래스와 인터페이스

2. 싱글톤 패턴이란?

3. GC에 대해 설명해 주세요

4. 객체지향의 설계 원칙

<aside> 💡

알게 됐어요!

**public class SingletonService {**

**// static으로 선언하면 class level에 올라가기 때문에 하나만 존재 가능**

**private static final SingletonService instance = new SingletonService();**

**public static SingletonService getInstance() {**

**// 메서드를 통해서만 생성된 객체에 접근이 가능하다**

**//**

**public static SingletonService getInstance() {**

**// 메서드를 통해서만 생성된 객체에 접근이 가능하다**

**// 구현 객체를 사용해야 하기 때문에 DIP를 위반한다**

**return instance;**

**}**

**private SingletonService() {**

**// 생성자를 private으로 설정한다**

**}**

**public void logic() {**

**System.out.println("싱글톤 객체 로직 호출");**

**}**

**}**

JPA에서 Repository 인터페이스는 SimpleJpaRepository를 상속받아 구현됩니다. @Repository 어노테이션은 스프링의 빈으로 등록되며, 이를 통해 스프링이 런타임 시에 리플렉션을 이용해 해당 인터페이스에 대한 구현체를 생성합니다. 이때, @Entity로 정의된 클래스는 JPA의 엔티티 매핑 규칙을 따르고, 기본 생성자(@NoArgsConstructor)를 통해 인스턴스가 생성됩니다. 이렇게 생성된 Repository 인터페이스(FundingRepository 등)는 데이터베이스 작업을 처리하는 데 사용됩니다.

</aside>