티스토리 뷰

반응형

3. java의 접근 제어자의 종류와 특징

표로 대체

 

 

 

4.OOP의 4가지 특징

Object-Oriented Programming

추상화

-> 인터페이스로 클래스들의 공통적인 특성(변수, 메소드)들을 묶어 표현한다

 

캡슐화

-> 데이터(속성)와 데이터를 처리하는 함수(메소드)를 하나로 묶는다

 

다형성

-> 객체(클래스)가 연산을 수행하게 될 때, 하나의 메시지에 대해 각 객체(클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 능력

 

 

상속성

-> 기존 클래스를 수정하지 않으면서도 이미 정의되어 있는 내용을 확장해서 사용할 수 있는 방법을 제공한다

 

 

 

4-1 캡슐화와 은닉화의 차이

캡슐화는 객체에서 메서드에 대한 은닉

은닉화는 객체에서 직접 접근하지 못하게 숨기는 것

(이 부분은 찾아봤는데 잘 이해하지 못했다)

 

 

 

 

5. OOP의 5가지 설계 원칙 SOLID

출처 : https://mangkyu.tistory.com/194

 

[OOP] 객체지향 프로그래밍의 5가지 설계 원칙, 실무 코드로 살펴보는 SOLID

이번에는 객체 지향 프로그래밍의 5가지 핵심 원칙인 SOLID에 대해 알아보고자 합니다. 실제로 애플리케이션을 개발할 때 어떻게 적용할 수 있을지 구체적인 예시를 들어 살펴보고자 합니다. 아

mangkyu.tistory.com

 

 

단일 책임의 원칙(SRP, Single Responsibility Principle)

하나의 모듈을 한 가지 책임을 가져야 한다

모듈이 변경되는 이유가 한가지여야 한다

여기서 변경의 이유가 한가지라는 것은 해당 모듈이 여러 대상 또는 액터들에 대해 책임을 가져서는 안되고, 오직 하나의 액터에 대해서만 책임을 져야 한다는 것을 의미한다.

어떤 클래스가 단 하나의 책임 만을 갖고 있다면, 특정 액터로부터 변경을 특정할 수 있으므로 해당 클래스를 변경해야 하는 이유와 시점이 명확해진다.

 

 

개방 폐쇄 원칙(OCP, Open-Closed Principle)

확장에 대해 열려 있고 수정에 대해서는 닫혀있어야 한다는 원칙

확장에 대해 열려 있다 : 요구사항이 변경될 때 새로운 동작을 추가하여 애플리케이션의 기능을 확장할 수 있다

수정에 대해 닫혀 있다 : 기존의 코드를 수정하지 않고 애플리케이션의 동작을 추가하거나 변경할 수 있다

 

개방 폐쇄 원칙을 지키기 위해서는 추상화에 의존해야 한다. 추상화란 핵심적인 부분만 남기고, 불필요한 부분은 제거함으로써 복잡한 것을 간단히 하는 것이고, 추상화를 통해 변하지 않는 부분만 남김으로써 기능을 구체화하고 확장할 수 있다. 변하지 않는 부분은 고정하고 변하는 부분을 생략하여 추상화함으로써 변경이 필요한 경우에 생략된 부분을 수정하여 개방-폐쇄의 원칙을 지킬 수 있다.


 

인터페이스 분리 원칙(ISP, Interface Segregation Principle)

 

체가 충분히 높은 응집도의 작은 단위로 설계됐더라도, 목적과 관심이 각기 다른 클라이언트가 있다면 인터페이스를 통해 적절하게 분리해줄 필요가 있는데, 이를 인터페이스 분리 원칙이라고 부른다. 즉, 인터페이스 분리 원칙이란 클라이언트의 목적과 용도에 적합한 인터페이스 만을 제공는 것이다. 인터페이스 분리 원칙을 준수함으로써 모든 클라이언트가 자신의 관심에 맞는 퍼블릭 인터페이스(외부에서 접근 가능한 메세지)만을 접근하여 불필요한 간섭을 최소화할 수 있으며, 기존 클라이언트에 영향을 주지 않은 채로 유연하게 객체의 기능을 확장하거나 수정할 수 있다.


 

리스코프 치환 원칙(LSP, Liskov Substitution Principle)

위 타입은 상위 타입을 대체할 수 있어야 한다는 것이다. 즉, 해당 객체를 사용하는 클라이언트는 상위 타입이 하위 타입으로 변경되어도, 차이점을 인식하지 못한 채 상위 타입의 퍼블릭 인터페이스를 통해 서브 클래스를 사용할 수 있어야 한다는 것이다.

 

의존 역전 원칙(DIP, Dependency Inversion Principle)

고수준 모듈은 저수준 모듈의 구현에 의존해서는 안 되며, 저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존해야 한다는 것

고수준 모듈 : 변경이 없는 추상화된 클래스(또는 인터페이스)

저수준 모듈 : 변하기 쉬운 구체 클래스
의존 역전 원칙이란 결국 추상화에 의존하며 구체화에는 의존하지 않는 설계 원칙을 의미



 

6. JVM 구조

 

반응형

'면접질문' 카테고리의 다른 글

백엔드개발 기술면접) 신입개발자 JAVA 1-1  (0) 2022.03.01
개발자 공통질문  (0) 2021.09.09
중소기업 개발자 공통질문  (0) 2021.09.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함