<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>simon🌱</title>
        <link>https://velog.io/</link>
        <description>무럭무럭 자라나라 🌱</description>
        <lastBuildDate>Mon, 12 Jul 2021 11:55:12 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>simon🌱</title>
            <url>https://images.velog.io/images/sheon-j/profile/1c789256-7f93-4437-b2a2-3e6a555ab7bd/TIL_thumbnail-03.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. simon🌱. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/sheon-j" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[객체지향프로그래밍(Object-Oriented Programming)]]></title>
            <link>https://velog.io/@sheon-j/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8DObject-Oriented-Programming</link>
            <guid>https://velog.io/@sheon-j/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8DObject-Oriented-Programming</guid>
            <pubDate>Mon, 12 Jul 2021 11:55:12 GMT</pubDate>
            <description><![CDATA[<h3 id="객체지향프로그래밍-정리">객체지향프로그래밍 정리</h3>
<p>객체 지향 프로그래밍 이전에 <strong>절차형 프로그래밍</strong> 방식이 있었다. 알고리즘의 명령을 <strong>순서</strong>대로 처리하여 아웃풋을 내는 방식이다. 절차형 프로그래밍의 직관적이고 단순한 방식은 한 가지 결함이 있었는데, 알고리즘이 조금이라도 복잡해지면 순서로 표현할 수 없이 꼬여버리는 <strong>‘스파게티 코드’</strong> 현상이 발생하였다.</p>
<p>이와 같은 문제를 해결하고 보다 정교한 알고리즘을 구성하고자 관련된 변수와 함수를 객체 유닛으로 묶어내는 <strong>객체 지향 프로그래밍</strong>(Object-Oriented Programming, 이하 oop)이 나타나게 되었다. oop의 가장 큰 장점은 객체 별 정보를 주고 받을 수 있는 <strong>유연성</strong>과 유지 보수를 용이하게 할 수 있는 <strong>직관성</strong>이 있다.</p>
<p>oop에는 여러 가지 특성이 있다.</p>
<ol>
<li><p><strong>캡슐화(Encpsulation)</strong> : 변수와 함수를 하나로 묶는 것을 의미하는 캡슐화는 클래스를 통해 구현할 수 있다. 클래스에 접근하려면 인스턴스를 생성하여야 하며, 이를 통해 속성과 메소드를 다룰 수 있다. 또힌 객체의 구현 방식을 클래스 내부로 은닉하여 외부로 부터 보호할 수 있는 장점이 있다.</p>
</li>
<li><p><strong>상속과 포함</strong> : 부모와 자식 클래스를 구분하여 부모 클래스의 정보와 기능을 자식클래스에 물려주는 것을 상속이라 한다. 기존 클래스의 기능을 유지하면서도 재사용과 수정에 용이하다.</p>
</li>
<li><p><strong>다형성</strong> : 자식클래스에 따라 클래스를 다르게 처리할 수 있다. 서브타입의 속성이나 메소드가 상황에 따라 다르게 해석될 수 있다.</p>
</li>
</ol>
<p>효율적인 oop는 기능과 동작을 분리해야하고 중복을 지양하는 등 설계에 가깝다. 이러한 복잡성 때문에 협업을 원활히 하고자 ‘디자인 패턴’이라는 것이 나타나기도 하였다.</p>
]]></description>
        </item>
    </channel>
</rss>