728x90

IOC 2

Spring(스프링) - 객체지향 적용 및 스프링 기본

(interface) interface = new (구현 obj) 인터페이스를 통해 객체를 생성한 곳에서 객체 생성 부분만 변경 해 주면 쉽게 서비스 변경이 가능 => 문제점 : 클라이언트의 코드를 수정해야 함 DIP : 인터페이스에 의존을 하고 있지만 동시에 객체를 생성하기 때문에 구현 클래스에도 의존하고 있음 OCP : 구현 클래스를 교체 해야 하는 순간 의존하는 클라이언트의 소스를 변경 해야 함 => 해결하기 위해서는 인터페이스에만 의존 하도록 해야함. 즉, 누군가 구현 클래스를 대신 생성해서 사용하는 클래스의 인터페이스에 주입 해주어야 함 관심사의 분리 인터페이스의 역할을 인터페이스가 정하는 것이 아닌 애플리케이션 단위에서 정해야 함 => AppConfig 사용 AppConfig는 구현 객체를 생..

타입 변환과 다형성 구현

타입 변환 # 자동 변환 - 연산을 위해 기본 타입을 일치 시키며 컴파일러가 수행합니다. - 조상 타입 혹은 인터페이스 타입에 자식 타입을 대입 할 경우 자동으로 업 캐스팅을 수행합니다. - 기본 타입에서 Wrapper 타입(클래스 타입) 으로 변환은 boxing이라 하며 실체를 사용할 때 변환합니다. - Wrapper타입에서 기본 타입으로 변환은 unboxing이라 하며 값을 사용할 때 변환 합니다. # 강제 변환 - 캐스트 연산자 사용에 의한 강제 변환 입니다. - 참조 타입에서 캐스팅을 잘 못할 경우 ClassCastException이 발생할 수 있기 때문에 instanceof 연산자를 사용해 미리 확인 후 사용하는 것이 좋습니다. - 캐스팅을 성능을 저하 시키기 때문에 꼭 필요한 경우를 제외하고는..