최초로 호출되는 main함수 ───────────────────── 함수란 일련의 처리를 모아서 '함수명'으로 호출할 수 있도록 한 것입니다. 이 때 함수에 넘겨주는 값을 인수라고 합니다. 그리고 함수가 처리한 결과를 호출한 쪽으로 되돌려주는 값을 반환값이라고 합니다. 함수는 다음과 같은 형식으로 정의합니다. 반환값의 타입 함수명(인수 리스트){ 함수의 내용 return 반환값; } 즉, 함수의 내용은 '{'와 '}' 사이에 기술하는 것입니다. C언어에서는 프로그램을 실행하면 제일 먼저 main이라는 이름의 함수가 호출된다는 규칙이 있습니다. Objective-C에서도 마찬가지 입니다. Sample.m을 살펴보면 다음과 같이 main 함수가 기술되어 있습니다. int main (int argc, cons..
소스파일의 구조 ───────────── Xcode에서 커맨드라인 어플리케이션(Foundation) 프로젝트를 처음 생성하면 나오는 샘플코드로 소스파일인 .m 파일의 구조를 살펴보겠습니다. 처음 프로젝트를 생성하면 함께 생성되는 .m 소스파일의 샘플코드 입니다. 위 코드에서 화살표로 표시한 1 부분의 #import로 시작되는 부분은 헤더 파일을 읽어 들이는 부분입니다. 그리고 화살표로 표시한 2 부분이 프로그램의 본체 main 함수입니다. 자 그럼 import한 헤더파일과 메인함수에 대해서 알아보겠습니다. 헤더파일의 Import ─────────────── 프레임워크의 메소드와 라이브러리의 함수 선언 등이 포함된 파일을 헤더파일(head file)이라고 합니다. 소스 파일 내에서 메소드나 함수를 호출하면..
가비지 컬렉션에 대해서 ────────────────── 프로그램을 실행할 때 종종 문제가 되는 것은 메모리상에 확보한 영역을 언제 해제하느냐입니다. Objective-C와 같은 객체지향 언어에서는 오브젝트를 생성하면 메모리상에 그 영역이 만들어집니다. 오브젝트를 계속해서 생성하다보면, 사용할 수 있는 메모리 영역은 그만큼 줄어들게 됩니다. 그렇기 때문에 필요가 없어진 오브젝트는 프로그래머가 적절하게 해제해서 메모리를 확보해 주어야 합니다. 그렇지 않으면 자림나 차지하고 사용되지 않는 메모리 영역이 계속 증가하게 됩니다. 이런 현상을 메모리 누수(memory leak)라고 합니다. 그래서 고안해 낸 것이 가비지 컬렉션(garbage collection)이라는 기능입니다. 말 그대로 쓰레기를 수집하듯, 불..
Framework(프레임워크)에 대해서 ───────────────────────── 프레임워크(정확하게는 애플리케이션 프레임워크)란 애플리케이션의 개발 및 실행을 지원하는 틀 혹은 실행환경 같은 것입니다. 초창기의 프로그래밍에서는 자주 사용되는 처리를 모아두고, 다른 프로그램에서 자유롭게 호출할 수 있게 하는 라이브러리라는 개념을 사용했는데, 프레임워크는 거기서 더 발전한 형태로 생각할 수 있습니다. 특히 요즘처럼 GUI(Graphic User Interface)를 많이 활용하는 데스크톱 애플리케이션에서는 빼놓을 수 없는 존재입니다. 덧붙여 프레임워크에 준비되어 있는 기능을 꺼내 쓰게 해 주는 창구 같은 것을 API(Application Programming Interface)라고 부릅니다. 각각의 프..
유니버셜 바이너리 ─────────────── Mac OS X용 프로그램이 모토로라 계열의 PowerPC를 탑재한 Mac에서도 동작하고, Intel CPU를 탑재한 이른바 Intel Mac에서도 동작하는 이유가 뭔지 알고 계시나요? 최근에 나오는 Mac OS X용 프로그램은 각각의 형식에 대응하는 실행 파일들을 하나의 파일 속에 저장하고 있습니다. 이런 파일 형식을 유니버셜 바이너리라고 합니다. 유니버셜 바이너리 이전의 PowerPC Mac용 프로그램도 Intel Mac상에서 동작시킬 수 있습니다. Intel Mac에는 Rosetta라고 불리는 변환 프로그램이 준비되어 있어, Rosetta를 인스톨한 환경이라면 PowerPC용 프로그램을 Intel 형식의 프로그램으로 변환하면서 실행하는 것입니다.
기능 중심적인 소프트웨어 설계 방식의 문제점 ──────────────────────────────────── 여러 언어로 프로그램을 개발할 때 처리방법은 크게 세가지 패턴으로 나눌 수 있습니다. 1. 순차 처리 : 시간 흐름 순서대로 처리 내용을 기술하는 방식 2. 조건 처리 : 특정 조건에 따라 서로 다른 처리를 하는 방식 3. 재귀 처리 : 동일한 처리를 반복해서 실행하는 방식 프로그램 개발시 이런 기본 패턴을 조합하여 사용하는 언어를 절차형 언어 혹은 절차지향적 언어라고 합니다. 프로그래밍 언어를 분류할 때 절차형이 아닌 언어로는 관계형, 논리형 언어 등이 있습니다. 하지만 현재까지 수많은 프로그램이 절차지향적 언어로 개발되었거나 지금도 개발되고 있습니다. 특정 업무를 프로세스와 함수로 분해하면서..
- Total
- Today
- Yesterday
- JSP
- 아이폰 개발
- Objective C
- Programming
- 아이폰
- iOS 개발
- SQL
- oracle
- 아이폰 어플리케이션
- 오브젝티브 C
- 오블완
- iPhone
- MAC OSX 10.7
- 오브젝트 C
- Spring Framework
- Java
- Object C
- zero
- JavaScript
- tomcat
- Objective-C
- jQuery
- IT
- 자바
- 제이쿼리
- Spring
- 자바스크립트
- iBATIS
- MySQL
- 티스토리챌린지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |