<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
		<id>http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?action=history&amp;feed=atom&amp;title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0329_14%EC%9D%BC%EC%B0%A8</id>
		<title>선미 파이썬 0329 14일차 - 편집 역사</title>
		<link rel="self" type="application/atom+xml" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?action=history&amp;feed=atom&amp;title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0329_14%EC%9D%BC%EC%B0%A8"/>
		<link rel="alternate" type="text/html" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0329_14%EC%9D%BC%EC%B0%A8&amp;action=history"/>
		<updated>2026-04-04T00:26:07Z</updated>
		<subtitle>이 문서의 편집 역사</subtitle>
		<generator>MediaWiki 1.27.1</generator>

	<entry>
		<id>http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0329_14%EC%9D%BC%EC%B0%A8&amp;diff=166&amp;oldid=prev</id>
		<title>Azuremei: 판 1개를 가져왔습니다</title>
		<link rel="alternate" type="text/html" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0329_14%EC%9D%BC%EC%B0%A8&amp;diff=166&amp;oldid=prev"/>
				<updated>2018-04-05T06:46:13Z</updated>
		
		<summary type="html">&lt;p&gt;판 1개를 가져왔습니다&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='ko'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;2018년 4월 5일 (목) 06:46 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ko'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(차이 없음)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Azuremei</name></author>	</entry>

	<entry>
		<id>http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0329_14%EC%9D%BC%EC%B0%A8&amp;diff=165&amp;oldid=prev</id>
		<title>2018년 3월 29일 (목) 12:55에 Shanmei님의 편집</title>
		<link rel="alternate" type="text/html" href="http://dhlab.aks.ac.kr/~azuremei/wiki/index.php?title=%EC%84%A0%EB%AF%B8_%ED%8C%8C%EC%9D%B4%EC%8D%AC_0329_14%EC%9D%BC%EC%B0%A8&amp;diff=165&amp;oldid=prev"/>
				<updated>2018-03-29T12:55:21Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# 10_OOP&lt;br /&gt;
#객체지향프로그래밍은 쉬운게 아니다.&lt;br /&gt;
#파이썬에서 배우는 이유 혹은 목적은 자유자재로 다루기 위한 것이 아니라 어떠한 프로그램을 만들 때 이미 만들어진 기능을 가져다 써야 한다(라이브러리 등을 다운받거나 설치해서 사용)&lt;br /&gt;
#클래스로 만든 것이 많다. (가져다 쓸 때 어떤 원리인지, 어떻게 써야하는지 알아야 하기 때문에 클래스가 어떤 기능인지, 어떻게 써야하는지 알 수 있다.)&lt;br /&gt;
#&amp;gt;&amp;gt;이미 만들어진 클래스를 읽고 이해하기 위한 목적&lt;br /&gt;
&lt;br /&gt;
def add(a, b) :&lt;br /&gt;
    print(a+b)&lt;br /&gt;
    return a+b&lt;br /&gt;
print(add(1, 2))&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
    OOP : 오브젝트 오리엔티드 프로그램 : 객체지향프로그래밍(&amp;gt;객체를 사용하는 프로그래밍-자바나 다른 프로그래밍 언어에도 있다.-)&lt;br /&gt;
    (클래스와 객체)&lt;br /&gt;
      - 객체지향이론&lt;br /&gt;
        실제 사물(객체)로 이루어져 있으며 실제 세계에서 발생하는 사건들은 사물(객체)간의 상호작용이다.&lt;br /&gt;
&lt;br /&gt;
      - 특징(장점)&lt;br /&gt;
        1. 코드의 재사용성이 높다.(함수의 높은 재사용성 : 한 번 만들어놓으면 영구히 사용할 수 있음)&lt;br /&gt;
        2. 코드의 관리가 용이하다.( 코드 수정, 유지, 보수 측면)&lt;br /&gt;
        3. 신뢰성이 높은 프로그래밍을 가능하게 한다.&lt;br /&gt;
