목록CS (36)
delpho
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bx8DeE/btrE758XEWc/Pmze4EtcsBeGKvvF2kWty0/img.png)
1. 스프링의 장점 (각 장점에 대해 자세히 기술할 것) # 스프링의 장점 1. POJO 기반의 구성 개발할 때, 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않음 Java코드를 이용해서 객체를 구성하는 방식 그대로 스프링에서 사용할 수 있음 자유롭게 객체지향적 설계를 구현 가능 높은 생산성과 유연한 테스트를 할 수 있다 2. DI을 통한 객체 관계 구성 IoC Container를 통해 객체 간의 느슨한 결합을 유지 유지보수가 편리해짐 3. 관점 지향 프로그래밍 (AOP) 메소드를 개발할 때 비즈니스 메소드마다 반복되는 공통로직을 분리 개발자가 비즈니스 로직에 집중 가능 공통 로직은 외부의 클래스로 분리 + 코드에 명시적으로 표시하지 않고 선언적으로 처리 공통 기능을 분리함으로써 응집도가 높..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bcmiTL/btrEuPFO16B/ryXsmxWcSDMPZZUCphIwM0/img.jpg)
1. 강한 결합과 느슨한 결합이 무엇인지 설명해주세요. # 의존성 어떤 클래스A가 다른 클래스(B) 또는 B의 인터페이스를 이용할때 A가 B에 의존한다고 한다. A는 B없이 작동할 수 없음 여기서 A는 dependant / B는 dependency라고 함 dependant는 자신의 dependencies들에게 의존 의존성이 높다는건(강하다는건) A객체를 수정했을때, 그 객체와 결합된 B에서도 코드를 수정해야되는 경우가 생기는 것 이때, 두 클래스는 결합(coupled)되어 있음. 두 클래스 사이의 결합은 강할수도, 느슨할 수도 있음 의존성이 강한지 약한지에 따라 달림 의존성, 결합은 방향이 존재 A가 B에게 의존한다고해서 B가 A에 꼭 의존적인것은 아님! # 결합도 서로 다른 모듈 간에 상호 의존하는 정..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/kXCrh/btrECBmtcHF/8ur8RCKgegiBpiL9zclgFk/img.png)
1. SOLID(객체지향 5대원칙)에 대해서 설명해주세요. # 객체지향 프로그래밍의 5가지 설계 원칙 (SOLID) SOLID = 객체지향 프로그래밍을 하면서 지켜야하는 5대 원칙 SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙) SOLID 원칙을 철저히 지킨다면? 시간이 지나도 변경 용이 유지보수와 확징이 쉬운 프로그램 개발 가능 1. SRP (단일 책임 원칙, Single Responsibility Principle) 하나의 모듈은 한 가지 책임을 가져야 한다는 것 즉, 모듈이 변경되는 이유가 한가지여야 함 어떤 클래스가 단 하나의 책임 만을 갖고 있다면, 특정 액터로부터 변경을 특정할 수 있으므로 해당 클래스..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/CepxI/btrD8iP2P4y/vw1tb46SFkDYLtBAozRgyk/img.png)
1. 인터페이스와 추상클래스의 차이점에 대해 설명해주세요. # 추상 클래스 클래스를 설계도에 비유한다면 추상 클래스는 미완성 설계도에 비유 추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스 상속을 위한 클래스이기때문에 객채 생성 불가! # 추상 클래스 규칙 추상 클래스는 키워드 abstract를 붙여 표현 추상 메서드를 포함하지 않은 클래스에서도 abstract를 붙여서 추상 클래스로 지정할 수도 있음 클래스를 abstract로 지정하면 new를 통해 객체를 직접 생성할 수 없다. 메소드에 abstract를 사용할 경우 interface의 메소드와 같이 구현 부분은 없다. abstract로 선언한 메소드를 자식 클래스에서 반드시 구현해야 한다. (오버라이딩) 이는 자식 클래..