자바라는 언어의 영역 자체가 워낙 방대하기 때문에, 혼공자 책만으로는 얻을 수 있는 지식에 한계가 있다고 생각합니다.
한 번 서점에서 혼공 브랜드 책들을 읽어본 적이 있는데, 확실히 입문서의 느낌을 강하게 받았습니다. 개인적으론 질문자분이 코딩에 대한 전반적인 지식이나 이해가 다소 부족하시다면 위와 같은 입문서는 적절한 선택이라고 생각해요. 비록 입문서가 전달하는 지식의 한계는 있겠지만, 공부에 있어서 가장 중요한 흥미를 얻을 수 있습니다.
공부를 하시다보면 기본적인 JAVA 문법이나 자바가 가진 고유한 특징에 대해 익히게 될 겁니다. 이는 JAVA를 다루기 위한 초석이라 할 수 있으며, 질문자분이 하실 건 초석 위에 무엇을 만들지를 결정해야겠죠.
자바의 정석 같은 탄탄한 서적을 읽는 것도 물론 좋지만, 그 전에 질문자분이 필요로 할만한 무엇인가를 JAVA로 만드는 방법이 좀 더 좋지 않을까 합니다.
보통 JAVA는 웹 혹은 CLI 프로그램에 사용됩니다. 질문자분이 일상생활 혹은 업무를 함에 있어서 프로그램을 사용해 처리할만한 주기적이고 귀찮지만 단순한 업무들이 있다면 이를 처리하는 프로그램을 만들어보세요. 직접적으로 본인이 배운걸 활용하면서도 본인의 생활에 만족감을 줄 수 있기 때문에 동기부여에 굉장히 효과적입니다.
저 같은 경우, 코로나 바이러스로 상시 자격증 자리가 없어서 자격증 자리를 확인하는 매크로를 만들어서 썼던 적이 있었습니다. 본인이 개발자이면서 동시에 사용자가 되므로, 정확히 무엇을 구현하고 설계해야 하는지에 대한 가이드라인이 잘 잡히기 때문에, 난이도만 적절하다면 굉장히 재밌는 개발을 하실 수 있으실겁니다.
마땅한 아이디어가 없다면, 클론코딩도 좋은 방법입니다. 클론코딩이란, 이미 기존에 개발된 서비스 혹은 프로그램을 똑같이 따라 개발하는 방식입니다. 책을 보고 소스코드를 똑같이 치는 것도 일종의 작은 클론코딩이라 할 수 있습니다.
클론코딩의 장점은, 기업에서 퍼블리싱한 서비스의 구조가 어떤식으로 이루어져 있는지, 특정 기능을 개발할 땐 어떤 식으로 구조를 설계하고, 코드를 기술하는지에 대한 노하우를 엿볼 수 있습니다. 실제로 개발하시면 아시겠지만, 어느정도 코딩에 익숙해지면 코딩보다도 훨씬 어려워지는 것이 설계분야입니다. 코딩에 감이 잡히게 되면 코드야 어떻게든 짜면 되지만, 구조가 꼬여버리면 진행할수록 난감해지는 상황이 발생합니다.
이러한 관점에서 볼 때, 잘 설계된 서비스의 클론코딩은 코딩 뿐만 아니라 서비스의 구조, 설계방법론 등을 엿볼 수 있는 좋은 방법입니다. 단, 생각없이 따라만 치는 경우 별다른 결과를 얻지 못 하실 겁니다. 또, 클론코딩 대상을 찾을 땐 반드시 본인의 수준과 비슷하거나 살짝 높아보이는 주제를 선택하세요. 너무 난해하고 복잡한 주제는 흥미와 동기를 저하시킵니다.
클론코딩을 하실 땐 "된다"에 초점을 맞추지 마시고 "왜?"에 초점을 맞추시기 바랍니다. 클론코딩을 제대로 하시다보면 어느새 본인 스스로 기존의 서비스에 자신의 가치관을 더 녹인다던가, 불편사항을 개선하는 모습을 보실 수도 있습니다.
어떤식으로든 진지하게 공부하고 개발하시다보면 여러 길이 보입니다. 모든 언어가 그렇듯, 해당 언어를 효율적으로 활용하기 위해선 부가적인 다른 언어의 소요가 발생하기도 합니다.
예를 들어, 자바를 하다보니 웹이 하고싶다. 그럼 기본적인 HTML, CSS, JS를 공부하게 되실겁니다. 그러다보면 좀 더 체계적인 아키텍쳐를 위해 Spring Framework를 공부하실 수도 있겠죠. 아니면 멋지고 모던한 UI를 만들고 싶나요? Vue나 React가 궁금해지실 겁니다. 물론 기본에 공부했던 내용들이 있을테니, 다음 언어, 그 다음 언어의 장벽은 더욱 낮아지실 겁니다.
지금 당장은 갈 길이 멀어도, 꾸준히 하시다보면 차츰 성장하는 자신을 보실 수 있으실겁니다.
그럼 힘내세요.
아님 말고
- dc official App
오키글이네
읽기 조까따