Experience/2022's Experience

15주차간의 온라인 자바 기초 스터디를 마치며...

ikjo 2022. 11. 7. 03:01

마스터즈 코스 수료 후 시작하게 된 자바 스터디

7월 3주차를 시작으로 11월 1주차까지 약 15주간 진행되었던 자바 스터디가 드디어 모두 종료되었다. 이번 자바 스터디는 1~2년 전 백기선님이 온라인상으로 공개적으로 진행했었던 자바 스터디를 카피하여 일부 마스터즈 코스 수료생들과 함께 진행한 것으로, 매주차별로 자바의 특정 주제에 대한 핵심 키워드를 중심으로 자기 나름대로의 방식대로 정리하면서 스터디원들과 공유하는 방식으로 진행되었다.

 

올해 목표 중 하나가 '자바의 정석 정독하기'도 있었고, 사실 그동안 별다른 자바 학습 없이 그때그때 필요한 지식들을 위주로 구글링하기만 했었기에 개인적으로 느끼기에 자바에 대한 이해가 부족한 상태라고 판단했었던 터라 마스터즈 코스 수료 후 수료생들과 함께 자바 스터디가 진행된다고 했을 때 무척 반가웠다.

 

 

스터디에 많은 도움이 된 마스터즈 코스에서의 경험

개인적으로 느끼기에 자바 스터디에서 주어지는 학습 키워드들을 학습하고 이해함에 있어서 마스터즈 코스에서의 경험들이 정말 많은 도움이 되었다고 생각한다. 마스터즈 코스 이전에 나는 자바의 정석 조차 읽기 버거웠던 수준이었다.

 

자바의 정석이라는 책을 처음 샀었던 게 작년 12월 정도였는데, 당시에 자바의 정석을 읽을 때만 하더라도 책에서 다루는 내용들이 나에게 있어 와닿지가 않는 기분이 많았다. 그도 그럴 것이 자바 기초에 대해 제대로 학습했었던 적도 없었을 뿐만 아니라, 순수 자바만을 이용하여 어떠한 간단한 프로그램 조차 제대로 구현해본 경험이 없었기 때문이었다. 부스트 코스 '웹 프로그래밍(풀스택)' 과정을 꾸역꾸역 따라가면서 (스프링 MVC를 사용하면서) 그때 그때 필요한 지식들만 속성으로 학습했었던 것이 전부였다.

 

그러던 중 운이 좋게 6개월간 진행되는 마스터즈 코스 웹 백엔드(Java) 과정에 합류할 수 있게 되었고, 해당 과정을 통해 순수 자바만을 이용하여 여러가지 프로그램들을 구현해보는 경험들을 할 수 있었다. 그리고 처음 구현하던 당시에는 다소 무지성(?)으로 기능 구현만을 생각하면서 프로그래밍을 했었으나, 프로그래밍을 하면 할수록 아울러 동료 수강생들의 코드와 나의 코드를 비교해보고 리뷰어들의 피드백들을 통해 점차 나의 부족한 점들을 발견해나갈 수 있었다.

 

마스터즈 코스에서의 6개월이라는 시간을 놓고 보았을 때 자바 프로그래밍을 제대로 했었다고 말 할 자신은 없지만, 해당 과정을 통해 나에게 절대적으로 부족했었던 자바 프로그래밍 자체를 많이 경험해볼 수 있었던 것이 큰 수확이었다. 더욱이 내가 무엇이 부족한지를 인지할 수 있게 되었던 것도 큰 수확이었다.

 

이렇게 6개월간 마스터즈 코스에서 자바 프로그래밍을 한 경험이 있어서인지 수료 이후에는 자바의 정석을 처음 읽었을 때와 비교하여 확연히 책들의 내용들이 와닿기 시작했다. 한 때는 "이 책을 언제 다 읽지?"라는 생각이 많았는데, 수료 후 15주차간의 자바 기초 스터디를 병행하면서 979page라는 전체 내용을 완독할 수 있었다. 아울러 자바 스터디간 주어지는 과제들을 수행함에 있어서도 해당 내용들을 이해하는데 많은 도움이 되었다.

 

(마스터즈 코스와 별개로 알고리즘 문제를 자바로 푸는 것 역시 나름대로 자바를 이해하는데 도움이 되었다고 생각한다.)

 

 

자바 스터디에서 배울 수 있었던 것들

우선 해당 스터디는 중급~고급 수준의 자바 프로그래밍을 배우는 것이라기 보다는 자바 프로그래밍을 하면서 알아야 할 여러 주제들과 이와 관련된 핵심 키워드들에 대해 학습하는 등 자바의 기초를 다지는데 의의가 있었다. (정확하게는 학습자가 해당 주제에 대해 얼마나 깊이있게 학습하는지에 따라 수준이 각기 다를 것 같다. 😅)

 

주차별로 학습해야할 키워드들이 주어지고 이에 대해 자기만의 방식대로 정리하면서 학습한다.

 