&lt;br /&gt;
      - '클래스'와 '객체' (결국 객체지향 프로그래밍이라는 것은 클래스와 객체를 다루는 것)&lt;br /&gt;
        &amp;gt;''&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;클래스&amp;lt;/font&amp;gt;''는 설계도 또는 틀(객체를 만들기 위한)&lt;br /&gt;
        &amp;gt;객체는 그 설계도를 통해 만들어진 실재 사물&lt;br /&gt;
            &amp;gt;객체라는 실제 사물을 만들기 위한 설계도일 뿐, 설계도는 물건이 아니다.&lt;br /&gt;
            &amp;gt;아이폰6의 설계도와 아이폰6(물건)&lt;br /&gt;
            &amp;gt;자동차 공정(소나타)와 실제 생산품인 소나타 1 2 3이 성격은 동일하지만 같은 물건이 아니듯 객체도 같은 속성을 가질 뿐 같지 않다.&lt;br /&gt;
      - 클래스 :&lt;br /&gt;
        -정의 :객체를 정의해놓은것&lt;br /&gt;
        -용도 :객체를 생성&lt;br /&gt;
      - 객체(오브젝트)&lt;br /&gt;
        - 정의 : 실제로 존재하는 것&lt;br /&gt;
        - 용도 : 객체가 지닌 기능과 속성에 다르다.&lt;br /&gt;
               기능과 속성은 클래스가 정의한다.&lt;br /&gt;
        - 책상, 의자, 컴퓨터, 자동차, 모니터 등등 실재가 있는 것&lt;br /&gt;
&lt;br /&gt;
      - 객체와 인스턴스&lt;br /&gt;
        &amp;gt;인스턴스 : 사례, 경우, 실체&lt;br /&gt;
         - '기본적으로 객체와 같은 의미'&lt;br /&gt;
         - 클래스를 통해 실제로 만들어진 객체를 '인스턴스'라고 부른다.&lt;br /&gt;
           &amp;gt;&amp;gt;철인 설계도(클래스)로 철인 객체를 만들 수 있다. 이 때 만들어진 철인 28호는 인스턴스이다.&lt;br /&gt;
    &lt;br /&gt;
      - 객체의 구성 요소 : 속성과 기능(클래스에서 정의) 예)자동차라는 클래스에서 자동차는 주행한다(기능) 선루프가 열린다(기능) 색은 빨간색이다(속성) &amp;gt;&amp;gt;&amp;gt;기능 : 함수( *클래스 내부의 정의된 함수는 매소드라고 부른다), 속성 : 변수&lt;br /&gt;
            &amp;gt;&amp;gt;&amp;gt;&amp;gt;클래스는 변수+함수로 만든다!!!!!&lt;br /&gt;
                다수의 변수와 함수를 가질 수 있다. (정의할 수 있다.) &amp;gt;&amp;gt;&amp;gt;목적에 따라서(정해진 규칙은 없다.)&amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
                예) 철인이라는 클래스가 있다. 클래스를 정의할 때는 속성과(변수) 기능(함수)이 있다.&lt;br /&gt;
                        속성 : 변수 : 이름(28호), 남은연로, 무기이름, 내구도(hp)&lt;br /&gt;
                        기능 : 함수 : 달리기, 날아가기, 공격하기, 자폭하기(hp가 0일 때)&lt;br /&gt;
                    &amp;gt;&amp;gt;&amp;gt;이렇게 클래스와 기능을 정의하는 행위를 '설계'라고 한다.&lt;br /&gt;
                    * 초보 개발자는 원래 클래스의 설계를 하지 않는다. &lt;br /&gt;
      &lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;=============oop=====================&amp;quot;)&lt;br /&gt;
#일단 클래스를 정의하고 객체를 만들어서 사용해보기&lt;br /&gt;
&lt;br /&gt;
class car : # car&amp;lt;작성하는 설계도의 이름,&lt;br /&gt;
    # : 이하부터 클래스 설계 시작! 변수, 함수 만들기. 설계이기 때문에 여기 작성된 코드는 효력이 없다.&lt;br /&gt;
