SlideShare a Scribd company logo
1 of 54
Download to read offline
C++에서 Objective-C까지
기초특강 3
창원대학교 박동규 ( @dongupak )
2011년 9일
번역자료
http://ivis.cwnu.ac.kr/tc/dongupak 에 최신버전(2.3) 탑재
Objective-C
• Smalltalk에 영향을 많이 받은 객체지향언
어(객체지향성이 강하다)
• C 언어의 superset이다
• 모든 객체는 동적이다
• 프로그램 실행중에 메모리를 할당받고
(alloc) 해지(release)된다.
• 메모리관리를 사용자가 해야한다
또 다른 특징
• C++보다 문법적으로 단순하다
• 다중상속을 허용하지 않는다
• 모든 메소드는 public이다
• 클래스도 객체이다.(C++에서는 객체를
생성하는 설계도가 클래스님)
• 추가된 키워드는 @로 시작한다
용어
• 클래스 : 데이터와 코드의 묶음으로 객체
의 “형(type)”
• 인스턴스 : 메모리를 할당받은 클래스
• 메소드 : 객체가 수행하는 “함수”
• 인스턴스 변수 : 객체에 속하는 변수
객체
• 객체는 프로그램에서
살아가면서 어떤 행동
을 수행하게 되고, 그
결과 시간이 지남에 따
라 상태가 변하게 된다
속성 : HP, 공격력, 방어력
메소드 : 이동한다.
공격한다.
죽는다.
...
객체
• 게임프로그램을 생각
해 보자.
• 프로그램은 내부에 수
많은 객체로 이루어져
있다.
• 객체를 조합하여 프로
그램을 완성하자.
속성 : HP, 공격력, 방어력
메소드 : 이동한다.
공격한다.
죽는다.
...
스타크래프트
미니맵
콘솔
점수와 자원마린
배럭
복잡한 프로그램
• 복잡하고 큰 프로그램도 작은 객체를 조
합하면 쉽게 만들 수 있다.
Light The Candle
프로젝트 만들기
MainWindow.xib
MainWindow.xib
• File’s Owner : xib 파일의 소유자
• First Responder : 최초응답자, 사용자와
현재 상호작용중인 객체
• LightTheCandleAppDelegate 클래스의 인
스턴스
• Window-뷰를 올리고 관리하는 객체
File’s Owner
delegate
• UIApplication은 자신의
delegate를 가지는데, 이
것이 바로
LightTheCandleAppDele
gate이다.
• 즉 UIApplication이 실행
되어 이벤트 루프에 들
어가게 되면 이벤트를
받아 실행하는 객체가
LightTheCandleAppDele
gate이다
이벤트 루프
클래스 분석
클래스 분석
인터페이스 구성
헤더파일
LightTheCandleAppDelegate.m 파일
아웃렛 연결
Received Actions
Received Actions
리소스 첨부
이벤트
• 이벤트를 주면 Action이 일어난다
(XXAppDelegate의 Action이 호출됨)
필요한 인스턴스 추가
앱시작시 하는일
dealloc
실행
toggleCandle
실행
클래스 만들기
새 프로젝트 만들기
클래스 만들기
Candle 클래스
클래스 속성
메소드
- 인스턴스 생성시에 하는 일
초기화
리소스 가져오기
리소스
엑세스 메소드
candleOffImage 관련
메소드
candleOnImage관련
메소드
AppDelegate 수정
AppDelegate
.m 파일 수정
...
Interface 만들기
액션 메소드 수정
실행
수정
@synthesize candleState; 문장이 자동 생성
추가
& 실행
수정
수정
정리
• 이벤트 루프의 구조
• 클래스 만들기
• 예제 & IB 다루기에 대하여 알아보았음
Q & A

More Related Content

Similar to 2011 app center Changwon National Univ.

[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...Taekyu Lim
 
More Effective C++ 4주차
More Effective C++ 4주차More Effective C++ 4주차
More Effective C++ 4주차Injae Lee
 
[Spring]오브젝트와 의존관계
[Spring]오브젝트와 의존관계[Spring]오브젝트와 의존관계
[Spring]오브젝트와 의존관계slowstarter
 
The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표재정 이
 
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15Chanwoong Kim
 
스프링 스터디 1장
스프링 스터디 1장스프링 스터디 1장
스프링 스터디 1장Seongchan Kang
 
대학과 오픈소스
대학과 오픈소스대학과 오픈소스
대학과 오픈소스Jihoon Son
 
프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)Devgear
 
이클립스와 안드로이드
이클립스와 안드로이드이클립스와 안드로이드
이클립스와 안드로이드JavaCommunity.Org
 
