Swift Fundamentals by Mark Lassoff Copyright 2014 All rights reserved Korean Translation Copyright 2015 by J-Pub. co. The Korean edition was published

Size: px
Start display at page:

Download "Swift Fundamentals by Mark Lassoff Copyright 2014 All rights reserved Korean Translation Copyright 2015 by J-Pub. co. The Korean edition was published"

Transcription

1

2 Swift Fundamentals by Mark Lassoff Copyright 2014 All rights reserved Korean Translation Copyright 2015 by J-Pub. co. The Korean edition was published by arrangement with Mark Lassoff c/o LearnToPrograms, Inc. through Agency-One, Seoul. 이 책의 한국어판 저작권은 에이전시 원을 통해 저작권자와의 독점 계약으로 제이펍에 있습니다. 신저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 무단복제를 금합니다. 초판 1쇄 발행 2015년 5월 8일 지은이 마크 라소프 / 토마스 스타초위츠 옮긴이 심재철 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제 호 주소 경기도 파주시 문발로 141 뮤즈빌딩 403호 전화 / 팩스 홈페이지 / 이메일 jeipub@gmail.com 편집부 이민숙, 이 슬, 이주원 / 소통 기획팀 현지환 본문디자인 성은경 / 표지디자인 미디어픽스 용지 신승지류유통 / 인쇄 해외정판사 / 제본 광우제책사 ISBN (93000) 값 24,000원 이 책은 저작권법에 따라 보호를 받는 저작물이므로 무단 전재와 무단 복제를 금지하며, 이 책 내용의 전부 또는 일부를 이용하려면 반드시 저작권자와 제이펍의 서면동의를 받아야 합니다. 잘못된 책은 구입하신 서점에서 바꾸어 드립니다. 제이펍은 독자 여러분의 아이디어와 원고 투고를 기다리고 있습니다. 책으로 펴내고자 하는 아이디어나 원고가 있으신 분께서는 책의 간단한 개요와 차례, 구성과 저(역)자 약력 등을 메일로 보내주세요. jeipub@gmail.com

3

4 드리는 말씀 이 책에 기재된 내용을 기반으로 한 운용 결과에 대해 저자, 역자, 소프트웨어 개발자 및 제공자, 제이펍 출판사는 일체의 책임을 지지 않으므로 양해 바랍니다. 이 책에 등장하는 각 회사명, 제품명은 일반적으로 각 회사의 등록 상표 또는 상표입니다. 본문 중에는 TM, C, R 마크 등이 표시되어 있지 않습 니다. 이 책에서 사용하고 있는 제품 버전은 독자의 학습 시점이나 환경에 따라 책의 내용과 다를 수 있습니다. 참고로, 이 책의 번역 환경은 다음과 같습니다. ios 8.3, Xcode 6.3, Swift 1.2 본문 중 일본 내의 실정에만 국한되어 있는 내용이나 그림은 일부를 삭제하거나 국내 실정에 맞도록 변경하였으니 참고 바랍니다. 책 내용과 관련된 문의사항은 옮긴이나 출판사로 연락해 주시기 바랍니다. 옮긴이: jcspro@hanafos.com 출판사: jeipub@gmail.com

5 차례 옮긴이 머리말 저자 소개 베타리더 후기 ix xi xiii 01 시작하기 Swift 개요 1 복습 문제 Xcode IDE 사용하기 10 복습 문제 20 1장 연습 문제 변수 변수와 상수 생성하기 23 복습 문제 변수 타입 이해하기 31 복습 문제 산술 연산자 36 복습 문제 타입 변환 41 복습 문제 문자열 삽입 44 복습 문제 48 2장 연습 문제 49 차례 v

6 03 흐름 제어 if 문 51 복습 문제 다중 if 문과 복합 if 문 59 복습 문제 switch 문 67 복습 문제 while 루프 72 복습 문제 for 루프 79 복습 문제 for-in 루프 83 복습 문제 86 3장 연습 문제 배열과 딕셔너리 배열을 생성하고 변경하기 89 복습 문제 Array.count()와 Array.slice() 95 복습 문제 배열 함수 101 복습 문제 딕셔너리 생성하기 110 복습 문제 딕셔너리 함수 115 복습 문제 120 4장 연습 문제 함수 함수 정의와 호출 123 복습 문제 127 vi 차례

7 5.2 함수는 인자를 받는다 128 복습 문제 함수는 값을 반환한다 133 복습 문제 변수/상수 범위와 함수 140 복습 문제 중첩 함수 145 복습 문제 148 5장 연습 문제 클래스와 프로토콜 열거형 151 복습 문제 클래스와 인스턴스 생성하기 160 복습 문제 서브 클래스와 오버라이딩 169 복습 문제 프로토콜 178 복습 문제 182 6장 연습 문제 SWIFT 추가로 알아보기 익스텐션 187 복습 문제 연산자 오버로딩 192 복습 문제 제네릭 196 복습 문제 에모지 200 복습 문제 202 7장 연습 문제 203 차례 vii

8 08 Swift로 ios 앱 만들기 앱 레이아웃 생성하기 205 복습 문제 아울렛과 액션 생성하기 217 복습 문제 앱을 실행하고 테스트하기 227 복습 문제 233 8장 연습 문제 234 복습 문제 답안 238 찾아보기 253 viii 차례

9 옮긴이 머리말 정성과 최선을 다했습니다. 한마디로 요약해서 독자 여러분께 드리고 싶은 제 진심의 표현입니다. 매번 번역서를 낼 때마다 항상 그렇듯이, 제가 저술하는 마음으로 이 일에 임했고 또 그렇게 마무리했습니다. 용어 하나하나, 내용 모두에 걸쳐 심사숙고하고, 여러 차례에 걸친 원고 검토 끝에 완성된 이 책을 보면서 이제야 마음이 흐뭇해집니다. 좋은 내용을 독자 여러분께 제대로 전달할 수 있을 것이라는 기대감 때문일 겁니다. 애플에서는 ios와 OS X 애플리케이션을 개발할 수 있는 새로운 프로그래밍 언어인 Swift 를 발표하고 핵심 언어로 사용할 뜻을 공표한 바 있습니다. Swift는 기존의 오브젝티 브-C(Objective-C)는 물론 자바나 C++ 등이 가진 장점을 대부분 수용하고 있는 강력한 기능 을 지닌 프로그래밍 언어입니다. 따라서 Swift를 사용하면 어떤 형태의 ios와 OS X 애플리케 이션도 개발할 수 있습니다. 그러나 제대로 활용하기 위해서는 알아야 할 것이 너무 많아서 어려운 측면도 있습니다. 이 책에서는 언어를 쉽게 배울 수 있도록 기본적이고 핵심적인 사항 을 알려줍니다. 그리고 다양한 코드 예를 통해 직접 실습하면서 배우도록 구성되어 있습니다. 특히 프로그래밍 언어에 입문하는 초보자에게 적합한 책입니다. Swift로 ios와 OS X 애플리 케이션의 개발을 시작하려는 분들에게 권하고 싶습니다. 이 책을 번역하면서 다음과 같은 부분에 중점을 두었습니다. 1. 용어를 잘 이해하는 것이 제일 중요하므로, 용어 선정에 유의하였습니다. 때로는 용어 하나 때문에 많은 시간을 고민하기도 했지요. 제가 실무에서 오랫동안 경험했던 지식을 바탕으 로 가장 적합한 번역 용어 선정에 많은 노력을 했습니다. 2. 여러분의 이해를 돕는 데 필요한 보충 설명을 많이 넣었습니다. 옮긴이 머리말 ix

10 3. 본문이나 소스 코드에서 결함이 있는 내용을 하나하나 확인해 가면서 수정하였습니다(원서 의 개정판이라고 생각하셔도 될 듯합니다). 참으로 긴 시간이었던 것 같습니다. 독자들에게 도움이 될 수 있는 책을 만들어야 한다는 집 념이 있었기에 모든 어려움을 참아낼 수 있었습니다. 이 책을 출판하는 데 아낌없는 배려와 수고를 해주신 제이펍 출판사의 장성두 사장님과 실무에서 많은 노력과 수고를 해주신 이주 원 님께 진심으로 감사드립니다. 2015년 5월 역자 심재철 드림 x 옮긴이 머리말

11 저자 소개 마크 라소프_Mark Lassoff 부모님은 내가 프로그래머의 삶을 타고났다고 말씀하셨다. 1980년대 중반에 이웃집 아이들 이 밖에서 발야구를 하거나 눈싸움을 하며 놀 때, 나는 BASIC 프로그래밍 언어로 게임을 작 성하느라 내 코모도르 64 컴퓨터와 씨름하고 있었다. 대학에서 컴퓨터 공학을 전공할 때도 여 전히 컴퓨터 프로그래밍이 최대 관심사였으며, 대학을 졸업한 후에는 여러 대기업의 소프트웨 어 개발 부서에서 근무했다. 또래들이 닷컴 세계에 빠져 있던 2001년에는 잠시 텍사스 오스틴의 기술 교육 센터에서 프로 그래머 교육을 담당하는 직위를 맡았다. 그리고 이를 계기로 프로그래밍을 가르치는 일에 매 료되었다. 지난 10년간 프로그래밍을 가르치는 일에 열중하였고, 오늘날에는 최고의 기술 트레이너로서 여러 곳을 다니며 소프트웨어와 웹 개발자 교육 과정을 맡고 있다. 담당했던 교육 훈련 고객 중에는 미 국방성, 록히드 마틴, DCS(Discover Card Services), 카이저 퍼머넌트 연구소 등이 포 함되어 있으며, 전통적인 강의실 교육과 더불어 교육 과정을 웹으로도 운영하고 있다. 현재 코네티컷 주 하트퍼드 인근에 살고 있다. 저자 소개 xi