&lt;br /&gt;
    #클래스 안의 함수 정의, 이 때 정의된 함수는 매소드라고 부름&lt;br /&gt;
    def power_on(self) :  # 시동켜는 기능&lt;br /&gt;
        print(&amp;quot;부릉부릉~!&amp;quot;)&lt;br /&gt;
        self.power = True # 변수 만드는 형태&lt;br /&gt;
&lt;br /&gt;
#클래스 내부에 정의하는 함수 첫 번째 매개변수는 반드시 필요함.&lt;br /&gt;
        #첫 번째 매개변수에 전달되는 값은 함수를 호출하는 인스턴스이다. 즉 bmw.power_on일때 셀프에 전달되는 값은 비엠덮, 셀프.파워=트루는 비엠덮=파워=트루와 같다.&lt;br /&gt;
        #굳이 셀프에 전달하지 않아도 자동으로 전달된다. 함수를 호출하는 나 자신이 되기때문에 self라고 사용(이름 달라도 괜찮지만 관용적 표현)&lt;br /&gt;
&lt;br /&gt;
#객체 생성(만들어지는 실체는 인스턴스라고 부른다.)&lt;br /&gt;
    #인스턴스명=클래스명&lt;br /&gt;
&lt;br /&gt;
bmw = car() #함수의 코드 수행과 유사하긴 한데 함수처럼 코드가 수행되는 것은 아님.&lt;br /&gt;
tico = car()&lt;br /&gt;
# (1) 카 코드를 통해 인스턴스가 생성된다.&lt;br /&gt;
# (2) 코드를 통해 생성된 인스턴스를 비엠덮 변수가 가리킴&lt;br /&gt;
####예를들어 자동차공장이라는 클래스가 있으면 생산되어 나온 차(car) 1을 가리키는건 bmw고 다른 카 2를 가리키는건 티코&lt;br /&gt;
#비엠덮과 티코는 같은 공장에서 나온 자동차이지만 다른 객체가 됨(같은 설계도를 통해 한 대 한 대 따로 뽑아진 객체들이다.)&lt;br /&gt;
print(type(&amp;quot;나는 문자열&amp;quot;))&lt;br /&gt;
# &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; int, str등은 클래스이다. 클래스는 문자열로 되어 있다.&lt;br /&gt;
print(type(1))&lt;br /&gt;
print(type(bmw))&lt;br /&gt;
##카는 클래스???? 이므로 비엠덮은 아래와 같이 사용할 수 있다.&lt;br /&gt;
bmw.power_on()&lt;br /&gt;
&lt;br /&gt;
## 문자열 클래스인 str의 예상 설계도 &amp;gt;&amp;gt;&amp;gt;코드 배끼기&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
만약&lt;br /&gt;
bmw = car()&lt;br /&gt;
tico = car()&lt;br /&gt;
car()&lt;br /&gt;
이런 코드라면 나온 자동차는 세개인데 하나는 이름(변수??)가 없어서 정의할 수 없다. 이렇게 사용ㅇ되는 경우도 많다.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
print()&lt;br /&gt;
print(bmw.power)&lt;br /&gt;
print(tico.power) #오류가 나는 원인 : 비엠덮은 파워온을 호출하면서 매소드 내부에서 셀프.파워도 호출했음(코드를 수행) 이 때 비엠덮 자동차에는 파워라는 속성이 생성, 그러나 티코는 파워온을 호출하지 않았기 때문에 파워라는 속성이 없다. &lt;br /&gt;
&lt;br /&gt;
#파이썬에서는 새로 만든 속성을 추가할 수 있는데 자바나 씨쁠쁠에는 설계도에 없는 것을 새로 추가할 수는 없음.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==강의노트==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# 10_OOP.py&lt;br /&gt;
&lt;br /&gt;
# 객체지향 프로그래밍은 쉬운게 아니다.&lt;br /&gt;
# 파이썬에서 이걸 배우는 이유/목적&lt;br /&gt;
#  자유자재로 다루기 위함? 아니다!&lt;br /&gt;
# 어떠한 프로그램을 만들 때 이미 만들어진 기능을 가져다 써야 한다.&lt;br /&gt;
#   &amp;gt;&amp;gt; 라이브러리 등을 다운받거나 설치해서 사용!!&lt;br /&gt;
# 대부분이 클래스로 만든 것이 많다.&lt;br /&gt;
&lt;br /&gt;
# 결론 -&amp;gt; 이미 만들어진 클래스를 읽고 이해하기 위한 목적&lt;br /&gt;
'''&lt;br /&gt;
def add(a,b) :&lt;br /&gt;
  print(a+b)&lt;br /&gt;
  return a+b&lt;br /&gt;
print( add(1,2) )&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
    [Object Oriented Programming] - 객체지향 프로그래밍&lt;br /&gt;
      - 객체지향이론&lt;br /&gt;
        실제 세계는 사물(객체)로 이루어져 있으며,&lt;br /&gt;
        발생하는 모든 사건들은 사물(객체) 간의 상호작용이다.&lt;br /&gt;
&lt;br /&gt;
      - 특징&lt;br /&gt;
        1. 코드의 재사용성이 높다. (함수의 높은 재사용성)&lt;br /&gt;
        2. 코드의 관리가 용이하다. (코드 수정 즉, 유지보수 측면)&lt;br /&gt;
        3. 신뢰성이 높은 프로그래밍을 가능하게 한다.&lt;br /&gt;
&lt;br /&gt;
      - '클래스'와 '객체'&lt;br /&gt;
        &amp;gt; 클래스는 설계도(또는 틀)이며,&lt;br /&gt;
          객체는 그 설계도를 통해 만들어진 실제 사물이다.&lt;br /&gt;
&lt;br /&gt;
                클래스                 객체&lt;br /&gt;
            아이폰6 설계도   --&amp;gt;  아이폰6 (S/N : 1)   - 만들어진 물체&lt;br /&gt;
            철인 설계도      --&amp;gt;  철인28호, 철인29호, ...&lt;br /&gt;
            자동차 공장(소나타) -&amp;gt; 소나타, 소나타, 소나타&lt;br /&gt;
&lt;br /&gt;
        1. 클래스 (class)&lt;br /&gt;
          - 정의 : 객체를 정의해놓은 것&lt;br /&gt;
          - 용도 : 객체를 생성&lt;br /&gt;
        2. 객체 (object)&lt;br /&gt;
          - 정의 : 실제로 존재하는 것&lt;br /&gt;
          - 용도 : 객체가 지닌 기능과 속성에 따라 다르다.&lt;br /&gt;
                    기능과 속성은 클래스가 정의한다.&lt;br /&gt;
          - 책상, 의자, 컴퓨터, 자동차, 모니터 등등..&lt;br /&gt;
&lt;br /&gt;
      - 객체와 인스턴스&lt;br /&gt;
        &amp;gt; 인스턴스 (instance) : 사례, 경우, 실체&lt;br /&gt;
          - 기본적으로 객체와 같은 의미&lt;br /&gt;
          - 클래스를 통해 실제로 만들어진 객체를 '인스턴스'라고 부른다.&lt;br /&gt;
            &amp;gt; 철인 설계도(클래스)로 철인 객체를 만들 수 있다.&lt;br /&gt;
              이때 만들어진 철인28호는 인스턴스이다.&lt;br /&gt;
&lt;br /&gt;
      - 객체의 구성 요소 : 속성과 기능 (클래스에서 정의)&lt;br /&gt;
          속성 = 변수&lt;br /&gt;
          기능 = 함수 (클래스 내부에 정의된 함수는 메서드라고 부른다.)&lt;br /&gt;
                                                method&lt;br /&gt;
          다수의 변수와 함수를 정의할 수 있다!&lt;br /&gt;
            (목적에 따라~)&lt;br /&gt;
&lt;br /&gt;
      ==&amp;gt; 클래스 = 변수 + 함수&lt;br /&gt;
&lt;br /&gt;
        ex) 철인 클래스&lt;br /&gt;
            속성(변수) : 이름(28호), 남은연료, 무기이름, 내구도(HP)&lt;br /&gt;
            기능(함수) : 달리기, 날아가기, 공격하기, 자폭하기(HP가 0일 때)&lt;br /&gt;
&lt;br /&gt;
          &amp;gt; 클래스의 속성과 기능을 정의하는 것을 '설계'라고 한다.&lt;br /&gt;
            설계는 초보개발자는 하지 않는다!!            &lt;br /&gt;
'''&lt;br /&gt;
print(&amp;quot;=&amp;quot;*15)&lt;br /&gt;
print(&amp;quot;OOP&amp;quot;)&lt;br /&gt;
print(&amp;quot;=&amp;quot;*15)&lt;br /&gt;
&lt;br /&gt;
# 일단 클래스를 정의하고 객체를 만들어서 사용해보기&lt;br /&gt;
class Car :&lt;br /&gt;
    # 여기서부터 클래스 설계 시작  --&amp;gt;  변수 또는 함수 만들기&lt;br /&gt;
    # '설계'이기 때문에 여기 작성된 코드는 효력이 없다.&lt;br /&gt;
