728x90

객체 지향 프로그래밍 3

객체 지향 설계(SOLID)란?

SOLID 원칙들은 결국 자기 자신 클래스 안에 응집도는 내부적으로 높이고, 타 클래스들 간 결합도는 낮추는 High Cohesion - Loose Coupling 원칙을 객체 지향의 관점에서 도입한 것이다. 왜 그랬을까? 간단하다. 좋은 소프트웨어는 응집도가 높고 결합도가 낮기 때문이다. 결국 모듈 또는 클래스 당 하나의 책임을 주어 더욱더 독립된 모듈(클래스)을 만들기 위함이다. 이렇게 설계된 소프트웨어는 재 사용이 많아지고, 수정이 최소화 되기 때문에 결국 유지 보수가 용이해진다. 자 그럼 객체 지향 설계 5대 원칙이 각각 무엇인지 아래를 보자. SRP (Single Responsibility Principle) 단일 책임 원칙 OCP (Open Closed Principle) 개방 폐쇄 원칙 LS..

SOLID 원칙 (부제 객체지향)

이전 포스팅에서 객체지향 프로그래밍이 등장하게 된 배경을 기반으로 OOP 의 핵심 키워드와, 4가지 큰 특징에 대해서 알아보았다. 이번 포스팅에선 객체지향 프로그래밍의 특성과 장점을 최대한으로 끌어올리기 위해 프로그램을 어떻게 설계해야 하는 지에 대한 이야기를 다뤄본다. 객체지향 설계과정 요구사항 (제공해야 할 기능) 을 찾고 세분화 한다. 그리고 그 기능을 알맞은 객체로 할당한다. 기능을 구현하는 데에 필요한 데이터를 객체에 추가한다. 해당 데이터를 이용하는 기능을 구현한다. (기능은 최대한 캡슐화) 객체 간에 어떻게 메소드 호출을 주고받을 지 결정한다. 객체지향 설계원칙 흔히 SOLID 라고 부르는 5가지 설계원칙이 존재한다. 솔직히 원문 그대로 해석하면 외계어가 따로 없다. (공돌이의 한계인 듯 하..

객체지향 프로그래밍 다시 보기

객체지향을 이해하려면 객체지향 프로그래밍에 대해 설명해보라 하면 대부분 말문이 막힐 것이다. 그나마 대답한다고 하면, '어... 실세계의 사물 개념을 고대로 옮겨서 프로그래밍하는 방식..?' 이라고 대답할 것이다. 객체지향 프로그래밍의 개념을 이해하려면, 무작정 OOP 가 어떤 것이다 하고 외우기보단 등장 배경에 대해 알 필요가 있다. 따라서 객체지향 프로그래밍이 등장하기 이전의 프로그래밍 패러다임을 몇 가지 알아보자. 순차적 (비구조적) 프로그래밍 정의한 기능의 흐름에 따라 순서대로 동작을 추가하며 프로그램을 완성하는 방식이다. 간단한 프로그램의 경우, 이렇게 코드를 짜게 되면 흐름이 눈으로 보이기 때문에 매우 직관적일 것이다. 그러나, 조금이라도 프로그램의 규모가 커지게 되면 곤란해진다. 만일 A →..

728x90