์šฉ์–ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์“ฐ๊ธฐ

๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ: 2025.04.16

iOS๋ฅผ ํ•™์Šตํ•˜๋ฉด์„œ ์ž˜๋ชป ์•Œ์•˜๋˜ ๋ฐœ์Œ์ด๋‚˜, ํ—ท๊ฐˆ๋ฆฌ๋Š” ํ‘œ๊ธฐ๋ฒ•๋“ค์„ ์ •๋ฆฌํ–ˆ๋‹ค.

1๏ธโƒฃ ์˜ฌ๋ฐ”๋ฅธ ๋ฐœ์Œ

Capacity

[์ปคํŒจ์‹œํ‹ฐ] โœ… / [์นดํŒŒ์‹œํ‹ฐ] โŒ, [์บํŒจ์‹œํ‹ฐ] โŒ

Derived

alt text [๋””๋ผ์ด๋ธŒ๋“œ] โœ…

Designated

Designated Initializer
[๋ฐ์ง€๊ทธ๋„ค์ดํ‹ฐ๋“œ] โœ… / [๋””์ž์ด๋„ค์ดํ‹ฐ๋“œ] โŒ

Fatal

fatalError(_:file:line:)
[ํŽ˜์ดํ‹€] โœ…, [ํŽ˜์ดํ„ธ] โœ… / [ํŒŒํƒˆ] โŒ, [ํŽ˜์ดํƒˆ] โŒ

Height

CGSize.height
[ํ•˜์ดํŠธ] โœ… / [ํ—ค์ดํŠธ] โŒ

Label

UILabel
[๋ ˆ์ด๋ธ”] โœ… / [๋ผ๋ฒจ] ๐Ÿค”โŒ
๊ตญ๋ฆฝ๊ตญ์–ด์›์—์„œ ๋ผ๋ฒจ๋„ ๊ด€์šฉ ํ‘œ๊ธฐ๋กœ ์ธ์ •ํ•˜์˜€๊ธฐ์—, ๋ผ๋ฒจ์ด ํ‹€๋ฆฐ ๋‹จ์–ด๋Š” ์•„๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ, ๊ฐœ๋ฐœ์€ ์˜์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ์— [๋ ˆ์ด๋ธ”]๋กœ ๋ฐœ์Œํ•˜๋Š” ๊ฒƒ์ด ๋งž๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.

Opaque

Opaque Type
[์˜คํŽ˜์ดํฌ] โœ… / [์˜คํŒŒํ] โŒ

Priority

NSLayoutConstraint.priority
[ํ”„๋ผ์ด์˜ค๋ฆฌํ‹ฐ] โœ… / [ํ”„๋ฆฌ์˜ค๋ฆฌํ‹ฐ] โŒ

Realm

realm-swift
[๋ ˜] โœ…, [๋ ˆ์—„] โœ… / [๋ ๋ฆ„] โŒ
https://youtu.be/PmsJW59rNY8?t=12

Suite

UserDefaults.init(suiteName:), Swift Testing - Suite
[์Šค์œ„ํŠธ] โœ…
sweet์™€ ๋ฐœ์Œ์ด ๊ฐ™๋‹ค.

Usage

[์œ ์‹œ์ง€] โœ… / [์œ ์„ธ์ด์ง€] โŒ
message๊ฐ€ [๋ฉ”์‹œ์ง€]๋กœ ๋ฐœ์Œ๋˜๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•˜๋ฉด ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฝ๋‹ค.


2๏ธโƒฃ ๋ณดํ†ต ์ด๋ ‡๊ฒŒ ์ฝ๋”๋ผ

HIG

Human Interface Guidelines
๋ณดํ†ต [ํžˆ๊ทธ]๋ผ๊ณ  ์ฝ์Œ

Xib

WWDC์—์„  [์ง‘]์ด๋ผ๊ณ  ์ฝ๋Š”๋ฐ, ๋Œ€ํ™”ํ•  ๋•Œ๋Š” ๊ทธ๋ƒฅ Nib๊ณผ ๋™์ผํ•˜๊ฒŒ [๋‹™]์œผ๋กœ ์ฝ๊ธฐ๋„ ํ•œ๋‹ค.
https://developer.apple.com/videos/play/wwdc2023/10155/?utm_source=chatgpt.com&time=642
https://youtu.be/SOgxZLjl2NE?t=72


