티스토리 뷰

블로그에 글을 쓰는 일이 그리 쉽지는 않습니다. 쓰다보면 금세 1~2시간이 지나가거든요. 어제 그 글도 별 것 안 쓴 것 같은데 1시간 반은 걸린 것 같아요. 그렇게 시간이 걸리다 보니 그 시간에 공부를 하는 것이 더 효율적이지 않을까 하는 생각이 들어 때로는 블로그에 글을 쓰는 것을 주저합니다.

그래도 다시 생각해 보면 시간이 지나서 제가 한 것들을 돌아보면 뿌듯하더라구요. 마치 일기장을 몇년 후에 다시 읽어보면, 내가 그럴 때도 있었지 하고 뿌듯한 것처럼요. 그 때를 생각하며 저를 다독여 봅니다.

그리고 제가 좋아하고, 공부하고 싶은 것을 올리는 것은 시간도 덜 아깝고 나중에도 도움이 되겠지 하는 바램이 있습니다. ^^

 

오늘부터 '빅 너드 랜치의 스위프트 프로그래밍'을 본 만큼 기록해보려고 합니다. 제가 필요한 부분을 기록하는 것이라 보시는 여러분에게는 좀 부족할 수도 있을 것 같습니다. 이 글을 보면서 궁금하신 분은 책을 직접 보시는 게 방법이 아닐까 싶네요~ ^^

 

그럼 시작합니다~

 

1(xiii)

마지막으로, 기억할 것이 한 가지 있다. 새로운 것을 배울 때는 시간이 절대적으로 필요하다. 산만해지지 않을 때 억지로라도 시간을 내어 이 책을 읽어보기 바란다. 주의를 집중한다면 이 책으로부터 많은 것을 얻어 낼 수 있을 것니다.

 

2(10p)

지금이라도 당장 자신만의 앱을 만들려고 할 테지만, 정말로 만들 수 있을 때까지 절대로 포기하지 말기 바란다.

 

1~2번은 제가 이 책을 더 좋아하게 된 계기가 되는 내용입니다. 제가 스위프트 책 탐험기(2017/11/16 - [Swift] - 스위프트 공부를 위한 책 탐험기)에서도 썼지만, 저는 얼른 저의 완성된 앱을 보고 싶은 마음만 급급하여 혼자 신나고 혼자 좌절하는 것을 반복하는 시간이 몇달이었거든요. 그런데... 새로운 것을 배울 때는 시간이 절대적으로 필요합니다. 그리고 포기하지만 않는다면 거기에 갈 수 있습니다.

 

3(13p) - 변수 선언

var numberofStoplights: Int = 4

// Int 타입의 numberofStoplights 변수를 초깃값 4로 선언하라

 

4(16p) - 역슬래시() 문법

let townDescription

 = "\(townname) has a population of \(population)."

// \() 문법은 '찜한자리(placeholder)'를 뜻한다.

 

5(22p) - 삼항 연산자(ternary operator)

message = population < 10000 ? "\(population) is a small town!" : "\(population) is pretty big!"

// a ? b : c는 a가 참이면 b를 하고 그렇지 않으면 c를 하라는 뜻. if/else와 매우 비슷

 

6(24p) - 리팩터링(refactoring)

// 방법을 달리하여 같은 결과를 얻겠다는 뜻이다. 다른 방법을 적용함으로써 효율성이 높아질 수도 있고, 그저 더 예뻐 보이거나 읽기 쉬워지기만 할 수도 있다.

 

7(27p) - Int.max, Int.min

print("The maximum Int value is \(Int.max).")

print("The minimum Int value is \(Int.min).")

// 위에 대한 출력은

The maximum Int value is 92233372036854775807.

The minimum Int value is -9223372036854775808.

// Int의 최대값은 2의 64제곱이다.

 

8(28p) - 부호 없는 정수 타입 (UInt 등)

// 스위프트는 0과 자연수를 나타내기 위해 부호 없는 정수 타입도 제공한다. 부호 있는 정수타입(Int나 Int16 등)마다 그에 대응하는 부호 없는 정수 타입도 존재한다(UInt나 Uint16등).

 

9(32p) - 스위프트의 연산

// 두 정수를 연산하면 그 결과도 반드시 같은 타입의 정수여야 한다. 예를 들어 11/3을 했을 때의 결과는 소수점을 제외한 3이 된다.

 

10(33p) - 오버플로 연산자(overflow operator)

// 오버플로 연산자들은 프로그램을 함정에 빠뜨리지 않고 '반대쪽으로 되돌린다(wrap around).' 오버플로 더하기 연산자는 &+이고, 코드는 아래와 같다. 그외에도 &-와 &*도 사용할 수 있다.

let z = y &+ 10

 

11(35p) - 올바른 더하기를 위해 타입 전환하기

let a: Int16 = 200

let b: Int8 = 50

let c = a + Int16(b)

 

12(35p) - 스위프트에서의 숫자타입

// 스위프트에서는 사용할 값들이 자연수처럼 양수만으로 구성된다 하더라도('사물'의 개수는 세는 것처럼) 정수가 필요한 곳에는 언제나 Int를 고집하는 것이 좋다. 리터럴에 대한 스위프트의 디폴트 타입 추론이 Int이고, 다른 정수 타입을 연산하려면 어느 한 타입을 전환하지 않고서는 불가능하기 때문이다. 코드 전체에서 Int를 일관되게 사용하면 타입 전환의 필요성이 현저히 줄어들고, 정수에 대한 타입 추론을 자유롭게 사용할 수도 있다.

 

휴우~ 이렇게 정리하는 것도 30분이 넘게 걸리네요... 그래도 힘내서 열심히 해보렵니다~~

'Swift' 카테고리의 다른 글

빅 너드 랜치의 스위프트 프로그래밍 ~53p  (0) 2017.11.20
스위프트 공부를 위한 책 탐험기  (0) 2017.11.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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
글 보관함