객체 지향 설계 원칙 SOLID라고 부르는 5가지의 설계 원칙이 존재한다. SRP(Single Responsibility Principle): 단일 책임 원칙 OCP(Open Closed Priciple): 개방 폐쇄 원칙 LSP(Listov Substitution Priciple): 리스코프 치환 원칙 ISP(Interface Segregation Principle): 인터페이스 분리 원칙 DIP(Dependency Inversion Principle): 의존 역전 원칙 앞 글자에 철자를 따서 SOLID라고 부르는데, 하나씩 정리를 해보자. SRP(Single Responsibility) - 단일 책임 원칙 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다. 클래스는 단 한개의 책임을 가져야한..
디자인 패턴이란 디자인 패턴은 소프트웨어 디자인에서 일상적으로 발생하는 문제에 대한 일반적인 해결책을 말한다. 기존에 존재하는 함수나 라이브러리들로 패턴을 찾아서 프로그램에 복사한다고 하여 패턴이 되는 것은 아니다. 패턴은 특정 코드 족각이 아닌, 특정 문제를 해결하는 일반적인 개념이다. 패턴 세부 사항을 따라 자신의 프로그램에 맞는 솔루션을 구현할 수 있다. 디자인 패턴의 목적 SW의 재사용성과 호환성 그리고 유지 보수성을 보장하기 위함이다. 패턴의 구성 대부분의 패턴들은 사람들이 많은 맥락에서 재현할 수 있도록 형식적으로 설명된다. 패턴의 의도(Intent)는 문제와 해결책을 간략하게 설명한다. 동기(Motivation)는 패턴의 가능성과 문제를 더 설명한다. 클래스의 구조(Structure)는 패턴..
객체지향 프로그래밍이란? 객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 이 방식은 오늘날 가장 많이 사용한 대표적인 프로그래밍 방식이다. 대표적으로 Java, C#등이 대표적인 객체지향 프로그래밍 언어이다. 객체지향 프로그래밍 특징 그리고 장점, 단점 객체 지향 프로그래밍에서는 크게 추상화, 캡슐화, 상속, 다형성의 네 가지 특징을 가진다. 추상화 객체에서 공통된 속성과 행위를 추출하는 것 공통의 속성과 행위를 찾아서 타입을 정의하는 과정 추상화는 불필요한 정보는 숨기고 중요한..