반응형

1. 스프링 프레임워크에서 IoC(Inversion of Control)란 무엇이며, 왜 사용하는가?

대답: IoC(Inversion of Control)는 스프링 프레임워크의 핵심 원칙 중 하나로, 객체의 생성과 생명주기 관리를 애플리케이션 코드가 아닌 컨테이너가 담당하게 하는 것을 말합니다. IoC를 사용하는 주된 이유는 코드의 결합도를 낮추고, 유연성 및 확장성을 향상시키며, 테스트와 유지보수를 용이하게 하기 위해서입니다.

2. 의존성 주입(Dependency Injection)과 팩토리 패턴의 차이점은 무엇인가?

대답: 의존성 주입은 IoC의 한 형태로, 객체의 의존성을 외부에서 주입하는 방식입니다. 이를 통해 클래스 간의 결합도를 낮추고, 코드를 더 유연하게 만듭니다. 반면, 팩토리 패턴은 객체 생성을 캡슐화하는 디자인 패턴으로, 클라이언트가 객체의 생성 과정을 몰라도 되게 합니다. 의존성 주입은 주로 객체 간의 의존성을 관리하는 데 초점을 맞추고, 팩토리 패턴은 객체 생성의 복잡성을 추상화하는 데 중점을 둡니다.

3. static 키워드의 사용 사례와 장단점은 무엇인가?

대답: static 키워드는 클래스 레벨의 변수나 메소드에 사용되며, 이를 통해 인스턴스 생성 없이 해당 멤버에 접근할 수 있습니다. 사용 사례로는 상수 값 정의, 유틸리티 메소드 구현 등이 있습니다. **static**의 장점은 메모리 효율성과 접근성이지만, 과도한 사용은 객체지향 원칙에 어긋나고, 코드의 테스트와 유지보수를 어렵게 만들 수 있습니다.

4. public, private, 그리고 protected 접근 제어자에 대해 설명하라.

대답: public 접근 제어자는 클래스, 메소드, 필드가 어떤 클래스에서도 접근할 수 있음을 의미합니다. **private**은 해당 멤버가 선언된 클래스 내부에서만 접근할 수 있음을 의미하며, 다른 클래스에서는 접근할 수 없습니다. **protected**는 해당 멤버가 선언된 클래스와 해당 클래스를 상속받은 자식 클래스에서 접근할 수 있음을 의미합니다. 이러한 접근 제어자는 객체의 캡슐화를 돕고, 객체 간의 결합도를 관리하는 데 사용됩니다.

반응형
반응형

1. 싱글톤 패턴이란 무엇이며 어떤 문제를 해결하려고 사용하는가?

  • 오직 하나, 인스턴스, 전역 변수, 데이터베이스

답변: 싱글톤 패턴은 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴입니다. 이 패턴은 전역 변수를 사용하지 않고 객체의 유일한 인스턴스에 접근할 수 있는 방법을 제공합니다. 싱글톤 패턴은 주로 공유 리소스에 대한 일관된 접근 지점을 제공하거나, 시스템 전체에서 공유되어야 하는 설정 정보와 같은 경우에 사용됩니다. 예를 들어, 데이터베이스 연결이나 로그 파일 핸들러 같은 리소스에 대한 중복 생성을 방지하고, 메모리 사용을 최적화하는 데 유용합니다.

2. 싱글톤 패턴을 구현하는 방법에는 어떤 것들이 있나요?

답변: 싱글톤 패턴을 구현하는 방법은 여러 가지가 있습니다. 가장 기본적인 방법은 private 생성자와 static 메소드를 사용하는 것입니다. 이 방법에서는 클래스 내에 static으로 유일한 객체 인스턴스를 참조하는 변수를 선언하고, 객체 인스턴스를 반환하는 public static 메소드를 제공합니다. 이 메소드는 객체 인스턴스가 아직 생성되지 않았으면 새로 생성하고, 이미 생성되었으면 기존의 인스턴스를 반환합니다.

3. 싱글톤 패턴의 단점은 무엇인가요?

답변: 싱글톤 패턴은 유용하지만 몇 가지 단점이 있습니다. 첫째, 싱글톤 인스턴스는 전역 상태를 만들기 때문에 코드의 결합도를 높일 수 있습니다. 이는 코드의 테스트와 유지보수를 어렵게 만들 수 있습니다. 둘째, 멀티스레드 환경에서 싱글톤 객체의 동기화를 잘못 관리하면 성능 저하나 데드락 같은 문제가 발생할 수 있습니다. 셋째, 싱글톤 패턴의 사용은 객체 지향 디자인 원칙 중 하나인 '개방-폐쇄 원칙(Open/Closed Principle)'을 위배할 수 있습니다. 이 원칙은 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하지만, 변경에는 닫혀 있어야 한다는 것을 의미하는데, 싱글톤 인스턴스는 이 원칙을 준수하기 어렵게 만듭니다.

반응형

+ Recent posts