SlideShare a Scribd company logo
1 of 10
Objective-C




                  프로젝트 구성
                  By Changhoon Park
    Objective-C
                  http://www.wawworld.me
                                           Last Update : 2011. 08. 28

11년 10월 4일 화요일
인터페이스 부분 ( .h 파일 )                구현 부분 ( .m 파일 )

    • 클래스를 사용하기 위해 외부에 노출              • 클래스가 실제로 어떻게 동작하는지
    • 클래스 선언                               포함
      - @interface 키워드                 •   클래스 정의
      - 메소드 호출                             - @implementation 키워드
      - 상속, 컴포지션 정보                        - 메소드를 구현하는 코드
    • 공용 struct 정의, enum 상수, #define,   • 글로벌 변수 정의,
        extern 글로벌 변수                      지역 변수로 사용할 struct 정의




             2

                  프로젝트   인터페이스와 구현
                         크로스 파일 의존성
    Objective-C
                         실습
                                                               By Changhoon Park
                                                                   http://www.wawworld.me



11년 10월 4일 화요일
Xcode에서 새 파일 만들기




             3

                  프로젝트   인터페이스와 구현
                         크로스 파일 의존성
    Objective-C
                         실습
                                                     By Changhoon Park
                                                        http://www.wawworld.me



11년 10월 4일 화요일
의존성 (dependency)



                                      두 객체 사이의 관계


                   • Slant6는 Engine과 상속 관계                 Engine
                     - Slant6는 Engine에 의존성을 갖음
                                                         - description
                     - Engine의 인스턴스 변수가 추가되면
                     - Slant6는 다시 컴파일 되어야 함
                                                            Slant6
                                                         - description




             4

                  프로젝트   인터페이스와 구현
                         크로스 파일 의존성
    Objective-C
                         실습
                                                                         By Changhoon Park
                                                                            http://www.wawworld.me



11년 10월 4일 화요일
의존성 (dependency)


                                두 개 이상의 파일에서 존재
                        헤더 파일과 헤더 파일을 포함하는 소스 파일
                 만일 헤더 파일(.h) 이 변경되면 종속적인 모든 소스파일을 다시 컴파일



            Tire.h           Engine.h
                                        • Tire,h Engine,h가 변경된다면
                                          - Car.m도 변경 사항을 적용하기 위해
                                            다시 컴파일 해야 한다.
                     Car.m




             5

                     프로젝트      인터페이스와 구현
                               크로스 파일 의존성
    Objective-C
                               실습
                                                                    By Changhoon Park
                                                                       http://www.wawworld.me



11년 10월 4일 화요일
재 컴파일의 문제


                         Thing3.h를 수정하면 Thing1.h까지 다시 컴파일
                             Xcode는 모든 의존성을 추적해서 처리




                               Thing1.h     Thing2.h   Thing3.h




             6

                  프로젝트   인터페이스와 구현
                         크로스 파일 의존성
    Objective-C
                         실습
                                                                  By Changhoon Park
                                                                     http://www.wawworld.me



11년 10월 4일 화요일
컴퍼지션

                              - 컴파일러가 단지 이름만 필요한 경우
                          - 포인터 객체를 만들기 위한 클래스 이름만 필요


         #import <Cocoa/Cocoa.h>             #import <Cocoa/Cocoa.h>

         #import "Engine.h"                  @class Tire;
         #import "Tire.h"                    @class Engine;

         @interface Car : NSObject           @interface Car : NSObject
         {                                   {
             Tire *tires[4];                     Tire *tires[4];
             Engine *engine;                     Engine *engine;
         }                                   }
         ....                                ....
         @end // car                         @end // car




             7

                  프로젝트   인터페이스와 구현
                         크로스 파일 의존성
    Objective-C
                         실습
                                                                         By Changhoon Park
                                                                            http://www.wawworld.me



11년 10월 4일 화요일
컴퍼지션


                    - 컴파일러가 클래스 전체의 정의를 필요한 경우




                              #import "Car.h"
                              #import "Engine.h"
                              #import "Tire.h"

                              @implementation Car

                              .....

                              @end // Car




             8

                  프로젝트   인터페이스와 구현
                         크로스 파일 의존성
    Objective-C
                         실습
                                                    By Changhoon Park
                                                       http://www.wawworld.me



