[Swift] Swift 기반 iOS프로그래밍 초급 2일차
출발이 많이 늦었습니다. 교육수강을 회사에 보고하지 않아서 정시퇴근을 하려고 하였지만 오늘도 역시 실패하였습니다.
=========================================== 1 ===========================================
(19 : 09 ~ 19 : 50)
Xcode를 수행하여 가장 위의 항목, 플레이 그라운드로 시작하는 실습을 하였습니다. 그 전 간단하게 반복문 관련 이론 수업을 진행하였습니다.
스위프트의 한가지 이상한점?!!
Main 함수, 즉, 엔트리함수가 없습니다. 설명하시기를 오히려 스크립트 언어와 유사하다고 하셨습니다.
맥 키보트의 command 키는 윈도우 키의 control과 유사한 기능을 수행합니다.
스위프트는 스위치문에서는 브레이크문을 쓰지 않는다고 합니다.
강의 끝 무렵 너무 졸려서 잠시 기절을 했습니다.
=========================================== 2 ===========================================
핫바를 하나 먹고 핫식스와 함께 두번째 시간을 시작합니다.
(20 : 05 ~ 20 : 57)
함수의 선언과 호출을 볼 때, 스위프트의 경우에서는 C와 같이 미리 선언을 하여 사용을 할 수 있습니다.
하지만 우선적으로는 함수의 선언을 먼저 하고 그 코드 부분 이후에 호출을 하는것을 권하셨습니다.
로컬 변수와 상수 모두 유니코드를 지원하며, command + control + space를 누르면 xcode에서 이모티콘(이모지)을 사용할 수 있는데 해당 이모티콘을 변수의 이름으로도 지정하는 것이 가능합니다.
무한대를 이용하여 의미없는 값으로 초기화를 할 수도 있습니다.
스위프트는 함수의 결과로 함수를 반환할 수도 있습니다. c언어에서 함수의 반환은 함수포인터를 반환하는 것이 있습니다.
자바에서는 람다라는 것으로 유사하게 처리를 할 수 있다고 하셨습니다.
또한 스크립트 언어와 같이 함수안에 함수를 작성할 수 있습니다.
mordern, fast, safety - 스위프트의 3대 슬로건입니다. 어제 4대라고 했는데 잘 못들었던 것 같습니다.
<강의자료 4장 16페이지>
- 클로저는 함수와 같은 독립적인 코드블록이다.
- 클로저는 자신이 정의된 콘텍스트로부터 임의의 상수 및 변수의 참조를 획득하고 저장할 수 있다.
- 이처럼 상수와 변수를 제약하는 특징 때문에 클로저라는 이름이 붙여졌다.
- 기본적으로 클로저는 프로그램이 생성되는 시점의 상태를 보전한다.
- 클로저는 일반적으로 람다라고 불린다.
- 사실 함수는 클로저에 이름을 붙인 특별한 클로저다.
- 함수가 클로저의 특별한 타입이라면 왜 클로저를 사용하는가?
- 함수는 여기여기 전달될 수 있는 간단하고 빠른 코드블록을 만들 수 있지만 불필요한 이름을 항상 넣어야 한다.
- 그러나 클로저는 이름없이 사용할 수 있다.
=========================================== 3 ===========================================
(맥 기능!!)
컨트롤 + 방향키 / 3점 터치 후 좌우로 밀기 -> 데스크톱 전환!
(21 : 03 ~ 21 : 50)
<핵심만 골라 배우는 iOS 프로그래밍 9> 라는 책을 소개해주셨습니다. 972페이지의 약간 성경과 같은 느낌의 두꺼운 책이라는 이야기도 해 주셨습니다.
간단하게 셈플 PDF를 구해보았습니다.
책 욕심 이야기를 하시더니, 공자 이야기를 하시며 <논어> 관련 서적(마흔, 논어를 읽어야 할 시간)을 몇권 추천해 주시며 이야기 보따리를 조금 풀어주셨습니다.
스타트업 관련 이야기를 하시면서 리더쉽과 커뮤니케이션이 가장 중요하며, 그 외에도 경영, 회계등에 대한 지식의 중요성을 이야기 해 주셨습니다.
그리고 그런 의미에서 영상을 하나 보여주신다고 하시면서 Kosta 133이라는 네이버 카페에서 지하철이 나오는 영상을 하나 보여주셨습니다. 지하철에서 한 청년이 사람들에게 굉장히 일상적이고 사소한 내용에 대해 감사인사를 하며 탑승객의 호응과 참여를 유도하여 같이 over the rainbow~를 부르는 영상이었습니다.
5장 클래스와 구조체
Swift에서는 클래스와 구조체가 차이가 없습니다.
매개변수가 없는 기본 생성자는 Code에 명시적으로 선언하지 않을 수 있으며 new라는 키워드 없이 생성자 함수를 사용할 수 있습니다.
스위프트는 함수에 장점과 객체지향의 장점을 혼용하여 만든 언어라고 하셨습니다.
self라는 키워드가 나오는데 이것은 다른 언어의 this와 유사합니다.
고정된 크기로 한번 할당하고 읽으면 구조체가, 그렇지 않고 유동적으로 사용한다면 클래스가 더 낫다고 하셨습니다.
C언의 구조체 안에 함수가 들어갈 수 있는지 강사님께서도 햇갈려 하셨습니다.
value의 복사와 Address의 복사가 주는 차이가 있습니다. 일괄처리에는 구조체가 빠르게 처리가 가능하며 유동적으로 처리를 해야하면 Call by reference인 Class를 사용해야 한다고 하셨습니다.
내일 예고 !!
프로토콜은 자바의 인터페이스와 유사한 개념이라고 하셨습니다. 익스텐션은 확장입니다. 확장은 기본적으로 상속을 통해 할 수 있습니다. 하지만 상속은 코드를 또 만드는 것 입니다. 또다를 클래스를 생성하는 것입니다. 하지만 그렇지 않고 일시적으로 확장했다 프로그램 종료시 그 확장을 없에고 싶다면 익스텐션이라는 기능을 사용하면 된다고 하셨습니다.
숙제가 하나 있습니다. 콘솔에 데이터를 출력할 때 print를 사용했는데 입력을 받을 때 C의 scanf와