KrKwic내용분석특강(november2006)
KrKwic내용분석특강(november2006)KrKwic내용분석특강(november2006)
KrKwic내용분석특강(november2006)Han Woo PARK
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈NAVER D2
 
React native development
React native developmentReact native development
React native developmentSangSun Park
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개Jaewook Byun
 
jjongwuner_cv_page
jjongwuner_cv_pagejjongwuner_cv_page
jjongwuner_cv_page종원 이
 
소프트웨어설계론
소프트웨어설계론소프트웨어설계론
소프트웨어설계론JeongDong Kim
 
황규영 포트폴리오
황규영 포트폴리오황규영 포트폴리오
황규영 포트폴리오Q_0
 
Java 강의자료 ed11
Java 강의자료 ed11Java 강의자료 ed11
Java 강의자료 ed11hungrok
 
9 object class
9 object class9 object class
9 object class웅식 전
 
클린 코드 part2
클린 코드 part2클린 코드 part2
클린 코드 part2Minseok Jang
 

Similar to 2011 app center Changwon National Univ. (20)

[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
 
More Effective C++ 4주차
More Effective C++ 4주차More Effective C++ 4주차
More Effective C++ 4주차
 
[Spring]오브젝트와 의존관계
[Spring]오브젝트와 의존관계[Spring]오브젝트와 의존관계
[Spring]오브젝트와 의존관계
 
The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표
 
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15
 
스프링 스터디 1장
스프링 스터디 1장스프링 스터디 1장
스프링 스터디 1장
 
대학과 오픈소스
대학과 오픈소스대학과 오픈소스
대학과 오픈소스
 
프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)
 
이클립스와 안드로이드
이클립스와 안드로이드이클립스와 안드로이드
이클립스와 안드로이드
 
KrKwic내용분석특강(november2006)
KrKwic내용분석특강(november2006)KrKwic내용분석특강(november2006)
KrKwic내용분석특강(november2006)
 
Design patterns
Design patternsDesign patterns
Design patterns
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
 
React native development
React native developmentReact native development
React native development
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개
 
jjongwuner_cv_page
jjongwuner_cv_pagejjongwuner_cv_page
jjongwuner_cv_page
 
소프트웨어설계론
소프트웨어설계론소프트웨어설계론
소프트웨어설계론
 
황규영 포트폴리오
황규영 포트폴리오황규영 포트폴리오
황규영 포트폴리오
 
Java 강의자료 ed11
Java 강의자료 ed11Java 강의자료 ed11
Java 강의자료 ed11
 
9 object class
9 object class9 object class
9 object class
 
클린 코드 part2
클린 코드 part2클린 코드 part2
클린 코드 part2
 

More from Changwon National University

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdfChangwon National University
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능Changwon National University
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)Changwon National University
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)Changwon National University
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리Changwon National University
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와selfChangwon National University
 

More from Changwon National University (20)

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf
 
인공지능의 파도가 온다
인공지능의 파도가 온다인공지능의 파도가 온다
인공지능의 파도가 온다
 
Mobile Healthcare Application
Mobile Healthcare ApplicationMobile Healthcare Application
Mobile Healthcare Application
 
바다 즐기기
바다 즐기기바다 즐기기
바다 즐기기
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
 
20 2 강의를 마치며
20 2 강의를 마치며20 2 강의를 마치며
20 2 강의를 마치며
 
20 1 코딩스타일
20 1 코딩스타일20 1 코딩스타일
20 1 코딩스타일
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
 
18 1 파이썬패키지
18 1 파이썬패키지18 1 파이썬패키지
18 1 파이썬패키지
 
17 2 필터함수와 맵함수
17 2 필터함수와 맵함수17 2 필터함수와 맵함수
17 2 필터함수와 맵함수
 
17 1 람다함수
17 1 람다함수17 1 람다함수
17 1 람다함수
 
16 1 상속과super()
16 1 상속과super()16 1 상속과super()
16 1 상속과super()
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와self
 
14 4 슬라이싱
14 4 슬라이싱14 4 슬라이싱
14 4 슬라이싱
 
14 2 iterator
14 2 iterator14 2 iterator
14 2 iterator
 
14 3 리스트함수
14 3 리스트함수14 3 리스트함수
14 3 리스트함수
 
14 1 리스트의 메소드
14 1 리스트의 메소드14 1 리스트의 메소드
14 1 리스트의 메소드
 
12 3 raise문
12 3 raise문12 3 raise문
12 3 raise문
 

2011 app center Changwon National Univ.