Skip to content

πŸš€ 4단계 - νšŒμ›κ°€μž…(λ¦¬νŒ©ν„°λ§)#158

Open
ChaMinZi wants to merge 10 commits intonext-step:chaminzifrom
ChaMinZi:step4
Open

πŸš€ 4단계 - νšŒμ›κ°€μž…(λ¦¬νŒ©ν„°λ§)#158
ChaMinZi wants to merge 10 commits intonext-step:chaminzifrom
ChaMinZi:step4

Conversation

@ChaMinZi
Copy link

@ChaMinZi ChaMinZi commented Mar 7, 2025

μ•ˆλ…•ν•˜μ„Έμš”! 3단계 ν”Όλ“œλ°±κ³Ό 4단계 λ―Έμ…˜ κ΅¬ν˜„ν•˜μ˜€μŠ΅λ‹ˆλ‹€!

3,4 단계 λ―Έμ…˜μ„ μ§„ν–‰ν•˜λ©΄μ„œ κΆκΈˆν•œ 점이 생겨 μ§ˆλ¬Έλ“œλ €λ΄…λ‹ˆλ‹€~ πŸ™

3단계 λ―Έμ…˜μ—μ„œ μ•„λž˜μ™€ 같은 ν”Όλ“œλ°±μ„ μ£Όμ…¨λŠ”λ°μš”~ ν•΄λ‹Ή 뢀뢄을 κ΅¬ν˜„ν•˜λ©΄μ„œλ„ 각 μ»΄ν¬λ„ŒνŠΈλ³„λ‘œ λ‚˜λˆ„λŠ”κ²Œ λ‚˜μ„μ§€ 고민이 많이 λ˜μ—ˆμ–΄μš”!
말씀주신 κ²ƒμ²˜λŸΌ ν…ŒμŠ€νŠΈ μš©μ΄μ„±μ„ μœ„ν•΄μ„œλŠ” μ»΄ν¬λ„ŒνŠΈκ°€ λ‚˜λˆ„μ–΄μ§€λŠ” 것이 쒋은 것 같은데… 
각 TextField 컴포저블 λ‚΄λΆ€ κ΅¬μ‘°λŠ” 거의 λΉ„μŠ·ν•œλ° λ‚˜λˆ„λŠ” 이유λ₯Ό ν…ŒμŠ€νŠΈ μš©μ΄μ„± λ§κ³ λŠ” 잘 λͺ¨λ₯΄κ² μ–΄μ„œμš”! ν•΄λ‹Ή μ΄μœ λ§ŒμœΌλ‘œλ„ μΆ©λΆ„ν•œκ±ΈκΉŒμš”??


UserInputTextField μ»΄ν¬λ„ŒνŠΈλ₯Ό ν™œμš©ν•˜λŠ” 각각의 μž…λ ₯ ν…μŠ€νŠΈ ν•„λ“œ μ»΄ν¬λ„ŒνŠΈλ₯Ό λ§Œλ“€μ–΄λ³΄λŠ” 건 μ–΄λ–¨κΉŒμš”?
EmailInputField,Β UserNameTextFieldΒ λ“± 역할에 λ§žλŠ” μ»΄ν¬λ„ŒνŠΈλ₯Ό 각각 λ§Œλ“€μ–΄λ³΄μ‹œλ©΄ μ’‹κ² μ–΄μš” :)
κ·Έλ ‡λ‹€λ©΄ ν…ŒμŠ€νŠΈλ„ ν”„λ‘œλ•μ…˜κ³Ό ν…ŒμŠ€νŠΈμ— 쀑볡적인 μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ§€ μ•Šκ³ ,β€¨μ»΄ν¬λ„ŒνŠΈ λ‹¨μœ„λ‘œ μ μ ˆν•˜κ²Œ νŒŒμΌμ„ λ‚˜λˆ  ν…ŒμŠ€νŠΈν•΄λ³Ό 수 μžˆμ„κ±°λΌ μƒκ°ν•΄μš” :)

4단계 리뷰 잘 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€. πŸ˜ƒ


Changes

  • 3단계 리뷰 사항 반영

    • ErrorMessage 쑴재 μ—¬λΆ€λ‘œ μ—λŸ¬ ν‘œμ‹œ κ²°μ •
    • TextFiedlλ₯Ό 각 역할에 λ§žλŠ” μ»΄ν¬λ„ŒνŠΈλ‘œ 뢄리
  • λͺ¨λ“  ν•„λ“œκ°€ μ—λŸ¬ 없이 μ±„μ›Œμ§„ 경우 Sign up λ²„νŠΌ ν™œμ„±ν™”

  • Sign up λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ νšŒμ›κ°€μž… μ™„λ£Œ μŠ€λ‚΅λ°” λ…ΈμΆœ

  • μœ νš¨μ„± 검사 둜직과 λ·° ν…ŒμŠ€νŠΈ 둜직 뢄리

Screen shot

Screen_recording_20250307_102617.mp4

ChaMinZi added 10 commits March 6, 2025 15:26
change
- visualTransformationλ₯Ό νŒŒλΌλ―Έν„°λ‘œ 전달
- errorMessage 쑴재 μ—¬λΆ€(null)둜 μ—λŸ¬ ν‘œμ‹œ κ²°μ •ν•˜λ„λ‘ λ³€κ²½
change
- λͺ¨λ“  ν•„λ“œκ°€ μ—λŸ¬ 없이 μ±„μ›Œμ§„ κ²½μš°μ—λ§Œ Sign up λ²„νŠΌμ„ ν™œμ„±ν™”
- Sign up λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ νšŒμ›κ°€μž… μ™„λ£Œ μŠ€λ‚΅λ°”κ°€ λ…ΈμΆœ
Copy link
Member

@malibinYun malibinYun left a comment

Choose a reason for hiding this comment

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

4단계 λ―Έμ…˜ 고생 λ§ŽμœΌμ…¨μ–΄μš”!
μ—¬λŸ¬ μ½”λ©˜νŠΈμ™€ μ§ˆλ¬Έν•΄μ£Όμ‹  것에 λŒ€ν•œ 닡변도 같이 λ‚¨κ²¨λ‘μ—ˆμ–΄μš” :)
이만 λ―Έμ…˜μ„ 마무리 μ§“κ³  μ‹ΆμœΌμ‹œλ‹€λ©΄ μ½”λ©˜νŠΈ λ©”μ‹œμ§€ λ‚¨κ²¨μ£Όμ‹œκ³ , 더 μ‹œλ„ν•΄λ³΄κ³  μ‹ΆμœΌμ‹  게 μžˆμœΌμ‹œλ‹€λ©΄ 반영 ν›„ λ‹€μ‹œ 리뷰 μš”μ²­ λΆ€νƒλ“œλ €μš”!

Copy link
Member

Choose a reason for hiding this comment

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

μœ λ‹› ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν•΄μ£Όμ…¨λ„€μš”!
각 μ»΄ν¬λ„ŒνŠΈλ₯Ό 역할에 맑게 λ‚˜λˆ„μ–΄ μ£Όμ…¨μœΌλ‹ˆ, 각 μ»΄ν¬λ„ŒνŠΈλ„ UI Testλ₯Ό μž‘μ„±ν•΄λ³΄μ‹œλ©΄ μ’‹κ² λ„€μš” :)

Comment on lines +21 to +28
@Composable
fun PasswordTextField(
value: String,
onValueChange: (String) -> Unit,
modifier: Modifier = Modifier,
errorMessage: String? = null,
imeAction: ImeAction = ImeAction.Unspecified,
) {
Copy link
Member

Choose a reason for hiding this comment

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

λΉ„λ°€λ²ˆν˜Έ 검증 λ‘œμ§λ„ λΉ„λ°€λ²ˆν˜Έ μž…λ ₯ μ»΄ν¬λ„ŒνŠΈμ— μ‘μ§‘λ„μžˆκ²Œ λͺ¨μ•„λ³΄λŠ” 건 μ–΄λ–¨κΉŒμš”?

μž…λ ₯ 검증 ν΄λž˜μŠ€λ„ 각각 μž…λ ₯ κ°’ λ§ˆλ‹€ interface - κ΅¬ν˜„μ²΄λ‘œ λ‚˜λˆ„μ–΄μ„œ μ—­ν• λ³„λ‘œ μͺΌκ°œ 보셔도 μ’‹κ² μ–΄μš”.

@Composable
fun PasswordTextField(
    value: String,
    onValueChange: (String) -> Unit,
    modifier: Modifier = Modifier,
    passwordValidator: PasswordValidator = DefaultPasswordValidator,
    errorMessage: String? = null,
    imeAction: ImeAction = ImeAction.Unspecified,
) {
    ...
    val isPasswordValid = passwordValidator.validate(...)

    if(isPasswordValid ){
        ...
    }

    ...

μ΄λŸ°μ‹μœΌλ‘œ κ΅¬μ„±ν•œλ‹€λ©΄ 검증 둜직이 λ°”λ€Œλ”λΌλ„ μ™ΈλΆ€μ—μ„œ μƒˆλ‘œμš΄ κ΅¬ν˜„μ²΄λ₯Ό μ£Όμž… λ°›μ•„μ„œ 이 μ»΄ν¬λ„ŒνŠΈμ˜ 변경점을 μ΅œμ†Œν•œμœΌλ‘œ 쀄일 수 μžˆκ² μ–΄μš”. μƒˆλ‘œμš΄ μ»΄ν¬λ„ŒνŠΈλ₯Ό λ§Œλ“€μ§€ μ•ŠμœΌλ©΄μ„œμš”!

Copy link
Member

Choose a reason for hiding this comment

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

3단계 λ―Έμ…˜μ—μ„œ μ•„λž˜μ™€ 같은 ν”Όλ“œλ°±μ„ μ£Όμ…¨λŠ”λ°μš”~ ν•΄λ‹Ή 뢀뢄을 κ΅¬ν˜„ν•˜λ©΄μ„œλ„ 각 μ»΄ν¬λ„ŒνŠΈλ³„λ‘œ λ‚˜λˆ„λŠ”κ²Œ λ‚˜μ„μ§€ 고민이 많이 λ˜μ—ˆμ–΄μš”!
말씀주신 κ²ƒμ²˜λŸΌ ν…ŒμŠ€νŠΈ μš©μ΄μ„±μ„ μœ„ν•΄μ„œλŠ” μ»΄ν¬λ„ŒνŠΈκ°€ λ‚˜λˆ„μ–΄μ§€λŠ” 것이 쒋은 것 같은데… 
각 TextField 컴포저블 λ‚΄λΆ€ > κ΅¬μ‘°λŠ” 거의 λΉ„μŠ·ν•œλ° λ‚˜λˆ„λŠ” 이유λ₯Ό ν…ŒμŠ€νŠΈ μš©μ΄μ„± λ§κ³ λŠ” 잘 λͺ¨λ₯΄κ² μ–΄μ„œμš”! ν•΄λ‹Ή μ΄μœ λ§ŒμœΌλ‘œλ„ μΆ©λΆ„ν•œκ±ΈκΉŒμš”??


UserInputTextField μ»΄ν¬λ„ŒνŠΈλ₯Ό ν™œμš©ν•˜λŠ” 각각의 μž…λ ₯ ν…μŠ€νŠΈ ν•„λ“œ μ»΄ν¬λ„ŒνŠΈλ₯Ό λ§Œλ“€μ–΄λ³΄λŠ” 건 μ–΄λ–¨κΉŒμš”?
EmailInputField, UserNameTextField λ“± 역할에 λ§žλŠ” μ»΄ν¬λ„ŒνŠΈλ₯Ό 각각 λ§Œλ“€μ–΄λ³΄μ‹œλ©΄ μ’‹κ² μ–΄μš” :)
κ·Έλ ‡λ‹€λ©΄ ν…ŒμŠ€νŠΈλ„ ν”„λ‘œλ•μ…˜κ³Ό ν…ŒμŠ€νŠΈμ— 쀑볡적인 μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ§€ μ•Šκ³ ,β€¨μ»΄ν¬λ„ŒνŠΈ λ‹¨μœ„λ‘œ μ μ ˆν•˜κ²Œ νŒŒμΌμ„ λ‚˜λˆ  ν…ŒμŠ€νŠΈν•΄λ³Ό 수 μžˆμ„κ±°λΌ μƒκ°ν•΄μš” :)

