240229 TIL - 학습 방향

DoDoBest

·

2024. 2. 29. 22:32

오늘 학습한 내용

  1. 코트카타, Leetcode Daily Problem, Dynamic Pogramming Course
  2. SOLID 원칙 개념 학습
  3. Jetpack Compose Tutorial 1-6. Implement a real-world design
  4. Udemy 안드로이드 강의
  5. 안드로이드 구현 연습
    - "MVVM 클린 아키텍처 구조에서 SharedPreferences는 UI 모듈에서 싱글톤 형태로 관리해도 될까? 혹은 Data 모듈의 Repository를 통해서만 접근하도록 막아야 할까?" 고민을 했는데, MVVM + 클린 아키텍처에 대한 학습을 좀 더 한 후 다시 생각해보기로 했다. 이러한 고민을 하게 된 이유는 Glide를 통해 이미지를 로딩하고 캐싱할 수 있는데, Presentation 모듈에서 SharedPreferences를 관리하는 것과 같은 맥락이 아닐까? 라고 생각해서다.
  6. 앞으로의 학습 방향에 대한 고찰

 

학습 방향에 대한 피드백

기존에 학습에 대한 나의 생각은 아래와 같았고, 이에 대해 현업 개발자 분들이 계신 단톡방에 질문을 드렸다.

저는 어떤 라이브러리나 기술을 사용하기 전에 내부 코드까지 보면서 이해를 선행하고 쓰려는 경향이 있습니다. 예를 들어, 지금 Media3에 대해 깊이 있게 학습하려는 것과 같이요.

이렇게 학습하게된 이유는, 회사에서 서류에 적는 "기술"이라 함은 단순히 간단하게 사용하는 방법을 아는 것이 아닐 것이라고 스스로 생각했습니다. 회사가 원하는 것은 공식 문서나 구글에 검색해도 나오지 않는 상황을 해결하기 위해 내부 코드에 대한 이해를 기반으로 스스로 해결할 수 있는 능력이라고 생각했습니다.

이전에 타 부트캠프에 참여하면서 이 생각을 기준으로 스스로 학습을 했었습니다. 하지만 스스로 그러한 내부 원리를 이해하기란 어려웠고, 그 결과 학습하는 데 시간만 많이 쓰고 남은 것은 없는 상태가 됐습니다. 그래서 제 서류에 마땅히 SKill, 기술이라고 적을 내용이 없었고, 그 결과 모든 지원에서 서류 탈락했습니다.

그래서 저의 학습 방향이 잘못되었다는 것을 인지했지만, 너무 딥하게 학습하지 않으려고 할 때마다, 또 다시 이전의 생각이 들면서 같은 행동을 반복하고 있습니다.

혹은 이렇게 학습해도 좋으나, 그 방향이 잘못된 걸까요? 이전에 Retrofit에서 왜 interface를 사용하는지 여쭤본 후, 관련 내용을 학습한 블로그 글을 올렸었는데, 그 정도까지만 학습하면 될까요?

회사가 신입 개발자에게 요구하는 서류에 적을 수 있는 "Skill", 스킬의 기준은 무엇인가요?

 

많은 분들의 답변을 통해 Skill, 기술은 라이브러리의 내부 코드와 동작에 대한 이해가 아님을 알게 됐다. 중요한 것은 라이브러리의 기반이 되는 Java, Kotlin 언어의 특징을 이해하는 것, 라이브러리가 사용되는 상황과 관련된 CS 적인 개념을 아는 것, 어떤 상황에서 안드로이드는 어떻게 동작하는지에 대한 실행 경험과 지식이다.

받은 답변을 기반으로 아래와 같이 학습 방향을 바꾸려고 한다.

 

1. 안드로이드를 구현하면서 필요한 라이브러리가 있을 때, 다른 라이브러리와 어떤 차이가 있는지 확인한다.
2. 그 차이는 Kotlin, Java의 어떤 언어적 특성 때문인지 알아본다.
2-1.해당 Kotlin, Java 개념이 무엇인지 학습한다. [ ★★여기에 시간 많이 사용하기, 많은 키워드를 뽑아내서 학습하는 것이 중요 ]
2-2. 해당 개념을 예제로 직접 작성해보면서 익힌다.
3. 선택한 라이브러리를 가이드에 따라 사용한다. [ 내부 코드까지 보지 말고 사용만 하기 ]
3-1. 라이브러리 기능에 대한 CS 개념을 찾아보고 학습한다. ex) media3 -> 영상의 인코딩/디코딩
3-2. 라이브러리를 사용하는 상황을 가정해서, 학습하고 실행해서 결과로 정리한다. ex) 영상은 화면이 보이면서 처리되어야할까? 아니면 화면이 보이지 않고도 처리가 가능할까? [ ★★여기에 시간 많이 사용하기, 많은 키워드를 뽑아내서 학습하는 것이 중요 ]
4. 정말 필요한 순간에만 라이브러리 내부 코드를 확인한다. [ 이러한 순간은 정말 많지 않으므로, 발생하지 않은 상황 때문에 학습하지 않는다. ]

+ 라이브러리를 사용하지 말라는 구현 과제 요구사항이 나오면, 기존 라이브러리의 코드를 참고하자

 

내일배움캠프 1주차 후기

이전에 교육 프로그램에 참여했음에도 다시 부트캠프에 참여한 이유는 독학 과정에서 나의 학습 방향에 대한 의문이 계속 들었고, 학습한 내용과 알고 있는 내용에 오개념은 없는지 확인할 방법이 없었다. 그래서 튜터 분들이 학습 시간 내에 항상 상주한다는 것을 보고 지원했다.

1. 튜터 분들에게 질문을 하면서 나의 학습 방향을 계속 조정하고 있다. 여러 튜터 님들이 시간마다 계시기 때문에, 다양한 분들의 의견을 들을 수 있어서 좋았다. 또한 오늘 학습 방향에 대한 갈피를 잡아서 매우 만족한다.

2. 오개념을 잡을 수 있어서 좋았다. 예를 들어, ViewHolder가 callback 형태로 ViewModel의 함수까지 전파되는 과정이 잘못되었음을 배울 수 있었으며, MVVM과 클린 아키텍처에 대한 오개념을 발견하고, 다시 학습해야 함을 인지하게 됐다.

 

여유 있는 지금, 더 열심히 학습해서 안드로이드 학습 주차에 양질의 질문을 할 수 있도록 할 것이다.

'TIL' 카테고리의 다른 글

240304 TIL  (0) 2024.03.04
1주차 KPT  (0) 2024.03.04
240228 TIL  (0) 2024.02.28
240227 TIL  (0) 2024.02.27
240226 TIL  (0) 2024.02.26