11년 10월 4일 화요일
컴퍼지션

                              - 컴파일러가 단지 이름만 필요한 경우
                          - 포인터 객체를 만들기 위한 클래스 이름만 필요


         #import <Cocoa/Cocoa.h>             #import <Cocoa/Cocoa.h>

         #import "Engine.h"                  @class Tire;
         #import "Tire.h"                    @class Engine;

         @interface Car : NSObject           @interface Car : NSObject
         {                                   {
             Tire *tires[4];                     Tire *tires[4];
             Engine *engine;                     Engine *engine;
         }                                   }
         ....                                ....
         @end // car                         @end // car




             9

                  프로젝트   인터페이스와 구현
                         크로스 파일 의존성
    Objective-C
                         실습
                                                                         By Changhoon Park
                                                                            http://www.wawworld.me



11년 10월 4일 화요일
실습




     1. 05.03 CarParts-2.zip를 분해하기

     2. 각 클래스는 헤더 파일(.h)과 구현 파일(.m)로 구성
        Tire, Engine, Car : 재컴파일의 기본 상식
        Slant6, AllWheatherRadial : 포함과 상속

     3. 수정한 .m과 .h 그리고 결과화면 스샷을 아지트에 올리기




            10

                  프로젝트   인터페이스와 구현
                         크로스 파일 의존성
    Objective-C
                         실습
                                             By Changhoon Park
                                                http://www.wawworld.me



11년 10월 4일 화요일

More Related Content

Viewers also liked

[메조미디어] 글로벌 디지털 시장 현황 일본_2014.03
[메조미디어] 글로벌 디지털 시장 현황 일본_2014.03[메조미디어] 글로벌 디지털 시장 현황 일본_2014.03
[메조미디어] 글로벌 디지털 시장 현황 일본_2014.03MezzoMedia
 
201208_한국인의 소셜미디어 라이프스타일_DMC
201208_한국인의 소셜미디어 라이프스타일_DMC201208_한국인의 소셜미디어 라이프스타일_DMC
201208_한국인의 소셜미디어 라이프스타일_DMCYOO SE KYUN
 
How to you tube
How to you tubeHow to you tube
How to you tubePark Min
 
마커스교육자료(디자인)
마커스교육자료(디자인)마커스교육자료(디자인)
마커스교육자료(디자인)Joong Keun Park
 
[2012널리세미나] 네이버 모바일의 숨겨진 코드 읽기
[2012널리세미나] 네이버 모바일의 숨겨진 코드 읽기[2012널리세미나] 네이버 모바일의 숨겨진 코드 읽기
[2012널리세미나] 네이버 모바일의 숨겨진 코드 읽기Nts Nuli
 
Ppt Shape Series 1 Diagrams
Ppt Shape Series 1 DiagramsPpt Shape Series 1 Diagrams
Ppt Shape Series 1 Diagramssumanthr
 
사례로 풀어보는 졸업작품 기획
사례로 풀어보는 졸업작품 기획사례로 풀어보는 졸업작품 기획
사례로 풀어보는 졸업작품 기획Lim SungHyun
 
Trendy minds ppt-template
Trendy minds ppt-templateTrendy minds ppt-template
Trendy minds ppt-templatetrendy123
 
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 구성 지도
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 구성 지도『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 구성 지도
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 구성 지도복연 이
 
ADWAYS Session 1. 동남아 모바일 게임 시장 완전정복, 현지마케팅의 첫 걸음
ADWAYS Session 1. 동남아 모바일 게임 시장 완전정복, 현지마케팅의 첫 걸음ADWAYS Session 1. 동남아 모바일 게임 시장 완전정복, 현지마케팅의 첫 걸음
ADWAYS Session 1. 동남아 모바일 게임 시장 완전정복, 현지마케팅의 첫 걸음ADWAYS KOREA
 
YouTube Creator Playbook - in Korean
YouTube Creator Playbook - in KoreanYouTube Creator Playbook - in Korean
YouTube Creator Playbook - in KoreanEugene Choi
 
2016년 ICT산업 메가트렌드 - 한국 정보산업연합회 ICT Industry Megatrend
2016년 ICT산업 메가트렌드 - 한국 정보산업연합회 ICT Industry Megatrend2016년 ICT산업 메가트렌드 - 한국 정보산업연합회 ICT Industry Megatrend
2016년 ICT산업 메가트렌드 - 한국 정보산업연합회 ICT Industry Megatrend봉조 김
 