12 기술 저자 토마스 스타초위츠_Tomas Stachowitz 플로리다에서 태어났지만 어린 시절을 북서부 코네티컷 주에서 보냈다. 항상 기술 글쓰기에 관심이 있었으나 고등학교 때까지는 프로그래밍을 하지 않았다. 그리스의 아테네에 있는 인디 애나폴리스 대학의 해외 캠퍼스에서 언론학을 공부하였고, 그 후에는 영국, 그리스, 뉴욕, 애 리조나, 콜로라도, 워싱턴 DC, 버지니아에서 살다가 군에서 복무하기도 했다. 지금은 코네티 컷 주에 돌아와서 기술 글쓰기에 전념하고 있다. 여유가 있을 때면 하이킹과 게임을 즐기며, 예쁜 아내인 크리스타 그리고 두 고양이와 함께 시 간을 보낸다. xii 저자 소개

13 베타리더 후기 백경윤(다음카카오) ios 개발을 시도하면서 가장 힘들었던 점을 꼽으라면, 오브젝티브-C였던 것 같습니다. Swift 는 이러한 오브젝티브-C의 벽을 깰 수 있도록 도와주며, 이 책은 그런 Swift를 가벼운 마음으 로 체험해볼 수 있도록 해주는 도서입니다. 송종근(위시컴퍼니) 최신의 언어라고 할 수 있는 Swift를 차근차근 배워나갈 수 있도록 도와주는 매우 친절한 참 고서입니다. 새로 나온 기술이나 언어는 배울 곳이 마땅치 않아 배우고 활용하기가 항상 어렵 습니다. 하지만 이제 Swift는 그런 단계를 넘어서는 것 같네요. 그런 의미에서 이번 책이 많은 분께 도움이 될 것 같습니다. 이상현(SI 개발자) 플랫폼에 종속적이지 않다면 수많은 사람이 Swift를 즐길 거라 생각될 정도로 정말 쉽습 니다. 내용은 프로그래밍을 처음 시작하시는 분들도 어려움 없이 이해할 수 있도록 구성되 어 있으며, 새로운 언어를 배우는 데 주저하시는 분들도 이 책을 읽고 나면 어느새 Xcode의 Playground에서 Swift로 코딩하는 자신을 발견하게 되실 겁니다. 정원재(예티소프트) 최근 새로운 Mac OS, ios 개발 언어로 관심을 받고 있는 Swift에 대한 전반적인 부분을 알 수 있는 좋은 책입니다. Xcode에 대한 설명도 함께 되어 있어서 처음 접하는 사람도 쉽게 따라 할 수 있을 것 같고, 다른 언어를 사용하던 개발자가 처음 Swift를 접할 때도 훌륭한 참고 교 재가 될 것 같습니다. 베타리더 후기 xiii

14 조우진(티켓몬스터) 새로운 언어를 배우는 일은 늘 재미있는 일입니다. 이 책을 통해 또 다른 프로그래밍 언어인 Swift를 처음으로 접해 보았는데, 최신 언어답게 군더더기 없이 시원한 느낌의 동적 타입 스크 립트 언어의 모습을 갖추고 있습니다. 이 책은 Swift를 다루지만 기본 개념도 놓치지 않고 차 근히 설명해줍니다. 챕터마다 핵심적인 키워드와 용어들을 콕콕 집어서 설명해주므로 프로그 래밍에 익숙지 않은 분들에게도 권하고 싶은 책입니다. 최해성(티켓몬스터) 더 쉽게, 더 깊게 시리즈는 독자에게 흥미를 불러일으킬 내용을 쉽게 풀어나가는 것이 특징입 니다. 이 책도 프로그래밍에 대한 기본적인 지식을 지니고 있으면서 Swift를 처음 배우는 사람 을 대상으로 합니다. 입문서인 만큼 본격적인 Swift를 배우기 전에 몸풀기( )용 서적으로 생각 하면 적당할 것 같습니다. 제이펍은 책에 대한 애정과 기술에 대한 열정이 뜨거운 베타리더들로 하여금 출간되는 모든 서적에 사전 검증을 시행하고 있습니다. xiv 베타리더 후기

15 01 이 장에서 배울 내용 시작하기 Xcode와 Swift를 설치하고 준비한다. Xcode playground의 기본적인 사용법을 알아본다. 간단한 프로그램을 생성하고 실행하는 방법을 배운다. Xcode를 앱 개발에 활용하는 방법을 이해한다. 간단한 아이폰(iPhone) 앱을 생성하고 실행한다. 1.1 Swift 개요 Swift(스위프트)의 세계에 온 여러분을 환영한다! 이 책에서 여러분은 애플 ios 플랫폼 애플리 케이션(이하 앱)을 개발할 수 있도록 Swift 프로그래밍의 기초를 배울 것이다. 이 책은 초보자 를 위한 것이므로 프로그래밍 경험이 전혀 없더라도 염려할 필요는 없다. 우선 앱 개발을 시 작하는 데 필요한 환경 설정을 한 다음, Xcode와 Swift를 사용해서 프로젝트 생성 방법을 찬 찬히 알려줄 것이다. Swift는 애플의 새로운 프로그래밍 언어이며, 스크립트 언어처럼 쉽고 빠르게 사용하도록 설 계되었다. 또한, 컴파일 언어처럼 성능이 뛰어나다. Swift를 배우고 앱을 개발하려면 우선 우리의 컴퓨터에 개발 소프트웨어인 Xcode(6.0 버전 이 상)가 준비되어야 한다. Xcode는 OS X와 ios 소프트웨어 개발을 위해 애플에서 제공하는 IDE(Integrated Development Environment, 통합 개발 환경)다. IDE 프로그래머가 소프트웨어를 개발할 때 사용하는 여러 도구를 묶어서 제공하는 통합 소프트웨어가 IDE다. 1.1 Swift 개요 1

16 IDE는 소프트웨어 개발을 훨씬 쉽고 빠르게 해주는 다양한 기능과 유틸리티를 제공한다. Swift를 배우는 동안에 Xcode IDE의 기본적인 기능들이 어떻게 사용되는지 알게 될 것이다. Swift는 2014년에 소개된 애플의 새로운 프로그래밍 언어로서 Xcode IDE에 통합되어 있으며, ios와 OS X 앱을 신속하게 개발할 수 있도록 해준다. Swift를 실행하려면 최소한 OS X Mavericks(매버릭스) 이상의 버전이 필요하다. 그리고 최신 버전의 Xcode를 사용할 때는 OS X 도 최신 버전으로 설치할 필요가 있다(예를 들어, Xcode 6.4의 경우는 Yosemite(요세미티)). 최신 버전의 OS X 업그레이드는 앱 스토어에서 무료 로 다운로드 및 설치가 가능하다. 그리고 OS X 업그레 이드가 설치되면 Xcode를 설치할 준비가 된 것이다. 맥 컴퓨터에 Xcode를 설치하는 것은 간단하다. (만일 맥(Mac)이 아닌 PC를 사용 중이라 면, 맥 가상 머신(Mac Virtual Machine) 을 사용하거나 또는 macincloud.com에 서 시간당 1달러에 가상 맥 서버를 임대 하여 사용할 수 있다.) 최신 버전의 개발 도구와 SDK 다운로드 그림 1-1 Xcode는 애플 개발자 사이트에서 쉽게 찾을 수 있다. 최신 버전의 Xcode는 다운로드할 수 있다. 여기에 접속하 면 웹 페이지의 중간쯤에 Download the latest development tools and SDKs 가 있다. 이곳의 Xcode 아이콘을 클릭하면 Xcode 다운로드 페이지 가 나타난다. 거기에서 제일 위에 있는 공개된 최신 버전의 View in the Mac App Store 링크를 클릭하여 맥 앱 스토어의 Xcode 화 면으로 이동한 후 무료로 다운로드와 설치를 할 수 있다. 이때 최신 버전의 OS X 애플리케이 션 개발용 SDK와 ios 앱 개발용 SDK가 함께 다운로드 및 설치된다. Xcode를 설치하고 실행시키면 웰컴 스크린이 나타나며, Get started with a playground, Create a new Xcode project, Check out an existing project 와 같은 세 가지 옵션을 선택할 수 있다. 지 2 Chapter 01 시작하기

17 금 우리는 Xcode playground(플레이그라운드)를 사용할 것이므로 첫 번째 옵션을 선택하자. Xcode playground는 Xcode(버전 6)에 새로 추가된 기능이다. 이 기능을 사용하면 Swift 소스 코드를 컴파일하지 않고 작성하면서 곧바로 테스트할 수 있다. Playground는 운동장이나 놀 이터를 말하는데, 즐겁고 재미있게 Swift 코드를 작성하고 배우자는 취지에서 이런 명칭을 붙 인 것이라 여겨진다. Get started with a playground 를 선택하면 곧바로 Xcode playground 프 로젝트를 생성할 수 있으며, 처음에는 Name 과 Platform 필드가 나타난다. Name 은 새로 운 프로젝트 파일명이며, 우리가 원하는 것을 입력하면 된다. 여기서는 helloworld 를 사용할 것이다. Platform 은 개발할 프로그램의 플랫폼이며, ios나 OS X 중 하나를 선택한다. 지금 은 Swift와 Xcode가 제대로 설치되어 잘 동작하는지만 테스트할 것이므로 어떤 것을 선택해 도 관계는 없으나, 여기서는 OS X을 선택할 것이다. 그림 1-2 새로운 Xcode playground를 생성하는 옵션들 파일명 입력과 플랫폼 선택이 끝난 후에는 생성된 파일을 저장할 위치를 지정한다. 모든 지정 이 끝난 후 Create 버튼을 누르면 자동 생성된 코드들을 갖는 템플릿 코드가 화면에 나타난 다. 여기서는 일단 그 코드들을 삭제하자. 단, import Cocoa 문은 삭제하지 말고 그대로 둔다. 화면을 보면 대부분의 영역을 텍스트 편집기가 차지할 것이다. 우리가 코드를 작성하면서 대 부분의 일을 하는 곳이 바로 여기다. 텍스트 편집기의 오른쪽 패널에는 사이드바(sidebar)가 있 1.1 Swift 개요 3

