본문 바로가기
반응형

좋은 개발자가 되기위한 방법들/객체지향9

객체지향 4대특성(캡슐화) 우리가 개발을 하면서 인터페이스와 구현을 분리한다는 것은 변경될만한 부분에대해 객체의 내부에 꽁꽁 숨겨놓는 다는것을 의미합니다. 또한 이 방법을 실행 하기위해서는 객체지향에서 말하는 캡슐화에대한 이해를 명확히 하는것이 좋다 생각됩니다. 캡슐화의 정의 객체의 자율성을 보존하기 위해 구현을 외부로부터 감추는 것을 " 캡슐화 " 라고한다. 객체란 상태와 행위를 구현할때 해당되는 중요한 데이터들을 보존하고, 보호하는 역할이 필요한데 그럼에도 충분히 협력적이고 자율적일수 있어야합니다. 캡슐화는 보통 연관되는 변수, 함수를 Class로 묶는작업을 말합니다. 하지만 일반적인 Class의 생성과는 다른점은 정보를 외부에서 접근하지 못하도록 하는 것인데 이로 인하여 캡슐화의 이명으로는 " 정보은닉 " (Ingormati.. 2021. 9. 24.
객체지향의 중심인 클래스란? 객체지향 프로그래밍 언어는 Java부터 C#, Python, Ruby, Smalltalk(최초) 등등 굉장히 많이 존재한다. 객체지향의 개념은 1960년대 부터 출발했다고 하는데 초기의 객체지향 프로그래밍에서 중요하게 생각한 부분은 새로운 개념의 데이터 추상화를 제공하는 클래스(Class)라는 블럭에 맞춰있었다. 앨런 케이 같은 객체지향 선구자들이 처음 의도한것과는 다르게 객체지향 = 클래스 라고 생각하였다. 객체가 중심이었는데도 말이다. 그로인해 다양한 언어가 등장하고 책들이 출간되면서 클래스의 중요성이 과하게 강조되었다고한다. 지금까지의 시간이 흘러가면서 많은 사람들은 객체지향하면 클래스를 떠올리게 될정도로 정보는 엇나갔고 어떤 객체 지향 프로그래밍 언어를 이야기할 때 사람들은 클래스를 정의하는 방법.. 2021. 9. 15.
객체지향이란 뭘까? 제목은 내가 자신에게 던진 질문이다. 내가 지금 작성하고 있는 자바를 처음 배웠을때의 설명은 단순 명료했다. 객체지향이란 실세계를 직접적이고 직관적으로 모델링할 수 있는 패러다임이다. 어느 포털사이트에서 검색을 해봐도 어순은 다르더라도 항상듣는 말인데 결국 객체지향 프로그래밍이란 현실에 존재하는 사무을 최대한 유사하게 모방해 소프트웨어 내부로 옮겨오는 작업이라는 것을 의미하며 이는 현실을 추상화 한다는 것을 의미한다. 그렇지만 막상 특정한 애플리케이션을 개발하면서는 현실에서 대응이되는 사물을 발견하기란 참 어렵고 개념적인 측면을 실세계의 부분과 모방한다는 설명은 납득이 조금 어렵다. 일을 하게되면 그냥 하라는 대로 하면 되겠지만 그렇게 되었을때 내가 누군가에게 설명을 해주게되면 그게 올바른 설명인것인가 .. 2021. 9. 15.
객체지향 4대 특성 (추상화) 객체지향의 4대 특성중에 하나인 추상화는 내 머리속에서는 단어만 들었을때 가장 이해하기 힘든 단어인데 예를들어 캡슐화 한다고하면 하나씩 소분한다는 느낌이 머리에들어오고 상속한다 하면 부모님이 자식에게 상속해 준다 뭔가 그런 느낌이 들지만 추상화...? 머리속이 벌써부터 꼬이기 시작하는데 내가 들어본 추상화 라는 단어는 말을 너무 추상적으로 한다는 뭔가 그런 이야기들 뿐이니 이번 기회에 한번 집중해서 이해해 보려 했다. 개념 추상화란 실세계의 복잡한 상황을 간결하고 명확하게 핵심 위주로 단순화시켜 슈커 플래스를 선정하는 개념이다. 추상화는 코드의 재사용성과 가독성을 높이고 생산성을 높이며 쉬운 유지보수를 하게 해준다. 사람들이 이해할 수 있는 언어나 그림으로 표현하게되는데 이것이 모델링에도 도움을 줄 수 .. 2021. 9. 13.
728x90
반응형