본문 바로가기
728x90
반응형

공부방법

개발지식 또는 기반지식이 많이 필요한 분야에서 공부방법은 크게

- Top Down

- Bottom Up

가 있다

구글에 질문했더니 AI(아마 잼미니)가 이렇게 답해줬다

 

Top Down

개인적으로 Top Down은 책 한권이 있을때 당장 내가 필요한 챕터만 뽑아서 보는 것이 아닐까하고 생각한다

혹은 두꺼운 전공서적을 읽기보다는 Practical 위주로 적힌 얇은 책을 보는 것

 

Bottom Up

개인적으로 Bottom Up은 책 한권이 있을때 p.1 ~ p.EOF 까지 다 보는 것이 아닐까하고 생각한다

혹은 Practical 위주로 적힌 얇은 책을 보는 것이 아니라 두꺼운 전공서적을 읽는 것

 

Versus(VS)

그래서 둘 중에 뭐가 좋은가?에 대한 답은 없다

둘 다 혼용해서 공부해야 된다

그리고 현재 자신이 처한 상황에 맞는 공부법을 택하면 된다

 

From my point of view(제 생각에는)

나한테는 Bottom Up이 현재 state에도 맞고, 내 성격에도 맞다

나는 책을 사면 목차부터 시작해서 추천사 순서로 읽고 맨 마지막에 Index 페이지도 보는 편이다

최근 쿠버네티스 공부를 시작하게 되었는데, 2023년에는 리눅스와 도커 공부를 했었다

결국 도커는 리눅스를 잘 Wrapping해서 Feature와 Interface를 만든 것이라 생각하고

쿠버네티스는 도커와 도커엔진의 영감으로 나온 Container Orchestration이라 생각한다

내부적으로 자원을 아끼기 위해 포인터가 살아있고 병렬처리 등에 강점이 있는 Go 언어로 구현한게 아닌가싶다

 

변하는 것과 변하지 않는 것

대 AI의 시대를 살고 있는 2024년 3월 현재에도 수많은 소프트웨어들이 나오고 사라지고를 반복한다

어떤 킬러피쳐를 갖고 있는 미들웨어나 컴포넌트라 할지라도 CS지식 위에서 구현된 제품이라 생각한다

그런 관점에서 변하지 않는 것은 CS(Computer Science)이고, 변하는 것들은 그 지식을 활용해서 나오는 제품이다

ex) 비교적 최근에 나온 프론트엔드의 monorepo도 OS(대체적으로 linux)의 symbolic link 지식을 활용한다

 

잘 모르겠는 분들..

종종 시장에서 알아주는 기술을 사용하거나 최신 기술을 사용한다고 어깨나 콧대가 높아져 있는 분들을 마주할 때가 있다

 

----------------------------------

"리액트 개발자"

"쿠버네티스 자격증 보유"

"플러터 개발자"

"Rust 써봄? 난 써봄ㅋ"

"Mybatis? 요즘은 다 JPA쓰는데...?"

"Kotlin Springboot쓰지, 누가 요즘 Java를?"

----------------------------------

 

Angular나 Vue도 충분히 성숙도 있는 프레임워크(라이브러리)이다

쿠버네티스를 잘 다루기 전에 도커, 리눅스 지식이 있는가

-> 그럴 일은 절대 없겠지만 만약에 쿠버네티스를 사용하지 못하게 된다면 도커 혹은 리눅스 명령어 사용만으로도 비슷한 환경을 구축할 수 있는가

Kotlin을 Java스럽지 않게 사용하고 있는가, Kotlin을 Kotlin스럽게 사용하고 있는가

 

잘 래핑된 기술 또는 프로프램을 다루는 방법을 안다고 해서 아직 그 기술을 사용한 적이 없거나 Bottom-Up으로 공부하고 있는 다른 분들을 무시하지는 않았으면 좋겠다!

2000-2010년대에 JSP, PHP, ASP, Ruby on Rails로 개발한 분들의 깊은 지식이 javaScript + React를 쓰는 누군가보다 훨씬 더 뛰어날 수 있다

 

그래서

나는 운이 좋은 편이다. 아직 주니어이기때문이다

회사가 나에게/나의 연차에 기대하는 바가 테크리드 급은 아니기 때문이다

다 각자의 context에 따라서 공부방법을 택하게 된다

나는 작년에 리눅스를 어느정도 공부할 수 있었고, 도커도 swarm까지는 아니더라도 어느정도 다룰 수 있게 되었다

이제 내가 공부해야 할 부분은 OS, Network, Kubernetes 이다

 

kubernetes & kafka

회사에서 k9s, kubectl 등을 통해 파드의 상태를 보고 manifest를 본다던가 log를 보고 트러블슈팅을 한다던지 하는건 조금 해봤지만

쿠버네티스를 깊게 공부해본 적이 없어서 이제 이놈을 공부해볼 시간이고, 다룰 줄 알아야 하는 context를 갖게 된다고 느꼈다

유데미에서 뭄샤드 형님의 강의를 끊기도 했고, 유튜브에서 따라하면서 배우는 쿠버네티스를 보기도 하고 실물책 혹은 E-book책을 구매했다

각 책마다 프로비저닝 하는 방법부터 시작해서 운영방법, 배포방법등이 비슷하면서 다르게 나와있는 것 같았다

유튜브의 따배쿠

내가 조금 안다고 싶을 때가 다시 개념을 잡을 때라고 생각한다

퇴근하고 졸업한 학교 도서관을 들려서 내가 모르는 것을 알거나, 잘못 알고 있는 부분을 올바르게 알게 되고, 원래 알고 있던 부분을 탄탄히 다지는 시간을 가졌다

길지 않은 시간을 집중해서 공부하고..

 

그리고 집에 와서는 인프런에서 결제한 데브원영님의 카프카 강의를 보는 중이다

회사에서는 이미 Kafka-ui와 schema-registry 등을 띄워서, Connect에 기본적으로 제공되어 있는 Connector를 붙이거나 Custom Connector를 구현하거나 Kafka Streams를 활용중이다

하지만 올바른 클러스터 관리, 고가용성/복원력을 확보하기 위한 설정 등에 대해서는 잘 모른다

이럴 때 강의는 좋은 선택지라고 생각한다

 

IAM

아마존이 아닌.. 단순히 I am이다

나는 현재 주니어~미들레벨이다

사실 지금은 WAS, MVC/WebFlux, WEB, ORM, 트랜잭션 lock/동시성 제어, 읽기 좋은 코드를 작성하는 방법

이런 것들을 봐야 할 짬이 아닌가 싶다

하지만 현실이 날 가혹하게 대한다...

하루빨리 이런 기반지식들을 공부하고 습득해서 잘 사용하고 싶다

 

728x90
반응형

댓글