18 는데, 우리가 소스 코드 문장을 하나씩 작성할 때마다 그 코드의 변수가 갖는 현재 값을 곧바 로 사이드바에 보여준다. 바로 이것이 Xcode playground의 편리한 기능이다. 예를 들어, 자동 생성된 템플릿 코드에는 Hello, playground 를 값으로 갖는 str 이라는 변수가 다음과 같이 선언되어 있다. 이 경우 해당 값이 사이드바에 즉시 나타난다. var str = "Hello, playground" 현재 나타난 코드에 이어서 다음 코드를 텍스트 편집기에 입력해보자. var sum = 이 코드가 실행된 결과인 12 가 사이드바에 나타날 것이다. 이런 식으로 그 시점의 변수 값 을 바로 확인할 수 있으므로 코드에 문제가 있을 때 도움을 받을 수 있다. 그림 1-3 Xcode의 사이드바에서는 개발 중인 코드의 변수 값을 알려준다. 이쯤 해서 컴퓨터 프로그래밍의 중요한 개념인 (variable)에 대해 알아보자. 변 수는 프로그램에서 사용할 필요가 있는 값을 저장하는 데 사용된다. 예를 들어, 조금 전에 str 이라는 변수를 생성하고 값으로 Hello, playground 를 지정했었다. 변수 기본적으로 str 은 값으로, Hello, playground 가 저장된 스토리지 영역을 나타낸다. 그리고 이 값은 프로그램이 실행되는 동안 변경될 수 있다. Swift에서는 변수를 생성할 때 특별한 키워드인 var 을 사용하며, 변수명 앞에 넣어서 그 변 4 Chapter 01 시작하기

19 수를 생성하도록 지시한다. 여기서는 변수명을 str 로 주었으며, (assignment operator)를 사용해서 값을 지정하였다. 대입 연산자 대입 연산자 는 등호(=)를 사용하며, 연산자 오른쪽의 값을 왼쪽의 변수에 대입(지정)한다는 것을 나타낸 다. 여기서는 Hello, playground 값을 str 에 지정하였다. Swift 프로그래밍 언어에서 사용되는 변수에는 여러 타입이 있다. 그중 기본 데이터 타입에는 Int, Float, Double, Character, String, Boolean이 있다. Int 또는 Integer는 소수부가 없는 정수의 변수 타입이다. 예를 들면, 12, 58, -522 등이다. Float와 Double은 소수부를 갖는 숫자들로, 의 값을 갖는 파이(Pi, 원주 율)가 가장 좋은 예다. Float와 Double은 크기와 정밀도에서 차이가 있다. Float는 32비트 크기인 반면에 Double은 64비트이므로 소수점 이하 자릿수가 더 많아 서 정밀도가 높아진다. Integer Float Double Boolean 변수는 True 또는 False 값만을 갖는 변수 타입이다(키워드는 Bool). Character 변수는 문자, 숫자, 구두점과 같은 하나의 유니코드 문자를 나 타낸다. Boolean Character 끝으로 String은 앞에 나왔던 Hello, playground 와 같은 문자열이다. String Swift에서는 생성될 변수 값을 검사하여 변수의 타입을 동적으로 결정해준다. Hello, playground 값은 String이므로 그 값을 갖는 str 변수를 지정하면 그 변수의 타입을 Swift가 String으로 선언해준다. 이와는 달리 변수의 타입을 우리가 선언할 수도 있다. 예를 들어, 42 를 Int 타입으로 선언하거나 42.0 을 Float나 Double 타입으로 선언할 수 있다. 앞에서 생성했던 sum 변수에는 을 값으로 지정하였다. 이때는 산술 연산 결과가 변 수의 값이 되고 타입을 결정한다. 대입 연산자의 경우는 연산자 오른쪽이 먼저 처리된 후, 그 결과가 왼쪽의 변수에 지정된다는 것을 기억하자. (arithmetic operator)는 수식을 계산하게 해주며, 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈 (/), 나머지 연산(%)을 할 수 있다. 1.1 Swift 개요 5

20 이제 다시 우리의 첫 번째 프로그램으로 돌아가자. import Cocoa 라인만 남겨두고 텍스트 편집기의 모든 코드를 지웠는지 확인한다. Cocoa 가 Swift 코드를 OS X에 연결하여 실행되도 록 해주는 라이브러리이기 때문에 import Cocoa 는 필요하다. 여기서는 우선 Hello World 를 출력하는 프로그램을 생성할 것이다. 이것은 새로운 언어를 배울 때 제일 먼저 작성하는 프로그램이기도 하다. 텍스트 편집기에서 우선 println() 을 입력한다. 이때, 우리가 입력하는 단 어와 연관하여 도움이 될 수 있는 코드를 Xcode가 보여줄 것이다. println( ) 그림 1-4 Xcode는 유용한 코드와 그 정보를 제공한다. 여기서는 우리가 printl 을 입력할 때 Xcode에서 println() 함수의 정보를 제공한다. 맨 앞의 소문자 f 는 println()이 함수임을 알려주며, 그 다음의 Void 는 결과를 반환하지 않는다는 것을 나타낸다. 이때 enter 키를 누르면 Xcode가 자동으로 println() 을 완성해준다. (function)는 뒤에서 자세히 설명하겠지만, 간단히 말해서 특정 작업을 수행 하는 독립된 코드 모음이다. println() 함수의 경우는 void를 반환하는데, 이것 함수 은 함수의 실행이 끝난 후 어떤 결과도 반환하지 않음을 의미한다. 예를 들어, 숫자를 더하는 addnumbers() 라는 함수가 있다고 가정한 후, 콘솔에 텍스트를 출력하는 println() 함수와 비교해보자. println() 함수는 한 라인의 텍스트를 출력하고 실행이 끝나지만, addnumbers() 함수는 더해진 숫자를 결과로 반환할 필요가 있다. 이때는 void 대신 반환하는 데이터 타입이 필요하다. 그 다음에는 출력할 Hello World 를 println()의 괄호 안에 입력하면 코드 작성이 끝난다. 6 Chapter 01 시작하기

21 println("hello World") 여기서는 println() 함수에 Hello World 를 전달하여 출력하게 한다. 그러나 앞에서 얘기했던addNumbers() 함수의 경우는 다 음과 같이 코드를 작성할 수 있다. 다른 언어와 달리 Swift에 서는 문장의 끝을 나타내 는 세미콜론(;)이 필요 없다. addnumbers(1,2) 이 경우는 덧셈할 값들을 함수에 전달한다. 두 함수 모두 개념은 동일하 다. 즉, 함수에 매개변수를 전달하는 것이다. (parameter)는 함수 매개변수 가 작업하는 데 사용하는 값이다. 만일 Hello World 를 println() 함수에 전달하지 않았다면, println()에서 아무것도 출력할 수 없었을 것이다. 마찬가지로 1,2 를 addnumbers() 함수에 전 달하지 않았다면 addnumbers()에서는 무엇을 더할지 몰랐을 것이다. Xcode 6.2 버전부터는 println("hello World")과 같은 함수의 실행 결과가 오른쪽의 사이드바에 나타난다. 그러나 루프문을 포함해서 여러 가지 다른 형태의 코드 실행 결과를 제대로 보려면 프로그램을 실행시켜야 한다. Xcode에서 프로그램을 실행하려면 메뉴의 View Assistant Editor Show Assistant Editor 를 선택한다. 그러면 Console Output 창이 나타난다. 그리고 거기에서 우리 함수의 출력 결과인 Hello World 를 볼 수 있다. Console Output 창에서는 프로그램의 실행 결과 를 보여준다. 현재의 코드 밑에 Welcome to Swift 를 출력하는 코드를 추가해보자. 코드를 추가하는 즉시 Console Output 창에 그 결과가 나타날 것이다. 그리고 과 같은 산술식을 println() 함 수에 전달하는 것도 가능하다. 이때는 연산된 결과가 Console Output 창에 곧바로 나타난다. println("hello World") println("welcome to Swift") println(2 + 7) 1.1 Swift 개요 7

22 그림 1-5 Console Output 창에서는 우리 코드의 실행 결과를 보여준다. Xcode에서 첫 번째 Swift 프로그램을 작성해낸 것을 축하한다! 8 Chapter 01 시작하기

23 복습 문제 1. IDE의 의미는? a. Interactive Design Edition b. Integrated Development Environment c. Ironically Detached Existentialist e. Internet Development Engineering 2. 사이드바에서 해주는 일은? a. 프로그램의 출력을 보여준다. b. 변수의 값을 보여준다. c. 삭제했던 코드를 보여준다. d. 잘못된 코드를 제거한다. 3. Swift로 Int 변수를 정의하는 방법은? a. 타입을 선언하고 값을 지정한다: int a = 5 b. 변수와 타입을 선언한다: var int a; c. 변수를 선언하면서 값을 지정한다: var a = 5 d. 변수와 타입을 선언하면서 값을 지정한다: var int a = 5 4. 다음 중에서 Swift 변수 타입이 아닌 것은? a. Int b. Bool c. Long d. Double 1.1 Swift 개요 9