ν…ŒμŠ€νŠΈ 뿐만 μ•„λ‹ˆλΌ, μ»΄ν¬λ„ŒνŠΈμ˜ κ΅¬ν˜„μ„ 일일이 보여주기 보닀 ν•œ 단계 좔상화 ν•¨μœΌλ‘œμ¨ ν•„μš”ν•œ μ •λ³΄λ§Œμ„ μ™ΈλΆ€μ—μ„œ λ°›μ•„ μ‚¬μš©ν•˜λ„λ‘ ꡬ성할 수 μžˆλ‹€κ³  μƒκ°ν•΄μš”.
TextFieldλ₯Ό μ²˜μŒλΆ€ν„° μ¨μ„œ μ–΄λ– ν•œ 값듀을 μ£Όλ₯΄λ₯΅ 쓰닀보면, κ·Έλž˜μ„œ 이 TextFieldλŠ” 무엇을 λ‚˜νƒ€λ‚΄κ³  싢은지 μ•ŒκΈ°μ—λŠ” μ‹œκ°„μ΄ 였래걸릴 수 μžˆλ‹€κ³  μƒκ°ν•΄μš”. 좔상화λ₯Ό ν•¨μœΌλ‘œμ¨ 그런 인지λ₯Ό μœ„ν•œ μ‹œκ°„μ„ μƒλž΅ν•˜κ³  λ°”λ‘œ μ˜λ„λ₯Ό λ‚˜νƒ€λ‚Ό 수 μžˆλŠ” 방법이라 μƒκ°ν•΄μš”.

또, 각 μ»΄ν¬λ„ŒνŠΈκ°€ λͺ¨λ‘ 직접 TextFieldλ₯Ό μ‚¬μš©ν•˜λŠ”λ°μš”,
이전 ν”Όλ“œλ°± 처럼 UserInputTextFieldλ₯Ό ν™œμš©ν•˜κ²Œλ” ꡬ성해보셔도 μ’‹κ² μ–΄μš”.
각 μž…λ ₯에 λŒ€ν•œ μ»΄ν¬λ„ŒνŠΈκ°€ κ³΅ν†΅μ μœΌλ‘œ κ°–κ³  μžˆλŠ” μž…λ ₯ λ””μžμΈμ„ 기본적으둜 κ°€μ§€λŠ” ν…μŠ€νŠΈ ν•„λ“œ μ»΄ν¬λ„ŒνŠΈκ°€ κ°€μž₯ μ•„λž˜μ— 깔리고,
각 νŠΉμ„±μ— λ§žλŠ” μ»΄ν¬λ„ŒνŠΈλŠ” κ·Έ λ””μžμΈ μš”μ†Œκ°€ μ μš©λ˜μ–΄μžˆλŠ” μ»΄ν¬λ„ŒνŠΈλ₯Ό ν™œμš©ν•˜λŠ” κ²ƒμ΄μ§€μš”.
κ·Έλ ‡λ‹€λ©΄ 각 μ»΄ν¬λ„ŒνŠΈκ°€ κ°μžμ— λ§žλŠ” κ΄€μ‹¬λ§Œμ„ κ°€μ§€κ²Œ 좔상화 ν•  수 μžˆλ‹€ μƒκ°ν•΄μš” :)

Comment on lines +28 to +29
!userName.matches(Regex(USERNAME_REGEX)) -> {
ValidationResult.USERNAME_INVALID_CHARACTERS
Copy link
Member

Choose a reason for hiding this comment

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

Regex κ°μ²΄λŠ” 생성 λΉ„μš©μ΄ λΉ„μ‹Έλ‹ˆ, 맀번 μƒμ„±ν•˜κΈ° 보닀 미리 λ§Œλ“€μ–΄λ‘κ³  μž¬ν™œμš©ν•΄λ³΄λŠ” 건 μ–΄λ–¨κΉŒμš”?

Comment on lines +21 to +28
@Composable
fun PasswordConfirmationTextField(
value: String,
onValueChange: (String) -> Unit,
modifier: Modifier = Modifier,
errorMessage: String? = null,
imeAction: ImeAction = ImeAction.Unspecified,
) {
Copy link
Member

Choose a reason for hiding this comment

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

이 μ»΄ν¬λ„ŒνŠΈμ—κ²ŒλŠ” 비ꡐꡰ과 λŒ€μ‘°κ΅° ν…μŠ€νŠΈλ₯Ό λ‘˜ λ‹€ λ„˜κ²¨μ„œ λ‚΄λΆ€μ—μ„œ 검증을 μˆ˜ν–‰ν•˜λ„λ‘ κ΅¬μ„±ν•΄λ³΄λŠ” 건 μ–΄λ–¨κΉŒμš”?

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