최종수정본(스윙 프로젝트 ppt)
최종수정본(스윙 프로젝트 ppt)최종수정본(스윙 프로젝트 ppt)
최종수정본(스윙 프로젝트 ppt)dingo44kr
 
Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)Daum DNA
 
아두이노를 이용한 기계식 키보드 제작
아두이노를 이용한 기계식 키보드 제작아두이노를 이용한 기계식 키보드 제작
아두이노를 이용한 기계식 키보드 제작EunJinKim1213
 
졸업프로젝트 어플리케이션 발표자료
졸업프로젝트 어플리케이션 발표자료졸업프로젝트 어플리케이션 발표자료
졸업프로젝트 어플리케이션 발표자료Do Hyun Youn
 
[메조미디어] 글로벌 디지털 시장 현황-중국_2014.02
[메조미디어] 글로벌 디지털 시장 현황-중국_2014.02[메조미디어] 글로벌 디지털 시장 현황-중국_2014.02
[메조미디어] 글로벌 디지털 시장 현황-중국_2014.02MezzoMedia
 
[Hello world 오픈세미나]공공정보와 네이버 오픈api
[Hello world 오픈세미나]공공정보와 네이버 오픈api[Hello world 오픈세미나]공공정보와 네이버 오픈api
[Hello world 오픈세미나]공공정보와 네이버 오픈apiNAVER D2
 
QR Parking 전국캡스톤디자인 경진대회 발표자료 2014
QR Parking 전국캡스톤디자인 경진대회 발표자료 2014QR Parking 전국캡스톤디자인 경진대회 발표자료 2014
QR Parking 전국캡스톤디자인 경진대회 발표자료 2014Jong-Hyun Kim
 

Viewers also liked (19)

[메조미디어] 글로벌 디지털 시장 현황 일본_2014.03
[메조미디어] 글로벌 디지털 시장 현황 일본_2014.03[메조미디어] 글로벌 디지털 시장 현황 일본_2014.03
[메조미디어] 글로벌 디지털 시장 현황 일본_2014.03
 
201208_한국인의 소셜미디어 라이프스타일_DMC
201208_한국인의 소셜미디어 라이프스타일_DMC201208_한국인의 소셜미디어 라이프스타일_DMC
201208_한국인의 소셜미디어 라이프스타일_DMC
 
How to you tube
How to you tubeHow to you tube
How to you tube
 
마커스교육자료(디자인)
마커스교육자료(디자인)마커스교육자료(디자인)
마커스교육자료(디자인)
 
[2012널리세미나] 네이버 모바일의 숨겨진 코드 읽기
[2012널리세미나] 네이버 모바일의 숨겨진 코드 읽기[2012널리세미나] 네이버 모바일의 숨겨진 코드 읽기
[2012널리세미나] 네이버 모바일의 숨겨진 코드 읽기
 
Ppt Shape Series 1 Diagrams
Ppt Shape Series 1 DiagramsPpt Shape Series 1 Diagrams
Ppt Shape Series 1 Diagrams
 
사례로 풀어보는 졸업작품 기획
사례로 풀어보는 졸업작품 기획사례로 풀어보는 졸업작품 기획
사례로 풀어보는 졸업작품 기획
 
Trendy minds ppt-template
Trendy minds ppt-templateTrendy minds ppt-template
Trendy minds ppt-template
 
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 구성 지도
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 구성 지도『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 구성 지도
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 구성 지도
 
ADWAYS Session 1. 동남아 모바일 게임 시장 완전정복, 현지마케팅의 첫 걸음
ADWAYS Session 1. 동남아 모바일 게임 시장 완전정복, 현지마케팅의 첫 걸음ADWAYS Session 1. 동남아 모바일 게임 시장 완전정복, 현지마케팅의 첫 걸음
ADWAYS Session 1. 동남아 모바일 게임 시장 완전정복, 현지마케팅의 첫 걸음
 
YouTube Creator Playbook - in Korean
YouTube Creator Playbook - in KoreanYouTube Creator Playbook - in Korean
YouTube Creator Playbook - in Korean
 
2016년 ICT산업 메가트렌드 - 한국 정보산업연합회 ICT Industry Megatrend
2016년 ICT산업 메가트렌드 - 한국 정보산업연합회 ICT Industry Megatrend2016년 ICT산업 메가트렌드 - 한국 정보산업연합회 ICT Industry Megatrend
2016년 ICT산업 메가트렌드 - 한국 정보산업연합회 ICT Industry Megatrend
 