24 1.2 Xcode IDE 사용하기 Xcode IDE는 앞에서 사용했던 playground 외에도 훨씬 더 많은 기능을 갖고 있다. 또한, 우리 가 아이폰(iPhone), 아이패드(iPad), OS X 프로그램을 개발할 수 있게 해주는 완벽한 개발 환경 을 제공한다. 앞에서 보았던 Xcode 웰컴 스크린의 세 가지 옵션 중에서 이번에는 Create a new Xcode Project 를 선택하자. Playground에서는 프로젝트 이름과 플랫폼 옵션만 있었으나, 여기서는 Xcode의 다양한 기능을 보게 될 것이다. 다음 화면에서는 새로운 프로젝트에 사용할 템플릿(template)을 선택한다(그림 1-6). 템플릿은 우리 앱의 시작점을 제공하고, 우리가 필요한 기본적인 파일들을 자동으로 생성해준다. 템플 릿은 크게 ios와 OS X의 두 가지 용도로 분류되며, 여러 유형의 앱이나 코드를 작성할 수 있 는 다양한 템플릿들이 제공된다. 그림 1-6 Xcode의 템플릿을 사용해서 새로운 프로젝트를 신속하게 설정하고 작업할 수 있다. 지금은 ios Application 탭을 선택하고 Single View Application 을 클릭하자. 이것은 가장 간 단한 애플리케이션 타입이며, Xcode의 진보된 기능을 사용할 수 있는 틀을 제공한다. 10 Chapter 01 시작하기

25 우리가 작업할 템플릿을 선택하면 그림 1-7과 같이 여러 개의 입력 필드가 있는 또 다른 화면 이 나타날 것이다. 그림 1-7 Xcode에서 우리의 첫 번째 아이폰 앱 설정하기 Product Name 에는 앱의 이름을 입력하고, Organization Name 에는 회사(조직) 이름을 입력하면 되므로 무척 간단하다. 그러나 Organization Identifier 는 뭘까 이것은 우리 앱 의 고유 식별자를 나타내며, 일반적으로 URL을 거꾸로 하여 사용한다. 예를 들어, URL이 LearnToProgram.tv라면 거꾸로 된 URL은 tv.learntoprogram이 된다. 또한, 필요하다면 제 일 끝에 또 다른 식별자를 추가하면 된다. 여기서는 그냥 sample 을 추가하였다. 따라서 Organization Identifier는 tv.learntoprogram.sample 이 된다. 그리고 바로 밑에 있는 Bundle Identifier 는 우리가 입력한 Organization Identifier에 Product Name이 추가되어 자동으로 생 성된다. 따라서 하나의 Organization Identifier에 여러 개의 product를 구성할 수 있다. 그 다음에는 프로그래밍 언어를 선택한다. 여기서는 Swift를 선택할 것이다. 마지막으로 앱 이 실행될 장치를 선택한다. 앞의 템플릿 선택 시에 이미 ios를 선택했으므로 iphone(아이폰), 1.2 Xcode IDE 사용하기 11

26 ipad(아이패드) 중 하나를 선택할 수 있다. 지금은 그냥 iphone(아이폰)만 선택할 것이다. 그리 고 Next 버튼을 누른 후 프로젝트를 저장할 위치를 지정한다. 각자 편한 곳을 지정하면 된다. 그림 1-8 Xcode 메인 화면. 왼쪽에서는 우리 프로젝트의 파일들을 볼 수 있고, 중앙에는 메인 창(작업 영역)이 있으며, 오른쪽에는 속성과 도구상자가 있다. 모든 지정이 끝나면 프로젝트가 로드되고 Xcode IDE의 메인 화면이 나타난다(그림 1-8). 중앙 의 메인 창 위쪽을 보면 여러 관점에서 프로젝트를 액세스할 수 있는 옵션들이 존재한다(그림 1-9). 그림 1-9 Xcode는 프로젝트 옵션들의 빠른 액세스를 제공한다. General 옵션에서는 프로젝트의 기본 정보를 보여주며, 앱이 실행될 장치와 론칭 아이콘/이 미지 같은 것을 포함한다. 그 다음에 있는 Capabilities 옵션에서는 특정 기능을 사용하기 위 해 설정 또는 취소될 수 있는 모듈들을 액세스할 수 있게 해준다. 예를 들어, 게임 센터나 인 12 Chapter 01 시작하기

27 앱(In-App) 구입 등이다. Info 옵션에서는 키/값의 형태로 프로젝트의 일반 정보를 제공한 다. Build Settings, Build Phases, Build Rules 옵션들은 프로젝트를 컴파일하는 데 영향 을 주는 내용들이며, 지금은 신경 쓰지 않아도 되는 것들이다. 지금까지 설명한 이런 옵션들은 앱을 개발하면서 변경할 수 있다. 예를 들어, 앱의 화면 레이 아웃에 맞춰 General 옵션의 장치 방향(가로 또는 세로)을 선택할 수 있다. 메인 창의 왼쪽에 있는 디렉터리 트리에서는 앱에서 사용되는 파일들을 보여준다. 이 파일들 은 우리가 선택한 템플릿을 기준으로 생성된 것이며, 앱을 실행하는 데 꼭 필요한 것들이다. 이 부분을 확대해보면 그림 1-10과 같다. 그림 1-10 우리 프로젝트에서 사용되는 파일들이 미리 준비되어 있다. 여기에는.swift 확장자를 갖는 AppDelegate.swift 와 ViewController.swift 라는 두 개의 파 일이 있다. 첫 번째 파일인 AppDelegate.swift 는 애플리케이션의 동작을 모니터링하는 애플 리케이션 델리게이트(Application Delegate) 역할을 하는 것으로서, 이 파일을 열어보면 Hello World 보다 조금 더 복잡한 Swift 코드를 볼 수 있을 것이다. 그러나 지금은 이 코드에 신경 쓰지 말자. 우리의 앱이 실행되면서 다양한 상태를 거치는 동안에 반응할 일을 하는 코드들 이다. 그중 하나의 예를 살펴보면 다음과 같다. 1.2 Xcode IDE 사용하기 13

28 func applicationdidenterbackground (...) 이 함수 코드에서는 사용자가 우리의 앱에 더 이상 관심을 두지 않을 때 할 일을 처리한다. 예를 들어 사용자가 우리 앱을 사용하다가 전화를 받으면 전화 앱의 화면을 보게 되고, 이때 우리의 앱은 백그라운드(background) 상태가 된다. 바로 이때, 이 함수에 작성한 코드가 실행 된다. 다른 파일인 ViewController.swift 는 뷰 컨트롤러(View Controller)의 역할을 하는 것으로서 사 용자가 보는 특정 화면이나 뷰를 제어한다. 지금은 거기에 두 개의 함수가 있으며, 둘 다 맨 앞에 override 키워드를 갖고 있다. 이것 역시 지금은 신경 쓸 필요가 없으나, 이 함수들은 애플리케이션이 로드될 때 사용자에게 보여지는 뷰를 어떻게 할 것인지 결정하는 데 도움을 준다는 것만은 알아두자. 이 함수들의 코드에 있는 주석을 보면 목적을 알 수 있을 것이다. 프로그램을 작성할 때는 (comment)을 잘 넣는 것이 중요하다. 주석은 코드에 텍스트 형태로 추가되며, 컴파일러는 코드를 컴파일할 때 주석을 신경 쓰지 않고 주석 무시한다. 따라서 주석을 잘 활용하면 특정 코드에서 무슨 일을 하는지, 그리고 여러 부분의 코드가 어떻게 상호 작용하는지를 파악하는 데 도움이 된다. 프로젝트 규모가 점점 커지면 특정 코드를 왜 작성했었는지 모르게 될 경우가 있다. 또한, 내 가 작성한 코드로 다른 사람이 같이 작업할 때(또는 도움을 구할 때)는 다른 사람이 나의 의도 를 쉽게 파악할 수 있기 때문에 주석이 잘 작성된 코드는 굉장히 유용하다. Swift에서는 한 라 인의 주석을 나타낼 때 다음과 같이 두 개의 역 슬래시를 사용한다. // 이것은 주석이다! println("this is code!") 또는 /* 와 */ 사이에 여러 라인에 걸치는 주석을 넣을 수 있다. 14 Chapter 01 시작하기

29 println("this is code!") /* 이것은 여러 라인에 걸치는 주석이다! */ 그림 1-11 주석은 코드가 하는 일을 나타내는 데 도움을 준다. 여기서는 자동으로 생성된 함수에서 할 일을 설 명한다. 그림 1-11의 뷰 컨트롤러 코드에 있는 주석이 무슨 의미인지 모르더라도 염려할 필요는 없다. 여기서는 코드 작성 시에 주석이 중요하다는 것만 알면 된다. 그 다음으로 프로젝트에서 알아둘 파일은 Main.storyboard 다. 이것은 우리 애플리케이션의 메인 스토리보드(main storyboard) 역할을 하며, 여기에는 (화면에 보여지는) 앱의 시각적인 요소 인 뷰들의 레이아웃을 정의할 수 있다. ViewController.swift 파일에서 코드로 할 수도 있지만, Xcode에서는 레이아웃을 빠르고 쉽게 만들 수 있는 도구들을 별도로 제공한다. 이것을 어떻 게 사용하는지 보여주기 위해 여기서는 또 다른 Hello World 앱을 만들 것이다. 오른쪽 패널 밑에는 아이콘과 설명이 적힌 버튼이 있다. 이것이 바로 도구상자(toolbox)로, 제 일 위에 일렬로 된 아이콘들이 있다(그림 1-12의 화살표 참조). 왼쪽에서 세 번째 아이콘을 선 택한 후 그 밑에 Label 부분이 나타날 때까지 내려가보자(그림 1-13). 그 다음에 라벨(Label) 을 마우스로 끌어서 왼쪽의 메인 스토리보드 화면 영역에 놓으면 된다. 이때 나타나는 메시지 를 참조하여 화면의 정중앙에 위치시키자. 다 되었으면 해당 라벨을 더블클릭하여 텍스트를 Hello World 로 변경하면 모두 완료된 것이다. 1.2 Xcode IDE 사용하기 15