&lt;br /&gt;
    # 클래스 안에 함수 정의 (메서드라고 부른다.)&lt;br /&gt;
    def power_on(self) :&lt;br /&gt;
        print(&amp;quot;부릉부릉~!!&amp;quot;)&lt;br /&gt;
        self.power = True&lt;br /&gt;
        # 클래스 내부에 정의하는 함수 첫 번째 매개변수는 반드시 필요&lt;br /&gt;
        # 첫 번째 매개변수에 전달되는 값은,&lt;br /&gt;
        # 함수를 호출하는 인스턴스이다.&lt;br /&gt;
        # bmw.power_on() 이 때 self에 전달되는 값은 bmw이다.&lt;br /&gt;
        # self.power = True 코드는 bmw.power = True 와 같다.&lt;br /&gt;
        # 굳이 저 self에 전달하지 않아도 자동으로 전달된다.&lt;br /&gt;
        # 그래서 이름을 self라고 사용한다. (이름 달라도 상관은없다)&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
# 객체 생성 (만들어지는 실체는 인스턴스라고 부른다.)&lt;br /&gt;
# 인스턴스명 = 클래스명()&lt;br /&gt;
bmw = Car()&lt;br /&gt;
tico = Car()&lt;br /&gt;
Car() # 이 자동차는 접근 할 방법이 없다. 만들어지기만 함..&lt;br /&gt;
# (1) Car() 코드를 통해 인스턴스가 생성된다.&lt;br /&gt;
# (2) bmw =  코드를 통해 생성된 인스턴스를 bmw 변수가 가리킨다.&lt;br /&gt;
&lt;br /&gt;
# Car() &amp;lt;-- 인스턴스 생성 코드는 수행될 때마다 새로운 인스턴스가 생성&lt;br /&gt;
# bmw 와 tico 는 같은 공장에서 나온 자동차이지만 다른 객체이다.&lt;br /&gt;
&lt;br /&gt;
# 문자열 클래스인 str 의 예상 설계도. (코드가 더 있겠죠?!)&lt;br /&gt;
'''&lt;br /&gt;
class str :&lt;br /&gt;
    def format() :&lt;br /&gt;
       ~~~~~&lt;br /&gt;
    def count() :&lt;br /&gt;
       ~~~~&lt;br /&gt;
    def istitle() :&lt;br /&gt;
       ~~~~&lt;br /&gt;
'''&lt;br /&gt;
print( type(&amp;quot;나는문자열&amp;quot;) )&lt;br /&gt;
print( type(1) )&lt;br /&gt;
print( type(bmw) )&lt;br /&gt;
&lt;br /&gt;
bmw.power_on()&lt;br /&gt;
print( bmw.power )&lt;br /&gt;
#print( tico.power ) # 오류!&lt;br /&gt;
# bmw는 power_on()을 호출하면서, 메서드 내부에서 self.power = True&lt;br /&gt;
# 코드를 수행했다. 이때 bmw 자동차(객체)에는 power라는 속성이 생성!&lt;br /&gt;
&lt;br /&gt;
# 하지만 tico는 power_on()을 호출하지 않았기 때문에...&lt;br /&gt;
# power 라는 속성이 없다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Shanmei</name></author>	</entry>

	</feed>