블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total652,955
Today8
Yesterday77
어렵게, 또는 어렵지 않게 FTP 서버를 구축하여 친구에게 FTP 서버의 정보를 알려주었는데 접속이 되지 않는다. 분명히 시킨대로 완벽하게 다 했는데 왜 되지 않는 걸까? 크게 다르지는 않지만, 거의 99%의 문제는 이 방법을 통해서 해결할 수 있다고 장담한다.


FTP 서버 확인.
문제가 발생하고 그 문제를 해결하기 위해 가장 먼저 확인을 해 보아야 하는것은 내맥에서 FTP 서버가 잘 작동하고 있는가 이다. FTP 서버가 잘 작동하고 있는지 확인하기 위해 '시스템 환경설정' -> '공유' -> '파일공유'에 파란불이 켜져있는지 확인해 보는 것이다.


그림1. FTP 작동 확인

그림과 같이 초록색 불이 켜져있고, 'FTP 접근'이 '켜짐'으로 되어 있다면 FTP가 작동하고 있는 것이다. 그래도 확신이 가지 않는다면 직접 FTP 서버로 접속을 해보는 방법이 있다. 맥 OSX 은 유닉스 기반으로 되어 있기 때문에 텍스트기반의 FTP클라이언트를 제공하기 때문에 클라이언트 프로그램 없이 바로 확인이 가능하다. '응용 프로그램' -> '유틸리티' -> '터미널' 프로그램을 실행한다.



그림2. 터미널 프로그램

글자들만 있다고 걱정할 필요는 없다. 간단한 명령어 몇가지만 입력하면 확인할 수 있다. 터미널에서 FTP 서버에 접속하기 위한 명령어는 위의 그림에서 처럼 'FTP 서버IP' 와 같은 형식으로 입력하면 된다. FTP 서버에 접속을 하고 아이디와 패스워드를 입력하면 위 그림과 같이 접속이 되는것을 볼 수 있다. 이렇게 된다면 FTP 서버가 올바르게 작동하고 있는 것이다.


ADSL을 사용할 경우 FTP 서버 설정.
일반적으로 FTP 서버는 21번 포트를 사용하도록 되어 있다. 하지만 인터넷 서비스로 ADSL을 사용하고 있는 경우 21번 포트를 사용하지 못하도록 막아놓는 경우가 있다. 그래서 FTP 서버의 포트를 다른 번호로 바꾸어 놓으면 사용할 수 있다. FTP 서버의 포트를 포함한 네트워크 서비스의 포트들에 관한 정보는 services 파일에 저장되어 있기때문에 이 파일을 수정하여 포트 번호를 변경할 수 있다.


그림3. 폴더로 이동

services 파일이 포함되어 있는 'etc'폴더는 중요한 파일들을 많이 포함하고 있기 때문에 일반적인 폴더와는 다르게 숨김 폴더로 되어 있다. 먼저 파일더를 실행한 후 '이동' -> '폴더로 이동' 메뉴를 차례로 선택한다.


그림4. /etc 폴더

이동하고자 하는 폴더명에 '/etc'를 입력하여 services 파일이 있는 /etc 폴더로 이동하도록 한다.


그림5. services 파일

텍스트 편집기를 이용하여 services 파일을 열어 수정한다.


그림6. 텍스트 편집기

services 파일에는 많은 양의 정보가 포함되어 있기 때문에 찾기 명령을 이용해서 ftp를 검색한다. 검색 결과를 보면 다음과 같이 써 있는 것을 볼 수 있다.

ftp     21/udp     #File Transfer [Control]
ftp     21/tcp      #File Transfer [Control]

여기서 '21'이 포트번호를 나타내는 것이다. 21을 '9221'로 바꾸도록 한다. 다른 번호로 해도 상관은 없지만, 이미 사용되고 있는 번호와 중복이 되면 안되기 때문에 안전하게 '9221'로 하도록 한다. 파일을 저장하고 FTP 서버를 다시 시작하도록 한다. FTP 서버를 다시 시작하는 방법은 FTP 서버가 작동하는지 확인했던 '시스템 환경설정' -> '공유' 메뉴에서 파일공유란의 체크박스를 제거했다가 다시 설정해주면 재시작된다. 혹시나 안된다 싶으면 재부팅을 해도 상관없다.


공유기를 사용할 경우 FTP 설정.
인터넷 환경이 많아지면서 거의 대부분의 가정에서 공유기를 사용할 것이다. 공유기를 사용하는 환경에서는 외부에서의 네트워크와 내부에서의 네트워크가 다르게 적용이 되기 때문에 외부에서 FTP 서버를 찾지 못하는 불상사가 발생하기 마련이다. 이러한 현상은 공유기의 DMZ 기능을 이용하면 해결이 가능한데, 외부의 IP와 내부의 IP를 동일하게 해주는 것이다. ipTIME 공유기를 기준으로 설명을 하겠지만, 다른 공유기의 설정도 별반 다르지 않을꺼라 생각한다.


그림7. 공유기 환경설정 페이지

공유기의 환경을 설정하기 위해서는 관리도구 페이지에 접속을 해야 한다. 공유기별로 다르기 때문에 공유기 제조사에 문의해 보거나, 설명서를 보면 확인할 수 있다. ipTIME 공유기의 경우는 주소창에 192.168.0.1 을 입력하면 접속할 수 있다. 위의 화면이 공유기의 환경설정 페이지로 접속하는 화면이다. 아랫부분에 '동적 IP - 연결됨 - 192.168.1.13' 이라고 써있는데 이 IP가 외부와 연결되는 진짜 IP이다. 그렇기 때문에 FTP 서버의 IP 또한 '192.168.0.23' 이 아닌 '192.168.1.13' 이 되는 것이다. 위 IP를 잘 기억하고, 관리도구를 클릭하여 이동한다.


그림8. DMZ 설정

왼쪽의 메뉴에서 '고급설정' -> 'NAT/라우터관리' -> 'DMZ/Twin IP 설정' 으로 이동하면 위의 화면을 볼 수 있다. 중간에 있는 'DMZ'의 체크박스를 체크하고 '내부 IP 주소' 를 '현재 접속된 PC 의 IP 주소로 설정' 을 체크하면 빈칸에 IP 주소가 입력되는 것을 볼 수 있다. 혹시 그런 메뉴가 없다면 직접 IP 주소를 빈칸에 입력해 넣으면 된다. 이것으로 모든 설정이 마무리 되었다. 이제 상대방에서 외부 IP 주소로 FTP 서버 접속을 요청하면, 손쉽게 파일을 전송할 수 있다.

Posted by seanhigher

댓글을 달아 주세요

자신의 맥에 있는 파일들을 다른사람의 맥 또는 PC로 전송을 하기 위한 가장 좋은 방법은 케이블을 연결하여 다이렉트로 파일을 주고 받는 것이다. 이렇게 다이렉트 케이블을 연결하여 파일을 전송하는 방법에는 물리적인 한계가 있다. 바로 옆에 있다면 상관이 없겠지만, 서울에서 미국이라면 백만장자라 해도 불가능에 가까울 것이다.




간단한 파일 전송의 기술.
기술의 발달은 우리가 어려운 기술들을 알지 못해도 쉽게 편리한 기능들을 사용할 수 있게 해준다. 파일을 다른사람에게 보내고 싶다면, 메신저로 로그인을 해서 대화창에 파일을 드래그 해 놓으면 전송된다. 아니면 상대방에게 메일을 써서 첨부하여 보내면 대용량의 파일도 어느정도 가능하다. 그것도 아니면 웹 하드에 올려놓고 상대방에게 받아가라고 하면 된다. 이렇게 다양하고 편리한 방법들이 있지만, 한가지 아쉬운 점이 있다면 속도와 용량의 한계이다. 웹 하드의 경우는 이 문제들을 해결할 수는 있지만, 금전적인 부담을 생각하지 않을 수 없다.


FTP.
FTP라고 불리는 파일전송 프로토콜(File Transfer Protocol)은 컴퓨터와 컴퓨터 또는 인터넷 사이에서 파일을 주고받을 수 있도록 하는 원격파일 전송 프로토콜이다. 국제표준화 기구에서 제안한 통신규약을 따르는 OSI 7계층과 TCP/IP의 응용계층에 속하며, 인터넷에서 가장 오래되었지만, 여전히 많이 사용되는 기술이기도 하다. 일반적으로 접속을 위해서 21번 포트를 할당하지만, 다른 포트번호를 사용하여도 무방하다. 일반적인 FTP에서는 암호가 암호화 되지 않기 때문에 접속시에 한번안 암호를 확인하게 된다. 좀더 보안이 유지되는 FTP로 SFTP, SCP등의 방식을 사용하기도 한다.



MAC 에서의 FTP.
맥 OSX 에서는 기본적으로 FTP 서버의 기능을 포함하고 있다. 하지만, 이 기능을 사용하기 위해서는 몇가지 설정을 적용해 주어야 한다. 하지만, 그리 어려운 일은 아니기 때문에 그림과 글씨만 읽고 이해할 수 있다면 누구든지 자신의 맥을 FTP 서버로 만들어 파일을 전송해 줄 수 있다.


FTP에 접속하기 위한 새로운 계정 만들기
외부에서 네트워크를 통해 내 맥에 접근하기 위해서는 접근을 허용하는 계정이 생성되어 있어야 한다. FTP같은 경우 특별한 계정이 없어도 'anonymous' 라는 이름으로 접속을 가능하게 하는 경우도 있지만, 개인적인 데이터를 공개적으로 공유한다는 것은 조금은 위험한 일이기도 하다. 그래서 네트워크에 내에서 허용된 사용자들만 내 맥에 접속할 수 있도록 접속을 위한 계정을 만드는 것이 좋다.


그림1. 시스템 환경설정

새로운 계정을 생성하기 위해서는 '시스템 환경설정'텝을 열어야 한다.(어디 있는지 못찾겠다면, 응용프로그램 디렉토리를 찾아보도록...) OS X 를 사용하는데 필요한 대부분이 설정들은 이 '시스템 환경설정'텝에서 변경이 가능하기 때문에 한번쯤을 자세히 봐 두는 것이 맥을 사용하는데 있어서 많은 도움이 될 것이다. 사용자 계정에 관한 정보와 설정은 '계정' 메뉴에서 추가및 변경, 삭제가 가능하다.


그림2. 새로운 계정 생성.

'계정' 메뉴에서 왼쪽 아랬부분에 '+' 표시를 누르면 사용자를 추가할 수 있다. 데이터를 공유하기 위한 일반 사용자 계정을 생성한다. 새로운 계정은 생성하게 될 계정이 가지게 되는 권한을 의미한다. 무난하게 '표준 사용자'나 공유만 가능으로 선택하고 이름, 계정이름, 암호등을 원하는 이름으로 작성한다.


FTP 공유 설정하기.
공유를 위한 계정을 만들었다면 왼쪽 윗부분에 있는 '모두 보기' 버튼을 눌러서 '시스템 환경설정' 텝으로 돌아간다. FTP 공유에 관한 메뉴는 가운데 있는 '공유'메뉴에서 설정이 가능하다.


그림3. 시스템 환경설정


그림4. 공유 설정

'공유' 메뉴로 화면을 이동하게 되면 여러가지 공유가 있는 것을 볼 수가 있다. FTP 서버를 시작하기 위해서는 파일공유에서 선택이 가능하다. 파일공유를 선택하고 '옵션' 버튼을 클릭하면 위 그림과 같은 화면을 볼 수 있다. 가운데 있는 'FTP를 사용하여 파일 및 폴더 공유'의 체크박스를 선택한다. 체크박스를 선택하게 되면 FTP 서버로 접속하기 위한 IP 주소를 볼 수 있다. 위 그림에서는 192.168.0.23이 FP의 주소가 되는 것이다. 이제 '완료' 버튼을 클릭하면 맥에서 FTP 서버가 시작되는 것이다. 외부에서 FTP 서버에 접속을 하기 위해서는 위의 IP주소와 새로 생성한 아이디와 암호를 알려주면 된다.


그림5. 사용자 계정

외부에서 새로 생성한 계정으로 접속할 경우 위의 그림처럼 '사용자'->'계정이름' 이 홈 폴더가 된다. 이곳에 파일을 넣어 놓으면 사용자 아이디로 접속했을때 바로 파일을 보고, 다운로드가 가능하게 된다.

Posted by seanhigher

댓글을 달아 주세요

  1. 2010.10.15 17:03 홍선우  댓글주소  수정/삭제  댓글쓰기

    잘 배웠습니다. 유익한 정보 감사드립니다.

  2. 2010.11.07 23:27 @heeeeeya  댓글주소  수정/삭제  댓글쓰기

    감사합니다!~

  3. 2010.11.16 11:23 백흥기  댓글주소  수정/삭제  댓글쓰기

    맥에서 환경설정다 하고요 ㅎ 갤럭시S에서 AndFTP파일을 사용해서 접속하려고 하는데 잘 안되네요 ; 저기 위에 있는 아이피 주소 입력하고 사용자 이름과 비밀번호까지 다 적용했는데도 안되는데 ...방법이 없을까요?

  4. 2011.07.14 17:01 기린  댓글주소  수정/삭제  댓글쓰기

    감사합니다 잘보고가요~~

  5. 2012.04.19 19:13 innop  댓글주소  수정/삭제  댓글쓰기

    고맙습니다. 덕분에 좋은 지식 알고 갑니당

첫번째로 작성한 'Hello world!' 프로젝트는 사용자가 할 수 있는 것이 아무것도 없다. 단지 화면에 나와 있는 텍스트만 뚫어져라 쳐다보고 있는 것 외에는... 휴대용 기기에서의 애플리케이션이라고 하면, 우선은 사용자와 반응하는 것이 중요하다. 사용자의 생각을 읽어서 자동으로 반응해 주는것이 가장 좋은 것이지만, 아직까지 기술이 그렇게 많이 발달하지 않았기때문에... 사용자가 뭔가 표현을 해주어야 반응을 하게 된다. 아이폰에 버튼을 만들고 버튼을 누르면, 뭔가 반응을 보일 것이다. 개발자가 잘 만들었다면...


어떤 모양으로 만들까?
누르면 반응하는 프로젝트를 개발하는데 있어서 가장 먼저 해야 할 것은 어떤 프로젝트를 만드냐이다. '누르면 반응하는 App'은 이미 뭔가 반응하게끔 만들어야 겠다는 의도와 목적이 들어 있기 때문에 그부분에 대해서는 고민할 필요가 없다. 그 다음으로는 어떠한 방식으로 그것을 구현할 것인가이다. 어떠한 방식으로 누르는 것을 표현할 수 있을까? 가장 간단하게 생각이 되는 것은 몇개의 버튼이 있는데, 그중 하나의 버튼을 누르면 그 버튼에 맞는 '무언가'가 실행이 되는 것이다. 아직 별 다른 기술이 없으므로 반응한는 '그 무언가'는 버튼에 맞는 텍스트가 출력되는 것으로 한다. 다시 정리를 하면...

(1) 화면중앙 부분에 세개의 버튼이 있다.(세개의 버튼은 1,2,3 이든, top, middle, bottom등...)
(2) 각 버튼에 알맞는 텍스트가 화면 아래에 출력된다.

매우 간단한 애플리케이션이지만, 이렇게 구체적인 계획을 세워 놓으면 프로젝트를 할때, 불필요한 고민을 하는 시간을 줄일 수 있다. 계획이 세워졌으므로 Xcode를 실행하고 'View-based Application' 프로젝트를 생성한다. 어떠한 이름을 하여도 상관은 없지만, 이해를 쉽게 하기 위해서 'FirstInteraction'으로 하도록 한다.


디자인먼저? 코딩먼저?
결론부터 말하자면, 디자인을 먼저하든, 코딩을 먼저하든 크게 상관이 없다. 어떠한 애플리케이션을 개발하더라도 이미 계획했던 것에 대해서 수정이 이루어지는 것은 불가피 하다. 코딩을 다 해놓은 상태에서 뷰를 디자인 하게 되면, 코딩에 맞추어서 디자인을 할 수 있지만, 생각하지 못했던 화면 제약이나, 표현상의 문제로 인해 코딩을 바꾸어야 하는 상황이 있을 수 있다. 또 디자인을 다 해 놓은 상태에서 기술적인 문제 때문에 기능을 제거한다던지, 다른 기능을 추가하는 등의 변경 사항이 발행하게 된다. 때문에 무엇을 먼저 하던 Xcode와 IB를 왔다갔다 해야 하는 것은 당연한 일이다. 하지만, 개인적으로는 디자인적인 문제보다는 기술적인 문제가 더 많이 발생하므로, 코딩을 먼저 완성한 후 디자인을 하는 것을 권유하고 싶다.


반응을 개발하기 위한 준비 작업.
반응을 애플리케이션에 포함시키기 위해서는 액션과 아웃렛이 사용된다. 액션은 반응을 위해 하는 어떠한 행위를 통해서 애플리케이션이 어떻게 반응해야 하는가에 대해서 말해주고, 아웃렛은 그러한 액션이 있다는 것을 IB와 xcode가 서로 알 수 있게끔 만들어준다.