30 그림 1-12 메인 스토리보드 레이아웃에서는 우리 앱의 뷰들을 마우스로 드래그 앤드 드롭하여 배치하고 편집 할 수 있다. 그림 1-13 도구상자에는 라벨을 포함해서 여러 유용한 뷰 요소가 많다. Xcode의 또 다른 중요한 기능으로 우리가 보고자 하는 패널들을 변경하는 기능이 있다. 오른 쪽 패널의 위에는 여섯 개의 아이콘이 있는데, 이것들은 우리의 작업 영역을 구성할 수 있게 해준다(그림 1-14). 디폴트로 선택되는 제일 왼쪽의 아이콘은 우리가 작업하고 있는 파일이 메 16 Chapter 01 시작하기

31 인 창 영역 전체를 사용할 수 있게 한다. 이어서 왼쪽에서 두 번째 아이콘을 클릭하면 보조 편 집기(assistant editor)가 나타난다. 이것은 메인 스토리보드의 레이아웃과 그것을 지원하는 코드 를 함께 보여준다(그림 1-15). 그리고 그 다음 아이콘은 메인 스토리보드의 레이아웃을 그래픽 이 아닌 XML로 보여준다. 그림 1-14 Xcode에서는 오른쪽 위의 버튼들을 사용해서 우리가 보고자 하는 패널들을 변경할 수 있다. 그림 1-15 이것은 Xcode에서 원하는 패널을 보는 하나의 예다. 왼쪽에는 메인 스토리보드가 나타나고, 그 다음 에는 그것을 지원하는 코드가 보여진다. 오른쪽의 나머지 세 아이콘은 패널을 볼 수 있는 방향을 선택한다. 순서대로 왼쪽, 아래, 오 른쪽이다. 오른쪽 패널에는 속성(property)과 컨트롤(control)들을 볼 수 있는 더 많은 버튼이 존재한다. 1.2 Xcode IDE 사용하기 17

32 Hello World 라벨을 선택한 후 오른쪽 패널의 우측부터 세 번째 버튼을 클릭하면 해당 라벨 의 속성을 볼 수 있으며(그림 1-16), 폰트 스타일과 크기 등을 변경할 수 있다. 따라서 그 옵션 들을 사용하면 별도의 코드 작성 없이 여러 속성의 구성이 가능하다. 그림 1-16 이것들은 코드 작성 없이 Xcode에서 직접 변경 가능한 속성들이다. 따라서 우리 앱의 레이아웃을 쉽 고 빠르게 수정할 수 있다. 라벨 속성 밑에는 도구상자가 있다. 도구상자에는 라벨 외에도 사전 정의된 컨트롤과 제스처 (gesture)들이 많다. 따라서 우리의 앱에 버튼(button)도 간단하게 추가할 수 있다. 도구상자의 버튼을 마우스로 선택한 후 레이아웃에 끌어다 놓고 이름을 변경하고서 버튼과 관련된 코드 를 작성하면 된다. 또는 도구상자를 사용하지 않고 코드로 버튼을 생성할 때는 코드를 뷰 컨 트롤러(ViewController.swift)에 직접 작성하면 된다. 18 Chapter 01 시작하기

33 Hello World 라벨을 갖는 간단한 레이아웃을 만들었으므로 이것이 실제로 어떻게 보이는지 알고 싶을 것이다. 이것은 앞의 예에서처럼 콘솔로 출력되지 않는다. 설사 출력된다고 해도 그 래픽 사용자 인터페이스(GUI)를 사용하는 아이폰 앱의 경우는 그닥 달갑지가 않다. 이는 콘 솔을 볼 일이 거의 없기 때문이다. Xcode는 이것에 대한 해결책을 가졌는데, 메뉴의 Product Run을 선택하면 우리 프로그램 이 앱으로 빌드되는 것을 볼 수 있다. 그리고 잠시 후에 아이폰 시뮬레이터가 나타나서 생성 한 애플리케이션 화면을 보여줄 것이다. 지금은 이 앱에서 하는 일이 별로 없으므로 이만 중 단시키자. 그렇더라도 아이폰 시뮬레이터는 여전히 실행되고 있을 것이다. 이처럼 Xcode에서 는 개발한 아이폰 앱을 실제 장치에 설치하지 않더라도 시뮬레이터를 사용해서 아이폰 앱을 생성하고 실행해볼 수 있다. 1.2 Xcode IDE 사용하기 19

34 복습 문제 1. 다음 중 코드에 주석을 잘 사용한 것은? a. 코드에서 하는 모든 일을 자세하게 나타낸다. b. 향후에 코드를 참조할 때 분명하게 알 수 있도록 기록한다. c. 목록으로 만든다. d. 코드만 보면 알 수 있으므로 주석을 사용하지 않는다. 2. Swift 템플릿에서 제공하는 것은? 해당되는 것을 모두 고르시오 a. 프로젝트 이름 b. 특정 프로젝트 타입으로 작업하는 데 필요한 기본 파일들 c. 우리가 수정할 수 있는 샘플 앱 스토어 페이지 d. 신속하게 개발할 수 있도록 기반 코드 제공 3. Organization Identifier를 만들 때 URL을 거꾸로 하여 사용하는 이유는? a. URL이 좋은 것이므로 b. 제품을 홍보하기 위해서 c. 우리 앱을 구글에 전시하기 위해서 d. 고유하게 만들기 위해서 4. 개발 중인 아이폰 앱을 Xcode에서는 어떻게 실행하는가? a. 아이폰 시뮬레이터를 론칭하여 우리 앱을 실행한다. b. 결과를 콘솔에 출력한다. c. 우리 앱을 애플 앱 스토어에 전송한다. d. 우리 앱을 OS X용으로 컴파일하여 실행한다. 20 Chapter 01 시작하기

35 1. 최신 버전의 Xcode를 설치하여 개발 환경을 준비한다. SLA_Lab1이 라는 이름으로 새로운 playground 프로젝트를 생성한다. 2. 텍스트 편집기에서 불필요한 코드를 모두 삭제한다. 단, import 문은 그대로 둔다. 1장 연습 문제 3. 개발자 이름, 일자, 프로젝트 이름(SLA_Lab1)을 설명하는 여러 라인에 걸치는 주석을 추가한다. 4. println() 문을 사용해서 이름과 주소를 출력한다. 이 내용들은 println() 문의 문자열 인자로 전 달되어야 한다. 5. println() 문을 사용해서 다음 수식의 결과를 출력한다. 27 * / 보조 편집기(assistant editor)를 열어서 콘솔 창이 나오게 한 후 출력되는 결과가 맞는지 확인 한다. 1장 요약 이 장에서는 콘솔로 결과를 출력하는 간단한 프로그램을 작성해보고 Xcode의 중요한 기능 도 간략히 알아보았다. 다음 장부터는 이 장에서 잠깐 살펴보았던 변수, 산술 연산자와 더불 어 타입 변환(typecasting)과 같은 프로그래밍의 기본적인 사항들에 관해서 더 자세하게 알아 볼 것이다. 1.2 Xcode IDE 사용하기 21

36

37 02 이 장에서 배울 내용 변수 변수(variable)를 이해한다. 변수를 선언하고 값을 지정하는 방법을 배운다. 변수와 상수(constant)의 차이점을 이해한다. 산술 연산자가 무엇이고 어떻게 동작하는지 배운다. 변수 사용시 타입 변환(typecasting)을 사용하는 방법을 배운다. Swift의 문자열 삽입(string interpolation)을 이해한다. 2.1 변수와 상수 생성하기 여기서는 변수와 상수에 관해 더 자세히 배울 것이다. 그리고 이 두 가지 중요한 개념을 생성 하고 사용하는 방법을 잘 이해하기 위해 Xcode playground로 실습한다. 우선 1장에서 한 것처럼 Xcode playground를 실행시키자. 그리고 프로젝트 이름에는 VarsAndCons 를 입력한다. 프로젝트 이름(파일명)은 분명하고 알기 쉬운 방법으로 짓는 습 관을 기르는 것이 좋다. 이것에 관해서는 변수 생성 시에 더 자세히 얘기할 것이다. 알아 두자 프로젝트 이름인 VarsAndCons처럼 대문자를 사용하는 이름 규칙을 카멜 케이싱(camel casing)이 라 하며, 프로그래밍에서 흔히 사용된다. 카멜 케이싱에서는 복합 단어를 읽고 이해하기 쉽도록 각 단어의 첫 번째 문자를 대문자로 한다. 그리고 맨 앞 문자는 경우에 따라 소문자(변수 이름 등) 또는 대문자(클 래스 이름 등)를 사용한다. 예를 들어, numberofobjects 의 카멜 케이스는 numberofobjects 가 된다. 낙타의 혹처럼 중간에 대문자가 들어 있다고 해서 카멜 케이스라고 일컫는다. 2.1 Xcode IDE 사용하기 23

38 그 다음에 그림 2-1처럼 OS X 애플리케이션을 선택하자. 그리고 생성된 파일을 저장할 위치 를 지정하면 자동 생성된 코드들을 갖는 템플릿 코드가 화면에 나타난다. 1장에서 했던 것처 럼 import Cocoa 문만 그대로 두고 나머지 코드들은 삭제하자. 그림 2-1 OS X 앱 개발 플랫폼 선택하기 여기서는 1장에서 간략히 알아본 변수에 대해서 더 자세히 살펴볼 것이다. 변수는 우리가 저장 하고자 하는 값이 위치한 컴퓨터 메모리 영역의 참조다. 변수를 초기화할 때는 특정 크기의 메 모리 영역을 생성하고 거기에 값을 저장하도록 컴파일러에게 지시한다. 실제 차지하는 메모리 양은 변수의 타입에 따라 달라진다. 변수 타입에 대해서는 조만간 더 자세히 알아볼 것이다. 자, 그러면 변수를 생성해보자. Playground에서 다음 코드를 입력한다. var numofstudents = 10 여기서는 키워드인 var 을 사용해서 변수를 생성한 후 그것의 이름을 numofstudents 로 지 어주었다. 그리고 대입 연산자인 = 을 사용하여 그 변수에 지정하고자 하는 값이 10 임을 알 려준다. 여기서 변수의 이름을 numofstudents 로 지어주었음에 주목하자. 이처럼 읽고 이해하기 쉬 운 이름을 사용하는 습관을 갖는 것이 중요한데, 학생(student)들의 인원 수(number of)를 갖는 변수임을 분명히 알 수 있기 때문이다. 이 변수의 이름을 numstu 로 할 수도 있었으나 그럴 경우 다른 사람들이 보기에 Stu라는 이름을 갖는 사람들의 인원 수 또는 그 밖의 다른 것으로 오해할 수도 있다. 24 Chapter 02 변수

