객체지향 프로그래밍

포스팅에 앞서, 공부한 내록을 기록하며 적절한 사진을 찾아 보충하려다가 어떤 글에 필요한 모든 사진이 있었다. 약간 오래되었지만 너무나도 잘 설명된 글이다. UML: 클래스 다이어그램과 소스코드 매핑불과 몇 년 되지 않은 학생 시절... 처음으로 UML을 접했고, UML의 기초적인 그리는 법과 사용법을 배웠습니다. 개인적으로 쉽지 않은 수업이었는데 그 중 가장 많이 사용되는 클래스 다이어그램에www.nextree.co.kr객체지향 프로그래밍이 무엇인지, 객체지향 프로그래밍에서 중요한 것은 어떠한 것이고 특성이 무엇이지 등 객체지향에 대해 이해했더라도 객체지향을 잘 지킨 프로그램을 만드는 것은 그 다음의 일이다. 객체지향 프로그래밍은 프로그램의 기능들을 잘게 나눠 객체들에게 책임을 맡긴다. 이러한 객체지향..
다형성이란다형성은 다른 특성인 추상화와 관련있다. 다형성이란 여러가지(poly)의 형태(morphe)를 가지는 성질을 말한다. 상속, 구현 등으로 관계가 형성된 객체들 중 더 구체적인 객체인 하위 객체의 인스턴스는 추상적인 상위 객체의 형태를 지닐 수 있다. 인스턴스의 타입을 추상체로 할당할 수 있다는 것이다. 코드로 예시를 보는 것이 이해가 빠르다. 객체지향의 특성 - 추상화객체지향의 특성 중 하나인 추상화는 상속과 관련이 있다. 객체지향의 특성 - 상속객체지향의 특성 중 상속에 대해 기록해보려한다. 상속은 두 객체 사이에서 정의되는 관계다. 두 객체는 다음jtechtalk.tistory.com  추상화 글에 썼던 로그인 클래스로 예시를 들어보겠다.interface Login { void logi..
객체지향의 특성 중 하나인 추상화는 상속과 관련이 있다. 객체지향의 특성 - 상속객체지향의 특성 중 상속에 대해 기록해보려한다. 상속은 두 객체 사이에서 정의되는 관계다. 두 객체는 다음과 같다.상속을 해주는 객체: 상위, 부모, 혹은 super 객체상속을 받는 객체: 하위, 자jtechtalk.tistory.com상속에서 짚고 넘어갔듯이, 상속 관계에선 상위 객체가 하위 객체보다 추상적이어야 하고 하위 객체는 추상적인 상위 객체의 구체적인 상태여야 상속 관계가 바람직한 상속 관계다. 상속 관계에서 추상 객체와 구체 객체는 다음과도 같다.추상화된 객체: 추상체구체적인 객체: 구상체상속과 추상화추상화는 상대적이다. 상속의 관계도 추상화로 이루어진 관계라고 할 수 있다. 상대적으로 추상적인 상위 객체가 추상..
객체지향의 특성 중 상속에 대해 기록해보려한다. 상속은 두 객체 사이에서 정의되는 관계다. 두 객체는 다음과 같다.상속을 해주는 객체: 상위, 부모, 혹은 super 객체상속을 받는 객체: 하위, 자식, (this) 객체상속을 하는 객체는 하위 객체에게 필드 또는 메서드를 전달할 수 있다. 하위 객체가 상위 객체의 접근 제한에 따라 상위 객체의 필드 또는 메서드에 접근하고 사용할 수 있는 것이 객체지향의 특성인 상속이다. 부모 객체, 그리고 자식 객체는 다른 말로 추상 객체, 그리고 구체 객체라고 할 수 있다. 상속에 관해선 바로 이 추상과 구체의 개념적인 요소들을 기록해보려한다.추상 객체와 구체 객체흔히들 부모 또는 상위, 그리고 자식 또는 하위 객체라고 하지만, 상속의 관계에 놓여진 두 객체를 가장 ..
객체지향의 특성은 4가지다.캡슐화상속추상화다형성객체지향을 처음 접했을 때 특성 이전에 SOLID원칙을 먼저 접했다. 그래서 SOLID와 객체지향의 특성이 엄연히 다르다는 것을 잘 인지하지 못 했었는데, SOLID는 객체지향의 특성을 더욱 살려 좋은 소프트웨어를 설계하기 위한 원칙이다.캡슐화캡슐화는 객체가 책임을 수행하는 단위로써 완전함을 갖는 의미를 가지고 있다. 객체가 어떤 기능을 수행함에 있어, 다른 외부 객체와 협력할 필요가 있을 수도 있다. 이 때 객체가 다른 외부 객체를 의존한다고도 하는데, 가장 이상적인 캡슐화는 이 의존성이 최대한 없도록 만드는 것이다. 가능한 독립적으로 기능을 수행할 수 있는 완전성을 가지는 것이 가장 높은 수준의 캡슐화가 성취된 것이고, 의존성이 있더라도 최대한 느슨하게 ..
프로그래머스의 백엔드 데브코스에서 했던 학습을 처음부터 복습하며 기록을 남겨보려 한다. 가장 먼저 객체지향 프로그래밍에 대해 학습했다. Java가 1990년대에 객체지향 언어로 등장했다. 직관적으로, 객체지향 프로그래밍은 프로그램을 객체들과 그들 간의 메세지로 구성한 프로그램이다. 그렇다면 Java로 작성한 프로그램은 객체지향 프로그래밍인가? 그렇지 않다. 객체지향적 철학, 사고에 맞게 프로그램을 만들어야 객체지향 프로그래밍이 완성된다. Python, C++ 등의 다른 언어, 그리고 Javascript 또한 객체지향 사고를 접목해 객체지향 프로그래밍을 만들 수 있다.OOP의 등장 배경객체지향 프로그래밍은 흔히들 프로그램이 거대화하면서 등장했다고 한다. 거대한 프로그램을 만드는 것은 어떤 방법으로든 가능하..
지난 포스트에서 다루었 듯이 책임이란 "변경의 이유"이다. 하지만 단일 책임 원칙을 고려하면서 어떠한 애플리케이션을 구현하다 보면 책임에 대해 고민에 빠지게 된다. 변경의 이유는 절대적으로 정해져 있는 것이 아니기 때문이다. 책임 == 기능 ?단일 책임 원칙, 혹은 SRP에 대해서 리서치를 하면 다양한 예시들을 접할 수 있다. 하지만 많은 예시들의 클래스에선 하나의 메서드만을 가지고 단일 책임 원칙을 설명하는 경우가 많다. 객체가 한 가지의 기능 만을 가졌을 때 단일 책임 원칙을 논하기는 매우 쉽기 때문이다. 그래서 그러한 예시들과 단일 책임 원칙에 대한 설명을 보다 보면 이해가 되는 듯 싶다. 하지만 실제로 단일 책임 원칙을 고려하며 설계를 하거나 구현을 하게 되면 무언가 헷갈리게 된다. 홀로 공부하며..
소프트웨어를 처음 공부하기 시작하고 나서 가장 어려웠고 지금도 어려운 부분이 SOLID이다. SOLID를 공부해야겠다 생각하고 처음 접하게 되는 것이 SOLID의 S인 Single Responsibility Principle, 단일 책임 원칙이다. 이리 저리 구글링을 해보며 단일 책임 원칙에 대해 공부하고 이해했다 싶더라도, 막상 적용해보려니 어려움을 많이 느꼈다. 그렇게 시행착오를 겪으며 나만의 결론에 어느정도 도달하게 되었다. 물론 아직 부족하지만, 내 생각들을 정리하며 복습해보려 한다!🚀 책임이란 무엇일까?SOLID라는 다섯가지 원칙은 객체지향의 절대적인 원칙이 아니다. Clean Code의 저자인 로버트 마틴이 객체지향의 원칙으로서 권장하고 이제는 주류로 자리잡은 원칙이 SOLID이다. 로버트 ..
인재이
'객체지향 프로그래밍' 카테고리의 글 목록