그림1. FirstInteractionViewController.h 파일 수정

프로젝트에 액션과 아웃렛을 추가하기 위해서는 '프로젝트명ViewController.h 헤더파일에 선언해 주어야 한다. 반응이 일어나는 텍스트와 액션이 이루어지는 버튼을 사용할 것이기 때문에 다음과 같이 입력해 주면 된다.(굵은 글씨 부분이 추가해야 할 부분)

#import <UIKit/UIKit.h>

@interface FirstInteractionViewController : UIViewController {
    UILabel *labelText;
}

@property (nonatomic, retain) IBOutlet UILabel *labelText;
-(IBAction)buttonAction : (id)sender;

@end

Label 변수를 선언하고, 프로퍼티를 선언하여 수정이 가능한 메소드를 생성하였으며, 액션을 추가하여, 특정 액션으로부터의 접근이 가능하다. 헤더 파일에서 선언한 액션은 FirstInsteraction.m 파일에서 선언한 액션이 어떠한 행동을 할 것인가에 대해서 구현해 주어야 한다.


그림2. FirstInteractionViewController.m 파일 수정

컨트롤러 구현을 위한 파일인 '프로젝트명ViewController.m' 파일에는 개발에 자주 사용되는 메소드가 이미 구현이 되어 있다. 일부 코드들은 주석으로 처리 되어 있는데(초록색으로 되어 있는 부분), 이것들은 필요에 따라 주석을 해제하여 사용하거나, 삭제를 하여 작성하기도 한다. 'FirstInteraction' 프로젝트에서는 복잡한 메소드가 필요하지 않기때문에 주석된 부분을 다 삭제하고 코드를 간략화한다. 그리고 다음의 코드를 삽입한다.

#import "FirstInteractionViewController.h"

@implementation FirstInteractionViewController
@synthesize labelText;

-(IBAction)buttonAction : (id)sender {
    NSString *title = [sender titleForState : UIControlStateNormal];
    NSString *newText = [[NSString alloc] initWithFormat: @"%@ button pressed.", title];
    labelText.text = newText;
    [newText release];
}

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];   
    // Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    self.labelText = nil;
}


- (void)dealloc {
    [labelText release];
    [super dealloc];
}

@end

기존에 생성되었던 코드보다 훨씬 더 간결해진것을 볼 수 있다. 굵은 글씨로 이루어진 부분의 소스코드를 살펴보면 생소한 것들이 많이 있다.

@synthesize labelText; - 헤더파일에서 'setText'변수를 프로퍼티로 선언하였다. 헤더파일에서의 선언은 접근자, 변경자 메소드에 대한 정의를 하고, 구현 파일에서의 sysnthesize 선언은 컴파일시에 컴파일러가 'setText'변수에 대한 접근자와 변경자 메소드를 생성해 준다. 개발자가 직접적으로 접근자와 변경자를 선언하지 않고, 구현하지 않아도 컴파일시에 자동으로 생성된다.
- (IBAction)buttonAction : (id) sender { } - 액션이 작용할때 하게 될 행동에 대해서 구현해 놓는 곳이다. 이 액션 메소드는 어떠한 버튼을 누르더라도 동일한 액션을 취하게 된다.
NSString *title = [sender titleForState: UIControlStateNormal]; - 액션이 작용하고 있는 버튼을 가르키는 sender에 할당된 값을 참조하여 어떤 버튼이 눌려지는지 알 수 있다. 이 메소드는 클릭된 버튼의 제목을 얻어 title 변수에 저장하기 위한, 미리 정의된 메소드를 사용하는 소스이다.
NSString *newText = [[NSString alloc] initWithFormat: @"%@ button pressed.", title]; - 이전에 저장된 title 변수에 'button pressed'라는 문자열을 추가한 새로운 문자열을 만든다. 새로운 변수의 이름은 'newText'가 된다.
labelText.text = newText; - Label로 선언된 변수에 입력을 받아 새롭게 정의된 newText의 값을 할당한다. 예문에서는 점표기법을 사용하였지만, [labelText setText:newText] 과 같은 방법으로도 표기할 수 있다.
[newText relese]; - 사용이 끝난 객체는 릴리즈시켜 자원의 낭비를 줄여야 한다. 모바일 프로그래밍의 경우, 일반적인 컴퓨터와는 다르게 자원의 규모나 성능이 작기때문에 최대한 효율적으로 사용해야 한다.
self.labelText = nil; - 클래스안의 아웃렛들은 viewDidUnload 메소드 안에서 nil 값으로 설정해 주어야 한다.
[labelText release]; - dealloc 메소드 안에서 아웃렛을 릴리즈 한다. 프로퍼티로 구현된 아웃렛이 retain의 속성을 가지기 때문에 릴리즈하여 자원의 낭비를 줄이는 일은 매우 중요하다.


외형 만들기.
소스코딩에 대한 부분을 마무리하였다면 멋들어진 외형을 만들어야 한다. 하지만, 아직은 그렇게 실력이 좋지 않으므로 계획에 있던데로 간단한 디자인으로 하도록 한다. 뷰를 편집하기 위해서는 'Groups & Files' 창에 있는 Resource 폴더의 'FirstInteractionViewController.xib' 파일을 더블클릭하면 나타나는 인터페이스빌더를 이용해야 한다.


그림3. 인터페이스 빌더가 실행된 화면

위 그림과 같이 인터페이스 빌더가 실행되면, 뷰 화면을 편집 한다. 왼쪽 라이브러리 윈도우에서 필요한 라이브러리 선택해서 오른쪽의 뷰 윈도우에 드래그를 해서 가져다 놓으면 된다. 각 객체는 크기를 마음대로 조절할 수 있으며, 객체들의 규칙적인 배치를 위해서 적절한 위치게 객체가 이동하게 되면, 파란점선의 가이드 라인이 자동으로 생성된다.


그림4. View 화면 편집

내용을 표시하게 될 label과 반응을 주게 될 세개의 버튼은 위의 그림과 같이 나란히 배치한다.(파란점선의 가이드 라인은 객체를 드래그 할때만 생겼다가 사라진다.) 객체를 나타내는 이름을 바꿔주기 위해서는 객체의 Label, button 등의 이름을 더블클릭하면 수정이 가능하다. button 객체의 이름을 각각 Top, Middle, Bottom 으로 바꾸어 주고 Label은 이름만 삭제한다. 맨처음 아무것도 누르지 않았을 때는 아무것도 나오지 않은 상태여야 하기 때문이다.


IB에서 아웃렛 선언해주기.
코딩과 디자인을 마무리 하였다면 이것을 서로에게 이어주는 작업이 필요하다. 각각의 객체들이 가지고 있는 작용들이 어떤 객체를 참조해야 하는지 직접적으로 이어주는 것이다.


그림5. 객체에 아웃렛 이어주기

객체에 아웃렛을 연결하기 위해서는 'FirstInteractionViewController.xib' 윈도우에 있는 'File's Owner' 아이콘에서부터 시작을 해야 한다. 컨트롤 키를 누른 상태에서 'File's Owner'아이콘을 클릭하여 드래그를 하면 위의 그림처럼 파란색의 선이 생기는 것을 보게 된다. 파란색의 선을 끌어당겨 Label이 있는 자리 근처로 가게 되면 Label 영역을 나타대는 사각형의 박스가 나타날 것이다. 이때 마우스의 버튼을 놓으면 작은 메뉴가 나타나게 되는데, 이전에 헤더파일에 지정하였던 아웃렛의 이름들이 나오는 것이다. 'labelText'를 선택하여 아웃렛을 연결해 준다.


객체에 액션 지정해 주기.
반응을 위한 버튼 객체에 액션을 지정해 주는 것은 아웃렛을 이어주는 것과 비슷하다. 코코아 프로그래밍에서는 두개의 작업이 거의 동일하게 이루어 졌지만, 아이폰 프로그래밍에서는 조금 다르게 작업을 해야 한다. 하지만, 정말 거의 비슷하다!


그림6. 객체에 액션 지정하기

