์ ์ฒด ๊ธ
[๋คํธ์ํฌ] Introduction
The network edge host: ๋คํธ์ํฌ์์ ์ฌ์ฉ๋๋ ์ปดํจํฐ client: ์๋ฒ์๊ฒ ์ ๋ณด๋ฅผ ์์ฒญํ๊ฑฐ๋ ๋ฐ๋ ์ปดํจํฐ server: ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ์ ์์ฒญ์ ๋ฐ๋ผ ์ ๋ณด๋ฅผ ๋ณด๋ด์ฃผ๋ ์ปดํจํฐ Network edge: ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ์ TCP reliable ๋ฐ์ดํฐ๊ฐ ์ ์ค๋์ง ์์ ๋ฐ์ดํฐ์ transfer ์์๊ฐ ๋ฐ๋์ง ์์ ์์๊ฐ ๋ณด์ฅ๋จ flow control receiver์ ๋ง์ถฐ ์๋ ์กฐ์ congestion control ๋คํธ์ํฌ์ ๋ฅ๋ ฅ์ ๋ง์ถ์ด ์๋ ์กฐ์ resource high UDP reliableํ์ง ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฅํ์ง ์์๋ ๋๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ ex. real-time voice What’s a protocol? ํ๋กํ ์ฝ์ ๋ ์ด์์ ํต์ ๊ฐ์ฒด ๊ฐ ๊ตํ๋๋ ๋ฉ์์ง ํฌ๋งท๊ณผ ์์๋ฟ ..
[์ด์์ฒด์ ] System Structure
์ปดํจํฐ ์์คํ ๊ตฌ์กฐ CPU ๋ ์ง์คํฐ CPU๋ ํ๋ก๊ทธ๋จ ์นด์ดํฐ(์ํํด์ผ ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ด๊ณ ์๋ ๋ ์ง์คํฐ)๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ช ๋ น์ ์ฒ๋ฆฌํ๊ฒ ๋๋ค. ์ธํฐ๋ฝํธ ๋ผ์ธ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ํด ์ฃผ๋ณ ์ฅ์น๋ ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํ ํ๊ณ CPU๋ ๋งค๋ฒ ๋ช ๋ น์ ์ํํ ํ ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ฒดํฌํด ์๋น์ค ์์ฒญ์ด ์๋์ง ํ์ธํ๋ค. ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์๋ชป๋ ์ํ์ผ๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋ฐ ์ด์์ฒด์ ์ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ํ๊ธฐ ์ํ ๋ณดํธ ์ ์ฐจ ๋ชจ๋๋น์ด 0์ผ๋ (๋ชจ๋ํฐ ๋ชจ๋ = ์ปค๋ ๋ชจ๋ = ์์คํ ๋ชจ๋) ์ด์์ฒด์ ๊ฐ cpu์์ ์คํ ์ค ๋ฌด์จ์ผ์ธ์ง ๋ค ํ ์์์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ i/o device ์ ๊ทผ ๋ชจ๋๋น์ด 1์ผ ๋ (์ฌ์ฉ์ ๋ชจ๋) ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด cpu๊ฐ๊ณ ์์ ๋ณด์์ ์ํด ์ ํ๋(ํ์ ๋) instruction๋ง ์คํํ ์ ์..
[์ด์์ฒด์ ] Introduction to Operating System
์ด์์ฒด์ ๋ ๋ฌด์์ธ๊ฐ? ์ด์์ฒด์ ๋? ์ปดํจํฐ ํ๋์จ์ด ๋ฐ๋ก ์์ ์ค์น๋์ด ์ฌ์ฉ์ ์ปดํจํฐ& ๋ค๋ฅธ ๋ชจ๋ ์ํํธ์จ์ด์ ํ๋์จ์ด ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ์ธํฐํ์ด์ค ์ข์ ์๋ฏธ์ ์ด์์ฒด์ (์ปค๋) ์ด์์ฒด์ ์ ํต์ฌ ๋ถ๋ถ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ ๋ถ๋ถ ๋์ ์๋ฏธ์ ์ด์์ฒด์ ์ปค๋ ๋ฟ ์๋๋ผ ๊ฐ์ข ์ฃผ๋ณ ์์คํ ์ ํธ๋ฆฌํฐ๋ฅผ ํฌํจํ ๊ฐ๋ ์ด์์ฒด์ ์ ๋ชฉ์ ์ปดํจํฐ ์์คํ ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณต ์ด์์ฒด์ ๋ ๋์ ์ฌ์ฉ์ / ํ๋ก๊ทธ๋จ๋ค์ด ๊ฐ์ ๋ ์์ ์ปดํจํฐ์์ ์ํ๋๋ ๊ฒ ๊ฐ์ ํ์์ ์ ๊ณต ํ๋์จ์ด๋ฅผ ์ง์ ๋ค๋ฃจ๋ ๋ณต์กํ ๋ถ๋ถ์ ์ด์์ฒด์ ๊ฐ ๋ํ ์ปดํจํฐ ์์คํ ์ ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ - A resource allocator ํ๋ก์ธ์, ๊ธฐ์ต์ฅ์น, ์ ์ถ๋ ฅ ์ฅ์น ๋ฑ์ ํจ์จ์ ์ธ ๊ด๋ฆฌ ์ฌ์ฉ์ ๊ฐ์ ํํ์ฑ ์๋ ์์ ๋ถ๋ฐฐ ์ฃผ์ด์ง ์์์ผ๋ก ์ต๋ํ์ ..
[Swift] reduce ์ฌ์ฉํ๊ธฐ | sum
Programmers ํ์ค๋ ์๋ฅผ ํ๊ณ ๋์, reduce๋ฅผ ์ด์ฉํ ํ์ด๋ฅผ ๋ง์ฃผ์ณ๋ฒ๋ ธ๋ค. // Programmers ํ์ค๋ ์ ํ์ด func solution(_ x:Int) -> Bool { var sum_x = String(x).map{ Int(String($0))! }.reduce(0, +) return x % sum_x == 0 } ใ ใ .. ๋๋ ๊ณต๋ถํด์ค๊ฒ reduce ์ปจํ ์ด๋ ๋ด๋ถ์ ๊ฐ์ ํ๋๋ก ํตํฉ(์ฐ์ฐ)ํ์ฌ return * Swift์์๋ Python๊ณผ๋ ๋ฌ๋ฆฌ ๋ฐฐ์ด์ ์ด ํฉ์ ๊ตฌํ๋ ๋ด์ฅ ํจ์ sum์ด ์๋ค. ๋์ reduce๋ฅผ ์์ฉํด์ฃผ๋ฉด ๋๋ค. (1) reduce(_: _:) public func reduce(_ initialResult: Result, _ nextPartialResult: (..
[Swift] map, flatMap, compactMap ?
Map, flatMap, compactMap map ๋ฐฐ์ด ๋ด๋ถ์ ๊ฐ์ ํ๋์ฉ mapping ๊ฐ ์์์ ๋ํ ๊ฐ์ ๋ณ๊ฒฝํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ค์ ๋ฐฐ์ด์ ์ํ๋ก ๋ฐํ func map(_ transform: (String) throws -> T) rethrows -> [T] import Foundation let cast = ["Vivien", "Marlon", "Kim", "Karl"] let lowercaseNames = cast.map { $0.lowercased() } print(lowercaseNames) // ["vivien", "marlon", "kim", "karl"] let letterCounts = cast.map{ $0.count } print(letterCounts) // [6..
[Swift] inout? | ํจ์ ๋ด๋ถ์์ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๋ณ๊ฒฝํ๊ณ ์ง์ํ๊ธฐ
What is inout? Swift์์ ํจ์์ ํ๋ผ๋ฏธํฐ๋ ์์์ด๋ฏ๋ก ํจ์ ๋ด๋ถ์์ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ ํจ์์์ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๋ณ๊ฒฝํ๊ธธ ์ํ๊ณ + ๋ณ๊ฒฝ๋ ๊ฐ์ด ํจ์ ํธ์ถ์ด ์ข ๋ฃ๋ ํ์๋ ์ง์๋๊ธธ ์ํ ๋ inout ์ฌ์ฉ ํ๋ผ๋ฏธํฐ๋ก ๋ณ์์ ์ฃผ์๊ฐ์ ๋๊ฒจ ์ง์ ์ ๊ทผํ ์ ์๋๋ก ํด์ฃผ๋ ๊ธฐ๋ฅ func increment(_ number: Int){ number += 1 print(number) } increment(3) // Error: 'number' is a 'let' constant var number = 3 func increment(_ number: inout Int){ number += 1 print(number) } increment(&number) // 4 How to use inout?..
[iOS] ์คํ ๋ฆฌ๋ณด๋ ์๋ ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ | No-storyboard
ํญ์ ์คํ ๋ฆฌ๋ณด๋๋ฅผ ์ฌ์ฉํด์ ํ๋ก์ ํธ๋ฅผ ์งํํด์๋๋ฐ ์ด๋ฒ ํ๋ก์ ํธ์์๋ ์คํ ๋ฆฌ๋ณด๋ ์์ด ์งํํ๊ณ ์ ํ๋ค. ์ด์ฐจํผ UIKit๋ฅผ ์ฌ์ฉํ๊ธฐ๋๋ฌธ์ ๋ค ๋๊ฐ์ง๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก storyboard ์ ํ ์ด ๋์ด์๊ธฐ ๋๋ฌธ์ ์ฐ๊ฒฐ๋ง ๋์ด์ฃผ๋ฉด ๋๋ค. (Step 1) ์คํ ๋ฆฌ๋ณด๋ ํ๋ก์ ํธ์ ๋๊ฐ์ ์ค์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํด์ค๋ค. (Step 2) ์ผ์ชฝ์ Navigator์์ Main.storyboard๋ฅผ ์ญ์ ํด์ค๋ค. (Step 3) Project > Targets > General > Deployment Info ์์ Main Interface์ ์ค์ ๋์ด์๋ Main.Storyboard๋ฅผ ์ญ์ ํด์ค๋ค. (Step 4) Project > Targets > Info ์์ Storboard Name์ ์ญ์ ํด์ค๋ค. (Step 5) Scen..
[iOS] App States & View Life Cycle | ์ฑ์ ์ํ์ ๋ทฐ์ ์๋ช ์ฃผ๊ธฐ
์๋ช ์ฃผ๊ธฐ(Lifecycle)์ด๋ ๋ฌด์์ธ๊ฐ? ⇒ ์ธ์ ํน์ ๋ก์ง์ ํ๊ณ ์ถ๋ค๋ฅผ ์ด๋์ ์์ฑํ๋ฉด ๋๋ค๋ผ๋ ๋ฌธ์ ๋ก ๋ณ๊ฒฝํด์ฃผ๋ ๊ฐ๋ App States Not running: ์ฑ์ด ์คํ๋์ง ์๊ฑฐ๋ ์ข ๋ฃ๋ ์ํ Foreground: ํ๋ฉด์ด ๋ํ๋ ์ํ inActive: ์ํธ์์ฉ์ด ๋ถ๊ฐ๋ฅํ ์ํ, ํ๋ฉด์ ๋ณด์ ex) ์ ํ๊ฐ ์์ ๋, ์์คํ ๋ฉ์์ง๊ฐ ๋ด์ ๋ ('๋ฐฐํฐ๋ฆฌ๊ฐ ๋ถ์กฑํฉ๋๋ค') Active: ์ํธ์์ฉ์ด ๊ฐ๋ฅํ ์ํ, ์ฑ์ด ์คํ๋๊ณ ์๋ ์ํ Background: ํ๋ฉด์ด ์ฌ๋ผ์ง ์ํ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ํ์์ ์ค์ง์ ์ธ ๋์์ ํ๊ณ ์๋ ์ํ ex) ํ์ผ ๋ค์ด๋ก๋, ์ ํ๋ธ ์์ ์คํ Suspended: ๋ญ๊ฐ ์ก์๋ ์ํ ๋น ๋ฅธ ์ฌ์คํ์ ์ํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ต์ํ์ผ๋ก๋ง ์ก๊ณ (ํ ๋นํ๊ณ ) ์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๋ฉด ์์คํ ์ด Suspe..