Skip to content

๐Ÿš€ 3๋‹จ๊ณ„ - ํšŒ์›๊ฐ€์ž…(์œ ํšจ์„ฑ ๊ฒ€์‚ฌ)#72

Merged
malibinYun merged 34 commits into
next-step:s9hnfrom
s9hn:step3
Aug 12, 2024
Merged

๐Ÿš€ 3๋‹จ๊ณ„ - ํšŒ์›๊ฐ€์ž…(์œ ํšจ์„ฑ ๊ฒ€์‚ฌ)#72
malibinYun merged 34 commits into
next-step:s9hnfrom
s9hn:step3

Conversation

@s9hn

@s9hn s9hn commented Aug 12, 2024

Copy link
Copy Markdown

๐Ÿ“Ž๐˜ž๐˜ฐ๐˜ณ๐˜ฌ ๐˜‹๐˜ฆ๐˜ด๐˜ค๐˜ณ๐˜ช๐˜ฑ๐˜ต๐˜ช๐˜ฐ๐˜ฏ

  • ๋””์ž์ธ ์‹œ์•ˆ์„ ์ฐธ๊ณ ํ•˜์—ฌ ํšŒ์›๊ฐ€์ž… ๋ทฐ์— ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋กœ์ง์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋กœ์ง์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

๐Ÿ’ฌ๐˜›๐˜ฐ ๐˜™๐˜ฆ๐˜ท๐˜ช๐˜ฆ๐˜ธ๐˜ฆ๐˜ณ๐˜ด