오른쪽의 인스펙터 윈도우는 두번째에 있는 'Connections' 메뉴를 선택한다. 그리고 메인 뷰에서 액션을 지정하고자 하는 버튼(Top)을 선택하면 인스펙터 윈도우에 위와 같은 이벤트들이 나오게 된다. 다양한 이벤트들 중에서 버튼을 누르는 것과 가장 관련이 깊은 이벤트를 선택해야 한다. '반응하는 App' 은 버튼을 누르고 난 후 그 버튼의 종류에 따라 결과를 반환하게 되는것이기 때문에 'Touch up inside' 이벤트가 적절하다고 생각할 수 있다. 왜냐하면 선택하여 눌렀는데, 그 버튼이 마음에 들지 않아 손가락을 드래그하여 화면에서 땐다면 그것을 선택하지 않은 것이기 때문이다. 화면에서 가장 마지막에 손가락을 때었을때 버튼의 영역에 포함되어 있다면 그 버튼을 실행하고자 누른것으로 간주하는 것이다. 적절한 이벤트인 'Touch up inside'의 오른쪽에 있는 작은 원에 마우스를 갔다 놓으면 십자가 형태로 바뀌는 것을 볼 수 있다. 이 십자가를 끌어서 'FirstInteractionViewController.xib' 윈도우의 'File's Owner' 에 가져다 놓는다. 그러면 헤더파일에 선언되어 있는 액션 메소드의 리스트가 나타나게 된다. 'buttonAction'을 선택하여 액션을 이어준다. 나머지 두개의 버튼들도 동일한 작업을 거치면 모든 작업이 마무리 된다.


프로젝트 실행.
다시 Xcode로 돌아가서 'Build and Run' 버튼으로 프로젝트를 빌드하고 시뮬레이션 한다.


그림7. 프로젝트 시뮬레이션 화면

제대로 프로젝트가 완성되었다면 위의 화면과 같이 나올 것이다. 버튼만 세개가 있는 화면이 나온후에 버튼을 클릭하면 버튼에 맞는 텍스트가 화면 아래에 나오게 된다. 이제 사용자들의 의견을 수렴할 줄 아는 준비된 애플리케이션을 개발할 준비가 된것이다.

Posted by seanhigher

댓글을 달아 주세요

  1. 2010.07.31 02:06 쉬인  댓글주소  수정/삭제  댓글쓰기

    안녕하세요? 포스팅 내용이 정말 많은 도움이 되고 있습니다.
    이번 상호작용 편에서... 모두 제대로 한것 같은데 (커멘드+B 로 오류검사도 통과)
    정작 아이폰 시뮬레이터에서 버튼을 클릭하는 순간 어플이 종료되어 버립니다.

    혹시 이번에 업데이트 된 SDK를 사용해서 그런가요? 야심한 밤에 머리 쥐어뜯다가 글 남겨봅니다.
    알려주세요^^;;

    • 2010.08.02 09:54 신고 seanhigher  댓글주소  수정/삭제

      음... 그것만으로는 정확한 답을 드리기가... ^^;;
      하지만 제 경우에도 분명 똑같이 했음에도 불구하고 어플리케이션이 실행과 동시에 종료되는 경우가 있었는데... 뭔가 오타가 있거나, 연결을 제대로 해주지 않아서인 경우가 많더라구요... ^^;

  2. 2010.08.05 19:21 쉬인  댓글주소  수정/삭제  댓글쓰기

    앗 그렇군요
    한번 더 오타를 검사해봐야 겠습니다^^;
    좋은 정보 잘 보고있습니다.
    감사합니다 ㅎ

아이콘은 그것을 나타내는 프로그램이 어떤 의미를 가지고 있는지 함축적으로 표현해 준다. 프로그램을 잘 표현해 낸 아이콘 하나만으로도 더 많은 사람들이 자신이 만든 애플리케이션에 관심을 갖게 만들 수 있다. 비행기를 보지 못한 원시인들에게 열심히 글로 써 주어도 이해하기 힘들지만, 사람들이 비행기를 타고 날아가는 모습의 그림이나 아이콘을 통해 표현한다면 훨씬 쉽게 이해할 수 있을 것이다.


하얀 아이콘.
맨 처음 'Hello world!를 나타내는 앱을 만들었을때는, 그것이 아이폰 화면에 나타난다는 것 만으로도 만족스럽고 충분했다. 하지만, 홈 버튼을 눌러서 자신의 앱이 표현되어 있는 아이콘을 보게 되면... 그저 밋밋한 하얀색의 네모만 보이는 아이콘.


그림1. 밋밋한 아이콘 화면.

동글동글하게 보이는 것이 예쁘게 보이기는 하지만, 왠지 없어 보인다. 다른 앱의 아이콘들처럼 나만의 아이콘으로 표현 할 수 있는 방법은 없는 걸까? 물론, 당연히 방법은 있다. 그것도 정말 쉬운 방법이!!


나만의 앱에 나만의 아이콘으로 나타내기.
아이폰 프로젝트에 사용되는 소스 외의 데이터들은 'Resources'폴더 안에 포함된다. 예상 했겠지만, 아이콘으로 사용되는 이미지 역시 'Resources'폴더 안에 포함시켜야 한다. 아이콘으로 사용되는 이미지는 가로세로 57 x 57 pixels 로 된 png 파일이 가장 적당하다. png 파일이 아닌 아이폰에서 사용 가능한 모든 형태의 이미지 파일이 가능하지만, 되도록이면 png 파일을 사용하는 것이 좋다. 아이폰에서는 png 파일이 가장 최적화 되어있기 때문이다.


그림2. icon.png 파일(57 x 57 pixels)

또 아이콘을 만들때 한가지 주의할 점은 다른 아이폰 앱의 아이콘처럼 모서리를 둥글게 하고 효과를 주려고 하지 않아도 된다. 정사각형의 이미지를 만들어 주면, 테마에 맞게 아이폰 SDK에서 알아서 효과를 적용해 주어 멋있게 보이게끔 만들어 준다. 아이콘 파일을 프로젝트에 포함하기 위해서는 두가지 방법이 있다. 매우 직관적으로 'Resources' 폴더로 아이콘 파일을 드래그 하여 놓는 방법과 'Resources'폴더에 서 우클릭으로 메뉴를 호출하여 'Add' -> 'Existing Files...'를 선택하는 방법이다. 각자 상황에 맞게 알맞는 방법으로 아이콘을 추가하면 된다.


그림3. 'Resources' 폴더에 파일 추가.

'Resources' 폴더에 아이콘 파일을 추가하려고 하면 아래와 같은 창이 생기는데, 참조하는 파일이 적을 경우 세심하게 신경쓰지 않아도 되기 때문에 기본 설정으로 놓도록 한다.

그림4. 아이콘 파일을 추가하는 화면.

맨 위에 있는 'Copy items into destination group's folder(if needed)' 항목은 참조하고자 하는 파일을 가져올 때 복사를 할것인지 묻는 것이다. 체크를 하게 되면 파일을 그대로 프로젝트 폴더로 복사하여 가져오게 되고, 체크를 해제하면 단지 링크로만 연결을 시켜 놓는다. 복사할 경우는 원본이 사라져도 상관이 없지만, 이미지의 수정이 필요할 경우 프로젝트 폴더내의 파일을 수정하거나, 다시 참조해야 하는 번거로움이 있고, 링크를 해 놓은 경우는 수정은 용이하지만, 원본 파일의 위치가 변경될 경우 찾아서 다시 링크를 설정해 주어야 하는 번거로움이 있다. 우선은 기본적으로 복사를 하는 것이 프로젝트를 개발하는데 편한듯 하다.


그림5. 'Hello_World-Info.plist' 파일

아이콘으로 사용하는 파일의 이름을 icon.png 로 저장했다면 별다른 설정없이 바로 아이콘으로 적용이 된다.(아이콘 파일을 설정하지 않을 경우 기본으로 icon.png 파일을 찾아서 참조하도록 되어 있다.) 하지만, 파일 이름이 icon.png 가 아닐경우는 아이콘 파일이 이것이다 라고 지정을 해 주어야 한다. '프로젝트 명-Info.plist'파일은 아이콘 파일의 설정 외에도, 애플리케이션의 기본적이고, 필요한 정보들을 포함하고 있다. Xcode 창에서 'Hello world-Info.plist'파일을 선택하면 오른쪽에 위와 같은 목록들이 나오는 것을 볼 수 있다. 이중 'Key' 값에 icon file 이라고 써있는 영역에 아이콘 파일의 이름을 적어 놓는다.


그림6. 아이콘 파일이 적용된 앰 아이콘 화면.

이제 Xcode 창에서 다시 빌드를 하고 실행을 시키면 위 그림과 같이 자연스럽게 효과가 적용된 앱 아이콘을 볼 수 있을 것이다. 나의 아이덴티티를 가지는 특별한 아이콘으로 무장한 'Hello world' 앱이 탄생하였다.

Posted by seanhigher

