210126 Fri

Sunny·2021년 4월 3일
0

Today I Learned

목록 보기
4/88

학습내용

Optional 옵셔널

RAM의 관리주체? 메모리라는 공간을 운영체제가 구역을 나눠줌.
e.g. 여기는 누구자리 >> 넌 여기에만 있어야 한다.
그런데 갑자기 토끼가 거북이 자리에 침범함.

그럼 운영체제는 어떻게 할까? 그럼 토끼를 책상에서 내쫓음
Why? 그 칸을 넘어오면 치명적인 일이 일어날 수 있으니까
그래서 크래쉬가 나는 거임.
이 일을 앱이 하는게 아니라 운영체제가 지켜보다가 이런 일을 함.

옵셔널이란? 공간을 만들때 이 공간을 비워둔게 아니라 이 옵셔널에 들어갈 값이 어디에 있다라는걸 힌트같은 걸 넣어둘수도 있음.

쓰레기값? 표시 없이 책상 어딘가에 그냥 딱 박아둔거 그럼 책상 안에 뭐가 들어있을지 모름.
프로그램을 종료하면 나 이제 그 자리 안써요 하고 치워놓고 나가야 하는데 안 치우고 어딘가에 방치.

스위프트의 기본 기조

스위프트에서는 <될 수 있으면> 빈 공간을 두지 말자가 기본 기조.
어떤 변수든 빈 공간이 아닌 상태로 있어야 함.

optional로 nil을 써주면 빈 상자를 메모리 공간에 넣어주는 것.

옵셔널을 사용하면 확실성이 떨어지니, 효율성이 떨어짐.
되도록 확실한 값을 써주는게 좋음!

e.g. let longForm: Optional = Int(“42”)
컴퓨터는 42 숫자를 갖다 써봐야지 앎
42를 써서 제대로 안되면 nil값을 돌려줄게라는 의미.

옵셔널이라는건 저 보호막, 상자를 말함.
그 상자도 공간이 필요함.

딕셔너리 ?
E.g. 가나다 사전에 애플이라는 단어가 있을수도 있고, 없을수도 있음
= nil이 나올 가능성을 항상 내포하고 있다

딕셔너리에서 값을 빼왔을때 값이 있는지 없는지 확인하고 싶다?
값이 있는지 없는지 확인하고 싶을때 쓰는게 옵셔널 바인딩.

CS 지식

CPU의 구성요소 (L1 Cache, ALU, Control Unit)
RAM은 아님 <애플의 cpu안에는 램 있음>
ALU: 연산/산술장치
컴퓨터의 운영체제: Red Hat, macOS, Windows
리눅스는 커널임. 운영체제 아님.
하드웨어의 정보 전달 속도가 빠른 순서로 나열된 것: CPU > RAM > SSD
CPU가 할 수 있는 유일한 연산은? 덧셈 (ALU가 하는 일임)
컴퓨터의 주기억 장치로 사용하는 RAM은 휘발성임.
전원을 끄면 그 안에 있던 데이터가 날아감.
커널은 운영체제의 핵심으로, 응용 소프트웨어 수행에 필요한 여러 서비스를 제공한다.

문제점 / 고민한 점

야곰이 해준 피드백을 바탕으로 Coda, Yun과 변수, 함수명을 좀 더 명확하고 이해하기 쉽게 바꿈.
코딩은 혼자 하는 작업이 아니기 때문에 미래의 내가 봐도, 다른 사람이 봐도 이해하기 쉬워야 한다.

해결방법

변수명 ryuNum을 randomNum으로, chooNum을 inputNum으로 바꿔줌.

https://swift.org/documentation/api-design-guidelines/

profile
iOS Developer

0개의 댓글