๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ๊ธฐ๋ก/TIL

[TIL] 20231130

์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋‹ต๋ณ€ ์ž‘์„ฑํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ

if let vs. guard let

1. ์ƒ์ˆ˜(let)์˜ ์‚ฌ์šฉ๋ฒ”์œ„๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ๋œ ์ƒ์ˆ˜์˜ scope๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฆ‰, ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
if let ๊ฐ™์€ ๊ฒฝ์šฐ, ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ๋œ ์ƒ์ˆ˜๋ฅผ if๋ฌธ ๋ฐ–์—์„œ ์“ฐ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€ํ•˜๊ณ 
guard let์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ์ƒ์ˆ˜๋ฅผ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ง€์—ญ ์ƒ์ˆ˜์ฒ˜๋Ÿผ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋‹จ, else๋ฌธ์—์„œ๋Š” ์‚ฌ์šฉ๋ถˆ๊ฐ€)

 

2. else์˜ ์ƒ๋žต ๊ฐ€๋Šฅ ์—ฌ๋ถ€์— ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
if let์€ ํ•ด๋‹น ์กฐ๊ฑด์ด true์ธ ๊ฒฝ์šฐ๋ฅผ ๊ฐ•์กฐํ•˜๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.
๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— else๊ตฌ๋ฌธ์„ ๊ผญ ์จ์ฃผ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ, guard let์˜ ๊ฒฝ์šฐ nil์ธ ๊ฒฝ์šฐ์— ๋ฌด์กฐ๊ฑด ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒ์‹œ์ผœ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— else ๊ตฌ๋ฌธ์„ ๊ผญ ์จ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ, else๊ตฌ๋ฌธ ์•ˆ์— return, break ๋“ฑ๊ณผ ๊ฐ™์ด ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๊ฐ€ ๊ผญ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

๊ฐ๊ฐ์„ ์–ด๋–จ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์ข‹์„๊นŒ?

if ๊ตฌ๋ฌธ์—์„œ ์กฐ๊ฑด์ด ์ฐธ์ด ์•„๋‹ ์‹œ, ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒ ์‹œํ‚ค๊ฑฐ๋‚˜ ๋ฃจํ”„, ์กฐ๊ฑด๋ฌธ์—์„œ ๋น ๋ฅด๊ฒŒ ํƒˆ์ถœ์‹œํ‚ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ guard let์„ ์‚ฌ์šฉํ•˜๊ณ  ์กฐ๊ฑด์ด ์ฐธ์ด ์•„๋‹ˆ๋”๋ผ๋„ ์ฝ”๋“œ๋ฅผ ๊ณ„์† ์ง„ํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” if let์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ ๊ฐ™์Œ!

 

์˜ˆ์ „์— ์ •๋ฆฌ๋ฅผ ์ž˜ ํ•ด๋†จ๋„ค...

 

[Swift] if let๊ณผ guard let์˜ ์ฐจ์ด

์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค!๐Ÿ˜Š ์˜ค๋Š˜์€ if let๊ณผ guard let์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Optional ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ๊บผ๋‚ด์„œ ์“ฐ๋Š”๊ฒŒ ์ •๋ง ์ค‘์š”ํ•œ๋ฐ

janechoi.tistory.com

์ ‘๊ทผ ์ œ์–ด (Access Control )

์„ ์–ธ, ํŒŒ์ผ, ๋ชจ๋“ˆ์— ์˜ํ•ด ์ฝ”๋“œ์˜ ๊ฐ€์‹œ์„ฑ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

์ ‘๊ทผ ์ œ์–ด (Access control) ๋Š” ๋‹ค๋ฅธ ์†Œ์Šค ํŒŒ์ผ๊ณผ ๋ชจ๋“ˆ์—์„œ ์ฝ”๋“œ ์ ‘๊ทผ์— ๋Œ€ํ•ด ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์ฝ”๋“œ์˜ ๊ตฌํ˜„ ์„ธ๋ถ€๋ฅผ ์ˆจ๊ธฐ๊ณ  ํ•ด๋‹น ์ฝ”๋“œ์— ์ ‘๊ทผํ•˜๊ณ  ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠน์ • ์ ‘๊ทผ ์ˆ˜์ค€์„ ๊ฐœ๋ณ„ ํƒ€์ž… (ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ๊ทธ๋ฆฌ๊ณ  ์—ด๊ฑฐํ˜•) ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ํƒ€์ž…์— ์†ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ, ๋ฉ”์„œ๋“œ, ์ดˆ๊ธฐํ™” ๊ตฌ๋ฌธ๊ณผ ์„œ๋ธŒ ์Šคํฌ๋ฆฝํŠธ์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ์€ ์ „์—ญ ์ƒ์ˆ˜, ๋ณ€์ˆ˜, ๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŠน์ • ์ปจํ…์ŠคํŠธ๋กœ ์ œํ•œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ‘๊ทผ ์ˆ˜์ค€ (Access Levels)