댓글을 달아 주세요

  1. 2010.04.06 20:55  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

코코아 프로그래밍을 하기 위해서, 또는 아이폰 프로그래밍을 하기 위해서 필요한 것이 Xcode라고 불리는 애플리케이션 제작 툴이다. Xcode는 프로그래밍을 하는데 있어서 쉽고, 간결하게 할 수 있도록 다양한 방법으로 개발자들을 돕고 있다. 그리고 무엇보다도 보기에 좋다는 것!



Xcode project 만들기
맨 처음 Xcode를 실행하게 되면 개발자들을 환영하는 메세지를 볼 수 있다. 처음 나타나는 메세지에서는 새로운 프로젝트를 생성하거나, 이전에 작업하고 있던 프로젝트를 선택 할 수 있다. 그리고 처음 Xcode를 사용하는 사용자들을 위한 튜토리얼과 개발자들을 위한 웹페이지의 링크도 선택할 수 있기 때문에 한번즘 클릭해 보는것도 나쁘진 않을 것이다. 그리고 매번 시작할때 마다 환영 페이지를 보고 싶지 않다면 'Show this windows when Xcode launches'의 체크 박스를 해제하면 된다. 새로운 프로젝트를 생성하기 위해서 'Create a new Xcode project'를 선택한다.


그림1. New Project 선택 화면

그러면 위와 같은 새 프로젝트 선택 화면을 볼 수가 있을 것이다. OS X에서 실행이 되는 응용 애플리케이션을 개발하고자 한다면 왼쪽의 OS X 탭 아래의 메뉴에서 선택을 하면 되고, iPhone용 애플리케이션을 개발하고자 한다면 iPhone 탭 아래에서 적당한 메뉴를 선택하면 된다. 가장 기본이 되는 애플리케이션을 만들기 위해서는 iPhone -> Application -> View based Application 을 선택하도록 한다. 애플리케이션의 이름을 정하고, 저장할 위치를 묻는 화면이 나오는데, 기본으로 설정되어 있는 디렉토리를 사용해도 상관없지만, 다른 데이터와 혼동이 될 수 있으므로, iPhone 프로젝트만을 위한 디렉토리를 따로 생성하여 설정하기를 권한다.


Xcode 'Hello world' project 창 보기.
프로젝트를 생성할 장소까지 설정을 했다면 다음과 같은 프로젝트 화면을 볼 수가 있을 것이다.


그림2. 'Hello World' project

단지 프로젝트 이름만 지어줬을 뿐인데 이미 많은 파일들이 생성되어 있는 것을 볼 수가 있다. 이것들은 개발자의 편의를 위해서 Xcode가 자동으로 기본 템플릿을 가지고 생성해낸 파일들이다. 나중에는 세심하게 살펴 보겠지만, 처음에는 자동으로 파일들이 여러개 생성된다는 사실만으로도 충분하다. 왼쪽에 있는 'Group&Files'는 프로젝트안에 포함되는 다양한 파일들이 들어가 있다. 소스 파일이 포함될 수도 있고, 이미지나, 텍스트, 음성 데이터들이 포함될 수 있다. 각각의 폴더가 의미하는 바는 다음과 같다.

Classes : object-C 클래스 파일들이 모여 있는 곳이다. 개발자가 생성하는 파일들이 들어가는 곳이기도 하다.
Other Sources : object-C 클래스 파일이 아닌 소스코드 파일들이 포함된다. 그리고 맨 처음 프로젝트를 생성하게 되면 두가지의 파일이 자동으로 생성되게 된다. '프로젝트명_Prefix.pch'란 파일과 main.m 파일이다. Prefix.pch는 precompiled header의 약자로 일반적으로 프로젝트를 생성하는데 있어서 꼭 필요한 헤더 파일들을 컴파일 해 놓는 것이다. 기본적으로 사용하는 헤더 파일들을 미리 컴파일 해 놓으면 프로젝트를 빌드 할때 시간을 절약 할 수 있다. main.m 파일은 main() 메소드가 있는 곳으로 MVC 구조를 사용하는 오브젝티브-C의 특성상 수정할 경우가 많지 않다.
Resources : 애플리케이션에 사용되는 파일들이 포함되어 있는 곳이다. 프로그램을 구동하는데 필요한 코드가 아니라 아이콘, 이미지, 소리파일, 동영상등 프로그램을 실행하는데 있어서 필요할 만한 자원들을 보관하는 곳이다. 아이폰에서는 허가된 위치의 파일들 외에는 임의로 접근이 불가능 하기 때문에 실행에 필요한 파일들은 꼭 이 위치에 보관해야 한다. 이 폴더에는 다음의 세가지 파일이 자동으로 생성 된다. '프로젝트 명ViewController.xib', '프로젝트 명-Info.plist', 'MainWindow.xib'. 이 세가지 파일은 프로그램을 실행하는데 꼭 필요한 파일들이기도 하다.
Framework : 이 폴더는 코드, 이미지나, 소리데이터등의 자원들이 포함되어 있는 라이브러리이다. 이 폴더에 포함되는 프레임워크는 자동으로 프로젝트에 링크되어 사용할 수 있게 된다. 기본적으로 사용되는 프레임워크에 포함되지 않는 프레임워크를 사용하고자 할 경우 이 폴더에 포함시킨다.
Products : 프로젝트를 통해 생성된 애플리케이션이 저장되는 곳이다. '프로젝트 명.app'이 프로젝트의 결과물이 된다. 위 그림에서 보면 Hello World.app이 빨간색으로 되어 있는데, 이것은 아직 빌드를 한번도 실행하지 않았기 때문에 파일을 찾을 수 없다는 의미이다.

'Group&Files' 의 창에 표현되는 디렉토리 구조는 OS X 의 디렉토리 구조와 완벽하게 일치하지 않는다. 왜냐하면 'Group&Files'에서 보여주는 디렉토리의 구조는 프로젝트를 작성하는데 있어서 편리하도록 만들어낸 논리적 구조이기 때문이다. 파일을 그대로 복사해서 가져올 수도 있지만, 단지 링크만을 해 둘 수도 있다. 이것은 옵션으로 선택이 가능하다.


Interface Builder 둘러보기.
Xcode를 완성하는 또 하나의 창은 IB라고 하는 인터페이스 빌더이다. 프로젝트창이 보이지 않는 소스코드에 중점을 둔다면, 인터페이스빌더는 프로그램의 외형을 아름답게 꾸미는 일을 책임진다. 개발자가 만들고자 하는 프로그램에 버튼을 하나 추가하고 싶다면 버튼을 의미하는 소스코드를 입력해서 만들 수도 있지만, 인터페이스 빌더를 사용하면 마우스 클릭만으로 간단하게 버튼을 추가 할 수 있다. 이것은 MVC 패턴에 맞추어서 기능과 뷰를 분리하였기 때문에 가능하다. 또한 인터페이스를 만드는데 드는 시간을 줄 일 수 있으며, 좀더 직관적인 디자인이 가능하다는 이점이 있다. 생성한 프로젝트에서 IB의 화면을 보기 위해서는 IB를 책임지고 있는 파일을 선택하면 된다. Resources 폴더의 '프로젝트 명ViewController.xib'파일을 더블클릭한다.


그림3. Interface Builder 의 화면


처음 IB를 실행하게 되면 위와 같이 여러개의 창이 나타나는 것을 볼 수 있다. 이중에서 가장 메인이 되는 창은 가운데 위에 있는 '프로젝트 명ViewController.xib'라고 써 있는 창이다. 인터페이스를 책임지는 모든 xib 파일은 File's Owner와 First Responder 이라는 두개의 파일을 자동으로 포함하게 된다. File's Owner는 xib파일의 객체를 의미한다. 객체지향 프로그래밍에서는 어떠한 오브젝트를 사용하기 위해서 객체를 생성하는데, File's Owner가 첫번째 객체의 역할을 하는 것이다. First Responder는 현재 사용자와 프로그램이 상호작용을 하고 있는 객체를 의미한다. '1' ~ '9'로 표현되는 버튼을 생성하였다. 이 때 사용자가 '2'라는 버튼을 눌렀다면 '2'라는 버튼은 현재의 퍼스트 리스폰더이다. 퍼스트 리스폰더는 그 때에 작용하는 객체를 말하기 때문에, 사용자와 상호 작용을 하는데 있어서 매우 중요한 역할을 한다. 그리고 'View'라는 아이콘이 포함되어 있는 것을 볼 수 있는데, 이것은 화면에 나타나는 '뷰'를 의미한다. 지금 당장에는 하나의 뷰만을 가진 애플리케이션을 작성하기 때문에 하나밖에 없지만, 좀더 복잡한 애플리케이션을 작성하게 되면 여러개의 뷰가 생성 될 것이다.