39 또한, 변수 이름을 소문자로 시작하고 그 다음부터는 카멜 케이싱을 사용했다는 것에 주목하 자. Swift 언어에서는 이와 같은 대소문자 구분을 요구하지는 않지만, 프로그래머가 이러한 표 준 이름 규칙을 계속해서 지켜주는 것이 좋다. 즉, 변수 이름의 첫 자는 소문자로 시작하고, 이 책 6장에서 배울 클래스의 경우는 대문자로 시작한다. 그림 2-2 변수 선언 예 변수 라고 부르는 이유는 그 값이 가변적이기 때문이다. 따라서 언제든지 우리가 원하는 값 으로 변경할 수 있다. 그러나 때로는 변수의 값을 변경할 수 없도록 할 필요가 있는데, 이때는 상수를 사용한다. (constant)는 변수와 유사하다. 그러나 상수의 값은 프로그램이 실행되는 동 안 변함이 없다. Playground에서 앞의 변수 선언 밑에 다음 내용을 입력해보자. 상수 let Pi = 키워드인 let을 사용하면 변수가 아닌 상수를 생성한다. 여기서 상수의 이름은 Pi 이며, 대입 연산자를 사용해서 를 Pi의 값으로 지정한다. Pi 값은 수 학적으로 절대 변하지 않으므로 우리 프로그램에서도 이 값을 변경할 이유는 없다. 이처럼 Pi를 상수로 지정하면, 그 값이 필요할 때는 언제든지 사용할 수 있다. 예를 들 어, 원의 면적을 결정하는 함수와 같은 경우다. 2.1 Xcode IDE 사용하기 25

40 그림 2-3 Pi 는 상수로 선언되었고 numofstudents 는 변수로 선언되었다. 지금까지 우리가 배운 것을 테스트하기 위해 다음 코드를 입력하면서 어떤 일이 생기는지 알 아보자. numofstudents = 5 우선, 변수 이름을 입력하는 동안 코드의 완성에 도움을 주는 팝업이 나타난다(그림 2-4). numofstudents 는 우리가 선언했던 변수라는 것을 Xcode가 알기 때문에 보여주는 것이 다. var 은 변수를 최초 선언할 때만 사용하기 때문에 여기서는 키워드인 var 을 사용하 지 않았다. 그리고 일단 변수가 생성되면 그 이름으로 참조만 할 수 있다. 변수 이름 다음 에는 대입 연산자와 지정할 값을 입력하면 된다. 그리고 이때, 오른쪽의 사이드바에서는 numofstudents 의 값이 초깃값인 10에서 5로 변경된 것을 볼 수 있다. 변수란 것은 가변적이 기 때문에 이것은 당연한 일이다. 그림 2-4 코드 완성 팝업은 변수나 상수 및 자주 사용되는 코드를 빨리 액세스할 수 있게 해준다. 이제는 다음 코드를 입력해보자. Pi = Chapter 02 변수

41 이 코드를 입력할 때는 Xcode가 에러를 보여준다. 코드 왼쪽에 빨간색의! 가 나타나고, Pi 에 빨간 밑줄이 나타날 것이다(그림 2-5). 그리고! 를 클릭하면 cannot assign to let value Pi 라는 메시지가 나타나서 어떤 에러인지 알려준다. 이것은 상수의 값을 변경하려고 했다는 메시지다. Pi 는 키워드인 let을 사용해서 상수로 선 언되었기 때문이다. 그림 2-5 Xcode는 에러를 분명하게 알려주려고 하지만, 때로는 에러 메시지가 애매모호한 경우도 있다. 이 경 우는 상수의 값을 변경하려고 했기 때문에 에러가 생긴 것이다. 에러가 생긴 코드 라인을 삭제하고 그 대신에 numofstudents 의 값을 7로 변경하는 코드를 추가해보자. 이제 우리의 코드는 다음과 같이 될 것이다. var numofstudents = 10 let Pi = numofstudents = 5 numofstudents = 7 이 코드가 실행되면 Pi 의 값은 이고, numofstudents 의 값은 7이 될 것이다. 알아 여기서는 변수와 상수를 사용하기 전에 함께 선언하였다. 이런 식으로 코드를 작성하는 것이 좋은 두자 방법이다. 변수는 사용에 앞서 먼저 선언하자. 그리고 이때 변수 이름을 알기 쉽게 부여하고, 필요 하다면 변수를 사용하는 이유를 주석으로 추가해주자. 1장에서는 Float, Int, String과 같은 서로 다른 타입의 변수들을 설명했었다. Swift에서는 변수 를 선언할 때 그 변수의 타입을 자동으로 결정한다는 것을 기억하고 있을 것이다. 따라서 이 2.1 Xcode IDE 사용하기 27

42 경우에 numofstudents 는 Int, Pi 는 Double 타입이 된다. 그러나 우리가 변수 타입을 지정 할 수도 있다. Swift가 자동으로 변수 타입을 추론할 때 그 변수는 (implicitly typed)을 갖는다고 한다. 이때 Swift는 그 변수에 지정된 값을 살펴보고 해당 값을 기준으로 타입을 지정한다. 만 일 반드시 우리가 타입을 지정하는 다른 언어를 사용해본 경험이 없다면 이와 같은 암시적 타 입을 선호하게 될 것이다. PHP나 자바 스크립트의 경우에도 암시적 타 입을 지원한다. 이와는 달리 (explicitly typed)을 선택할 수도 있다. 이때는 우리가 변수의 타입을 선언한다. 암시적 타입 선언과 명시적 타입 선언의 예는 다음과 같다. 암시적 타입 명시적 타입 var age = 40 var numofitems:int = 77 변수 age 에는 값으로 40이 지정되고, Swift가 Int 타입으로 추론한다. 반면에 numofitems 는 명시적으로 Int 변수로 선언되었다. 다음 코드를 입력하고 오른쪽 사이드바에 어떻게 나타 나는지 살펴보자. numofitems = 86.6 이때는 에러가 발생한다. numofitems 를 Int 타입으로 선언했기 때문이다. 왼쪽의! 를 클릭 하면 Double 타입의 값을 Int 타입에 지정할 수 없다는 에러 메시지를 볼 수 있다. 28 Chapter 02 변수

43 그림 2-6 Swift는 Int 변수에 소수점이 있는 값이 지정될 때 Int 타입과 호환되지 않으므로 에러로 처리한다. 숫자가 아닌 다른 값을 갖는 변수의 타입도 명시적으로 지정될 수 있다. 1장에 서 얘기했던 String 변수 타입을 다시 생각해보자. Int 타입처럼 String 타입도 명 시적으로 선언할 수 있다. 예를 들면 다음과 같다. var name:string = "Mark Lassoff" 이 예에서는 name 변수가 항상 String 타입임을 Swift에게 알려주고 있으며, 그 다음에 ""로 둘러 싼 문자열 값을 지정하 고 있다. 변수의 명시적 타입은 반드시 타입을 선언하여 생성하는 C++ 나 자바의 경우와 유사하다. 2.1 Xcode IDE 사용하기 29

44 복습 문제 1. 카멜 케이스(Camel Case) 란? a. 단어를 모두 대문자로 하는 이름 규칙이다. b. 각 단어의 첫 자를 대문자로 하는 이름 규칙이다. c. 낙타를 운송하는 수단이다. d. 담배 파이프의 속어다. 2. 변수의 타입을 선언할 수 있는 방법은? a. 추론적(inferred) 또는 자동적(automatic) b. 동적(dynamic) 또는 정적(static) c. 암시적(implicit) 또는 명시적(explicit) d. 강제적(forced) 또는 제안적(suggested) 3. 상수로 할 수 없는 것은? a. 선언한다. b. 이름을 부여한다. c. 초깃값을 지정한다. d. 값을 변경한다. 4. 변수의 이름을 지어줄 때 고려해야 하는 것은?(해당되는 것을 모두 고르시오) a. 길이 b. 알기 쉬운지 c. 유용한지 d. 의미를 잘 표현하는지 30 Chapter 02 변수

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

SIGIL 완벽입문

SIGIL 완벽입문 누구나 만드는 전자책 SIGIL 을 이용해 전자책을 만들기 EPUB 전자책이 가지는 단점 EPUB이라는 포맷과 제일 많이 비교되는 포맷은 PDF라는 포맷 입니다. EPUB이 나오기 전까지 전 세계에서 가장 많이 사용되던 전자책 포맷이고, 아직도 많이 사 용되기 때문이기도 한며, 또한 PDF는 종이책 출력을 위해서도 사용되기 때문에 종이책 VS

More information

iOS ÇÁ·Î±×·¡¹Ö 1205.PDF

