1. Memory Basics 메모리를 가장 단순하게 이야기하면 0과 1을 저장할 수 있는 반도체입니다. 메모리는 전압 차이를 이용해서 데이터를 저장합니다. 전기가 들어오면 1이 저장되고 전기가 들어오지 않으면 0이 저장됩니다. 0이나 1이 들어가는 가장 작은 공간을 Bit 라고 합니다. 여기에 들어가는 모든 데이터는 종류에 상관 없이 2진수로 변환되어 저장됩니다. Bit 는 컴퓨터 공학에서 정보의 기본 단위로 사용되고 있습니다. 프로그래밍에서는 8개의 Bit 가 모인 Byte 를 기본 단위로 사용합니다. 1byte 에는 256개의 Binary 패턴이 있습니다. 양수만 저장한다고 생각하면 저장할 수 있는 값의 범위는 0부터 255 사이입니다. 양수와 음수를 모두 저장하는 경우에는 -128에서 127까지의..
6. Protocol Types Protocol 은 First-class Citizen 으로 독립적인 하나의 형식입니다. 변수나 상수를 선언할 때 자료형으로 사용하거나 파라미터의 자료형으로 사용할 수 있습니다. 그리고 리턴형으로 사용하는 것도 가능합니다. 간단한 예제를 살펴보겠습니다. protocol Resettable { func reset() } class Size: Resettable { var width = 0.0 var height = 0.0 func reset() { width = 0.0 height = 0.0 } } let s = Size() // Protocol 형식으로 저장하면 Protocol 에 선언되어 있는 멤버만 사용할 수 있습니다. let resettable: Resettable ..
1. Protocol Syntax Protocol 을 간단하게 정리하면 형식에서 공통으로 제공하는 멤버 목록을 말합니다. Protocol 에는 형식에서 구현해야 하는 멤버가 선언되어 있으며 실제 구현은 Protocol 에 포함되지 않습니다. 대신 class 나 structure 같은 타입들이 실제 Protocol 의 멤버들을 구현하게 됩니다. 이것을 "프로토콜을 따른다"고 표현하거나 "프로토콜을 채용한다"고 표현합니다. 프로토콜을 채용한 형식은 반드시 프로토콜에 선언되어 있는 필수 멤버를 모두 구현해야 합니다. 그래서 이런 멤버들을 요구사항이라고 부르기도 합니다. 프로토콜을 선언하는 문법은 다음과 같습니다. protocol ProtocolName { propertyRequirements methodReq..
1. Extension - Syntax Extension 은 확장이라는 의미를 가지고 있으며 형식을 확장하는 데 사용됩니다. 형식을 확장한다는 것은 속성, 메소드, 생성자와 같은 멤버들을 형식에 추가하는 것입니다. Extension 으로 확장할 수 있는 대상은 Class, Structure, Enumeration, Protocol 입니다. Extension 은 형식 선언에 새로운 멤버를 추가하는 것은 아닙니다. 새로운 멤버는 별도의 코드 조각으로 구현하고 형식과 연관 시켜서 기존 멤버와 함께 사용하는 것입니다. 형식 선언이 포함되어 있는 코드를 수정할 수 없는 경우에도 문제없이 확장할 수 있습니다. Int 나 String 같은 기본 자료형은 실제로 구조체로 구현되어 있습니다. Apple 이 제공하는 라이..
1. Initializers 생성자에 대해 알아보겠습니다. 열거형, 구조체, 클래스는 모두 설계도입니다. 설계도를 기반으로 생성한 것을 인스턴스라고 합니다. 다른 언어에서는 객체에 한해 인스턴스라는 용어를 사용하지만 Swift 에서는 구분 없이 사용합니다. 새로운 인스턴스를 생성하는 것을 초기화라고 합니다. 인스턴스의 초기화를 담당하는 것이 바로 initializer 입니다. 초기화는 모든 속성을 기본 값으로 초기화해서 인스턴스를 기본 상태로 만드는 것이 목적입니다. 인스턴스가 정상적으로 초기화 되었다는 것은 initializer 의 실행이 완료되었을 때, 모든 속성이 기본 값을 가지고 있다는 뜻입니다. 만약 기본 값이 없는 속성이 존재한다면 초기화에 실패하고 인스턴스는 생성되지 않습니다. 기본적인 초기..
- Total
- Today
- Yesterday
- AWS
- spring
- SWIFT
- 프로그래머스
- 순열
- EC2
- cloudfront
- CodeCommit
- BFS
- 에라토스테네스의 체
- Combination
- CodePipeline
- DFS
- 소수
- 조합
- programmers
- Dynamic Programming
- map
- CodeDeploy
- ECR
- Baekjoon
- ionic
- permutation
- search
- java
- 수학
- array
- string
- Algorithm
- sort
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |