기본 콘텐츠로 건너뛰기

라벨이 면접인 게시물 표시

Spring

AOP Aspect Oriented Programming 독립적인 모듈화가 불가능한 트랜잭션 경계설정과 같은 부가기능을 모듈화하는 작업 Aspect: 핵심기능에 부가되어 의미를 갖는 특별한 모듈 AOP는 Aspect를 분리함으로써 핵심기능을 설계하고 구현할 때 객체지향적인 가치를 지킬 수 있도록 도와주는 것(토비의 스프링) Transaction 더 이상 나눌 수 없는 단위 작업 SQL을 이용해 다중 로우의 수정이나 삭제를 했을 때, 일부는 되고 나머지는 안되는 경우는 없다. DB가 트랜잭션을 보장해 준다고 믿음. 여러 SQL이 실행될 때, 어느 한 SQL이 장애가 발생하면 이전에 실행된 SQL 작업은 취소해야 하는데, 이 취소 작업을 "트랜잭션 롤백" 여러 SQL이 실행될 때, 모든 SQL이 성공적으로 마무리했다면, DB에 해당 SQL 작업들을 확정해야 하는데, 이 확정 작업을 "트랜잭션 커밋" JDBC의 트랜잭션은 default 로 setAutoCommit(true) 이므로, 프로그램적으로 여러개의 SQL에 대하여 트랜잭션 경계설정을 하기 위해서는 autoCommit을 false로 설정해야 한다. CGLIB Code Generator Library 런타임에 동적으로 클래스의 프록시를 생성함 JDK Dynamic Proxy 보다 더 빠르다. JDK Dynamic Proxy 의 경우 리플렉션을 이용해 인터페이스의 구현 클래스를 위임하는 프록시 클래스를 이용하며, CGLIB는 클래스 파일을 상속받아서 프록시 클래스를 만들어 낸다. JDK Dynamic Proxy(인터페이스 필요), CGLIB(인터페이스 필요없음) AspectJ 는 스프링 컨테이너를 사용하지 않는 경우에도 프록시 클래스 생성을 해주며, 런타임시 바이트코드를 조작하는 방식을 사용한다. IOC 제어권의 이전을 통한 제어관계 역전 오브젝트가 자신이 사용할 오브젝트를 스스로 선택하지 않고 생성하지...

Java

인터페이스(Interface) 둘 사이를 연결하는 매개체 public abstract method로 구성 모든 변수는 public static final로 구성 instance를 생성할 수 없음 interface간의 상속(extends)이 가능 class는 interface를 구현(implements)함으로 추상메서드들의 오버라이딩 관계가 성립함 interface의 형을 대상으로 참조변수의 선언이 가능 자바8 부터 default 메서드, static 메서드 정의 가능 마커 인터페이스로 사용하기도 함 상속(Inheritance) 연관된 일련의 클래스들에 대해 공통적인 규약을 정의할 수 있습니다. 자식클래스의 인스턴스가 생성되면 부모클래스 생성자부터 자식클래스 생성자 순으로 호출된다. 단일 상속 static 변수는 상속하지 않는다. 자식클래스는 부모클래스의 모든 특성을 지닌다. IS - A 관계 오버로딩(Overloading) 메서드 오버로딩: 한 클래스 내에 동일한 이름의 메서드를 둘 이상 정의할 때, 각 메서드 매개변수의 선언이 다를 경우 생성자 오버로딩 : 한 클래스 내에 생성자의 매개변수를 각기 달리 정의할 경우 오버라이딩(Overriding) 부모 클래스에서 정의된 메서드를 자식 클래스에서 다시 재정의 final 클래스를 정의하는데 다른 클래스가 상속하는 것을 원하지 않을 때 메서드를 정의하는데 다른 클래스에서 오버라이딩을 원하지 않을 때 static 클래스 변수: 모든 인스턴스가 공유하는 변수를 선언 클래스 메서드: 인스턴스 생성을 할 필요없이 바로 사용하는 메서드를 선언 JVM의 메모리 영역 Method 영역: 메서드의 바이트코드, static 변수 Stack 영역: 지역변수, 매개변수 Heap 영역: 인스턴스 Wrapper 클래스 기본 자료형을 객체로 만들거나(boxing) Wrapper 클래스 인스턴스를 기본자료형으로 ...