기술면접 11

싱글톤 패턴이란?

싱글톤 패턴이란? 애플리케이션이 시작될 때 어떤 클래스가 최초 한 번만 메모리를 할당하고(static) 그 메모리의 인스턴스를 만들어 사용하는 패턴 인스턴스가 필요한 경우 똑같은 인스턴스를 여러 개 만드는 것이 아니라, 동일(기존) 인스턴스를 사용하게 함 💡 장점 ⓐ 고정된 메모리 사용으로 new 인스턴스를 사용하기 때문에 메모리 낭비를 막음 ⓑ static(전역) 인스턴스이기 때문에 다른 클래스에서 데이터를 공유하기 쉬움 💡 단점 너무 많은 사용은 다른 클래스들 간의 결합도가 높아져 수정, 테스트가 어려워질 수 있다

정적 바인딩과 동적 바인딩

정적 바인딩(Static Binding) 컴파일(Compile) 시간에 성격이 결정됨 변수의 타입이 수퍼 클래스이니 수퍼 클래스의 메소드를 호출함 동적 바인딩(Dynamic Binding) 다형성을 사용하여 메소드를 호출할 때, 발생하는 현상 실행 시간(Runtime) 즉, 파일을 실행하는 시점에 성격이 결정됨 실제 참조하는 객체는 서브 클래스이니 서브 클래스의 메소드를 호출함

스프링 특징

1️⃣ 제어 반전, IoC (Inversion of Control)를 지원함. (예시가 DI) 컨트롤의 제어권이 개발자가 아니라 프레임워크에 있음 객체의 생성부터 모든 생명주기의 관리까지 객체의 제어권이 바뀐 것을 의미함 객체를 생성하고, 직접 호출하는 자바프로그램이 아니라, 만들어둔 자원을 프레임워크에서 호출해서 사용함 2️⃣ 의존성 주입, DI (Dependency Injection) 를 지원함. @Autowired 등 객체간의 의존관계를 관리하는 기술 어떤 객체가 필요로 하는 객체를 자기 자신이 직접 생성하는 것이 아니라, 외부에 있는 다른곳에서 자신이 필요로 하는 객체를 주입받는 것 3️⃣ POJO (Plain Old Java Object) 방식의 프레임워크 일반적인 J2EE 프레임워크에 비해 특..

getter, setter 사용이유

멤버변수에 사용자가 직접 접근을 못하게 private으로 접근 지정자를 설정하고 public으로 getter, setter메소드를 만듦 이 이유는 사용자가 public으로 쓴 getter, setter로 접근하기 때문에 매개변수같이 어떤 올바르지 않은 입력에 대해 사전에 처리할 수 있게 제한하거나 조절할 수 있기 때문 예를들어, setter에서 유효범위가 넘은 점수가 들어왔을 때의 처리를 할때 예외처리로 넘겨버림