만약 자바 스터디를 하지 않고 자바의 정석만 읽었었다면 자바 기초를 좀 더 깊이 학습하기가 어려웠을 것이라는 생각이 든다. 자바 스터디에선 주차별로 특정 주제에 대한 학습 키워드들을 자기 자신만의 방식대로 정리하면서 학습을 하는데, 나 같은 경우에는 여러 사람들이 볼 수 있는 블로그에 해당 내용들을 정리했었기에, (잘못된 내용들을 적으면 안되기에) 해당 내용에 대해 내가 제대로 알고 있는 것이 맞는지 신중하게 고민해보면서 작성하게 되었고 이를 통해 좀 더 깊이있게 학습할 수 있었던 것 같다. 이 과정에서 내가 안다고 착각했었던 것들도 다시 한 번 되짚어 볼 수 있었다.

 

또한, 그동안 알지 못했었던 많은 기술 키워드들을 접해볼 수 있었기에, 해당 지식들을 공부하면서 자바를 좀 더 깊이 있게 이해할 수 있었다. 자바 스터디를 하지 않았더라면 앞으로 프로그래밍을 하는데 있어 이러한 키워드들 조차 모른채로 개발하게 되었을 것 같다는 생각이 든다. (여담이지만 백기선님이 엄선하신 학습 키워드들이니 뭔가 신뢰가 간다. 🤣)

 

개인적으로 느끼기에 이번 자바 스터디를 통해 얻은 가장 큰 수확은 '자바를 학습하는 방법'에 대해 배운 것이 아닐까 생각이 들었다. 이전에 학습법은 단순히 구글링을 하여 이미 잘 정리된 기술 블로그를 찾아보거나 자바의 정석 같은 관련 서적들을 읽어보는 것이 었는데, 특히 이번 스터디를 하면서 자바의 공식 문서를 읽는 일이 많았던 것 같다. 자바 공식 문서는 당연히 영어로 되어있긴 하지만 😂 해당 내용들을 천천히 해석해서 읽어보면 자바를 깊이 있게 이해할 수 있는 좋은 내용들이 많았다. 무엇보다 자바 공식 문서에 적혀 있는 내용들이라 의심하지 않고 받아드리기 충분했다.

 

자바 공식 문서 뿐만 아니라 Baeldung, geeksforgeeks 등 해외 유명 웹 사이트를 참고해보는 것도 많은 도움이 됐다. 마찬가지로 영어로 되어있긴 하지만, 특정 주제에 대해 심도있게 다룬 글들이 많아 깊이 있게 학습해볼 수 있었다.

 

구글링을 함에 있어 영어로 된 글들에 대해선 다소 거부감이 들곤했었지만, 자바 스터디를 통해 영어로 된 글들에 대한 특히, 공식 문서에 대한 인식이 많이 개선되었던 것 같다. 이는 자바 뿐만 아니라 앞으로 프로그래밍을 학습하는데 있어 많은 도움이 될 것 같다는 생각이 든다.

 

자바 스터디를 시작하게 전에는 기술 블로그에 자바와 관련된 글이 4개뿐이었는데, 자바 스터디를 마친 현재 자바와 관련된 글이 23개로 늘었다. 🎉

 

 

'Technology/Java' 카테고리의 글 목록

한 번 보고 안 것은 얼마 못 가 남의 것이 된다. 하지만 피땀 흘려 노력한 결과물은 평생 내 것이 된다. 🏃‍♂️

ikjo.tistory.com

 

이렇게 기록으로 남기면 좋은 것이 내가 학습했었던 것들을 까먹더라도 내가 찾아보고 싶을 때 금방금방 찾아볼 수 있다는 점이다. (내가 정리한 내용은 아무래도 덜 까먹어지기도 하다.) 아울러 내가 작성했었던 글이기 때문에 아무래도 내가 읽고 이해하기에는 좀 더 유리한 감이 없지 않아 있기도 하다. 😅

 

 

앞으로의 자바 학습 계획은?

이번 자바 스터디를 마쳤다고 해서 내가 자바 중급 개발자가 되었다곤 생각하지 않는다. 아직 나는 초급 개발자에 있으며, 앞서 언급했듯이 이번 스터디는 자바 기초를 학습하는데 의의가 있었다고 생각하기 때문이다. 이제 중급 개발자로 도약하기 위해선 지금까지 배워왔던 것들을 실전에서 적극 활용해볼 수 있는 수준에 도달해야한다고 생각한다.

 

운이 좋게도 최근 프로젝트를 추진 중에 있어, 앞으로 직접 개발할 기회들이 많아졌다. 마스터즈 코스에선 기능 구현에 초점을 맞춰 코드를 작성 했었다면, 이번 프로젝트에서는 보다 더 나은 (가독성, 유지보수 등) 퀄리티의 코드를 작성하고싶은 욕심이 있다. 이번 15주차간의 자바 스터디와 자바의 정석을 정독한 것은 실전(프로젝트)에 앞선 워밍업이라는 생각이 든다.

 

또한, 이번에 자바 스터디를 진행하면서 참고했었던 이펙티브 자바의 내용을 나의 지식과 경험으로 습득하고 싶다는 욕심도 든다. 이펙티브 자바는 단순히 특정 키워드에 대한 설명을 다루기 보다는 자바 프로그래밍 시 많은 베스트 프랙티스를 제공해주기 때문에 현재 자바 기초 학습을 마친 이후에 학습하기 더할 나위 없겠다는 생각이 들었다. 아울러, 더 나은 OOP를 위해 조영호님의 오브젝트라는 책도 얼른 섭렵해야겠다는 생각이 든다. (앞으로 해야할 게 태산이다. 🤣)