[Swift] UI ๊ตฌํ˜„ ์‹œ Storyboard์™€ Code Base ๋น„๊ต
ยท
iOS/Swift
Storyboard์˜ ์žฅ์  - ์•ฑ์˜ ํ๋ฆ„์„ ์ง๊ด€์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. - ์•ฑ์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ์˜ˆ์ธกํ•˜๊ธฐ ์‰ฝ๋‹ค. - pop, push, present, dismiss๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Storyboard์˜ ๋‹จ์  - ํ™”๋ฉด ๋กœ๋”ฉ ์‹œ ๋ฌด๊ฒ๋‹ค. - IBOutlet, IBAction๊ณผ ๊ฐ™์€ ๋งํฌ๊ฐ€ ๋Š์–ด์กŒ์„ ๋•Œ ํŒŒ์•…ํ•˜๊ธฐ ํž˜๋“ค๋‹ค. - ์•ฑ์ด ์ปค์ง€๋ฉด ์ปค์งˆ์ˆ˜๋ก ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค. - ์ถฉ๋Œ ์‹œ ํ•ด๊ฒฐ์ด ์–ด๋ ต๋‹ค. Code Base์˜ ์žฅ์  - ์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด ์Šคํ† ๋ฆฌ๋ณด๋“œ์— ๋น„ํ•ด ๊ฐ€๋ณ๋‹ค. - ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์•„์ง„๋‹ค. Code Base์˜ ๋‹จ์  - ์–ด๋–ค ํ™”๋ฉด์ด ๋งŒ๋“ค์–ด์งˆ์ง€ ํŒŒ์•…ํ•˜๊ธฐ ํž˜๋“ค๋‹ค. - ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ์•Œ๊ณ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
[OS] ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋Ÿฌ
ยท
Computer Science/OS
์Šค์ผ€์ค„๋Ÿฌ(Scheduler) ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์ž์›์„ ํ• ๋‹นํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” OS์ปค๋„์˜ ๋ชจ๋“ˆ ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋Ÿฌ์˜ ์ข…๋ฅ˜์—๋Š” ์žฅ๊ธฐ, ์ค‘๊ธฐ, ๋‹จ๊ธฐ๊ฐ€ ์žˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋Ÿฌ์˜ ์ข…๋ฅ˜ ์žฅ๊ธฐ ์Šค์ผ€์ค„๋Ÿฌ(Long-term Scheduler) / job Scheduler ํ•œ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ์•ˆ์— ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜์—ฌ Ready Queue์— ๋ณด๋‚ผ์ง€ ๊ฒฐ์ •ํ•ด์ฃผ๋Š” ์ž‘์—…์„ ๋œปํ•œ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ์ปค๋„์— ๋“ฑ๋กํ•  ๊ฒƒ์ธ์ง€ ์ •ํ•˜๋Š” ์ž‘์—… ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผํ•  ์ผ์ด 10๊ฐœ์ธ๋ฐ, ๋ฉ”๋ชจ๋ฆฌ์—๋Š” 7๊ฐœ๋ฐ–์— ์˜ฌ๋ฆฌ์ง€ ๋ชปํ•จ ์ด๋•Œ, 7๊ฐœ๋ฅผ ๊ณจ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์•ผํ•˜๋Š”๋ฐ ์–ด๋–ค๊ฒƒ์„ ๊ณจ๋ผ์„œ ์˜ฌ๋ฆด์ง€ ๊ฒฐ์ •ํ•˜๋Š”๊ฒŒ ์žฅ๊ธฐ ์Šค์ผ€์ค„๋Ÿฌ job์„ ๊ณ ๋ฅด๋Š”๊ฑฐ๋ผ๊ณ ํ•ด์„œ job Scheduler ๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ ๋‹จ๊ธฐ ์Šค์ผ€์ค„๋Ÿฌ(short-term Scheduler) ..
MovieDiary ๊ฐœ์ธ์ •๋ณด ์ฒ˜๋ฆฌ๋ฐฉ์นจ
ยท
...
('https://island-developer.tistory.com'์ดํ•˜ 'Kang')์€(๋Š”) ใ€Œ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฒ•ใ€ ์ œ30์กฐ์— ๋”ฐ๋ผ ์ •๋ณด์ฃผ์ฒด์˜ ๊ฐœ์ธ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ์ด์™€ ๊ด€๋ จํ•œ ๊ณ ์ถฉ์„ ์‹ ์†ํ•˜๊ณ  ์›ํ™œํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐœ์ธ์ •๋ณด ์ฒ˜๋ฆฌ๋ฐฉ์นจ์„ ์ˆ˜๋ฆฝ·๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค. โ—‹ ์ด ๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ์€ 2022๋…„ 7์›” 13๋ถ€ํ„ฐ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ œ1์กฐ(๊ฐœ์ธ์ •๋ณด์˜ ์ฒ˜๋ฆฌ ๋ชฉ์ ) ('https://island-developer.tistory.com'์ดํ•˜ 'Kang')์€(๋Š”) ๋‹ค์Œ์˜ ๋ชฉ์ ์„ ์œ„ํ•˜์—ฌ ๊ฐœ์ธ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ์ธ์ •๋ณด๋Š” ๋‹ค์Œ์˜ ๋ชฉ์  ์ด์™ธ์˜ ์šฉ๋„๋กœ๋Š” ์ด์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ด์šฉ ๋ชฉ์ ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ใ€Œ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฒ•ใ€ ์ œ18์กฐ์— ๋”ฐ๋ผ ๋ณ„๋„์˜ ๋™์˜..
[iOS/Swift] Alamofire๋กœ ์„œ๋ฒ„(FastAPI)์— ๋™์˜์ƒ ์—…๋กœ๋“œํ•˜๊ธฐ
ยท
iOS/Swift
์Šฌ์Šฌ ์บก๋””๊ฐ€ ๋๋‚˜๊ฐ„๋‹ค.. ์‹œ๊ฐ„์ด ๋‚จ์•„์„œ ์‚ฝ์งˆ ์—„์ฒญํ–ˆ๋˜ ๋ถ€๋ถ„์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. Alamofire ๊นƒ ์ฃผ์†Œ https://github.com/Alamofire/Alamofire ์ฒ˜์Œ์— ํ—ท๊ฐˆ๋ ธ๋˜๊ฒŒ ๋™์˜์ƒ์€ ์–ด๋–ค ํ˜•์‹์œผ๋กœ ์ €์žฅํ•ด์„œ ๋„˜๊ฒจ์•ผํ•˜๋Š”์ง€ ์ž˜ ๋ชฐ๋ž์—ˆ๋‹ค. URLํ˜•์‹์œผ๋กœ ๋„˜๊ธฐ๋‹ˆ๊น ์ž˜ ๋„˜๊ฒจ์กŒ๋‹ค. ์ฐธ๊ณ ๋กœ ๋™์˜์ƒ์€ ์•จ๋ฒ”์—์„œ ๊ฐ€์ ธ์™€์„œ ์ €์žฅํ–ˆ๋‹ค. (์ด ๋ถ€๋ถ„ ์ฝ”๋“œ๋Š” ์ƒ๋žตํ•จ) import Alamofire class ViewController: UIViewController { //๋™์˜์ƒ ์ €์žฅ var videoURL: URL? //๋ฒ„ํŠผ ํด๋ฆญํ•˜๋ฉด ์„œ๋ฒ„๋กœ ๋™์˜์ƒ ์ „์†ก @IBAction func reportButtonClicked(_ sender: UIBarButtonItem) { do { print("videoURL : \..