최종수정본(스윙 프로젝트 ppt)
최종수정본(스윙 프로젝트 ppt)최종수정본(스윙 프로젝트 ppt)
최종수정본(스윙 프로젝트 ppt)
 
Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)
 
아두이노를 이용한 기계식 키보드 제작
아두이노를 이용한 기계식 키보드 제작아두이노를 이용한 기계식 키보드 제작
아두이노를 이용한 기계식 키보드 제작
 
졸업프로젝트 어플리케이션 발표자료
졸업프로젝트 어플리케이션 발표자료졸업프로젝트 어플리케이션 발표자료
졸업프로젝트 어플리케이션 발표자료
 
[메조미디어] 글로벌 디지털 시장 현황-중국_2014.02
[메조미디어] 글로벌 디지털 시장 현황-중국_2014.02[메조미디어] 글로벌 디지털 시장 현황-중국_2014.02
[메조미디어] 글로벌 디지털 시장 현황-중국_2014.02
 
[Hello world 오픈세미나]공공정보와 네이버 오픈api
[Hello world 오픈세미나]공공정보와 네이버 오픈api[Hello world 오픈세미나]공공정보와 네이버 오픈api
[Hello world 오픈세미나]공공정보와 네이버 오픈api
 
QR Parking 전국캡스톤디자인 경진대회 발표자료 2014
QR Parking 전국캡스톤디자인 경진대회 발표자료 2014QR Parking 전국캡스톤디자인 경진대회 발표자료 2014
QR Parking 전국캡스톤디자인 경진대회 발표자료 2014
 

Similar to 프로젝트 구성

Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Dong Chan Shin
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계Jinho Yoo
 
02.공통컴포넌트 실습교재
02.공통컴포넌트 실습교재02.공통컴포넌트 실습교재
02.공통컴포넌트 실습교재Hankyo
 
스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴Sanghyuk Jung
 
Design pattern 4
Design pattern 4Design pattern 4
Design pattern 4Daniel Lim
 

Similar to 프로젝트 구성 (8)

구성(Composition)
구성(Composition)구성(Composition)
구성(Composition)
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1
 
Final report201101
Final report201101Final report201101
Final report201101
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계
 
02.공통컴포넌트 실습교재
02.공통컴포넌트 실습교재02.공통컴포넌트 실습교재
02.공통컴포넌트 실습교재
 
Object C - RIP
Object C - RIPObject C - RIP
Object C - RIP
 
스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴
 
Design pattern 4
Design pattern 4Design pattern 4
Design pattern 4
 

More from Hoseo University

More from Hoseo University (12)

Game ai.fsm.02
Game ai.fsm.02Game ai.fsm.02
Game ai.fsm.02
 
Game ai.fsm.01
Game ai.fsm.01Game ai.fsm.01
Game ai.fsm.01
 
Game math.points and lines
Game math.points and linesGame math.points and lines
Game math.points and lines
 
Esl podcast 743 – writing a story
Esl podcast 743 – writing a storyEsl podcast 743 – writing a story
Esl podcast 743 – writing a story
 
Property
PropertyProperty
Property
 
목적이 부여된 에이전트 행동
목적이 부여된 에이전트 행동목적이 부여된 에이전트 행동
목적이 부여된 에이전트 행동
 
실질적인 길 계획하기
실질적인 길 계획하기실질적인 길 계획하기
실질적인 길 계획하기
 
FoundationKit
FoundationKitFoundationKit
FoundationKit
 
Raven
RavenRaven
Raven
 
Objective-C에서의 OOP
Objective-C에서의 OOPObjective-C에서의 OOP
Objective-C에서의 OOP
 
Dt2210.01.syllabus
Dt2210.01.syllabusDt2210.01.syllabus
Dt2210.01.syllabus
 
Dt3160.01
Dt3160.01Dt3160.01
Dt3160.01
 