프로젝트 창과 인터페이스 빌더는 iPhone 프로그래밍이나, 코코아 프로그래밍을 하는데 있어서 매우 중요한 요소이다. 그리고 개발자들이 가장 기본적으로 사용하게 되는 창이기도 하다. 이 두개의 화면에 익숙해진다면 아이폰 프로그래밍을 하는 것도 그렇게 어렵게 느껴지지 않을 것이다.

Posted by seanhigher

댓글을 달아 주세요

맥을 선택하게 되는 이유중의 하나가 마음을 사로잡는 절제된 외형과, 사용자의 생각을 그대로 읽어 낸 듯한 직곽적인 인터페이스 때문이다. 하지만, 아무것도 모른체 맥을 선택하게 된다면 그야말로 낭패를 보기 쉽상이다. 맥을 사용하기로 마음먹었다면, 맥을 사용하면 된다. 윈도우와 전혀 다르지만, 그렇다고 어렵지 않다. 오히려 알고 난다면 윈도우는 왜 이렇게 불편하게 만들었을까 하는 생각을 하게 될 것이다. 단! 윈도우용 어플리케이션 개발자들 사용하기 힘들찌도...



OS X Snow Leopard.
OS X 는 애플사에서 만든 운영체제이다. 가장 최근에 출시된 맥 OS 는 10.6 버전의 스노우 레오퍼드이다. 맥 OS는 크게 두가지로 분류할 수 있는데, 1.0 에서 9까지 이르는 클래식 버전과 OS X의 OS 텐으로 나뉘어 진다. 이렇게 두가지로 나누는 기준은 이전의 클래식 버전은 애플사에서 자체적으로 개발한 애플 프로세서를 사용하는 컴퓨터에서만 사용이 가능하고, 텐 버전부터는 인텔 프로세서를 사용하는 애플 컴퓨터에서만 설치 및 사용이 가능하다.  OS X 는 9버전 이후의 10버전이라는 의미를 가지고 있으며 마이너 버전으로 계속해서 업그레이드 되고 있다.


미려한 외모
OS X 의 디자인은 사람들을 현혹시킨다. 지금까지의 맥북이나, 아이팟, 아이폰, 아이패드까지 일관성 있는 디자인을 가지고도 사람들이 제품을 본 순간 반하게 만드는 마력을 발휘했다. 그리고 각각의 기기에 포함되어 있는 OS의 디자인 역시 한번 보면 '이것이 애플이다!'라는 말이 저절로 나오게 만들었다.


그림1. OS X의 화면

Core Image 프레임워크와, Quartz Extreme, OpenGL은 OS X의 이미지 표현 기술을 사용하여 한층 더 업그레이된 부드럽고 섬세한 디자인의 OS를 표현하였다. 아쿠아 인터페이스는 OS X를 OS X로 만들어주는 하나의 특징이 되어버렸다. 마치 물방울이 떨어져 만들어 진듯한 버튼들은 마치 그것을 꼭 눌러야 할 것 같은 착각에 들게 만들었다. 프로그램 하나를 실행하면서 나타나는 작은 효과들은 OS X의 모양을 자연스럽게 이어주고, 기다리는 시간조차 지루하지 않게 만들어 버렸다.


유닉스 기반의 안정성.
유닉스는 이미 전 세계적으로 그 안정성이 인정되어 서버 분야에서 많이 사용되고 있는 OS이다. 개인 서버로 많이 사용되고 있는 리눅스 또한 유닉스를 개인화 하여 만든 하나의 파생상품이라 할 수 있다. OS X 는 이런 안정적인 유닉스를 기반으로 제작되었기 때문에 그 안정성을 그대로 포함하고 있다. 문제가 발생할 수 있는 부분에 대해서 문제가 발생하지 않도록 원천 봉쇄를 하거나, 사용자가 필요한 부분이 있다면 어떠한 부분에서도 커스터 마이징이 가능하도록 만들어진 OS이다. 유닉스 기반으로 만들어 졌기 때문에 유닉스에 대해서 잘 알 고 있는 사용자라면 자신의 OS에 맞는 응용 애플리케이션을 개발하는 것이나, 문제점을 해결하는데 있어서 훨씬 쉽게 접근 할 수 있을 것이다.


iLife, iWork의 강력한 연동.
애플의 가장 큰 특징중의 하나는 모든것이 하나로 연결되어 있다는 것이다. 사진을 편집하다가, 음악이나 동영상을 편집하다가, 이것을 메일로 보내고 싶기도 하고, 나의 웹 페이지에 올려놓고 싶기도 하다. OS X에서는 이러한 것들을 어려움 없이 실행 할 수 있다.


그림2. iLife, iWork

iLife에 포함된, 아이포토, DVD, Movie, 개러지 밴드, iWeb은 이미지, 동영상, 음악, 홈페이지등 컴퓨터에서 할 수 있는 대부분의 작업을 할 수 있게 해준다. 작업에 관한 전문 지식이 없이도!! 또한 iWork에 포함된 페이지, 넘버스, 키노트는 사무활동에 필요한 모든 작업이 가능하게 끔 만들어 준다. 페이지를 이용하여 문서를 작성할 수 있고, 넘버스를 이용하여 지출내역이나, 통계, 그래프를 작성하는 일이 가능하다. 또한 키노트는 사용자가 표현하고자 하는 포인트를 완벽하게 표현해 줄 수 있는 프리젠테이션 도구이다.


강력한 찾기 기능, spotlight
OS X에서 자랑한다면 빼놓을 수 없는 것이 바로 스폿라이트 기능이다. 궃이 윈도우의 기능을 비교하자면 찾기 기능과 비교할 수 있는데, 그 기능은 전혀 비교의 대상이 아니다.


그림3. spotlight

OS X를 처음 사용하게 되면, 처음에는 조금 버벅거리다가 사용하면 사용할 수록 점점 빨라지는 느낌을 받을 수가 있는데 그중 한가지 요소가 spotlight의 인덱싱 기능 때문이다. 찾고자 하는 파일을 가장 빠르게 찾게 하기 위해서 하드 디스크에 저장된 모든 파일에 대해서 인덱스를 생성하는 것이다. 인덱스는 처음에 생성을 할 때는 시간이 많이 소요 되지만, 한번 만들어진 인덱스는 좀더 효율적인 작업을 할 수 있도록 그동안의 노력을 톡톡히 보상해 준다. 또한 스폿라이트의 검색 기능은 너무나도 강력해서, 스폿라이트를 통해서 검색결과가 나오지 않는다면 없다고 내 하드 디스크에는 없다고 해도 과언이 아니다.


이외에도 OS X 의 기능은 다양하고 편리하다. 전혀 생각하지 못한 곳에서조차 개발자의 배려를 느낄 수 있는 것이 OS X 만의 매력이고, 윈도우와 다른 가장 큰 특징이라 할 수 있다.

Posted by seanhigher

댓글을 달아 주세요

OSX 부팅시 옵션 키.

Mac life / 2010. 4. 4. 18:54
윈도우를 사용하다가 문제가 발생하면 키보드의 'F8'키를 눌러서 안전모드로 부팅하여 문제를 찾아내고 해결할 수 있다. 리눅스에서도 부팅 옵션을 설정해 줄 수 있다. 그리고, OS X에서도 다양한 부팅 옵션 키를 제공한다.


그림1. OS X 부팅 화면

일반적으로 아무런 문제가 없는 OS X 가 잘 설치 되어 있을때, 아무런 키도 누르지 않으면 위와 같은 화면이 나오고 부팅이 진행 될 것이다. 하지만, CD-ROM에 CD가 삽입되어 있거나, 부트캠프로 윈도우가 설치되어 있다거나, OS X에 치명적인 문제가 발생했다면 문제를 해결하기 위한 다른 방식의 부팅방법이 필요하다. 부팅에 관련한 옵션 키를 누를때는 사과로고 아래의 상태막대가 나타나기 전에 키를 누르고 있어야 부팅옵션이 작용한다.


C : CD-ROM에 CD가 삽입되어 있을 경우 CD로 부팅을 할 수 있다.

D : 물리적으로 첫번째 하드 디스크를 시동 디스크로 선택한다. 논리적으로 파티션을 분할하여 시동디스크를 만들었을 경우, 원래의 시동 디스크로 부팅 할 수 있다.