3๏ธโƒฃ ์ฝฉ๊ธ€๋ฆฌ์‰ฌ ์กฐ์‹ฌ, ์“ฐ๋”๋ผ๋„ ์ธ์ง€ํ•˜๊ณ  ์“ฐ์ž

์–ดํ”Œ, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

์–ดํ”Œ โŒ โ†’ ์•ฑ โœ…
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ โŒ โ†’ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ โœ…

์ฝ”๋“œ๋ฒ ์ด์Šค

Storyboard๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  UI๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ, '์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.'๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ, codebase๋Š” '์†Œ์Šค ์ฝ”๋“œ ์ „์ฒด' ํ˜น์€ '๊ณต์œ ๋˜๋Š” ์ฝ”๋“œ์˜ ๊ธฐ๋ฐ˜'์„ ๋œปํ•˜๋Š” ๋‹จ์–ด์ด๋ฏ€๋กœ, 'programmatic'์ด๋ผ๋Š” ํ‘œํ˜„์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, 'code-based'๋ผ๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜์ž.


4๏ธโƒฃ ๋ฌธ์„œ๋กœ ์ž‘์„ฑํ•  ๋•, ์™ธ๋ž˜์–ด ํ‘œ๊ธฐ๋ฒ•์„ ์ฐธ๊ณ 

Directory

๋””๋ ‰ํ„ฐ๋ฆฌ โœ… / ๋””๋ ‰ํ† ๋ฆฌ โŒ

Method

๋ฉ”์„œ๋“œ โœ… / ๋ฉ”์†Œ๋“œ โŒ


5๏ธโƒฃ ๊ธฐํƒ€

Erase

์ฝ”๋”ฉ์—์„œ erase๋Š” ๋‹จ์ˆœํžˆ '์ง€์šฐ๋‹ค ๐Ÿค”'๋ณด๋‹ค๋Š” '์ถ”์ƒํ™”ํ•˜๋‹ค โœ…'๋กœ ํ•ด์„ํ•˜์ž.
Combine์˜ eraseToAnyPublisher๋Š” 'AnyPublisher๋กœ ์ถ”์ƒํ™”ํ•˜๋‹ค'๋ผ๊ณ  ํ•ด์„ํ•˜๋ฉด ๋” ์ž˜ ์™€๋‹ฟ๋Š”๋‹ค.

Scheme vs Schema

scheme[์Šคํ‚ด]์€ ๊ณ„ํš, schema[์Šคํ‚ค๋งˆ]๋Š” ๊ฐœ์š”.

alt text

alt text

์ถœ์ฒ˜: https://developer.apple.com/videos/play/wwdc2022/10120/

Sift

Heap์— SiftUp, SiftDown ์—ฐ์‚ฐ์ด ์žˆ๋Š”๋ฐ, ์ด๋•Œ sift๋Š” '์ฒด๋กœ ๊ฑฐ๋ฅด๋‹ค', '๊ณจ๋ผ๋‚ด๋‹ค'๋ผ๋Š” ๋œป์ด๋‹ค.
Shift์™€ ํ˜ผ๋™ํ•˜์ง€ ๋ง ๊ฒƒ.

Suffix vs Postfix

suffix๋Š” ์ ‘๋ฏธ์‚ฌ๋ฅผ ์˜๋ฏธํ•˜๊ณ , postfix๋Š” ํ›„์œ„ ํ‘œ๊ธฐ๋ฅผ ๋œปํ•œ๋‹ค.
CancelButton์€ Button์ด๋ผ๋Š” Suffix๋ฅผ ๊ฐ€์ง„๋‹ค. โœ… / Postfix๋ฅผ ๊ฐ€์ง„๋‹ค. โŒ
C์–ธ์–ด์—์„œ count++;์€ ++์ด๋ผ๋Š” Suffix๋ฅผ ๊ฐ€์ง„๋‹ค. โŒ / Postfix๋ฅผ ๊ฐ€์ง„๋‹ค. โœ