์•ˆ๋…•ํ•˜์„ธ์š” ๋ง๋ฆฌ๋นˆ! ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ฆฌ์…จ์ฃ !!
์ œ๊ฐ€ ์ฃผ๋ง๋™์•ˆ ์—ฌํ–‰ + ์ž์ทจ๋ฐฉ ์ด์‚ฌ๊ฐ€ ๊ฒน์ณ์„œ ๋Šฆ์—ˆ์Šต๋‹ˆ๋‹ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค :(
Compose๋ณด๋‹จ ์˜ค๋žœ๋งŒ์— ๊ฐ์ฒด ์ง€ํ–ฅ์— ๋ชฐ๋‘ํ•˜๋А๋ผ ์–ด์งˆ?์žฌ๋ฐŒ์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ฌด๋ž˜๋„ ํ…Œ์ŠคํŠธ๋ถ€๋ถ„์ด ๊ฐ€์žฅ ๋ฏธ์ˆ™ํ•ฉ๋‹ˆ๋‹ค ....ใ…Žใ…Ž
UI ํ…Œ์ŠคํŠธ๋Š” UI์— ๋Œ€ํ•œ ๊ด€์‹ฌ์‚ฌ๋งŒ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ๋งž๋Š” ๊ฒƒ ๊ฐ™์•„์„œ, ์—๋Ÿฌ ๋ฌธ๊ตฌ๊ฐ€ ๋„์–ด์ง€๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋งŒ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค(๊ทธ๊ฒŒ๊ทธ๊ฑด๊ฐ€์š”..?)
๋” ์ž์„ธํ•œ..? ์—ฌ๋Ÿฌ ๊ฒฝ์šฐ์˜ ์ˆ˜์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋Š” ์œ ๋‹›ํ…Œ์ŠคํŠธ๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌ๋ทฐํ•˜๋А๋ผ ์‹œ๊ฐ„๋‚ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

s9hn added 30 commits August 7, 2024 22:06

@malibinYun malibinYun left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3๋‹จ๊ณ„ ๋ฏธ์…˜ ๊ณ ์ƒ ๋งŽ์œผ์…จ์–ด์š”!
๋น ๋ฅธ ๋ฏธ์…˜ ์ง„ํ–‰์„ ์œ„ํ•ด ๋จธ์ง€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ใ…Žใ…Ž
ํ”ผ๋“œ๋ฐฑ์€ ๋‹ค์Œ ๋ฏธ์…˜์— ๋ฐ˜์˜ํ•ด์ฃผ์„ธ์š”!

Comment on lines +66 to +71
SignUpTextField(
label = stringResource(R.string.signup_user_name),
onTextChanged = setUserName,
text = userName,
inputValidation = userName.isValid<Username>(),
)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ž…๋ ฅ์ฐฝ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•˜๋‚˜ ์ž˜ ๋งŒ๋“ค์–ด๋‘์—ˆ์œผ๋‹ˆ, ์ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐ ์ž…๋ ฅ(์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ)์— ๋งž๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ๊ฐ ๋งŒ๋“ค์–ด๋ณด๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?

Comment on lines +100 to +101
@Composable
private fun SignUpButton() {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๊ฐ ์ปดํฌ๋„ŒํŠธ๋“ค์€ Preview์™€ ํ•จ๊ป˜ ํŒŒ์ผ ๋ถ„๋ฆฌํ•ด๋ณด๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?

Comment on lines +138 to +146
colors = TextFieldDefaults.colors(
focusedTextColor = Color.Black,
unfocusedTextColor = Color.Black,
focusedLabelColor = Blue50,
unfocusedLabelColor = Gray,
unfocusedContainerColor = BlueGray20,
focusedContainerColor = BlueGray20,
focusedIndicatorColor = Blue50,
),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

color scheme์„ ์ •์˜ํ•ด์ฃผ์…จ๋„ค์š” ๐Ÿ‘

Comment on lines +27 to +30
@Before
fun setup() {
composeTestRule.apply {
setContent { SignUpScreen() }

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screen์„ ํ†ต์งธ๋กœ ํ…Œ์ŠคํŠธํ•ด๋ณผ ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ,
๊ฐ ์ž…๋ ฅ ํƒ€์ž…๋ณ„ ์ž…๋ ฅ๊ธฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณธ ๋‹ค์Œ, ๊ฐ๊ฐ์˜ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?
๊ฐ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์„œ๋กœ์˜ ๊ฐ„์„ญ ์—†์ด ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณผ ์ˆ˜๋„ ์žˆ๊ฒ ์–ด์š” :)

Comment on lines +46 to +48
// then:
composeTestRule.onNodeWithText(USERNAME_LENGTH_INVALIDATION.message).assertExists()
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ๊ฒ€์ฆ๋ถ€์—๋Š” ์ƒ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ๋ณด๋‹ค, ๋ฌธ์ž์—ด์„ ์ง์ ‘ ํ•˜๋“œ์ฝ”๋”ฉํ•˜๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?
์ข‹์€ ๊ธ€์„ ๊ณต์œ ๋“œ๋ ค์š” :)

Comment on lines +15 to +16

sealed interface SignupValidator {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4๋‹จ๊ณ„ ๋ฏธ์…˜์ธ ๋ทฐ, ๋„๋ฉ”์ธ ๋กœ์ง ๋ถ„๋ฆฌ๋„ ๊ฐ™์ด ํ•ด์ฃผ์…จ๋„ค์š”!
์ด๋ถ€๋ถ„์€ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ๋” ์ž์„ธํ•˜๊ฒŒ ๋“ค์—ฌ๋‹ค๋ณผ๊ฒŒ์š” :)

Comment on lines +28 to +29
// given:
val password: String = "123456789" + "12345678"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ฒ˜์Œ๋ถ€ํ„ฐ 17์ž ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  9์ž๋ฆฌ ๋ฌธ์ž์—ด์„ ๋”ํ•ด์„œ ์“ฐ๋Š” ํฐ ์ด์œ ๊ฐ€ ์žˆ์—ˆ๋‚˜์š” ?_?
์–ด๋–ค ์˜๋„์ธ์ง€ ๊ถ๊ธˆํ•ด์š”.

Comment on lines +50 to +53
@Test
fun `8~16๊ธ€์ž ์ˆ˜ ๋ฒ”์œ„ ๋‚ด์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค`() {
// given:
val passwords: List<String> = List<String>(9) { "pass0123" + "12345678".take(it) }

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ํ…Œ์ŠคํŠธ์— ์‹ค์ œ๋กœ ์–ด๋–ค ๊ฐ’๋“ค์ด ๋น„๊ต๊ฐ’์œผ๋กœ ์“ฐ์˜€๋Š”์ง€ ์ฝ”๋“œ๋งŒ ๋ณด๊ณ  ์•Œ๊ธฐ์—๋Š” ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์—†๋‹ค ์ƒ๊ฐํ•ด์š”.
8~16์ž์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค ๊ฒ€์ฆํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, Parameterized Test ๋“ฑ์„ ํ™œ์šฉํ•˜๊ณ , ๋น„๊ต ๊ฐ’์€ ์‹ค์ œ 8~16์ž ๋ฌธ์ž์—ด์„ ํ•˜๋“œ์ฝ”๋”ฉํ•ด์„œ ์ค€๋น„ํ•ด๋ณด๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?
๋ฌผ๋ก  Junit4์˜ Paramterized Test๊ฐ€ ๋งค์šฐ ๊ท€์ฐฎ์€ ๊ฑด ๋ค์ด์—์š” ๐Ÿ˜‡

@malibinYun malibinYun merged commit b115459 into next-step:s9hn Aug 12, 2024
@malibinYun

Copy link
Copy Markdown
Member

์—ฌํ–‰ ์–ด๋””๋‹ค๋…€์˜ค์…จ๋‚˜์š”.. ์ €๋„ ์—ฌํ–‰ ๋ณด๋‚ด์ฃผ์„ธ์š”
์ด์‚ฌ๋„ ๊ฐ€์…จ๊ตฐ๋‡จ ์ด์‚ฌ ํž˜๋“ค์ฃ .. ๊ณ ์ƒ๋งŽ์œผ์…จ์–ด์š”. ์ด์ œ ๋ฏธ์…˜ ์™„์ฃผํ•ด๋ณผ๊นŒ์š” ใ…Žใ…Ž ใ…‹ใ…‹ใ…‹

UI ํ…Œ์ŠคํŠธ๋Š” UI์— ๋Œ€ํ•œ ๊ด€์‹ฌ์‚ฌ๋งŒ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ๋งž๋Š” ๊ฒƒ ๊ฐ™์•„์„œ, ์—๋Ÿฌ ๋ฌธ๊ตฌ๊ฐ€ ๋„์–ด์ง€๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋งŒ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค(๊ทธ๊ฒŒ๊ทธ๊ฑด๊ฐ€์š”..?)

๋งŽ์ด๋งŽ์ด ๊ณ ๋ฏผํ•ด๋ณด์„ธ์š”!
์ง€๊ธˆ์€ ์ปดํฌ๋„ŒํŠธ ์ž์ฒด๊ฐ€ ๋‹จ์ˆœํ•ด์„œ ๊ทธ๋ฆฌ ๋งŽ์€ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ธด ์–ด๋ ต๋‹ค ์ƒ๊ฐํ•ด์š”.

@s9hn

s9hn commented Aug 13, 2024

Copy link
Copy Markdown
Author

์ž…๋ ฅ์ฐฝ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•˜๋‚˜ ์ž˜ ๋งŒ๋“ค์–ด๋‘์—ˆ์œผ๋‹ˆ, ์ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐ ์ž…๋ ฅ(์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ)์— ๋งž๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ๊ฐ ๋งŒ๋“ค์–ด๋ณด๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?

๊ฐ ์ปดํฌ๋„ŒํŠธ๋“ค์€ Preview์™€ ํ•จ๊ป˜ ํŒŒ์ผ ๋ถ„๋ฆฌํ•ด๋ณด๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?

ํ˜„์žฌ ๋ฆฌ๋ทฐ์˜ ๋ฐฉํ–ฅ๋“ค์€ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •์ผ๊นŒ์š”?
ํŠน์ • UI ํ˜น์€ ์ปค์Šคํ…€์ด ํ•„์š”ํ•œ TextField๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด,
TextField(Material) -> Public TextField(๊ณต์šฉ) -> Private TextField(์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ)
3๋ฒˆ์”ฉ์ด๋‚˜ wrapping ํ•ด์•ผํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค!

Screen์„ ํ†ต์งธ๋กœ ํ…Œ์ŠคํŠธํ•ด๋ณผ ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ,
๊ฐ ์ž…๋ ฅ ํƒ€์ž…๋ณ„ ์ž…๋ ฅ๊ธฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณธ ๋‹ค์Œ, ๊ฐ๊ฐ์˜ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?
๊ฐ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์„œ๋กœ์˜ ๊ฐ„์„ญ ์—†์ด ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณผ ์ˆ˜๋„ ์žˆ๊ฒ ์–ด์š” :)

privateํ•œ ํ•จ์ˆ˜๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Public ํ…Œ์ŠคํŠธ๋ฅผ ํ…Œ์ŠคํŠธํ•จ์œผ๋กœ์จ ๊ฐ„์ ‘์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๋น„์Šทํ•˜๊ฒŒ SignupScreenํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด screen ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ private ํ•จ์ˆ˜๋“ค์„ ํ…Œ์ŠคํŠธํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ ๋งž๋Š” ๋ฐฉ๋ฒ•์ผ๊นŒ์š”?
๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์•„๋‹˜์—๋„ ํ…Œ์ŠคํŠธ๋งŒ์„ ์œ„ํ•ด public, internal๋กœ ๋‘์–ด์•ผํ•˜๋‚˜์š”?

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ๊ฒ€์ฆ๋ถ€์—๋Š” ์ƒ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ๋ณด๋‹ค, ๋ฌธ์ž์—ด์„ ์ง์ ‘ ํ•˜๋“œ์ฝ”๋”ฉํ•˜๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?
์ข‹์€ ๊ธ€์„ ๊ณต์œ ๋“œ๋ ค์š” :)

์ข‹์€ ๊ธ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๊ธ€์„ ์ •๋…ํ•ด๋ณด์•˜์„ ๋•Œ 1, 2๋ฒˆ์— ๋Œ€ํ•œ ๋‚ด์šฉ์— ๊ณต๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค!
ํ•˜์ง€๋งŒ ๊ตฌํ˜„๋œ ํ…Œ์ŠคํŠธ๋Š” UI ํ…Œ์ŠคํŠธ์ด๋ฉฐ, description์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ ๋ฌธ์ž์—ด ํ˜น์€ ์ƒ์ˆ˜๊ฐ’ ๋“ฑ content์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค!
๋งŒ์•ฝ ์ค‘์š”ํ–ˆ๋‹ค๋ฉด ์˜คํžˆ๋ ค ์‹ค์ œ UI ๋กœ์ง์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ƒ์ˆ˜๊ฐ’์„ ๊ฐ™์ด ์‚ฌ์šฉํ•ด์•ผ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์•„์š”
์‹ค์ œ content์— ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ๋“ค์€ ์œ ๋‹›ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ฒ€์ฆํ•˜๊ณ  UI๋Š” ํ•ด๋‹น content๊ฐ€ ๋“ค์–ด๊ฐˆ UI(์—๋Ÿฌ Text)๊ฐ€ ์ž˜ 'ํ‘œ๊ธฐ'๋˜๋Š”์ง€๊ฐ€ ์ฃผ ๊ด€์‹ฌ์‚ฌ๋ผ๊ณ 
์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค! ๊ด€๋ จํ•ด์„œ ๋งˆ์นจ ์Šฌ๋ž™์— ํ† ๋ก ์ด ์—ด๋ ธ๋”๋ผ๊ตฌ์š”!
์ œ ์ƒ๊ฐ์€ ์˜์ง๋‹˜๊ป˜์„œ ์˜ฌ๋ ค์ฃผ์‹  NIA ๋ฐฉ๋ฒ•์ด ์ ์ ˆํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ ๋ง๋ฆฌ๋นˆ๋‹˜ ์ƒ๊ฐ์€ ์–ด๋– ์‹ ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค!

์ฒ˜์Œ๋ถ€ํ„ฐ 17์ž ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  9์ž๋ฆฌ ๋ฌธ์ž์—ด์„ ๋”ํ•ด์„œ ์“ฐ๋Š” ํฐ ์ด์œ ๊ฐ€ ์žˆ์—ˆ๋‚˜์š” ?_?
์–ด๋–ค ์˜๋„์ธ์ง€ ๊ถ๊ธˆํ•ด์š”.

17์ž๋ฅผ ์‰ฝ๊ฒŒ ์นด์šดํŠธํ•˜๋ ค๊ณ  ๊ทธ๋žฌ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ใ…‹ใ…‹; ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค!

@malibinYun

Copy link
Copy Markdown
Member

ํ˜„์žฌ ๋ฆฌ๋ทฐ์˜ ๋ฐฉํ–ฅ๋“ค์€ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •์ผ๊นŒ์š”?
ํŠน์ • UI ํ˜น์€ ์ปค์Šคํ…€์ด ํ•„์š”ํ•œ TextField๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด,
TextField(Material) -> Public TextField(๊ณต์šฉ) -> Private TextField(์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ)
3๋ฒˆ์”ฉ์ด๋‚˜ wrapping ํ•ด์•ผํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค!

๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ๋ผ..
์ปดํฌ์ฆˆ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๊ธฐ ์•„์ฃผ ์‰ฌ์šด ํˆด์ด๋ผ ์ƒ๊ฐํ•ด์š”.
์ž˜ ๋งŒ๋“ค์–ด๋‘” ์ปดํฌ๋„ŒํŠธ๋Š” ์–ธ์ œ๋“ ์ง€ ์†์‰ฝ๊ฒŒ ์žฌํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์ƒ๊ฒจ๋‚˜์ง€์š”. ์ค‘๋ณต ์ฝ”๋“œ๋ฅผ ๋น„์•ฝ์ ์œผ๋กœ ์ค„์—ฌ๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์€ ๋ค์ด๊ตฌ์š”.
์ด๋Ÿฐ ํˆด์„ ์ด์šฉํ•ด์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž˜ ๋ฝ‘์•„๋‚ด๋Š” ์—ฐ์Šต์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์–ด์š”.

๋‹ค๋ฅธ ํ™”๋ฉด์—์„œ ์ด๋ฉ”์ผ ์ž…๋ ฅ์ฐฝ์ด๋‚˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์ฐฝ์ด ํ•„์š”ํ•ด์ง€๋Š” ๊ฒฝ์šฐ, ๊ทธ๋•Œ ๋˜์–ด์„œ ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ๋ฅผ ํ•ด๋ณผ ์ˆ˜๋„ ์žˆ๊ฒ ์ง€์š”!
๊ฐœ๋ฐœ ํ•˜๋ฉด์„œ, ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ ๋˜์–ด์žˆ์ง€ ์•Š์•˜๋Š”๋ฐ, ๋‚˜์ค‘์— ํ•„์š”ํ•ด์„œ ์žฌํ™œ์šฉ ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ํ™”๊ฐ€ ๋‚˜๋”๋ผ๊ตฌ์š”.
์•„ ๊ฑฐ ์ข€ ๋ถ„๋ฆฌ์ข€ ํ•ด๋†“์ง€ ^________^
์ œ๊ฐ€ ์กฐ๊ธˆ ๋” ์‹ ๊ฒฝ ์จ ๋†“์œผ๋ฉด ๋‹ค๋ฅธ ๋™๋ฃŒ๋“ค์ด ๋” ํŽธํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์ด ์ƒ์‚ฐ์„ฑ์„ ๋†’ํ˜€์ฃผ๊ธฐ๋„ ํ•˜๋”๋ผ๊ตฌ์š”.

๋ง์ด ์ข€ ๊ธธ์—ˆ๋Š”๋ฐ,
๋ฏธ์…˜์€ ํ•™์Šต์„ ์œ„ํ•œ ๊ฒƒ์ด๋‹ˆ, ์–ด๋””๊นŒ์ง€ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„๋ฆฌํ•ด๋ณผ ์ˆ˜ ์žˆ์„๊นŒ? ๋ฅผ ์œ ๋…ํ•˜๋ฉด์„œ ์˜๋ฏธ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ์ž˜ ๋ถ„๋ฆฌํ•ด๋ณด์…”๋„ ์ข‹๊ฒ ์–ด์š”.
๋ฌผ๋ก  ๋ถˆํ•„์š”ํ•˜๋‹ค ์ƒ๊ฐ์ด ๋“ ๋‹ค๋ฉด, ๋ถ„๋ฆฌํ•˜์ง€ ์•Š์œผ์…”๋„ ์ข‹์•„์š”!

privateํ•œ ํ•จ์ˆ˜๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Public ํ…Œ์ŠคํŠธ๋ฅผ ํ…Œ์ŠคํŠธํ•จ์œผ๋กœ์จ ๊ฐ„์ ‘์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๋น„์Šทํ•˜๊ฒŒ SignupScreenํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด screen ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ private ํ•จ์ˆ˜๋“ค์„ ํ…Œ์ŠคํŠธํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ ๋งž๋Š” ๋ฐฉ๋ฒ•์ผ๊นŒ์š”?
๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์•„๋‹˜์—๋„ ํ…Œ์ŠคํŠธ๋งŒ์„ ์œ„ํ•ด public, internal๋กœ ๋‘์–ด์•ผํ•˜๋‚˜์š”?

์ด ๋ฆฌ๋ทฐ๋Š” ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ์™€ ์—ฐ๊ฒฐ๋˜์–ด์š”.
์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ๊ฐ€ ๋˜์–ด์žˆ์ง€ ์•Š์œผ๋ฉด, ํ˜„์žฌ ์ฒ˜๋Ÿผ Screen์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด๊ฒ ์ง€์š”!

์ข‹์€ ๊ธ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๊ธ€์„ ์ •๋…ํ•ด๋ณด์•˜์„ ๋•Œ 1, 2๋ฒˆ์— ๋Œ€ํ•œ ๋‚ด์šฉ์— ๊ณต๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค!
ํ•˜์ง€๋งŒ ๊ตฌํ˜„๋œ ํ…Œ์ŠคํŠธ๋Š” UI ํ…Œ์ŠคํŠธ์ด๋ฉฐ, description์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ ๋ฌธ์ž์—ด ํ˜น์€ ์ƒ์ˆ˜๊ฐ’ ๋“ฑ content์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค!
๋งŒ์•ฝ ์ค‘์š”ํ–ˆ๋‹ค๋ฉด ์˜คํžˆ๋ ค ์‹ค์ œ UI ๋กœ์ง์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ƒ์ˆ˜๊ฐ’์„ ๊ฐ™์ด ์‚ฌ์šฉํ•ด์•ผ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์•„์š”
์‹ค์ œ content์— ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ๋“ค์€ ์œ ๋‹›ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ฒ€์ฆํ•˜๊ณ  UI๋Š” ํ•ด๋‹น content๊ฐ€ ๋“ค์–ด๊ฐˆ UI(์—๋Ÿฌ Text)๊ฐ€ ์ž˜ 'ํ‘œ๊ธฐ'๋˜๋Š”์ง€๊ฐ€ ์ฃผ ๊ด€์‹ฌ์‚ฌ๋ผ๊ณ 
์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค! ๊ด€๋ จํ•ด์„œ ๋งˆ์นจ ์Šฌ๋ž™์— ํ† ๋ก ์ด ์—ด๋ ธ๋”๋ผ๊ตฌ์š”!
์ œ ์ƒ๊ฐ์€ ์˜์ง๋‹˜๊ป˜์„œ ์˜ฌ๋ ค์ฃผ์‹  NIA ๋ฐฉ๋ฒ•์ด ์ ์ ˆํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ ๋ง๋ฆฌ๋นˆ๋‹˜ ์ƒ๊ฐ์€ ์–ด๋– ์‹ ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค!

์ •๋‹ต์ด ์—†๋Š” ๋ถ€๋ถ„์ด์–ด์„œ, ์„ ํƒ์— ๋งก๊ธธ๊ฒŒ์š”.
์ €๋Š” ํ•˜๋“œ์ฝ”๋”ฉ ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ด์š”.
์šฐ์„  ๋ฐ”๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ฝ์–ด์„œ ๋ฌด์Šจ ๋‚ด์šฉ์ธ์ง€ ๋ˆˆ์— ์ž˜ ๋“ค์–ด์˜ค๋Š” ํ…Œ์ŠคํŠธ์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์žฅ ์„ ํ˜ธํ•ด์š”.
ํ…Œ์ŠคํŠธ๋ฅผ ์ฝ๊ธฐ ์œ„ํ•ด์„œ ๋‹ค๋ฅธ ์ฝ”๋“œ์˜ ๊ตฌํ˜„์ฒด๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ ์ž์ฒด๋ฅผ ๊ทธ๋ฆฌ ์ข‹์•„ํ•˜์ง€ ์•Š์•„์š”. ์ด๋ฏธ ์ฝ๋Š” ํ๋ฆ„์ด ๋Š๊ฒจ๋ฒ„๋ฆฐ๋‹ค ์ƒ๊ฐํ•ด์š”.
๋ฌผ๋ก  ๋„ˆ๋ฌด ๊ธธ์–ด์„œ ํ๋ฆ„์„ ๋Š์–ด๋†”์•ผ ์ฝ๊ธฐ ์ข‹๊ฒŒ ๋˜๋Š” ํ…Œ์ŠคํŠธ๋„ ์กด์žฌํ•˜๊ฒ ์ง€์š”.

'์ž˜ ํ‘œ๊ธฐ'ํ•ด์•ผํ•œ๋‹ค๋Š” ์˜๋ฏธ๋Š”, ์ •ํ™•ํ•œ ๋‹จ์–ด๊ฐ€ ๋“ค์–ด๊ฐ€์•ผํ•œ๋‹ค๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฅด์ง€ ์•Š๋‹ค ์ƒ๊ฐํ•ด์š”.
๋ฌธ์ž์—ด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด๋‚˜, ๋ˆ„๊ตฐ๊ฐ€์˜ ์‹ค์ˆ˜ ๋“ฑ์œผ๋กœ ์ƒ์ˆ˜ ์ž์ฒด๊ฐ€ ๊ณต๋ฐฑ ๋“ฑ์œผ๋กœ ๋ฐ”๋€Œ๊ฑฐ๋‚˜ ํ•œ๋‹ค๋ฉด, ํ…Œ์ŠคํŠธ๋Š” ๋ฐ”๋กœ ํ†ต๊ณผ๋˜๊ฒ ์ง€์š”.
๊ฑฐ์ง“ ํ†ต๊ณผ์•ผ ๋ง๋กœ ๊ฐ€์žฅ ํ…Œ์ŠคํŠธ์—์„œ ํ”ผํ•ด์•ผ ํ•  ์š”์†Œ์ด์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•ด์š”.
ํ…Œ์ŠคํŠธ๋ฅผ ์‹ ๋ขฐํ•˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด, ๋” ์ด์ƒ ์ž‘์„ฑํ•˜์ง€ ์•Š์„ํ…Œ๋‹ˆ๊นŒ์š”.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants