전체 글
-
[Android] [Kotlin] addTextChangedListener와 setOnFocusChangeListener의 차이 (EditText 입력 변화 이벤트 처리)안드로이드 2024. 4. 2. 20:55
✏️ TIL(Today I Learned) EditText 입력 변화 이벤트 처리에 사용되는 addTextChangedListener와 setOnFocusChangeListener의 차이에 대해서 공부했다. addTextChangedListener는 EditText에서 텍스트가 변경될 때마다 호출되는 리스너를 설정하는 메소드이다. 사용자가 EditText에 텍스트를 입력하거나 수정할 때마다 호출된다. 따라서, 텍스트의 변화에 반응하여 실시간으로 검증이나 처리를 수행하는 데 사용된다. 예를 들어, 실시간으로 입력한 텍스트의 길이를 체크하거나 특정 형식에 맞는지 검증할 때 사용한다. setOnFocusChangeListener는 뷰의 포커스가 변경될 때 호출되는 리스너를 설정하는 메소드이다. 이 리스너는 사..
-
[Android] [인스타그램 클론 코딩] 스토리 UI 만들기 (원형 이미지 뷰: CircleImageView)안드로이드 2024. 4. 2. 18:19
✏️ TIL(Today I Learned) 팀 프로젝트로 간단하게 인스타그램을 구현해 보기로 했다. 메인 페이지를 맡게 되어서 우선 스토리 UI를 만들어봤다. 우선 제일 왼쪽의 파란색 + 버튼이 겹쳐진 이미지 뷰를 클릭하면, 갤러리를 열어 사진을 선택할 수 있게 했다. 선택된 사진이 이미지 뷰에 등록되도록 했다. HorizontalScrollView으로 스토리들이 좌우로 스크롤되도록 만들었다. android:scrollbars="none"으로 설정하여 아래에 스크롤바를 숨겼다. 그리고 FrameLayout을 사용해 파란색 + 이미지가 겹쳐지도록 했다. // activity_main // 중간 생략 de.hdodenhof.circleimageview.CircleImageView를 사용해 스토리 이미지 뷰를..
-
[Android] 회원가입시 LiveData 사용한 비밀번호 유효성 검사 (ViewModel/ Pattern, Matcher 정규식)안드로이드 2024. 3. 29. 18:32
✏️ TIL(Today I Learned) 회원가입시, 비밀번호의 조건을 만족할 때까지 아래에 주의문구가 보이도록 만들었다. LiveData를 사용하여 입력받은 text를 관찰하면서, 조건을 만족하면 주의문구의 visibility를 GONE으로 바꿨다. 우선 뷰모델을 사용하기 위해서, ViewModelProvider를 통해 SignUpViewModel가져오고 LifeCycle을 가진 owner를 넣었다. (this==현재 Activity) addTextChangedListener를 사용해서 EditText들의 텍스트가 변경될 때마다 ViewModel에 LiveData 값을 업데이트했다. // SignUpActivity viewModel = ViewModelProvider(this).get(SignUpVi..
-
[Android] ViewModel의 생성과 Lifecycle 생명주기안드로이드 2024. 3. 29. 12:32
📝 공부한 내용 정리ViewModel1. ViewModel의 생성ViewModel을 사용하려면, 우선 ViewModel 요청을 해야 한다. ViewModelProvider을 사용해서 객체를 요청한다. 1.1) ViewModel의 생성법 - ViewModelProvider 사용// 일반적인 방법: ViewModelProvider를 사용하여 뷰모델을 생성 viewModel = ViewModelProvider(this).get(SignUpViewModel::class.java)this는 액티비티 또는 프래그먼트의 인스턴스이다. SignUpViewModel::class.java는 뷰모델의 클래스를 지정한다. ViewModelProvider는 뷰모델의 인스턴스를 관리하며, 이미 생성된 경우에는 기존 인스턴스를 ..
-
[Java] - 성격 유형 검사하기(118666) (HashMap)알고리즘/프로그래머스 2024. 3. 29. 11:16
📚 문제 - 118666 나만의 카카오 성격 유형 검사지를 만들려고 합니다. 성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다. 지표 번호 성격 유형 1번 지표 라이언형(R), 튜브형(T) 2번 지표 콘형(C), 프로도형(F) 3번 지표 제이지형(J), 무지형(M) 4번 지표 어피치형(A), 네오형(N) 4개의 지표가 있으므로 성격 유형은 총 16(=2 x 2 x 2 x 2)가지가 나올 수 있습니다. 예를 들어, "RFMN"이나 "TCMA"와 같은 성격 유형이 있습니다. 검사지에는 총 n개의 질문이 있고, 각 질문에는 아래와 같은 7개의 선택지가 있습니다. 매우 비동의 비동의 약간 비동의 모르겠음 약간 동의 동의 매우 동의 각 질문은 1..
-
[Java] - 주식가격 (42584) (Stack)알고리즘/프로그래머스 2024. 3. 28. 11:55
📚 문제 - 42584 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입출력 예 prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 입출력 예 #1 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다. 5초 ..
-
[Java] - 다리를 지나는 트럭 (42583) (Queue)알고리즘/프로그래머스 2024. 3. 27. 11:56
📚 문제 - 42583 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 경과 시간 다리를 지난 트럭 다리를 건너는 트럭 대기 트럭 0 [] [] [7,4,5,6] 1~2 [] [7] [4,5,6] 3 [7] [4] [5,6] 4 [..
-
[Android] 안드로이드 MVVM 패턴, 아키텍처안드로이드 2024. 3. 26. 20:31
📝 공부한 내용 정리MVVM 패턴1. MVVM (Model - View - ViewModel) 패턴안드로이드 앱 개발에서 사용되는 아키텍처 패턴 중 하나이다. 이 패턴은 코드를 더욱 구조화하고 유지보수하기 쉽게 만들며, 특히 대규모 앱의 개발에서 유용하다. 1.1) MVVM 패턴의 세 가지 구성 요소 - 모델(Model)모델은 데이터와 비즈니스 로직을 나타낸다. 이는 일반적으로 데이터베이스, 네트워크 요청, 파일 시스템 등과 같은 데이터 소스와 관련된 작업을 처리하는 클래스이다. 모델은 일반적으로 뷰나 뷰모델과 직접적인 의존성을 갖지 않는다. - 뷰(View)뷰는 사용자에게 데이터를 표시하고 사용자 입력을 받는 인터페이스 요소이다. XML 레이아웃 파일을 통해 뷰를 정의하고, 액티비티나 프래그먼트 ..