정리(9)
-
추상화
추상화란? 추상화(Abstract)란 어떠한 기능 중 핵심적인 기능을 추출하여 이를 일반화하는 객체 지향 설계 원칙이다. 여러 개의 객체에서 공통적이고 핵심적인 기능을 추출하고 문제 영역, 관점에 따라 필요하지 않은 기능을 제거해 대상화하는 객체 지향 설계 원칙이다. 주로 인터페이스(Interface)나 추상 클래스(Abstract Class)로 구현한다. 추상화의 특징으로는 문제 영역이나 관점에 의존적이라는 점이며, 이로 인해 같은 대상이라고 하더라도 어떠한 문제 영역, 관점에서 추상화를 진행했느냐에 따라 여러 가지의 추상화 모델이 나올 수 있다는 점이다. 추상화를 진행함으로써 얻을 수 있는 장점은 복잡도를 관리할 수 있다. 유연한 설계가 가능하다. 코드를 간결하게 해 준다. 로 세 가지 장점을 얻을 ..
2020.05.24 -
캡슐화
캡슐화란? 캡슐화(Encapsulation)이란 객체 지향 프로그래밍의 특징 중 하나로, 어떠한 목적을 수행하기 위해 필요한 데이터의 구조(필드)와 데이터를 다루는 행위(메소드)를 한 곳에 응집시켜 놓은 뒤 이에 대한 내부 로직은 정보 은닉을 통해 감추는 객체 지향 설계 원칙이다. 응집도를 높여주고 결합도를 낮춰주는 객체 지향 설계 원칙이다. 객체 지향 프로그래밍의 장점 중 하나인 유지보수 및 디버깅이 편리하다는 장점은 응집도가 높기 때문에 하나의 목적을 수행하는 코드가 뭉쳐 있으므로 해당 구간에 대한 분석이 쉬우며 결합도가 낮기 때문에 서로 다른 목적을 수행하는 코드가 서로에게 영향을 끼치는 부분을 최소화해 특정 기능의 수정이 필요할 경우 그 기능을 수행하는 코드만을 수정하면 되며, 디버깅 시에도 오류..
2020.05.23 -
객체지향과 절차지향
절차지향 프로그래밍(Procedural Programming)이란? 절차지향 프로그래밍이란 순차적인 처리가 중요시되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다. 장점 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어보다 코드의 실행처리속도가 빠르다. 단점 프로그램의 동작 순서와 동일하게 개발되었으므로 코드간의 연결이 긴밀(결합도가 높음)하기 때문에 요구사항 변경 등의 이유로 코드의 수정이 필요할 경우, 해당 코드와 연관된 모든 코드를 수정해야 하기 때문에 유지보수가 어렵다. 하나의 기능을 구현한 코드에 문제가 생긴 경우, 해당 코드와 연관된 모든 코드를 분석하면서 문제의 원인을 찾아야 하기 때문에 디버깅이 어렵다. 프로그램의 동작 순서와 동일하게 개발되기 때문에 동일한 기능..
2020.05.22