안드로이드 개발자의 창고
[개인 회고] 6주차 회고(6/9 - 6/15) 본문
🌟 이번 주 목표 🌟
- [ V ] 코딩 테스트 일주일 3문제
- [ X ] 클론 코딩 진행
- [ V ] 이번 주 강의 정리하여 블로그 작성
- [ V ] 스터디 앱 제작
💜 Liked(좋았던 점)
안드로이드의 UI 요소에 대해 배우다
- 대학에서 여러 UI에 대해 배우긴 했었지만 상대적으로 옛날 자료들로 강의를 들어 현재 트랜드에 맞지 맞지 않고 기본기를 익히기 위해 수업을 하시는 느낌이 강했다. 그 마저도 내가 직접 프로젝트를 하기 위해 검색을 하면서 알게 됐었다.
- 앱스쿨을 수강하면서 강사님이 현재 트랜드를 알려주시고 그에 맞춰 진도를 나가는 점에서 매우 만족스럽다. 예를 들면 RecyclerView의 동작 방식이나 TextInputLayout 사용 방법 등등)
RecyclerView 동작 방식에 대해 학습하다
- RecyclerView를 사용해본 것은 이번이 처음이 아닐 뿐더러 두가지 프로젝트에도 적용시켰었다.
- 그 때도 ListView보다 커스텀 부분이나 효율성이 더 좋고, 구글에서도 RecyclerView 사용을 권장한다는 것을 알고는 있었다. 하지만 내부적으로 왜 RecyclerView가 효율이 좋은지, 왜 커스텀 부분에서 더 용이하다고 얘기하는 것인지는 ListView를 다뤄보지 않아 모르고 있었다.
- 그래도 ListView보다 좋은 점이 많다고 하니 여러 블로그를 보고 코드를 참고하여 수정하고를 몇번이나 반복하여 적용시켰었다. 어떤 메서드가 어떤 역할인지를 인지하지 못한 상태에서 하다보니 더 어려웠던 것 같다.
- 이번주 강의에서 강사님이 직접 ListView와 RecyclerView를 비교해주시면서 강의를 해주셨고 이 둘의 차이점과 동작 방식을 알 수 있게 되었다.
이력서 강의와 포트폴리오 대공사 예정
- 이제까지 많은 기업에 넣었었다. 제일 충격적이었던 것은 이력서를 열람했다는 알림이 오고 1분만에 탈락 안내가 왔던 것이었다.
- 이력서 강의를 듣고 내 이력서를 다시 살펴보니 가독성이 좀 떨어지나 싶기도 하고, 한 눈에 보기 어려웠을 것 같기도 했다. 거기다 강사님이 비추천한다는 '신입'이라는 단어를 맨 위 부제목으로 붙여넣었던 것도 신경 쓰였다.
- 강의 때 메모해둔 것을 토대로 전부 갈아엎어야할 것 같다. 벌써 어지럽다.
백준 레벨 상승
- 팀 회고에서 주마다 주어지는 코딩 테스트 문제를 풀었는데 알고보니 백준 레벨 업이 얼마 남지 않았었다. 그 동안은 프로그래머스에서 기본기를 위해 0레벨 문제를 마스터했기에 백준보다 프로그래머스를 많이 사용했었다.
- 10점 정도 남은 것을 보고 한 문제만 풀면 오를 수도 있겠다 싶었다. 누적 합에 대한 문제를 풀었는데 알고보니 골드 문제여서 실버 3을 달성해버렸다.
- 꾸준히 하다보면 골드도 찍을 수 있겠다는 생각이 들었다.
✔️ Lacked (아쉬웠던 점)
FLO 클론 코딩 진도 부진
- 이번에 새로 Jetpack 스터디를 진행하면서 주말을 몽땅 스터디 앱 제작에 쏟아버렸다. 강의를 듣지 않고 결과 화면과 사용된 기능만 참고하여 만들다보니 더 오래 걸렸던 것 같다.
- ViewPager2와 TabLayout을 연동하여 스와이프가 가능한 Tab을 제작하는 것은 그렇게 오래 걸리지 않았다.
- 내가 헤맸던 부분은 WebView의 이전 방문 기록 불러오기와 새로고침이었다. WebView를 처음 다뤄보다보니 어렵게 느껴졌다.
- 이번 이력서 강의에서 질의응답 시간에 강사님이 WebView를 많이 사용하는 추세라고 하셔서 자세히 배워볼 필요가 있다고 생각하게 되었다.
컨디션 관리 실패?
- JetPack 스터디를 하면서 만든 웹툰 앱을 주말 안에 끝내고자 일요일 ~ 월요일 밤을 새버렸다... 한 번 오류가 나니 연달아 오류가 발생했고 오기가 생겼었다.
- 결국 수업 전 새벽 6시 정도까지 붙잡아 해결한 끝에 프로젝트 파일을 닫았다. 닫고 나니 약간의 후회가 밀려왔다. '오늘 일정도 있는데 너무 오기로 붙잡고 있었나'라는 생각이 들었고, 결국 이번주 내내 약간의 피곤함을 계속 달고 지냈다.
- 수업 시간에 졸고 그 정도까지는 아니었지만 뭔가 계속 '피곤하다'라는 느낌이 들었다. 학교 다닐 때 과제를 하거나 시험 공부를 할 때는 거뜬했는데 라는 생각도 들고...
- 하루 밤을 샜다고 이러는건지 그냥 피곤한건지 사실 잘 모르겠다.
📚 Learned (배운 점)
onSaveInstanceState와 onRestoreInstanceState
- Bundle을 사용하여 데이터를 저장한다. 저장한 데이터를 onSaveInstanceState()와 onRestoreInstanceState()를 사용하여 저장 및 복구할 수 있다.
- onSaveInstanceState()는 Activity가 onStop() 함수 다음에 호출되므로 Activity 종료 전에 데이터가 저장된다.
- onRestoreInstanceState()는 Activity가 onStart() 함수 다음에 실행되기 때문에 Activity가 실행된 후 데이터를 불러온다.
ListView와 RecyclerView
- ListView는 RecyclerView 대비 비교적 간단하게 구현할 수 있지만 Layout 커스텀이나 효율성 측면에서 RecyclerView가 더 낫다.
- ListView는 항복 View를 생성하여 Pool에 저장한다. 따라서 데이터를 항목 View에 넣어 보여주려면 Pool에 접근 - Pool에서 해당 항목 접근 - 해당 항목에서 View ID에 접근하므로 상대적으로 더 많은 절차를 거쳐야 한다.
- RecyclerView는 Adapter가 항목 View를 생성하고 이는 Holder가 관리한다. 따라서 Holder 접근 - 항목의 View ID에 접근하므로 ListView보다 적은 절차를 거친다. 따라서 메모리 효율과 속도 측면에서 RecyclerView가 더 좋다.
접근 방식 | Adapter의 역할 | Pool의 역할 | |
ListView | Pool에 접근 - Pool에서 해당 항목 접근 - 해당 항목에서 View ID에 접근 | 항목 View 생성 | 항목 View 저장 |
RecyclerView | Holder 접근 - 항목의 View ID에 접근 | 항목 View 생성, Holder 관리 |
화면에 항목을 보여줌 |
👩🏻💻 Longed for (앞으로 바라는 점)
클론 코딩 마무리
- Restful API를 사용하는 '컴공 선배' FLO 클론 코딩을 마무리 지을 것이다.
- 마무리 후 스터디에 집중할 것이다.
포트폴리오 대공사
- 강의를 듣고 보니 내 포트폴리오 탬플릿이 마음에 들지 않는다.
- 주어진 탬플릿으로 변경하거나 다른 탬플릿을 찾아 대공사를 해야할 것 같다.
'개인 회고' 카테고리의 다른 글
[개인 회고] 8주차 회고(6/23 - 6/29) (0) | 2023.06.29 |
---|---|
[개인 회고] 7주차 회고(6/16 - 6/22) (0) | 2023.06.23 |
[개인 회고] 5주차 회고(6/1 - 6/8) (0) | 2023.06.08 |
[개인 회고] 4주차(5/23 - 5/31) (0) | 2023.05.31 |
[개인 회고] 3주차 회고(5/16 - 5/22) (0) | 2023.05.23 |