N : 네트워크 부팅이 가능하도록 한다. 맥북 에어와 같이 물리적 CD-ROM 드라이브가 없을 경우, 다른 컴퓨터에 네트워크로 접근하여 OS X 의 설치가 가능하다.

R : 모니터의 해상도를 기본 해상도로 설정하여 부팅한다. 이 옵션은 OS X에 외부 모니터를 연결하여 해상도 문제가 발생 했을 때 해상도를 기본 셋팅으로 바꾸어 준다.

T : OS X 가 설치되어 있는 하드디스크를 외장하드로 인식하게 한다. 복구 불가능한 문제가 발생 했을 경우 하드 디스크 안의 데이터를 다른 컴퓨터에 옮길 수 있도록 외장하드처럼 인식하게 만들어 준다. FireWire를 통하여 연결이 가능하다.

Option : boot camp를 사용할 경우 부팅 티스크를 선택할 수 있다. 부팅이 가능한 디스크가 여러개 일 경우에도 선택이 가능하다.
Mouse button held down : CD-ROM에 삽입되어 있는 미디어를 부팅시에 꺼낼 수 있다.

Shift : 시작프로그램을 실행하지 않음으로 안전모드로 부팅할 수 있다.

Command + V : 콘솔 모드로 부팅을 하게 되며, 시작시에 어떤 실행들이 이루어지는지 텍스트 형식으로 볼 수 있다.

Command + S : 싱글 유저 모드로 부팅을 한다. 부팅이 완료되면 사용자가 커맨드를 입력할 수 있게 된다. 문제를 해결하기 위해 사용된다.

Command + Option + P + R : PRAM을 초기화 한다. PRAM에는 OS X 가 시동하는데 있어서 기본이 되는 정보들이 저장되어 있다.

Command + Option + N + V : 전원관리 시스템을 초기화 한다. 배터리에 관한 문제가 발생 했을 경우 사용한다.


위의 옵션들은 대부분 문제가 발생했을 경우 사용하게 된다. 지금 당장은 필요하지 않은 옵션들이지만, 문제가 발생했을 경우, 위의 옵션을 통해서 해결할 수 있는 문제들도 많이 있기 때문에 알아두는 것이 유용하다.

Posted by seanhigher

댓글을 달아 주세요

절대적인 자바 개발툴로 사랑을 받고 있는 이클립스. 그렇다면 이클립스에서는 자바 개발만 할 수 있는 것일까? 다양한 플러그인으로 무장한 이클립스에 대해 그런 생각을 가지고 있다면 굉장한 오산이다. 이클립스 자체가 플러그인으로 이루어져 있을만큼 다양한 플러그인으로 변경이 가능하기 때문에, 어떠한 언어에도 완변하게 대응할 수 있다. 그에 걸맞는 플러그인만 가지고 있다면...


PDT(PHP Development Tool)
이클립스에서 웹 개발, 특히 PHP를 개발하기 위해서는 그에 걸맞는 설정이 필요하다. 그리고 이미 준비가 되어 있다. 기본적으로 eclipse JEE 버전을 받으면 웹 개발에 필요한 대부분의 기능을 사용할 수 있지만, 이클립스 자체가 통합적인 업데이트가 이루어지기 때문에, 웹 개발을 위해서라면 웹 개발 부분의 기능을 향상시켜주는 업데이트를 하고, 더 나은 플러그인을 설치해주는 것이 좋다. 특히  PDT는 PHP 개발자들을 위해 특화된 플러그인이라고 할 수 있고, 공식적인 플러그인이기 때문에 매우 안정적이다.


이클립스에 PDT 플러그인 설치
처음으로 이클립스를 실행하게 되면, 개발 환경을 나타내는 퍼스펙티브가 설치 버전에 따라 Java, JEE, 등으로 되어 있을 것이다. 여기에 PDT를 설치하여 PHP 개발에 최적화된 퍼스펙티브를 추가할 수 있다.


그림1. 새로운 플러그인 설치.

메뉴바에서 'HELP' -> 'Install New Software...'를 선택한다. 이클립스에서는 '플러그인 설치' 라는 메뉴 대신에 '새로운 소프트웨어 설치'라는 항목을 사용하고 있다.


그림2. 사이트 추가.

위의 화면과 같은 창이 나오게 되면 오른족 부분에 'Add...' 버튼을 눌러서 'Add Site'라는 창이 나오면, 설치 파일을 제공하는 사이트의 URL을 입력하도록 한다. PDT를 다운로드 받을 수 있는 URL은 'http://download.eclipse.org/tools/pdt/updates/2.0/'이다. 이름부분에는 자신이 알아볼 수 있도록 아무 이름이나 사용해도 상관 없다. 이클립스에서는 위와 같이 사이트에서 직접 파일을 다운로드 하여 설치할 수 있돌고 제공하고 있지만 인터넷 접속이 어려울 경우 직접 파일을 다운로드 받아 설치 할 수 있는 방법도 가능하다. 'Add Site'창에서 'Local'버튼을 클릭하여 다운로드 받은 파일이나 폴더가 있는 위치를 지정해 주면 동일하게 진행 할 수 있다.


그림3. 설치 가능한 플러그인.

설치 사이트를 입력하고 'OK' 버튼을 누르면 자동으로 설치 가능한 플러그인들을 검색해준다. 위 그림에서는 PDT SDK 2.0.1 버전과 PDT SDK 2.1.2 버전이 나오게 되는데 둘중 하나만 선택하여 설치하도록 한다. 만약 두개를 다 선택하면 플러그인끼리 충돌이 일어나서 설치가 이루어지지 않기 때문에 비슷한 플러그인의 경우엔 한가지만 설치하도록 한다.


그림4. 라이센스 동의.


그림5. 설치 진행 화면


그림6. 이클립스 재시작.


그림7. 퍼스펙티브 추가

설치가 완료 되었다고 해서 PDT를 바로 사용할 수 있는 것은 아니다. PHP퍼스펙티브를 추가해 주어야 사용이 가능한 상태가 된다. 이클립스의 오른쪽 윗 부분에 있는 빨간네모와 같은 그림을 클릭하면 위와 같은 메뉴를 볼 수 있게 된다. 기본으로 PHP가 없기 때문에 'Other...'을 선택하여 추가해야 한다.


그림8. PHP 퍼스펙티브 선택

위와 같이 메뉴가 나오면 PHP를 선택하여 PHP퍼스펙티브를 추가할 수 있다.


그림9. PHP Project 메뉴가 추가된 화면

이제 매인 화면으로 돌아가 새로운 프로젝트를 생성해보자. 위의 그림과 같이 'PHP project'라는 새로운 메뉴가 생긴것을 볼 수가 있다.

이클립스의 다양한 플러그인을 설치하는 방법은 위의 방법과 거의 동일하다. 플러그인 파일을 다운로드 받거나, URL을 입력하여 설치하면 된다. 자신이 사용하기에 가장 알맞고, 최적화된 자신만의 이클립스를 만들 수 있을 것이다. 또, 그것이 너무 효율적이라면 다른사람에게 소개하는 아량을 베푸는 것도 좋을 것이다.

'Dev Center > PHP start' 카테고리의 다른 글

PHP 의 변수.  (0) 2010.05.01
timezone 설정하기.  (0) 2010.04.30
PHP 에 무슨 문제라도??  (0) 2010.04.29
HTML 과 PHP 함께 사용하기.  (3) 2010.04.27
eclipse에 PDT 설치하기.  (0) 2010.03.27
PHPeclipse 설치하기.  (2) 2010.03.15
Posted by seanhigher

댓글을 달아 주세요

전세계적으로 아이폰의 열풍은 대단하다. 전화만 가능했던 단순한 피처폰에서 뭐든지 '다' 된다는 스마트폰으로의 세대변화를 이끈 주역이라고 할 수 있다. 그리고 이러한 아이폰을 더욱 더 강력하게 만드는 애플의 CEO인 스티브 잡스의 대중을 사로잡는 마력과, 10만개를 훌쩍 넘어버린 아이폰 앱 스토어의 풍부한 애플리케이션이 있었기 때문이다.


