오늘은
- Naming Convetion
- Scope
- 메모리와 자료형
- Nuber Literals와 Number Types
에 대해 공부했다.
- 1-10
- Naming Convention
- 이름 정의 규칙
- 코드 가독성 높아짐
- CamelCase
- Swift에서 사용하는 Naming Convention
- 이름에 포함된 첫 번째 문자를 표기하는 방법 규정
- 두 개 이상의 단어가 포함되어 있을 때 단어를 구분하는 방법 규정
- UpperCamelcase: Class, Structure, Enumeration, Extension, Protocol
- lowerCamelCase: Variable, Constant, Function, Property, Parameter
- 1-11
- Scope 코드의 범위
- 코드의 식별 범위, 접근 가능성, 메모리의 라이프 사이클 결정하는 중요한 요소
- Global Scope
- 전역범위
- 범위 정하는 기준 { }
- global scope는 어떤 { } 에도 속하지 않는다
- Local Scope
- 지역범위
- 범위 정하는 기준 { }
- 무조건 { } 안에 존재
- 여러 단계로 중첩 가능
- Declaration Scope
- 정의를 내리는 scope
- { } 안에 있지만 local scope가 아님
- Scope 규칙
- 동일한 scope에 접근할 수 있다
- Global scope는 선언 순서에 관계 없이 접근할 수 있다
- 로컬 스코프에서 상위 스코프나 글로벌 스코프에 접근할 수 없다
- 글로벌 스코프가 아니면 이미 선언되어 있는 요소에만 접근 가능하다
- 상위 스코프는 하위 스코프에 접근할 수 없다
- 서로 다른 스코프에 동일한 이름이 존재하면 가장 가까운 스코프에 있는 이름을 사용한다 (계층과 선언 시점 함께 보고 판단)
- 글로벌 스코프가 아닌 다른 스코프는 시작과 끝이 명확해야 한다
- 1-12
- 메모리의 구조와 크기
- 1byte 메모리에는 256개의 수 저장할 수 있다.
(1byte 이진수로 바꾸면 8자리 → 2^8 = 256)
(8자리 중 가장 앞에 있는 비트 → 최상위 비트(MSB)
가장 뒤에 있는 비트 → (LSB))
- 정수만 저장: 0~125, 음수양수 저장: -123~127
- Binnary(바이너리): 메모리에 저장 전 이진수로 바꾸는 것
- 정수 저장
- 정수 저장 타입
- Signed Type: 음수,양수,0 모두 저장
- Unsigned Type: 0과 양수만 저장
- Sign bit(부호비트)
- 최상위 비트 이용해 양수, 음수 구분하는 비트
- MSB 0 : Positive Number
- MSB 1 : / Negative Number
- 비트 하나를 부호 비트로 사용하기 때문에 데이터 저장 가능한 데이터 비트 줄어든다 → 저장 범위 줄어든다 → 현재는 사용하지 않는 방식
- 2’s Complement(2의 보수 방식)
- 현재 사용되는 방식
- 양수의 비트 값 반전시켜 1을 더해 사용하는 방
- Bitwise-NOT 연산
- 실수 저장
- 지수와 가수로 나누어 저장
- 동일한 메모리 크기에서 정수보다 더 넓은 범위 저장 가능
- 부동 소수점에는 오차가 있어 100% 정확한 값 저장 불가
- 자료형 (Data Types)
- Integer Types
Floating-point Types
Boolean Types
Character Types
String Types
- 1-13
- 코드에서 숫자를 사용하고 저장하는 방법
- Number Literals
실수 1.23
- 정수 부분 생략 불가 0.23
- 십진수 실수 → 지수 형태로 표현 1.23E4
- 10진수 표현 접두어 0b
- 8진수 표현 접두어 0o
- 16진수 표현 접두어 0x
- 금액 1_000_000
- Number Types
-
Interger Types
- 정수 저장하는 자료형
- Int8(0,양수), UInt8(음수,0,양수)
- 특별한 일 없으면 Int 사용
-
Floating-point Types
- 실수 저장 자료형
- Float(4byte), Double(8byte)
- 보통 Double 사용
정수 저장할 때는 Int, 실수 저장할 때는 Double 사용하면 된다!