프로젝트 구성

  • 1. Objective-C 프로젝트 구성 By Changhoon Park Objective-C http://www.wawworld.me Last Update : 2011. 08. 28 11년 10월 4일 화요일
  • 2. 인터페이스 부분 ( .h 파일 ) 구현 부분 ( .m 파일 ) • 클래스를 사용하기 위해 외부에 노출 • 클래스가 실제로 어떻게 동작하는지 • 클래스 선언 포함 - @interface 키워드 • 클래스 정의 - 메소드 호출 - @implementation 키워드 - 상속, 컴포지션 정보 - 메소드를 구현하는 코드 • 공용 struct 정의, enum 상수, #define, • 글로벌 변수 정의, extern 글로벌 변수 지역 변수로 사용할 struct 정의 2 프로젝트 인터페이스와 구현 크로스 파일 의존성 Objective-C 실습 By Changhoon Park http://www.wawworld.me 11년 10월 4일 화요일
  • 3. Xcode에서 새 파일 만들기 3 프로젝트 인터페이스와 구현 크로스 파일 의존성 Objective-C 실습 By Changhoon Park http://www.wawworld.me 11년 10월 4일 화요일
  • 4. 의존성 (dependency) 두 객체 사이의 관계 • Slant6는 Engine과 상속 관계 Engine - Slant6는 Engine에 의존성을 갖음 - description - Engine의 인스턴스 변수가 추가되면 - Slant6는 다시 컴파일 되어야 함 Slant6 - description 4 프로젝트 인터페이스와 구현 크로스 파일 의존성 Objective-C 실습 By Changhoon Park http://www.wawworld.me 11년 10월 4일 화요일
  • 5. 의존성 (dependency) 두 개 이상의 파일에서 존재 헤더 파일과 헤더 파일을 포함하는 소스 파일 만일 헤더 파일(.h) 이 변경되면 종속적인 모든 소스파일을 다시 컴파일 Tire.h Engine.h • Tire,h Engine,h가 변경된다면 - Car.m도 변경 사항을 적용하기 위해 다시 컴파일 해야 한다. Car.m 5 프로젝트 인터페이스와 구현 크로스 파일 의존성 Objective-C 실습 By Changhoon Park http://www.wawworld.me 11년 10월 4일 화요일
  • 6. 재 컴파일의 문제 Thing3.h를 수정하면 Thing1.h까지 다시 컴파일 Xcode는 모든 의존성을 추적해서 처리 Thing1.h Thing2.h Thing3.h 6 프로젝트 인터페이스와 구현 크로스 파일 의존성 Objective-C 실습 By Changhoon Park http://www.wawworld.me 11년 10월 4일 화요일
  • 7. 컴퍼지션 - 컴파일러가 단지 이름만 필요한 경우 - 포인터 객체를 만들기 위한 클래스 이름만 필요 #import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h> #import "Engine.h" @class Tire; #import "Tire.h" @class Engine; @interface Car : NSObject @interface Car : NSObject { { Tire *tires[4]; Tire *tires[4]; Engine *engine; Engine *engine; } } .... .... @end // car @end // car 7 프로젝트 인터페이스와 구현 크로스 파일 의존성 Objective-C 실습 By Changhoon Park http://www.wawworld.me 11년 10월 4일 화요일
  • 8. 컴퍼지션 - 컴파일러가 클래스 전체의 정의를 필요한 경우 #import "Car.h" #import "Engine.h" #import "Tire.h" @implementation Car ..... @end // Car 8 프로젝트 인터페이스와 구현 크로스 파일 의존성 Objective-C 실습 By Changhoon Park http://www.wawworld.me 11년 10월 4일 화요일
  • 9. 컴퍼지션 - 컴파일러가 단지 이름만 필요한 경우 - 포인터 객체를 만들기 위한 클래스 이름만 필요 #import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h> #import "Engine.h" @class Tire; #import "Tire.h" @class Engine; @interface Car : NSObject @interface Car : NSObject { { Tire *tires[4]; Tire *tires[4]; Engine *engine; Engine *engine; } } .... .... @end // car @end // car 9 프로젝트 인터페이스와 구현 크로스 파일 의존성 Objective-C 실습 By Changhoon Park http://www.wawworld.me 11년 10월 4일 화요일
  • 10. 실습 1. 05.03 CarParts-2.zip를 분해하기 2. 각 클래스는 헤더 파일(.h)과 구현 파일(.m)로 구성 Tire, Engine, Car : 재컴파일의 기본 상식 Slant6, AllWheatherRadial : 포함과 상속 3. 수정한 .m과 .h 그리고 결과화면 스샷을 아지트에 올리기 10 프로젝트 인터페이스와 구현 크로스 파일 의존성 Objective-C 실습 By Changhoon Park http://www.wawworld.me 11년 10월 4일 화요일