Swift๋Š” ์ฝ”๋“œ ๋‚ด์—์„œ ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•ด 5๊ฐœ์˜ ๋‹ค๋ฅธ ์ ‘๊ทผ ์ˆ˜์ค€(access levels) ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ์ˆ˜์ค€์€ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์ •์˜๋œ ์†Œ์ŠคํŒŒ์ผ๊ณผ ๊ด€๋ จ๋˜๋ฉฐ ์†Œ์Šค ํŒŒ์ผ์ด ์†ํ•œ ๋ชจ๋“ˆ๊ณผ ๊ด€๋ จ๋ฉ๋‹ˆ๋‹ค.

*์—”ํ‹ฐํ‹ฐ(entity): ์ ‘๊ทผ์ œ์–ด๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์˜ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์„ ์นญํ•จ(ํ”„๋กœํผํ‹ฐ, ํƒ€์ž…, ๋ฉ”์„œ๋“œ ๋“ฑ)

 

Open, Public

open ์ ‘๊ทผ ๊ณผ public ์ ‘๊ทผ์€ ์ •์˜ํ•œ ๋ชจ๋“ˆ์˜ ๋ชจ๋“  ์†Œ์Šค ํŒŒ์ผ๊ณผ ์ •์˜ํ•œ ๋ชจ๋“ˆ์„ ๊ฐ€์ ธ์˜ค๊ณ (import) ๋‹ค๋ฅธ ๋ชจ๋“ˆ์˜ ์†Œ์Šค ํŒŒ์ผ์—์„œ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ณต๊ฐœ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ง€์ •ํ•  ๋•Œ open ๋˜๋Š” public ์ ‘๊ทผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 

 

Open๊ณผ Public์˜ ์ฐจ์ด์ 

Open ์ ‘๊ทผ์€ ํด๋ž˜์Šค์™€ ํด๋ž˜์Šค ๋ฉค๋ฒ„์—๋งŒ ์ ์šฉ๋˜๊ณ , ๋ชจ๋“ˆ ์™ธ๋ถ€์˜ ์ฝ”๋“œ๋ฅผ ์„œ๋ธŒํด๋ž˜์‹ฑํ•˜๊ณ  ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ public ์ ‘๊ทผ๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. Open ์ ‘๊ทผ์€ ๊ฐ€์žฅ ๋†’์€ (๊ฐ€์žฅ ์ ์€ ์ œ์•ฝ) ์ ‘๊ทผ ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค.

Internal

Internal ์ ‘๊ทผ ์€ ์ •์˜ํ•œ ๋ชจ๋“ˆ์˜ ๋ชจ๋“  ์†Œ์Šค ํŒŒ์ผ ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•ด๋‹น ๋ชจ๋“ˆ ์™ธ๋ถ€์˜ ์†Œ์Šค ํŒŒ์ผ์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์•ฑ ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ์ฒด๋ฅผ ์ •์˜ํ•  ๋•Œ internal ์ ‘๊ทผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 

 

File-private

File-private ์ ‘๊ทผ ์€ ์ž์ฒด ์ •์˜ํ•œ ์†Œ์Šค ํŒŒ์ผ๋กœ ์—”ํ‹ฐํ‹ฐ์˜ ์‚ฌ์šฉ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์„ธ๋ถ€ ๋‚ด์šฉ์€ ํŒŒ์ผ ์ „์ฒด์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ๊ธฐ๋Šฅ์˜ ํŠน์ • ๋ถ€๋ถ„์˜ ๊ตฌํ˜„ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๊ฐ€๋ฆฌ๊ธฐ ์œ„ํ•ด file-private ์ ‘๊ทผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

Private

