ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 210513 - TIL
    TIL/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
Designed by Tistory.