티스토리 뷰

객체지향 프로그래밍(OOP)에 대해 설명해주세요. 알고있는 원칙이나 키워드를 언급해주세요

객체지향 프로그래밍은 여러개의 객체들 간의 상호작용으로 구성하는 프로그래밍입니다.

객체지향 프로그래밍으로 코드의 재사용성과 유지보수가 쉽습니다. 그리고 객체지향 프로그래밍에서는 중요한 키워드가 있는 클래스, 객체, 캡상추다가 있습니다.

 

클래스는 객체를 생성하기위한 설계도이며 필드와 메서드가 정의되어 있습니다. 

객체는 클래스가 구체화된 형태로 메모리에 실제로 존재하며 각각의 속성값을 가지고 있을 수 있습니다. 

그리고 캡상추다는 캡슐화, 상속, 추상화, 다형성인데

 

캡술화는 객체의 안정성과 신뢰성을 높이기 위해 객체의 기능을 외부에서 접근하는 것을 막는 것입니다.

상속은 부모 클래스의 특성과 동작을 물려받아서 재사용하는 것입니다.

추상화는 공통된 속성과 동작들을 상위개념으로 정의하고 이것을 재사용을 해서 코드의 가독성과 유지보수성을 높입니다.

다형성은 동일한 이름의 메서드를 다른 객체에서 다르게 구현하는 것을 의미하고 실행할 때 어떤 구현을 할지 정하는 것입니다.

 

 

객체지향 프로그래밍 원칙은 SOLID가 있는데 

SRP (Single Responsibility Principle, 단일 책임 원칙)는 클래스는 단 하나의 책임을 가져야 하는 것입니다. 이는 클래스가 변경되어야 하는 이유가 단 하나뿐이어야 함을 의미합니다. 이를 통해 클래스의 응집도를 높이고, 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

 

OCP (Open-Closed Principle, 개방-폐쇄 원칙)은 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 합니다. 즉, 새로운 기능을 추가할 때는 기존의 코드를 변경하지 않고 확장할 수 있도록 설계해야 합니다. 이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다.

 

LSP (Liskov Substitution Principle, 리스코프 치환 원칙): 자식 클래스는 언제나 부모 클래스의 자리에 대체될 수 있어야 합니다. 즉, 상속 관계에서는 하위 클래스가 상위 클래스의 기능을 제대로 수행해야 합니다. 이를 통해 다형성을 지원하고, 안정적인 코드 구조를 유지할 수 있습니다.

 

ISP (Interface Segregation Principle, 인터페이스 분리 원칙): 클라이언트는 자신이 사용하지 않는 인터페이스에 의존하도록 강요받지 않아야 합니다. 즉, 인터페이스를 작은 단위로 분리하여 클라이언트가 필요한 기능만 사용할 수 있도록 해야 합니다. 이를 통해 인터페이스의 응집도를 높이고, 결합도를 낮출 수 있습니다.

 

DIP (Dependency Inversion Principle, 의존성 역전 원칙): 상위 수준 모듈은 하위 수준 모듈에 의존해서는 안 되며, 양쪽 모두 추상화에 의존해야 합니다. 즉, 의존 관계를 추상화에 의존하도록 설계해야 합니다. 이를 통해 유연하고 확장 가능한 시스템을 구축할 수 있습니다.

 

 

REST API란 무엇인가요? (모두가 답변) 프로젝트에 REST API를 사용한 이유가 무엇인가요? (프로젝트에 REST API를 사용하셨을 경우에만 추가 답변), REST API 말고 다른 비교할만한 것을 알고 있나요?

REST API는 웹 서비스를 구축하기 위한 아키텍처 스타일 입니다. HTTP 프로토콜을 기반으로 작동하고 웹 서비스 데이터를 URI로 식별하고 HTTP 메서드를 사용하여 해당 자원에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행하는 것입니다.

 

REST API를 사용한 이유는 URI와 HTTP 메서드를 사용하여 직관적이고 읽기 쉬운 인터페이스를 제공해서 쉽게 사용할 수 있고 클라이언트와 서버는 독립적으로 서로의 변경에 영향을 주지 않으면서 개발할 수 있습니다. 그리고 다양한 플랫폼과 언어에서 지원되는 표준화된 방식이여서 다양한 클라이언트 애플리케이션에서 재사용을 할 수 있습니다.

 

REST API 말고도 XML 기반의 통신 프로토콜인 SOAP가 있고 구글에서 개발한 고성능, 효율적인 원격 프로시저 호출 프레임워크 gRPC가 있습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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
글 보관함