자바면접질문 72

개발자 면접 질문 - AOP 정의

1. AOP - 관점을 기준으로 프로그래밍 하는 기법 - 공통 관심 사항을 구현한 코드를 핵심 로직을 구현한 코드 안에 삽입하는 것 2. 주요 용어 - Joinpoint : Advice를 적용 가능한 지점을 의미한다. (메서드 호출, 필드 값 변경 등) - Pointcut : Joinpoint의 부분 집합. 실제 Advice가 적용되는 Joinpoint를 나타낸다. - Advice : 언제 공통 관심 기능을 핵심 로직에 적용할 지를 정의한다. - Weaving : Advice를 핵심 로직 코드에 적용하는 것을 의미한다. - Aspect : 여러 객체에 공통으로 적용되는 공통 관심 사항을 의미한다. * Weaving 방식 - 컴파일시 - 클래스 로딩시 - 런타임 시 (프록시를 이용하여 AOP를 적용한다.)..

개발자 면접 질문 - 의존성 주입 정의

1. 의존성 주입 - 객체 간의 의존 관계를 객체 자신이 아닌 외부의 조립기가 수행한다. 2. 구현 방식 - 생성자 방식 : 객체를 생성하는 시점에 의존하는 객체를 모두 전달받을 수 있다. - Setter (프로퍼티) 방식 : 어떤 의존 객체를 설정하는지 메서드의 이름으로 알 수 있다. - 필드(인터페이스) 방식 : 의존성을 주입하는 함수를 포함한 인터페이스를 작성하고, 인터페이스를 구현하도록 함으로써 실행시에 이를 통하여 의존성을 주입 * Field 방식을 추천하지 않는 이유 - 단일 책임의 원칙 위반 : 생성자 방식을 사용하면 파라미터가 많아짐과 동시에 하나의 클래스가 많은 책임을 갖는것을 알수 있으나 필드 방식은 의존성 주입이 쉬워 알기 어렵다. - 객체가 변할 수 있다.(불변성) : 생성자 방식과..

개발자 면접 질문 - jvm 튜닝

1. 튜닝 필요성 - Xms 옵션과 Xmx 옵션 메모리 설정 없이 사용중일때 - JVM 옵션에 -Server 옵션이 설정되어 있지 않을 때 - 시스템에 Timeout 같은 로그가 발생하면서 정상적인 트랜잭션 처리가 이루어지지 않을 때 2. 튜닝 목적 - 첫번째로 Old Area로 넘어가는 Object의 수를 최소화 한다. - Full GC의 실행 시간을 줄인다. 3. Object 수 최소화 방법 - String 대신 StringBuilder나 StringBuffer 사용 - 로그를 최대한 적게 쌓도록 한다. - 대용량 XML 파일을 사용 않는다. (현실적으로 이렇게 하기에는 어려움) - Object의 수를 줄이면 Old Area로 이동하는 Object의 수가 줄어들면서 Full GC 발생하는 빈도가 줄어..

면접 - 자바 2020.12.03

개발자 면접 질문 - 객체 지향 프로그래밍 5대 원칙

1. 단일 책임 원칙 - 객체는 단 하나의 책임만 가져야 한다. 2. 개방-폐쇄 원칙 - 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다. 3. 리스코프 치환 원칙 - 자식 클래스는 최소환 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다. 4. 의존 역전 원칙 - 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운것, 거의 변화가 없는 것에 의존한다. 5. 인터페이스 분리 원칙 - 인터페이스를 클라이언트에 특화되도록 분리시키라는 설계 원칙

면접 - 자바 2020.12.03

개발자 면접 질문 - 동기(Synchronous)와 비동기(Asynchronous)

1. 동기(Synchronous) - 요청과 결과가 동시에 일어난다 - 함수의 결과를 호출한 쪽에서 처리한다. - 결과가 나올 때까지 대기해야 한다. - 설계가 매우 간단하다. 2. 비동기(Asynchronous) - 요청과 그 결과가 동시에 일어나지 않는다. - 함수의 결과를 호출한 쪽에서 처리하지 않는다. - 결과가 나올 때까지 다른 작업을 수행할 수 있어 자원을 효율적으로 사용할 수 있다. - 설계가 동기보다 복잡하다.

면접 - 자바 2020.12.03