Private ์ ‘๊ทผ ์€ ๋‘˜๋Ÿฌ์‹ธ์ธ ์„ ์–ธ๊ณผ ๊ฐ™์€ ํŒŒ์ผ์— ์žˆ๋Š” ํ•ด๋‹น ์„ ์–ธ์˜ ํ™•์žฅ์œผ๋กœ ์—”ํ‹ฐํ‹ฐ์˜ ์‚ฌ์šฉ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์„ธ๋ถ€ ๋‚ด์šฉ์€ ๋‹จ์ผ ์„ ์–ธ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๊ณ  ๊ธฐ๋Šฅ์˜ ํŠน์ • ๋ถ€๋ถ„์˜ ๊ตฌํ˜„ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๊ฐ€๋ฆฌ๊ธฐ ์œ„ํ•ด private ์ ‘๊ทผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. private ์ ‘๊ทผ์€ ๊ฐ€์žฅ ์ ์€ (๊ฐ€์žฅ ๋†’์€ ์ œ์•ฝ) ์ ‘๊ทผ ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค.

์ ‘๊ทผ ์ œ์–ด ๊ตฌ๋ฌธ (Access Control Syntax)

์—”ํ‹ฐํ‹ฐ์˜ ์„ ์–ธ์˜ ์‹œ์ž‘์— open, public, internal, fileprivate, private ์ˆ˜์‹์–ด ์ค‘ ํ•˜๋‚˜๋ฅผ ์œ„์น˜์‹œ์ผœ ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ˆ˜์ค€์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. (๋ณ„๋„ ์ง€์ • ์—†๋‹ค๋ฉด ๋””ํดํŠธ ์ ‘๊ทผ ์ˆ˜์ค€์€ internal)

 

open class SomeOpenClass {}
public class SomePublicClass {}
internal class SomeInternalClass {}
fileprivate class SomeFilePrivateClass {}
private class SomePrivateClass {}

open var someOpenVariable = 0
public var somePublicVariable = 0
internal let someInternalConstant = 0
fileprivate func someFilePrivateFunction() {}
private func somePrivateFunction() {}

 

์ฐธ๊ณ  ์ž๋ฃŒ: https://docs.swift.org/swift-book/documentation/the-swift-programming-language/accesscontrol/

์˜์กด์„ฑ ์ฃผ์ž… ๋ฐฉ์‹

1. Constructor Injection

์ƒ์„ฑ์ž(initializer)๋ฅผ ์ด์šฉํ•ด ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ํ•„์š”ํ•œ ์˜์กด์„ฑ์„ ์ฃผ์ž…๋ฐ›๋Š” ๋ฐฉ์‹

 

2. Property Injection

ํ”„๋กœํผํ‹ฐ๋ฅผ ํ†ตํ•ด ์˜์กด์„ฑ์„ ์ฃผ์ž…๋ฐ›๋Š” ๋ฐฉ์‹

(๊ฐ์ฒด ์ƒ์„ฑ ํ›„ ๋‚˜์ค‘์— ์˜์กด์„ฑ์ด ์ƒ์„ฑ๋˜๋Š” ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ)

 

3. Method Injection

public method๋ฅผ ์ด์šฉํ•ด ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ์‹

 

4. Interface Injection

์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•ด ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ์‹(Swift์—์„œ๋Š” ์ฃผ๋กœ ํ”„๋กœํ† ์ฝœ ์ด์šฉ)

์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ธด๋ฐ€ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์˜์กด์„ฑ์ด ์•ฝํ•ด์ ธ ๋ชจ๋“ˆ๊ณผ ๋ชจ๋“ˆ ์‚ฌ์ด์˜ ๊ฒฐํ•ฉ์ด ์ค„์–ด๋“ ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

@discardableResult

@discardableResult ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ฌด์‹œํ•˜๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

ํ•ญ์ƒ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์œ ์šฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

return ๊ฐ’์„ ํ•ญ์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜์— @discardableResult๋ฅผ ๋ถ™์—ฌ์ฃผ๊ฒŒ ๋˜๋ฉด ์ฝ”๋“œ๋ฅผ ๋” ๊น”๋”ํ•˜๊ณ  ํ‘œํ˜„๋ ฅ์žˆ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ปดํŒŒ์ผ๋Ÿฌ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ๋˜ํ•œ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋””์ž์ธ ํŒจํ„ด vs. ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด

์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด

๋””์ž์ธ ํŒจํ„ด์ด๋ž€, ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ๋งŽ์ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ….

 

์ƒํ™ฉ์— ๋งž๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์“ฐ์ด๋Š” ํ…œํ”Œ๋ฆฟ์„ ์˜๋ฏธํ•œ๋‹ค.

์ฆ‰, ๋””์ž์ธ ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์—์„œ ๊ณตํ†ต์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ž์ฃผ ์“ฐ์ด๋Š” ์„ค๊ณ„ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•œ ํŒจํ„ด!

๋ฌธ์ œ์ƒํ™ฉ์— ๋Œ€ํ•œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์œผ๋กœ์„œ, ์ผ์ข…์˜ ์•„์ด๋””์–ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Œ

 

์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด

์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ด๋ž€, ์ฃผ์–ด์ง„ ์ƒํ™ฉ์—์„œ์˜ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ณ์˜ ๊ณตํ†ต์ ์ธ ๋ฐœ์ƒ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ, ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์˜๋ฏธํ•œ๋‹ค.

๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด, ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ „์ฒด์ ์ธ ๊ทธ๋ฆผ, ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ํ•ด๊ฒฐ์ฑ…

 

๋‘˜์˜ ์ฐจ์ด์ ?

๋‘˜ ๋‹ค ๊ณตํ†ต์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ผ๋ฐ˜ํ™”๋œ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๋Š” ์ ์€ ๊ฐ™์œผ๋‚˜, ์•„ํ‚คํ…์ณ๋Š” ๋” ํฐ ๋ผˆ๋Œ€๋ฅผ ๋งํ•˜๊ณ  ๋””์ž์ธ ํŒจํ„ด์€ ์ฝ”๋“œ ์ˆ˜์ค€์—์„œ์˜ ์„ค๊ณ„๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๊ฒƒ

์ฆ‰, ์•„ํ‚คํ…์ณ๊ฐ€ ๋” ํฐ ๋ฒ”์ฃผ, ๋””์ž์ธ ํŒจํ„ด์ด ๋” ์ž‘์€ ๋ฒ”์ฃผ์˜ ์„ค๊ณ„๋ฅผ ๋‹ด๋‹น! (but ๋””์ž์ธ ํŒจํ„ด์„ ์•„ํ‚คํ…์ณ ํŒจํ„ด์— ํฌํ•จ๋˜๋Š” ํ•˜์œ„๊ฐœ๋…์ด๋ผ๊ณ  ๋ณด๊ธด ์–ด๋ ค์šธ ๊ฒƒ ๊ฐ™์Œ)

 

์™œ ํ•„์š”ํ• ๊นŒ?๐Ÿค”

๋ฌธ์ œ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ๋‹ค์‹œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๋Š”๋‹ค๋ฉด ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค์–ด๊ฐˆ ๊ฒƒ,,

ํŠน์ • ๋ฌธ์ œ ์ƒํ™ฉ์— ๋Œ€ํ•œ ํŒจํ„ด์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ํ•ด๊ฒฐ๋ฐฉ์•ˆ์„ ๊ธฐ๋กํ•ด๋‘”๋‹ค๋ฉด ๋‹ค์‹œ ๊ทธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋น ๋ฅด๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Œ!

์ฆ‰, ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ œ ์ƒํ™ฉ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์„ ๋น ๋ฅด๊ณ  ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋””์ž์ธ ํŒจํ„ด, ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ด ํ•„์š”ํ•˜๋‹ค!!!!

๋˜ํ•œ, ํ…œํ”Œ๋ฆฟํ™”๋œ ํ•ด๊ฒฐ์ฑ…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ํ˜‘์—… ์‹œ ์˜์‚ฌ์†Œํ†ต ๋˜ํ•œ ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

+ Tuist๋ฅผ ์ด์šฉํ•œ ๋ชจ๋“ˆํ™” ํ•ด๋ณด๋Š” ์ค‘.. ๋š๋”ฑ๋š๋”ฑ... ์ถ”ํ›„์— ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค...

'๐Ÿ“ ๊ธฐ๋ก > TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[TIL] 20231205  (2) 2023.12.05
[TIL] 20231204  (1) 2023.12.04
[TIL] 20231129  (1) 2023.11.29
[TIL] 20231128  (3) 2023.11.29
[TIL] 20231124  (1) 2023.11.25