iOS ÇÁ·Î±×·¡¹Ö 1205.PDF iphone ios 5 DEVELOPMENT ESSENTIALS Copyright 2011 Korean Translation Copyright 2011 by J-Pub. co. The Korean edition is published by arrangement with Neil Smyth through Agency-One, Seoul. i iphone ios

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 38 10 중간착취의 금지 41 - 대판 2008.9.25, 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 2003.3.14, 2002도3883 [남녀고용평등법위

09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 38 10 중간착취의 금지 41 - 대판 2008.9.25, 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 2003.3.14, 2002도3883 [남녀고용평등법위 01 노동법 법원으로서의 노동관행 15 - 대판 2002.4.23, 2000다50701 [퇴직금] (한국전력공사 사례) 02 노동법과 신의성실의 원칙 17 - 대판 1994.9.30, 94다9092 [고용관계존재확인등] (대한조선공사 사례) 03 퇴직금 청구권 사전 포기 약정의 효력 19 - 대판 1998.3.27, 97다49732 [퇴직금] (아시아나 항공

More information

1

1 2/33 3/33 4/33 5/33 6/33 7/33 8/33 9/33 10/33 11/33 12/33 13/33 14/33 15/33 16/33 17/33 5) 입력을 다 했으면 확인 버튼을 클릭합니다. 6) 시작 페이지가 제대로 설정이 되었는지 살펴볼까요. 익스플로러를 종료하고 다시 실행시켜 보세요. 시작화면에 야후! 코리아 화면이 뜬다면 설정 완료..^^

More information

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PathEye 공식 블로그 다운로드 받으세요!!   지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

Tcl의 문법

Tcl의 문법 월, 01/28/2008-20:50 admin 은 상당히 단순하고, 커맨드의 인자를 스페이스(공백)로 단락을 짓고 나열하는 정도입니다. command arg1 arg2 arg3... 한행에 여러개의 커맨드를 나열할때는, 세미콜론( ; )으로 구분을 짓습니다. command arg1 arg2 arg3... ; command arg1 arg2 arg3... 한행이

More information

게임 기획서 표준양식 연구보고서

게임 기획서 표준양식 연구보고서 ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

°æÁ¦Àü¸Á-µ¼º¸.PDF

°æÁ¦Àü¸Á-µ¼º¸.PDF www.keri.org i ii iii iv v vi vii viii ix x xi xii xiii xiv xv 3 4 5 6 7 8 9 10 11 12 13 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 47 48 49 50 51 52 53

More information

지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가

지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가 수업주제 경찰 출동! (버튼, LED, 버저 사용하기) 9 / 12 차시 수업의 주제와 목표 본 수업에서는 이전 차시에 배웠던 블록들의 기능을 복합적으로 활용한다. 스위치 기능을 가진 버튼을 활용하여 LED와 버저를 동시에 작동시키도록 한다. 각 블록들을 함께 사용하는 프로젝트를 통해 각각의 기능을 익히고 보다 다양한 활용 방법을 구상할 수 있다. 교수 학습

More information

1

1 1 2 3 4 5 6 b b t P A S M T U s 7 m P P 8 t P A S M T U s 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chapter 1 29 1 2 3 4 18 17 16 15 5 6 7 8 9 14 13 12 11 10 1 2 3 4 5 9 10 11 12 13 14 15

More information

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집 Modern Modern www.office.com ( ) 892 5 : 1577-9700 : http://www.microsoft.com/korea Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와

More information

ThinkVantage Fingerprint Software

ThinkVantage Fingerprint Software ThinkVantage 지문 인식 소프트웨어 First Edition (August 2005) Copyright Lenovo 2005. Portions Copyright International Business Machines Corporation 2005. All rights reserved. U.S. GOVERNMENT USERS RESTRICTED RIGHTS:

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기 소규모 비즈니스를 위한 YouTube 플레이북 YouTube에서 호소력 있는 동영상으로 고객과 소통하기 소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

<B3EDB9AEC0DBBCBAB9FD2E687770>

<B3EDB9AEC0DBBCBAB9FD2E687770> (1) 주제 의식의 원칙 논문은 주제 의식이 잘 드러나야 한다. 주제 의식은 논문을 쓰는 사람의 의도나 글의 목적 과 밀접한 관련이 있다. (2) 협력의 원칙 독자는 필자를 이해하려고 마음먹은 사람이다. 따라서 필자는 독자가 이해할 수 있는 말이 나 표현을 사용하여 독자의 노력에 협력해야 한다는 것이다. (3) 논리적 엄격성의 원칙 감정이나 독단적인 선언이

More information

회원번호 대표자 공동자 KR000****1 권 * 영 KR000****1 박 * 순 KR000****1 박 * 애 이 * 홍 KR000****2 김 * 근 하 * 희 KR000****2 박 * 순 KR000****3 최 * 정 KR000****4 박 * 희 조 * 제

회원번호 대표자 공동자 KR000****1 권 * 영 KR000****1 박 * 순 KR000****1 박 * 애 이 * 홍 KR000****2 김 * 근 하 * 희 KR000****2 박 * 순 KR000****3 최 * 정 KR000****4 박 * 희 조 * 제 회원번호 대표자 공동자 KR000****1 권 * 영 KR000****1 박 * 순 KR000****1 박 * 애 이 * 홍 KR000****2 김 * 근 하 * 희 KR000****2 박 * 순 KR000****3 최 * 정 KR000****4 박 * 희 조 * 제 KR000****4 설 * 환 KR000****4 송 * 애 김 * 수 KR000****4

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

MF Driver Installation Guide

MF Driver Installation Guide Korean MF 드라이버 설치설명서 사용자 소프트웨어 CD-ROM... 드라이버 및 소프트웨어 정보...1 지원되는 운영 체제...1 MF 드라이버 및 MF Toolbox 설치... [쉬운 설치]를 사용한 설치...2 [사용자 정의 설치]를 사용한 설치...10 USB 케이블 연결(USB를 이용해 연결하는 경우만)...20 설치 결과 확인...21 온라인

More information

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

More information

178È£pdf

178È£pdf 스승님이 스승님이 스승님이 말씀하시기를 말씀하시기를 말씀하시기를 알라는 위대하다! 위대하다! 알라는 알라는 위대하다! 특집 특집 기사 특집 기사 세계 세계 평화와 행복한 새해 경축 세계 평화와 평화와 행복한 행복한 새해 새해 경축 경축 특별 보도 특별 특별 보도 스승님과의 선이-축복의 선이-축복의 도가니! 도가니! 스승님과의 스승님과의 선이-축복의 도가니!

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

wtu05_ÃÖÁ¾

wtu05_ÃÖÁ¾ 한 눈에 보는 이달의 주요 글로벌 IT 트렌드 IDG World Tech Update May C o n t e n t s Cover Story 아이패드, 태블릿 컴퓨팅 시대를 열다 Monthly News Brief 이달의 주요 글로벌 IT 뉴스 IDG Insight 개발자 관점에서 본 윈도우 폰 7 vs. 아이폰 클라우드 컴퓨팅, 불만 검증 단계 돌입 기업의

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

정부3.0 국민디자인단 운영을 통해 국민과의 소통과 참여로 정책을 함께 만들 수 있었고 그 결과 국민 눈높이에 맞는 다양한 정책 개선안을 도출하며 정책의 완성도를 제고할 수 있었습니다. 또한 서비스디자인 방법론을 각 기관별 정부3.0 과제에 적용하여 국민 관점의 서비스 설계, 정책고객 확대 등 공직사회에 큰 반향을 유도하여 공무원의 일하는 방식을 변화시키고

More information

INDUS-8.HWP

INDUS-8.HWP i iii iv v vi vii viii ix x xi 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 32 33 34 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

More information

CONTENTS.HWP

CONTENTS.HWP i ii iii iv v vi vii viii ix x xi - 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 -

More information

- i - - ii - - i - - ii - - i - - ii - - iii - - iv - - v - - vi - - vii - - viii - - ix - - x - - xi - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 -

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

H3250_Wi-Fi_E.book

H3250_Wi-Fi_E.book 무선 LAN 기능으로 할 수 있는 것 2 무선 LAN 기능으로 할 수 있는 것 z q l D w 3 Wi-Fi 기능 플로우차트 z q l D 4 Wi-Fi 기능 플로우차트 w 5 본 사용 설명서의 기호 설명 6 각 장별 목차 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 목차 1 2 3 4 8 목차 5 6 7 8 9 9 목차 10 11 12

More information

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770> 예약어(reserved word) : 프로그래밍 언어에서 특별한 용도로 사용하고자 미리 지정한 단어 - 프로그램의 구성요소를 구별하게 해주는 역할 => 라벨, 서브 프로그램 이름, 변수에 연관되어 다른 변수나 서브 프로그램 등과 구별 - 식별자의 최대길이는 언어마다 각각 다르며 허용길이를 넘어서면 나머지 문자열은 무시됨 - FORTRAN, COBOL, HTML

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 IDIS Mobile ios 사용설명서 Powered by 사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다.

More information

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components

More information

1809_2018-BESPINGLOBAL_Design Guidelines_out

1809_2018-BESPINGLOBAL_Design Guidelines_out 베스핀글로벌 디자인 가이드라인 베스핀글로벌은 경험과 기술을 바탕으로 고객에게 신뢰를 주는 기업이기를 지향합니다. 모든 서비스와 소통채널에서 우리의 가치를 일관되게 표현하도록 합니다. SIGNATURE SIGNATURE + SLGAN SIGNATURE [CHINA] SIGNATURE + SYMBL 2018년 1.ver 베스핀글로벌 디자인 가이드라인 디자인 가이드라인을

More information

내지-교회에관한교리

내지-교회에관한교리 내지-교회에관한교리 2011.10.27 7:34 PM 페이지429 100 2400DPI 175LPI C M Y K 제 31 거룩한 여인 32 다시 태어났습니까? 33 교회에 관한 교리 목 저자 면수 가격 James W. Knox 60 1000 H.E.M. 32 1000 James W. Knox 432 15000 가격이 1000원인 도서는 사육판 사이즈이며 무료로

More information

0.筌≪럩??袁ⓓ?紐껋젾001-011-3筌

0.筌≪럩??袁ⓓ?紐껋젾001-011-3筌 3 4 5 6 7 8 9 10 11 Chapter 1 13 14 1 2 15 1 2 1 2 3 16 1 2 3 17 1 2 3 4 18 2 3 1 19 20 1 2 21 크리에이터 인터뷰 놀이 투어 놀이 투어 민혜영(1기, 직장인) 내가 살고 있는 사회에 가치가 있는 일을 해 보고 싶 어 다니던 직장을 나왔다. 사회적인 문제를 좀 더 깊숙이 고민하고, 해결책도

More information

언리얼엔진4_내지_150126.indd

언리얼엔진4_내지_150126.indd C 2015. 박승제 All Rights Reserved. 초판 1쇄 발행 2015년 2월 10일 지은이 박승제 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제406 2009 000087호 주소 경기도 파주시 문발로 141 뮤즈빌딩 403호 전화 070 8201 9010 / 팩스 02 6280 0405 홈페이지 www.jpub.kr / 이메일

More information

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1 디지털 사진 프린터 P-S100 프린터 드라이버 설치 가이드 사용하는 컴퓨터에 따라 제공된 프린터 드라이버를 설치합니다. 설치 절차 에 대한 자세한 내용은 CD-ROM의 Readme 파일을 참조하십시오. 작동 환경 Windows 호환 모델: IBM PC/AT 및 호환품 운영 체제: Windows 98 SE/Me/2000/XP (Windows 98 SE/Me/2000/XP

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

PowerPoint Presentation

PowerPoint Presentation #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lecture 02 프로그램구조및문법 Kwang-Man Ko kkmam@sangji.ac.kr, compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018 자바프로그램기본구조 Hello 프로그램구조 sec01/hello.java 2/40 자바프로그램기본구조 Hello 프로그램구조

More information

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - chap-03.pptx 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 컴퓨터프로그래밍기초 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C프로그램을이루는구성요소들을살펴봅니다. 컴퓨터프로그래밍기초 2 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드] Chapter 03 변수와자료형 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 변수와자료유형 변수 프로그램에서자료값을임시로기억할수있는저장공간을변수 (variables) 변수 (Variables) 는컴퓨터의메모리인 RAM(Random Access Memory) 에저장 물건을담는박스라고생각한다면박스의크기에따라담을물건이제한됨

More information

mobile_guide_SA

mobile_guide_SA 네이버 모바일배너 모바일 네트워트 GUIDE AD GUIDE Version 1.0 03. 적용위치 04. Appendix 목차 네이버 모바일배너 개요 1. 텍스트형 광고 2. 이미지형 광고 3. 롤링형 광고 네이버 모바일배너 개요 1. 텍스트형 광고 2. 이미지형 광고 3. 롤링형 광고 01/03 네이버 모바일배너 개요 네이버 모바일배너는 네이버 모바일 서비스

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

ez-shv manual

ez-shv manual ez-shv+ SDI to HDMI Converter with Display and Scaler Operation manual REVISION NUMBER: 1.0.0 DISTRIBUTION DATE: NOVEMBER. 2018 저작권 알림 Copyright 2006~2018 LUMANTEK Co., Ltd. All Rights Reserved 루먼텍 사에서

More information

SH100_V1.4

SH100_V1.4 User Manual VLUU SH100 1 2 3 4 5 6 m m 7 8 9 10 11 12 13 15 16 17 x y 18 19 1 4 z x 20 2 o 5 o 6 3 7 10 11 21 8 12 o 9 o 22 1 m 2 3 2 1 3 23 24 o 25 1 2 o 1 2 3 26 1 2 1 2 27 1 28 2 1 3 29 2 4 30 1 m

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows

목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows 삼성SDS 하이패스 USB 드라이버 설치 매뉴얼 삼성SDS(주) 목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows 8에서 설치...9 2. 드라이버

More information

노트북 IT / 모바일 데스크탑 34 올인원PC 35 PC 소프트웨어 포터블SSD / SSD / 메모리카드 36 태블릿 37 휴대폰 39 PC 솔루션 IT / 모바일 IT / 모바일 노트북 29 삼성전자는 Windows 를 권장합니다. 삼성전자만의 편리하고 다양한 소프트웨어를 통해 초보자도 보다 쉽고 빠르게 이용 가능합니다. Easy Settings 삼성 패스트

More information

vRealize Automation용 VMware Remote Console - VMware

vRealize Automation용 VMware Remote Console - VMware vrealize Automation 용 VMware Remote Console VMware Remote Console 9.0 이문서는새버전으로교체되기전까지나열된각제품버전및모든이후버전을지원합니다. 이문서에대한최신버전을확인하려면 http://www.vmware.com/kr/support/pubs 를참조하십시오. KO-002230-00 vrealize Automation

More information

사물인터넷비즈니스빅뱅_내지_11차_160421.indd

사물인터넷비즈니스빅뱅_내지_11차_160421.indd 사물인터넷 빅뱅 2016. 연대성 All Rights Reserved. 초판 1쇄 발행 2016년 4월 29일 지은이 연대성 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제406 2009 000087호 주소 경기도 파주시 문발로 141 뮤즈빌딩 403호 전화 070 8201 9010 / 팩스 02 6280 0405 홈페이지 www.jpub.kr

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드

More information

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사 IDIS Mobile Android 사용설명서 Powered by 사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사양 및 버전에 따라 일부

More information

Endpoint Protector - Active Directory Deployment Guide

Endpoint Protector - Active Directory Deployment Guide Version 1.0.0.1 Active Directory 배포가이드 I Endpoint Protector Active Directory Deployment Guide 목차 1. 소개...1 2. WMI 필터생성... 2 3. EPP 배포 GPO 생성... 9 4. 각각의 GPO 에해당하는 WMI 연결... 12 5.OU 에 GPO 연결... 14 6. 중요공지사항

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

Microsoft Word - 문필주.doc

Microsoft Word - 문필주.doc 포커스 포커스 모바일 광고기능을 갖는 아이폰 애플리케이션 문필주* 이요섭** 최근의 모바일 광고 시장은 이동통신사 중심의 SMS 발송 형태에서 아이폰의 등장과 앱 스토어(App Store)의 성공에 의한 콘텐츠 내의 플랫폼(App-vertising) 형태로 변해 가고 있다. 본 고에서는 모바일 광 고 아이폰 애플리케이션을 활용할 수 있는 방법에 대해 논의하고자

More information

*표지-결혼과가정 2012.10.23 3:59 PM 페이지1 태산아이인쇄그룹(국) 2261-2488 2540DPI 175LPI James W. Knox 시리즈 성령의 열매 James W. Knox 지음 김영균 옮김 도서출판 킹제임스 신국판 352쪽 값 12,000원 성경적 종말론 James W. Knox 지음 김영균 옮김 도서출판 킹제임스 신국판 220쪽 값

More information

- i - - ii - - iii - - iv - - v - - vi - - vii - - viii - - ix - - x - - xi - - xii - - xiii - - xiv - - 1 - - 2 - - 3 - - 4 - - 5 - 2) 한국교육학술정보원 (2005), 교수학습센터가이드북. 3) 한국교육학술정보원 (2005), 교수학습센터가이드북. -

