분류 전체보기

· Bug Fix
5개월 동안 버전 2를 위해 달려온 페스타고 개발.. 드디어 버전 2.0.0 개발을 완료했고 테스트에 돌입했다. 1. 첫 번째 테스트와 버그 : Firebase Test Lab Key 로 서명해 만든 APK 파일을 Test Lab 에 등록하면 실물 기기가 없는 환경에서 자동 테스트를 돌릴 수 있다. 한 번도 사용해보지 않았는데 이번에 처음 사용해보았다.  어떤 식이냐 하면... Robo Test 로 예시를 보여주겠다. 잠깐! Robo Test 란? Firebase 공식문서https://firebase.google.com/docs/test-lab/android/robo-ux-test?hl=ko  앱 UI 를 분석해 사용자 활동을 시뮬레이션해서 탐색한다! 그러니깐...따로 UI 테스트를 작성하지 않아 계측 ..
· 회고
재밌는 기획도 많이나오고 팀끼리 열심히 해보겠다는 열정이 느껴져서 좋았습니다! 다만.. 협업에 관해서 얘기하는 팀이 없어 아쉬웠습니다. 시작 발표까지 시간이 일주일 밖에 없었기도 하고 처음인 분들은 좀 어려울 수 있었겠죠? 이해합니다. 개발이 좀 익숙한 분들이나 처음이지만 도전하고 싶으신 분들은.. 개인이 아닌 “팀” 이기 때문에 가능한 것들에 도전해보는건 어떤가요? 예시) Branch 전략은 이걸 사용하기로 했다. 혹은 이렇게 만들었다. 코드 컨벤션, 커밋 컨벤션은 이렇다. 팀 그라운드 룰 정하기 (회의할 때 높임말을 사용할 것이다, 사회자 및 서기는 이렇게 정할 것이다 등) 핵심 기능에 한해서는 같이 한 노트북으로 개발해보기 (몹 프로그래밍, 페어프로그래밍) 클라이언트 개발자와 서버 개발자가 페어프로..
· Android
들어가기 전에 안드로이드에서 DataStore 를 사용할 때 암호화, 복호화를 어떻게 처리해야할지 고민이라 찾다가 이 영상을 먼저 보는게 좋다고 하길래 정리해봅니다. FULL Guide to Encryption & Decryption in Android (Keystore, Ciphers and more) https://www.youtube.com/watch?v=aaSck7jBDbw Encryption & Decryption with KeyStore 예를 들어서 비밀번호를 매번 기억해서 입력하기 힘드니깐 자동 저장한다고 생각해봅시다. 그럼 핸드폰에 접근해서 누군가 비밀번호를 볼 수도 있겠죠..? 그 경우를 방지해서 중요한 정보를 저장할 때 Key 를 사용해 저장합니다. 데이터를 읽거나 쓸 때 Key 가 있..
· Android
시작하기 전에 현재 페스타고 앱은 토큰 관리를 EncryptedSharedPreferences 로 하고 있다. 그러나 공식 문서는 SharedPreferences 를 DataStore 로 이전할 것을 권장한다. 이전하기 전에 DataStore 가 무엇인지 공부해보자! 이 글은 안드로이드 공식 문서를 바탕으로 작성되었습니다. https://developer.android.com/topic/libraries/architecture/datastore?hl=ko https://developer.android.com/codelabs/android-preferences-datastore?hl=ko DataStore 란? DataStore 는 Protocol Buffer 를 사용해 Key - value 쌍 또는 유형..
· 회고
벌써 2023년이 지나간다. 있었던 일들을 회고해보자.. 10개월 동안 우아한테크코스에서 대부분의 시간을 보냈기 때문에 그 내용이 많을 것 같다. 우아한테크코스 Lv 1 우테코 레벨 1은 신선한 충격이었다. 레벨 1은 우테코 학습 방식에 적응하면서 Kotlin 언어, TDD 와 디자인 패턴에 몰입해 공부했다. 현직자 리뷰어 분들이 내 코드를 리뷰해주시는 것도 좋았고 제이슨(박재성님)의 강의는 그냥 미쳤다... 이런 귀한 강의를 무료로 들을 수 있다는건 축복이었다. 제이슨 그는 신이야 특히 레벨 1 데일리 미팅 담당 코치님이 제이슨이라서 주변에서 좋은 말씀도 많이 듣고 4기 선배님들도 만나고 너무 재밌었다. 오목 미션을 상태 패턴으로 구현하고 크루들 앞에서 라이브 코딩하는 경험도 했다. 아 그리고 온보딩 ..
들어가기 전에 컴포즈 Codelab 기초 따라하기 - 1 후속편입니다. https://seonghoonc.tistory.com/44 본 글은 Jetpack Compose Codelab basics 의 상태 호이스팅 이후를 다루고 있습니다. https://developer.android.com/codelabs/jetpack-compose-basics?hl=ko#7 상태 호이스팅 여러 컴포저블 함수가 읽거나 수정하는 상태는 공통된 상위 항목에 위치해야한다. 이를 상태 호이스팅이라고 한다. 호이스팅은 들어올린다 or 끌어올린다라는 의미라고 한다. 상태를 호이스팅의 장점 - 상태 중복 및 버그 발생을 방지할 수 있다. - 컴포저블을 재사용할 수 있다. - 쉽게 테스트할 수 있다. 그러나 상위 요소에서 제어할 필..
Jetpack Compose 를 시작하면서 코드랩을 따라하면서 작성한 글입니다. 파란색 글씨는 개인적인 생각입니다. https://developer.android.com/codelabs/jetpack-compose-basics?hl=ko#0 Compose 시작하기 Composable function 은 @Composable 어노테이션이 달린 함수이다. 그럼 이 함수 내부에서 다른 @Composable 함수를 호출할 수 있다. Text 는 라이브러리에서 제공하는 컴포저블 함수이다. 이 함수를 내부에서 호출한 Greeting 은 컴포저블 어노테이션이 붙은 컴포저블 함수인 것이다. Greeting 함수는 name 문자열을 출력한다. Compose 를 사용해도 Activity 가 Android 앱의 진입점으로 ..
드디어 올 것이 왔구나 시간이 갈수록 자격 요건 or 우대 사항으로 Compose 를 요구하고 있다. 컴포즈..필수로 해야하는가? 고민하다가 왜 컴포즈를 사용해야하는지 정리해보기로 했다. XML 의 문제점 지금까지 Android View 계층 구조는 UI 위젯의 트리로 표시할 수 있었다. 앱의 상태가 변경되면 현재 데이터를 표시하기 위해 UI 계층 구조를 업데이트 해야했다. 가장 일반적인 방법은 findViewById() 로 트리를 탐색하고 button.setText(String), 과 같은 메서드를 호출하여 노드를 변경하는 것이다. 그러나 뷰를 수동으로 조작하면 오류가 발생할 가능성이 커진다. 데이터를 여러 위치에서 렌더링한다면 데이터를 표시하는 부분이 예기치 않은 방식으로 동작할 가능성이 있다. 업데..
· 회고
Devfest Busan 2023 에서 발표한 내용을 바탕으로 작성된 글입니다. 우아한테크코스에서 함께 성장한 내용을 다루고 있습니다. 성장, 혼자 하기 힘들지 않나요? 혼자 개발했을 때 정말 막막했습니다. 내가 하고 있는게 맞는 건지.. 다음에 뭘 해야하는지 몰랐습니다. 그러나 우테코에서 함께 성장하면서 이 막막함을 떨쳐낼 수 있었습니다. 어떻게 함께 성장할 수 있었는지 경험을 소개해보겠습니다. 처음 함께 성장하기 키워드는 페어프로그래밍 입니다. 페어 프로그래밍 레벨 1, 레벨 2 미션의 모든 시작은 페어 프로그래밍이었습니다. 랜덤으로 매칭된 페어와 3일정도 함께 프로그래밍합니다. 페어 프로그래밍이란? - 두 명에서 짝을 이루어 개발한다. - 드라이버, 네비게이터 역할을 10분 정도 간격 번갈아가며 수..
· Android
Handling Scrolls with CoordinatorLayout 글을 보고 적용했습니다. https://guides.codepath.com/android/handling-scrolls-with-coordinatorlayout CoordinatorLayout 이란? CoorinatorLayout 은 구글의 Material Design scrolling effect 를 다루는 능력을 향상시켜준다. 커스텀 애니메이션 코드를 작성하지 않고도 많은 방법을 제공한다. - Snakbar 가 생길 때 Floating Action Button 이 올라갔다 내려갔다 하게 만들 수 있다. - 메인 컨텐츠를 위해 Toobar 나 header space 를 확장하거나 축소할 수도 있다. - 확장 혹은 축소시키고 뷰의 비..
베르_최성훈
'분류 전체보기' 카테고리의 글 목록 (2 Page)