[Quality Assurance] QA vs QC: ํ’ˆ์งˆ ๋ณด์ฆ๊ณผ ํ’ˆ์งˆ ๊ด€๋ฆฌ์˜ ์ฐจ์ด
ยท
CS(Computer Science)/Quality Assurance
1. ํ’ˆ์งˆ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?ํ’ˆ์งˆ(Quality)์ด๋ž€ ์ œํ’ˆ ๋˜๋Š” ์„œ๋น„์Šค๊ฐ€ ํŠน์ •ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด๋‚˜ ๊ณ ๊ฐ์˜ ๊ธฐ๋Œ€๋ฅผ ์–ผ๋งˆ๋‚˜ ์ถฉ์กฑํ•˜๋Š”์ง€๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ๋Š” ์ •ํ™•์„ฑ, ์•ˆ์ •์„ฑ, ์‚ฌ์šฉ์„ฑ, ์„ฑ๋Šฅ, ๋ณด์•ˆ์„ฑ ๋“ฑ์ด ํ’ˆ์งˆ์„ ๊ตฌ์„ฑํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ๋‹ค. ํ’ˆ์งˆ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ธฐ์—…์€ ์ผ๋ฐ˜์ ์œผ๋กœ QA(Quality Assurance, ํ’ˆ์งˆ ๋ณด์ฆ)์™€ QC(Quality Control, ํ’ˆ์งˆ ๊ด€๋ฆฌ)๋ฅผ ๋ณ‘ํ–‰ํ•˜์—ฌ ์ ์šฉํ•œ๋‹ค. ๋‘ ๊ฐœ๋…์€ ์œ ์‚ฌํ•ด ๋ณด์ด์ง€๋งŒ, ์—ญํ• ๊ณผ ๋ชฉ์ ์—์„œ ๋ณธ์งˆ์ ์ธ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ๋˜ํ•œ ํ’ˆ์งˆ ๊ด€๋ฆฌ๋Š” ๋‹จ์ผ ํ™œ๋™์ด ์•„๋‹ˆ๋ผ, ์กฐ์ง ์ „๋ฐ˜์— ๊ฑธ์นœ ๋‹จ๊ณ„์ ์ด๊ณ  ์ฒด๊ณ„์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ํ’ˆ์งˆ ํ™œ๋™์ด ๋ฐœ์ „ํ•œ๋‹ค: ํ’ˆ์งˆ ๊ฒ€์‚ฌ(QT) → ํ’ˆ์งˆ ๊ด€๋ฆฌ(QC) → ํ’ˆ์งˆ ๋ณด์ฆ(QA) → ํ’ˆ์งˆ ๊ฒฝ์˜(QM) → ์ „์‚ฌ์  ํ’ˆ์งˆ ๊ฒฝ์˜(T..
[Quality Assurance] ISO/IEC 25010 ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ ํŠน์„ฑ ์™„์ „ ์ •๋ฆฌ
ยท
CS(Computer Science)/Quality Assurance
ISO/IEC 25010: ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ ํŠน์„ฑ ์ •๋ฆฌ1. ISO/IEC 25010์ด๋ž€?ISO/IEC 25010์€ ์†Œํ”„ํŠธ์›จ์–ด ์ œํ’ˆ์˜ ํ’ˆ์งˆ์„ ์ •์˜ํ•˜๊ณ  ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ๊ตญ์ œ ํ‘œ์ค€ ํ’ˆ์งˆ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ISO/IEC 9126 ๋ชจ๋ธ์„ ๊ฐœ์ •ํ•œ ๊ฒƒ์œผ๋กœ, ๊ธฐ๋Šฅ ์ ํ•ฉ์„ฑ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์„ฑ๋Šฅ, ์‚ฌ์šฉ์„ฑ, ๋ณด์•ˆ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ์ด์‹์„ฑ ๋“ฑ ํฌ๊ด„์ ์ธ ํ’ˆ์งˆ ํŠน์„ฑ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.์ด ํ‘œ์ค€์€ ๋‘ ๊ฐ€์ง€ ํ’ˆ์งˆ ๋ชจ๋ธ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค:์ œํ’ˆ ํ’ˆ์งˆ(Product Quality)์‚ฌ์šฉ ์‹œ ํ’ˆ์งˆ(Quality in Use)์ด ๊ธ€์—์„œ๋Š” ์ œํ’ˆ ํ’ˆ์งˆ ๋ชจ๋ธ์— ์ค‘์ ์„ ๋‘๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.2. ์ œํ’ˆ ํ’ˆ์งˆ: 8๊ฐ€์ง€ ํ•ต์‹ฌ ํŠน์„ฑ์ œํ’ˆ ํ’ˆ์งˆ์€ 8๊ฐœ์˜ ์ƒ์œ„ ํŠน์„ฑ๊ณผ ๊ฐ ํ•˜์œ„ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ๋Šฅ์  ์™„์„ฑ๋„์™€ ์šด์˜ ์ ํ•ฉ์„ฑ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜๋Š” ๊ธฐ์ค€์œผ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.3. ํ’ˆ์งˆ ํŠน์„ฑ..
[Computer Architecture] ๋น„ํŠธ์™€ ๋ฐ”์ดํŠธ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ: ์ปดํ“จํ„ฐ ๋ฐ์ดํ„ฐ์˜ ์ตœ์†Œ ๋‹จ์œ„
ยท
CS(Computer Science)/Computer Architecture
1. ์™œ ์•Œ์•„์•ผ ํ• ๊นŒ?์ปดํ“จํ„ฐ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฌธ์ž, ์ด๋ฏธ์ง€, ์Œ์•…, ์˜์ƒ ๋“ฑ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ• ๊นŒ์š”?๋ฐ”๋กœ 1๊ณผ 0, ๋‘ ๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ‘œํ˜„ ๋ฐฉ์‹์˜ ์ตœ์†Œ ๋‹จ์œ„๊ฐ€ ๋น„ํŠธ(Bit)์ด๋ฉฐ,์ด๋ฅผ ์‹ค์งˆ์ ์ธ ๋‹จ์œ„๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”์ดํŠธ(Byte)์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋ฐ์ดํ„ฐ ๋ถ„์„, ์‹œ์Šคํ…œ ์„ค๊ณ„, ํŒŒ์ผ ์ตœ์ ํ™” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ  ๋ถ„์•ผ์—์„œ๋น„ํŠธ์™€ ๋ฐ”์ดํŠธ๋Š” ๊ธฐ๋ณธ์ด์ž ํ•ต์‹ฌ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” ์ด ๋‘ ๋‹จ์œ„์˜ ๊ฐœ๋…๊ณผ ํ™œ์šฉ ๋ฐฉ์‹์„ ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 2. ๋น„ํŠธ(Bit)๋ž€?Bit๋Š” Binary Digit์˜ ์ค„์ž„๋ง์ด๋ฉฐ, ์ด์ง„์ˆ˜ ํ•œ ์ž๋ฆฌ๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค.์ฆ‰, ํ•˜๋‚˜์˜ ๋น„ํŠธ๋Š” ์˜ค์ง ๋‘ ๊ฐ€์ง€ ๊ฐ’๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.0 : ๊บผ์ง, OFF, ์ „๋ฅ˜ ์—†์Œ1 : ์ผœ์ง, ON, ์ „๋ฅ˜ ..
[ETC, R] RStudio ์ž์ฃผ ์“ฐ๋Š” ๋‹จ์ถ•ํ‚ค ์ •๋ฆฌ (Windows & macOS ํฌํ•จ)
ยท
ETC
1. ๋‹จ์ถ•ํ‚ค ๊ธฐ๋ณธ ์ดํ•ดWindowsmacOS์˜๋ฏธCtrlโŒ˜ (Command)๊ธฐ๋ณธ ์กฐํ•ฉ ํ‚คAltโŒฅ (Option)๋ณด์กฐ ์กฐํ•ฉ ํ‚คCtrl + ShiftโŒƒ (Control)์ผ๋ถ€ ๊ณ ๊ธ‰ ๋‹จ์ถ•ํ‚ค์— ์‚ฌ์šฉ ๋‹จ์ถ•ํ‚ค๋Š” ์šด์˜์ฒด์ œ์— ๋”ฐ๋ผ ํ‘œ๊ธฐ๊ฐ€ ๋‹ค๋ฅด๋ฉฐ, ๋ณธ๋ฌธ์—์„œ๋Š” Windows → macOS ์ˆœ์„œ๋กœ ๋ณ‘๊ธฐํ‚ค๋ณด๋“œ ์„ค์ •์€ ๋ฉ”๋‰ด๋ฐ”์˜ Tools → Modify Keyboard Shortcuts์—์„œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์ „์ฒด ๋‹จ์ถ•ํ‚ค ๋ชฉ๋ก ๋ณด๊ธฐ: Alt + Shift + K (macOS: โŒฅ + Shift + K)2. ์ž์ฃผ ์“ฐ๋Š” ๊ธฐ๋ณธ ๋‹จ์ถ•ํ‚ค ๋ชจ์Œ๊ธฐ๋ŠฅWindowsmacOSํ˜„์žฌ ์ค„ / ์„ ํƒ ์˜์—ญ ์‹คํ–‰Ctrl + EnterโŒ˜ + Enter์ „์ฒด ์ฝ”๋“œ ์‹คํ–‰Ctrl + Alt + RโŒฅ + โŒ˜ + RR Markdown KnitCtrl + Shift + KโŒ˜ + Sh..
[Git] ์ปจ๋ฒค์…”๋„ ์ปค๋ฐ‹ (Conventional Commits) ์ž‘์„ฑ๋ฒ•๊ณผ ๋„์ž… ์ด์œ  ์ •๋ฆฌ
ยท
VCS(Version Control System)/Git & GitHub
1. ์ปจ๋ฒค์…”๋„ ์ปค๋ฐ‹์ด๋ž€ โ“์ปจ๋ฒค์…”๋„ ์ปค๋ฐ‹์€ Git ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ผ์ •ํ•œ ๊ทœ์น™์œผ๋กœ ์ž‘์„ฑํ•ด ์ปค๋ฐ‹ ๊ธฐ๋ก์„ ์ •ํ˜•ํ™”ํ•˜๊ณ  ๋ฐฐํฌ ์ž๋™ํ™”๊นŒ์ง€ ์—ฐ๊ฒฐํ•˜๋„๋ก ๋งŒ๋“  ๊ณต๊ฐœ ๊ทœ๊ฒฉ์ด๋‹ค.feat, fix ๊ฐ™์€ ํ‚ค์›Œ๋“œ๋ฅผ ์ œ๋ชฉ ์•ž์— ๋ถ™์—ฌ ๋ฉ”์‹œ์ง€๋งŒ ์ฝ์–ด๋„ ๋ณ€๊ฒฝ ์˜๋„๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.2019 ๋…„ ๊ณต์‹ ์ŠคํŽ™์ด ๋ฐœํ‘œ๋œ ์ดํ›„ Commitlint·semantic-release ๋“ฑ ์ฃผ์š” ๋„๊ตฌ์˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ฑ„ํƒ๋˜์—ˆ๊ณ , Angular·Vue·React Native ๋“ฑ ๋‹ค์–‘ํ•œ ์˜คํ”ˆ์†Œ์Šค์™€ ๊ธฐ์—… ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ๊ฐ€ ํ™œ์šฉํ•œ๋‹ค.2. ๋ฉ”์‹œ์ง€ ๊ธฐ๋ณธ ํ˜•์‹ โœ๏ธ๊ตฌ์„ฑ ์š”์†Œ์„ค๋ช…๊ทœ์น™type๋ณ€๊ฒฝ ์œ ํ˜•์•„๋ž˜ ‘์ฃผ์š” ํƒ€์ž…’ ํ‚ค์›Œ๋“œ ์‚ฌ์šฉscope์˜ํ–ฅ ๋ฒ”์œ„๋ชจ๋“ˆ·ํด๋” (์„ ํƒ)subject๋ณ€๊ฒฝ ์š”์•ฝ50 ์ž ์ด๋‚ด · ํ˜„์žฌ ์‹œ์ œ · ๋ช…๋ นํ˜•body์ƒ์„ธ ์„ค๋ช…๋ณ€๊ฒฝ ์ด์œ ·์„ธ๋ถ€ ์‚ฌํ•ญ (์„ ํƒ)footer๋ถ€๊ฐ€..
[iOS] iOS ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค๋ฌด 12์ฃผ์ฐจ ์ •๋ฆฌ
ยท
Study/iOS
Navigation Controller vs Root View Controller iOS ์•ฑ ๊ฐœ๋ฐœ์—์„œ root view controller์™€ navigation controller๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.Root View Controller๋Š” ์•ฑ ์‹คํ–‰ ์‹œ UIWindow์— ๊ฐ€์žฅ ์ฒ˜์Œ ์„ค์ •๋˜๋Š” ์ตœ์ƒ์œ„ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ€์žฅ ๋จผ์ € ๋ณด์—ฌ์ง€๋Š” ํ™”๋ฉด์ด๋ฉฐ, ์•ฑ์˜ ์ง„์ž…์ ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.๋ณดํ†ต UINavigationController๋‚˜ UITabBarController์™€ ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ root view controller๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.์œ„ ๊ทธ๋ฆผ์—์„œ๋Š” Navigation Controller๊ฐ€ ๋ฃจํŠธ๋กœ ์„ค์ •๋˜์–ด ์žˆ๊ณ , ๊ทธ ๋‚ด๋ถ€์— ์‹ค์ œ ํ™”๋ฉด์„ ๋‹ด๋‹นํ•  View Controller๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค..
[iOS] iOS ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค๋ฌด 11์ฃผ์ฐจ ์ •๋ฆฌ
ยท
Study/iOS
JSON ๋””์ฝ”๋”ฉ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ iOS ์•ฑ ๊ฐœ๋ฐœ ์ค‘ URLSession๊ณผ JSONDecoder๋ฅผ ์ด์šฉํ•˜์—ฌ API๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ํŒŒ์‹ฑํ•  ๋•Œ, ํ”ํžˆ ๋งˆ์ฃผ์น˜๋Š” ์—๋Ÿฌ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: ๐Ÿ”ง ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1: do-catch๋ฅผ ์‚ฌ์šฉํ•œ ์—๋Ÿฌ ์ฒ˜๋ฆฌlet decoder = JSONDecoder()do { let decodedData = try decoder.decode(MovieData.self, from: JSONdata) // decodedData ํ™œ์šฉ} catch { print("Decoding failed with error: \(error)")} ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด JSON ํŒŒ์‹ฑ์ด ์‹คํŒจํ•  ๊ฒฝ์šฐ์—๋„ ์•ฑ์ด ํฌ๋ž˜์‹œ ์—†์ด ๋™์ž‘ํ•˜๋ฉฐ, ์‹คํŒจ ์›์ธ์„ ๋กœ๊ทธ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๐Ÿงน ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ..
[iOS] iOS ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค๋ฌด 10์ฃผ์ฐจ ์ •๋ฆฌ
ยท
Study/iOS
์ž‘์„ฑ์ผ์ž(250507) ๊ธฐ์ค€ ์˜ํ™”์ง„ํฅ์œ„์›ํšŒ ๋ฐ•์Šค์˜คํ”ผ์Šค ์ˆœ์œ„ Table View, Auto Layout Constraints ํ”„๋กœํ† ์ฝœ์„ ์„ ์–ธ, ์š”๊ตฌ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋ฏธ๊ตฌํ˜„ ์˜ค๋ฅ˜ UITableView์˜ delegate์™€ dataSourcetable.dataSource = selftable.delegate = self ์ด ๋‘ ์ค„์€ UITableView๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ํ‘œ์‹œํ•˜๊ณ , ์‚ฌ์šฉ์ž ๋ฐ˜์‘์— ์–ด๋–ป๊ฒŒ ๋Œ€์‘ํ• ์ง€๋ฅผ ์ •ํ•˜๋Š” ํ•ต์‹ฌ ์ฝ”๋“œ๋‹ค.dataSourceํ…Œ์ด๋ธ”์— ๋ฌด์—‡์„ ์–ผ๋งˆ๋‚˜ ๋ณด์—ฌ์ค„์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• .์˜ˆ: ๋ช‡ ์ค„์ธ์ง€, ๊ฐ ์…€์— ์–ด๋–ค ํ…์ŠคํŠธ๋ฅผ ๋„ฃ์„์ง€.delegate์‚ฌ์šฉ์ž์˜ ํ–‰๋™์— ๋Œ€ํ•œ ๋ฐ˜์‘์„ ์ฒ˜๋ฆฌ.์˜ˆ: ์…€์„ ๋ˆŒ๋ €์„ ๋•Œ ์–ด๋–ค ๋™์ž‘์„ ํ• ์ง€ ์ง€์ •.self๋ฅผ ํ• ๋‹นํ•˜๋Š” ์ด์œ ViewController๊ฐ€ ์ง์ ‘ ์ด ๋‘ ์—ญํ• ์„..
[iOS] iOS ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค๋ฌด 9์ฃผ์ฐจ ์ •๋ฆฌ
ยท
Study/iOS
๐ŸŒ API๋ž€ ๋ฌด์—‡์ธ๊ฐ€?์›น ๊ฐœ๋ฐœ์ด๋‚˜ ์•ฑ ๊ฐœ๋ฐœ์—์„œ ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ์šฉ์–ด, API.๋งŽ์ด ๋“ค์–ด๋ดค์ง€๋งŒ ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๊ณ , ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋ช…ํ™•ํžˆ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.๐Ÿ”ง API๋ž€?API (Application Programming Interface)๋Š”์†Œํ”„ํŠธ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด ์‚ฌ์ด์˜ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์—ฐ๊ฒฐ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.์‚ฌ์šฉ์ž๊ฐ€ **ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋Œ€ํ™”ํ•˜๋Š” ๋„๊ตฌ๊ฐ€ UI(User Interface)**๋ผ๋ฉด,ํ”„๋กœ๊ทธ๋žจ๋ผ๋ฆฌ ๋ฐ์ดํ„ฐ๋‚˜ ๊ธฐ๋Šฅ์„ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ์—ฐ๊ฒฐ์ฐฝ๊ตฌ๊ฐ€ API์ž…๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ์˜ํ™”์ง„ํฅ์œ„์›ํšŒ(KOBIS)์—์„œ ์ œ๊ณตํ•˜๋Š” ์˜ํ™” ์ˆœ์œ„ ์ •๋ณด๋ฅผ ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด,์•ฑ์€ KOBIS ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ ์š”์ฒญ(Request)์„ ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„๋Š” ์‘๋‹ต(Response)์œผ๋กœ JSON ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.์ด ์ „์ฒด ํ๋ฆ„์„ ๋‹ด๋‹นํ•˜๋Š”..
[iOS] iOS ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค๋ฌด 7์ฃผ์ฐจ ์ •๋ฆฌ
ยท
Study/iOS
UITableViewCell.CellStyleUITableView๋Š” iOS ๊ฐœ๋ฐœ์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ปดํฌ๋„ŒํŠธ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํŠนํžˆ UITableViewCell์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ•ต์‹ฌ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์ด ์…€์˜ ์Šคํƒ€์ผ์„ ์ •์˜ํ•˜๋Š” UITableViewCell.CellStyle ์—ด๊ฑฐํ˜•(enum)์€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ ˆ์ด์•„์›ƒ์„ ์ œ๊ณตํ•ด ์‚ฌ์šฉ์„ฑ ๋†’์€ UI๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค๋‹ˆ๋‹ค. ๐Ÿ“Œ UITableViewCell.CellStyle์ด๋ž€?UITableViewCell.CellStyle์€ UITableViewCell์˜ ์ฝ˜ํ…์ธ  ๋ฐฐ์น˜๋ฅผ ์ •์˜ํ•˜๋Š” ์—ด๊ฑฐํ˜•์ž…๋‹ˆ๋‹ค. Apple ๊ณต์‹ ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด, ์ด ์—ด๊ฑฐํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์Šคํƒ€์ผ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:defaultsubtitlevalue1value2์ด๋“ค ๊ฐ๊ฐ์€ textLabel๊ณผ d..
[iOS] iOS ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค๋ฌด 6์ฃผ์ฐจ ์ •๋ฆฌ
ยท
Study/iOS
Swift ์˜ต์…”๋„ ์ฒด์ด๋‹ (Optional Chaining)Swift์—์„œ ์˜ต์…”๋„ ์ฒด์ด๋‹์€ ์˜ต์…”๋„ ๊ฐ’์˜ ์†์„ฑ, ๋ฉ”์„œ๋“œ, ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์•ˆ์ „ํ•œ ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค. ?๋ฅผ ํ†ตํ•ด ์ค‘์ฒฉ๋œ ์˜ต์…”๋„ ๊ตฌ์กฐ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•˜๊ณ  ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค. ๐Ÿ”“ ์˜ต์…”๋„ ์–ธ๋ž˜ํ•‘ ๋ฐฉ์‹ ๋น„๊ตvar x: String? = "Hi"1. ๊ฐ•์ œ ์–ธ๋ž˜ํ•‘ (x!) → โŒ ์œ„ํ—˜, nil์ด๋ฉด crash2. ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ (if let) → โœ… ์•ˆ์ „3. nil ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž (??) → โœ… ๊ธฐ๋ณธ๊ฐ’ ์ œ๊ณต4. ์˜ต์…”๋„ ์ฒด์ด๋‹ (x?.count) → โœ… ๊ฐ€์žฅ ๊ฐ„๊ฒฐํ•˜๊ณ  ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•let b = x?.count // Optional(2)๐Ÿค– Optional Chaining์ด๋ž€?cell.textLabel?.texttextLabel์€ UI..
[Data Analysis] R vs Python, ๋ฐ์ดํ„ฐ ๋ถ„์„์— ๋” ๊ฐ•๋ ฅํ•œ ์–ธ์–ด๋Š”?
ยท
Data Analysis
๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์‹œ์ž‘ํ•˜๋ ค ํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐ›๋Š” ์งˆ๋ฌธ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ”๋กœ ์ด๊ฑฐ์ฃ .“R์ด ์ข‹์•„์š”, ์•„๋‹ˆ๋ฉด Python์ด ์ข‹์•„์š”?”๋‘˜ ๋‹ค ๋ฐ์ดํ„ฐ ๋ถ„์„์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์ง€๋งŒ, ๋ชฉ์ ๊ณผ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์žฅ๋‹จ์ ์ด ๋ถ„๋ช…ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” Python๊ณผ R์˜ ํŠน์ง•์„ ๋น„๊ต ๋ถ„์„ํ•˜๊ณ , ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์–ด๋–ค ์–ธ์–ด๊ฐ€ ๋” ์ ํ•ฉํ•œ์ง€ ์ž์„ธํžˆ ์•Œ๋ ค๋“œ๋ฆด๊ฒŒ์š”.๋˜ํ•œ, ์ด ๋‘ ์–ธ์–ด ์™ธ์—๋„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๋„ˆ์ง€๋ฅผ ๋‚ด๋Š” ์–ธ์–ด๋“ค๋„ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.๐Ÿ“Š Python vs R: ๋ฐ์ดํ„ฐ ๋ถ„์„ ์–ธ์–ด ๋น„๊ตํ‘œํ•ญ๋ชฉPythonR์ฃผ ์‚ฌ์šฉ ๋ถ„์•ผ๋ฐ์ดํ„ฐ ๋ถ„์„, ๋จธ์‹ ๋Ÿฌ๋‹, ์›น๊ฐœ๋ฐœ, ์ž๋™ํ™” ๋“ฑ ๋ฒ”์šฉํ†ต๊ณ„ ๋ถ„์„, ์‹œ๊ฐํ™”, ์ƒ๋ฌผ์ •๋ณดํ•™, ํ•™์ˆ  ์—ฐ๊ตฌํ•™์Šต ๊ณก์„ ์‰ฝ๊ณ  ์ง๊ด€์  (๋ฒ”์šฉ ์–ธ์–ด๋‹ต๊ฒŒ ๋ฐฐ์šฐ๊ธฐ ์ข‹์Œ)ํ†ต๊ณ„ ๊ฐœ๋… ์š”๊ตฌ๋กœ ๋‹ค์†Œ ๊ฐ€ํŒŒ๋ฅผ ์ˆ˜ ์žˆ์Œํ†ต๊ณ„ ๋ถ„์„ ๋Šฅ๋ ฅ๊ธฐ๋ณธ ํ†ต๊ณ„๋Š” ๊ฐ€๋Šฅ, ๊ณ ๊ธ‰ ํ†ต๊ณ„..