More information

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리 ArcGIS for Desktop 10.4 Single Use 설치가이드 Software: ArcGIS for Desktop 10.4 Platforms: Windows 10, 8.1, 7, Server 2012, Server 2008 ArcGIS for Desktop 10.4 시스템 요구사항 1. 지원 플랫폼 운영체제 최소 OS 버전 최대 OS 버전 Windows

More information

RHEV 2.2 인증서 만료 확인 및 갱신

RHEV 2.2 인증서 만료 확인 및 갱신 2018/09/28 03:56 1/2 목차... 1 인증서 확인... 1 인증서 종류와 확인... 4 RHEVM CA... 5 FQDN 개인 인증서... 5 레드햇 인증서 - 코드 서명 인증서... 6 호스트 인증... 7 참고사항... 8 관련링크... 8 AllThatLinux! - http://allthatlinux.com/dokuwiki/ rhev_2.2_

More information

본책- 부속물

본책- 부속물 PROGRAMMING RUBY PROGRAMMING RUBY : THE PRAGMATIC PROGRAMMER S GUIDE, 2nd Ed. Copyright c 2005 Published in the original in the English language by The Pragmatic Programmers, LLC, Lewisville. All rights

More information

LATEX과 Mendeley를 활용한 문헌 관리 2017년 2월 6일 제1절 서지 관리 프로그램 연구 주제를 찾거나 선행 연구를 조사하는 가장 대표적인 방법이 문헌들을 찾아보는 것이다. 수없이 많은 논문들을 찾게 되고, 이런 논문들을 다운로드한 후 체계적으로 관리할 필

LATEX과 Mendeley를 활용한 문헌 관리 2017년 2월 6일 제1절 서지 관리 프로그램 연구 주제를 찾거나 선행 연구를 조사하는 가장 대표적인 방법이 문헌들을 찾아보는 것이다. 수없이 많은 논문들을 찾게 되고, 이런 논문들을 다운로드한 후 체계적으로 관리할 필 LATEX과 Mendeley를 활용한 문헌 관리 2017년 2월 6일 제1절 서지 관리 프로그램 연구 주제를 찾거나 선행 연구를 조사하는 가장 대표적인 방법이 문헌들을 찾아보는 것이다. 수없이 많은 논문들을 찾게 되고, 이런 논문들을 다운로드한 후 체계적으로 관리할 필요가 있다. 서지 관리 프로그램(Reference management software, citation

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 자바의기본구조? class HelloJava{ public static void main(string argv[]){ system.out.println( hello,java ~ ){ } } # 하나하나뜯어살펴봅시다! public class HelloJava{ 클래스정의 public static void main(string[] args){ System.out.println(

More information

iOS5_1±³

iOS5_1±³ IDG Deep Dive ios 5 2 3 4 5 6 7 8 9 10 11 12 ios 5 토어 버튼이 상단 좌측에 추가되어 아이튠즈 스토 어의 적합한 영역으로 연결해 준다. 또한 블루투스의 원격제어 기능인 AVRCP(AV Remote Control Profile)가 1.3 버전으로 업데이 트되어 음악을 블루투스로 스트리밍할 때 트랙과 아티스트, 앨범 정보를

More information