-
210513 - TILTIL/2021 2021. 5. 14. 00:25
Swift
오늘 공부한 건 Conditional Statement
가물가물했던 건 Expression Pattern
- Conditional Statement
- if statement
- switch statement
- Pattern matching
- Interval matching
- Value binding pattern
- case let, case var
- where과 자주 사용된다.
- Tuple을 binding 하려면?
- case let(a, b):
- case (let a, var b):
- case (let a, _):
- Expression Pattern
- pattern, interval matching을 할 때 custom type이라면 뭘 어떻게 비교해야할지 모르기 때문에
- 이때 ~=를 override 해주면 매칭 시킬 수 있다.
- 중요한 건 첫 번째 parameter는 case 뒤에 오는 값의 타입
- 두 번째 parameter는 switch 뒤에 오는 값의 타입
- guard statement
- guard가 좋다고 남발하면 안 되는 이유!! Early exit!!
Computer Architecture
- Clock Cycle = Instruction Count * Cycles per Instruction(CPI)
- CPU Time = (Instruction Count * CPI ) / Clock Rate
- Clock period
- Duration of ad clock cycle
- == 1 / clock rate
- Power wall
- 칩의 Power (전력 소모) = Capacitive load * Volatage^2 * Frequency
- Voltage를 줄이는 방식으로 power를 줄여왔는데 더 이상 내릴 수 없어서 power를 줄이기 힘들다.
- 이러한 문제로 Clock rate를 증가시킬 수 없었다.
- 그래서 나온 해결책이 MultiCore
- Amdahl’s Law
- 전체 시스템의 성능 향상은 특정 부분이 전체 성능에 차지하는 비율만큼의 성능 향상과 같다.
- MIPS
- Millions of Instructions Per Second
- 옛날에는 성능의 측정 단위로 사용됐었는데 지금은 안 쓴다.
- 지금은 CPUTime을 사용한다.
- 나중에 배울 CPU의 종류 중 하나인 MIPS와 다른 뜻이다.
Test Double
Timer를 만드려고 했는데 TDD로 해볼까?? 하다가 Timer는 어떻게 테스트하지...?? 라는 생각에 검색을 하다가 자주 나오는 용어라 공부를 해야겠다고 생각했다.
- 테스트를 진행하기 어려운 경우 대신 테스트를 진행할 수 있도록 하는 객체
- Dummy, Fake, Stub, Spy, Mock 등 다양하다.
728x90'TIL > 2021' 카테고리의 다른 글
210518 - TIL (0) 2021.05.19 210514 - TIL (0) 2021.05.14 210512 - TIL (0) 2021.05.13 210509 - TIL (0) 2021.05.10 210507 - TIL (0) 2021.05.08 - Conditional Statement