OS X
아이폰 개발을 하기위해서는 특별한 개발 환경이 필요하다. 바로 OS X 이다. 윈도우, 리눅스와는 다른 애플만의 직관적인 OS이다. 애플은 처음 애플 컴퓨터를 만들때 부터 하드웨어와 소프트웨어를 통일하여 만들어왔다. 유닉스 기반의 안정적이고 사용하기 편안 컴퓨터를 모토로 개발해 온 것이 지금의 iMac을 만들게 되었다. 그와 함께 발전하게 된것이 OS X 이다. 이전에는 모든 부품들을 애플에서 만들었지만, 2006년 인텔의 CPU를 사용하면서 좀더 경제적인 제품을 생산하게 되었고, 부트캠프의 사용과 함께 조금은 더 나아진 호완성을 가지게 되었다. 이때부터 애플은 아이맥이 널리 알려지게 되었고, 많은 사람들이 한번쯤은 가져보고 싶은 아이템이 되었다. 인텔칩을 사용하게 된 애플덕분에 일반 컴퓨터에서도 해킨토시라 하여 불법으로 개조된 OS X 가 인터넷 상에 돌아다니게 되었으며, 이것은 애플을 더욱 더 알리는 계기가 되었다.


Objective-C
유닉스 기반의 오에스 텐은 일반적인 C언어가 아닌 오브젝티브 C 언어를 사용하고 있다. 순차적인 C의 단점을 보완한 오브젝티브 C는 객체 지향적인 관점에서 좀더 편안한 프로그래밍을 제공해주며, 유연함과, 풍부한 라이브러리, M(model)-V(view)-C(control)의 프로그래밍 구조를 확고히 하였다. 개발자들이 창의적인 생각으로 개발을 할 수 있도록 여건을 만들어 주었다.


Xcode
엑스코드는 애플의 코코아(Objective-C)프로그래밍을 가능하도록 하는 통합개발도구이다. 너무나도 직관적인 인터페이스를 만들어주는 IB(InterfaceBulider)은 이미 많은 프로그래머로 하여금 Xcode와 코코아 프로그래밍에 빠져들게 만들었다. 코코아 터치를 사용하는 아이폰 프로그래밍은 Xcode 도구를 통해서 개발에 참여할 수 있다. 새롭긴 하지만, 조금만 해본다면 그 편리함에 놀라게 될 것이다.


Xcode for iPhone SDK 설치하기.
애플제품을 사용하는, 아니 애플 사이트에 등록한 사람이라면 누구나 Xcode를 다운로드 받을 수 있다. 물론 OS X에서만 설치할 수 있다는 단점이 있긴 하지만... 아이폰 SDK는 애플개발자센터에서 다운로드 받을 수 있다.


그림1. 애플 개발자 센터

애플 개발자 센터는 크게 세가지로 나뉘어 지는데, 맨 처음에 있는 'iPhone Dev Center'을 선택하도록 한다.


그림2. 로그인

SDK를 다운로드 받기 위해서는 로그인이 필요하다.


그림3. 아이폰 개발자 페이지

로그인을 하면 위와 같은 화면을 볼 수 있다. 맨 위의 다운로드를 선택하여 다운로드 페이지로 이동할 수 있다. 이미 Xcode가 설치되어 있는 사람이라도 다시 iPhone SDK를 다운로드 받아서 설치하면 된다. Leopard나 snow Leopard는 상관없지만, Tiger이전의 버전은 Xcode 2.x 버전을 다운로드 받아 설치해야 한다.


그림4. iPhone SDK 디스크 이미지 파일

'iPhone SDK and Tools for Snow Leopard' 패키지를 클릭하여 설치를 진행한다.


그림5. 설치 시작 화면


그림6. 설치 동의

설치를 하는데는 그리 어려운 부분들이 없다. 설치에 관한 동의를 몇번 하고, 설치 위치, 설치 항목들을 선택하고 나면 Xcode의 설치가 완료된다.


그림7. iTunes 종료 요청 메시지.

iPhone SDK를 설치하는 도중에 iTunes가 실행되고 있다면 위와 같이 종료하고 설치를 진행해 달라는 메시지가 나온다.


그림8. 설치 완료.

설치가 진행되고 위와 같이 설치가 완료되었다는 메시지를 볼 수 있다.


그림9. iPhone SDK의 실행파일 위치

iPhone SDK(Xcode)는 자신의 하드의 'Developer -> Applications' 디렉토리에서 Xcode라는 실행파일을 찾을 수 있다.


그림10. iPhone SDK 실행 화면.

Xcode를 실행하면 환영 메시지 후에, 위와 같은 화면을 볼 수 있을 것이다. 왼쪽에 보면 알 수 있듯이, 윗부분은 아이폰 애플리케이션을 위한 프로젝트가 있고, 아래쪽에는 OS X 애플리케이션을 위한 텝이 자리하고 있다. 이제부터 하나씩 아이폰 개발을 배워보도록 하자.



Posted by seanhigher

댓글을 달아 주세요

사람들이 mac을 사용하는 이유는 다양하다. 감탄사가 절로 나오는 멋진 외모 때문에, 윈도우를 벗어난 다른 OS를 경험하고 싶어서, 혹은 아이팟에 매료되어 맥북이 아이팟을 사용하는 하는데 유용하다고 하는 등... 하지만, 맥은 개발자들에게도 탐하고 싶은 아이템중의 하나이다. 맥은 개발자들이 더욱 편하고, 간단하게 개발에 몰 두 할 수 있게끔 만들어 주었다. 바로 Xcode라는 환상적인 개발도구를 통해서!


About Xcode.
애플은 개발자들이 개발에만 전념할 수 있도록 훌륭한 개발 도구를 준비했는데, 그것이 바로 Xcode이다. Xcode는 맥을 사용하는 사람이라면 누구나 사용할 수 있게 공개되어 있다. Xcode는 맥용 어플리케이션을 만드는 cocoa 프로그래밍을 하도록 만들어졌지만, Java, objective-C, C, C++, 파이썬, 루비등 거의 대부분의 프로그래밍이 가능하다. Xcode를 완성하는 인터페이스 빌더는 그 수려한 외모와 사용의 편리함 때문에 한번 Xcode를 사용하면 헤어나오지 못할 정도이다.


Xcode 다운로드.
Xcode는 애플 개발자 센터에서 다운로드 받을 수 있다. 맥을 사용하지 않는 사람이라고 해도 다운로드는 받을 수 있다. 물론 설치를 하는 것은 어렵겠지만... 애플 개발자 센터의 웹 주소는 다음과 같다. developer.apple.com


그림1. 애플 개발자 센터

애플 개발자 센터에는 iPhone, Mac, Safari의 세가지 개발 센터를 가지고 있다. 일반적인 Xcode를 다운로드 받기 위해서는 Mac Dev Center를 선택한다.


그림2. Mac Dev Center

누구나 개발도구를 다운로드 받을 수 있지만, 한가지 조건이 있다. 웹 사이트에 가입이 되어 있어야 한다는 것이다. 애플 아이디가 있다면 그것으로 가능하다.


그림3. 로그인 화면


그림4. Xcode 다운로드 페이지.

이제 Xcode를 다운로드 받을 수 있다. 하지만, 3.x버전은 Lopard(10.5)버전 부터 가능하다. 만약 Tiger(10.4)이하의 버전을 가지고 있다면
2.x버전의 Xcode를 다운로드 받아야 한다.


Xcode 설치하기.
다운로드 받은 dmg 파일을 열어보면 PDF파일과 Xcode 설치 패키지가 들어있는것을 볼 수 있다. 패키지 파일을 더블클릭하면 Xcode 설치가 시작된다.


그림5. Xcode.dmg


그림6. Xcode 소개


그림7. 사용권 계약


그림8. 설치 옵션


그림9. 설치 위치

설치를 하는 것은 그리 어렵지 않다. 설치 옵션을 선택하고, 설치 위치를 정하면 어렵지 않게 설치를 진행 할 수 있다.


그림10. 설치 완료

설치가 완료되었다. 하지만, 응용프로그램 폴더에는 Xcode실행 파일이 보이질 않는다. 실행파일은 HD -> Developer -> Application에서 찾을 수 있다.


그림11. Xcode 실행 파일

비쥬얼한 개발 환경으로 개발자들을 사로잡는 Xcode를 사용한다면, 여러분들의 개발이 즐거워질 것이다.

Posted by seanhigher

댓글을 달아 주세요

  1. 2011.02.07 15:17 해랑  댓글주소  수정/삭제  댓글쓰기

    넘 감사드려요^^ 마지막에 어떻게 실행하는지 몰라서 난감해하고 있었거든요 ㅎㅎ

  2. 2011.07.22 02:57 ㄱㅅ  댓글주소  수정/삭제  댓글쓰기

    헤매고 있었는데ㅜㅜ 정말 감사해요!!!

  3. 2013.01.20 23:10 신고 History+Young  댓글주소  수정/삭제  댓글쓰기

    애플개발자 오늘 등록해서 다운로드 받았습니다. 마운틴 라이언 이후에는 App Store에서 바로 다운로드 설치되는군요.

최근에 달린 댓글

글 보관함