Archives
Recent Posts
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[개인 회고] 6주차 회고(6/9 - 6/15) 본문

개인 회고

[개인 회고] 6주차 회고(6/9 - 6/15)

Wise-99 2023. 6. 16. 06:19

🌟 이번 주 목표 🌟

  • [ 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 클론 코딩을 마무리 지을 것이다.
  • 마무리 후 스터디에 집중할 것이다.

포트폴리오 대공사

  • 강의를 듣고 보니 내 포트폴리오 탬플릿이 마음에 들지 않는다.
  • 주어진 탬플릿으로 변경하거나 다른 탬플릿을 찾아 대공사를 해야할 것 같다.