이 글 하나면 끝, SQL 입문부터 코딩테스트까지 완전 정복하기
datarian.io
최근 내가 나아가고 있는 공부 방향에 대해서 깊은 고민을 하게 되었었다.
기본기에 대한 중요성을 인지하고, 이제 그것을 프로젝트에 녹여낼 수 있을지에 대해서 오랜 시간의 고민 끝에 일부이지만 답을 찾고나서는 내 스스로가 실력이 많이 향상되었다라고 생각하였다. 하지만 그것이 나의 착각은 아니었을까? 나는 잘못된 방향으로 계속 나아가고 있었던 것은 아닌가에 대해서 고민을 하였었다.
흥미로운 주제들을 발견하면 해당 주제에 대해 알아본 후 온전히 이해하고 있는지 스스로 자문자답을 하고는 한다. 그러면서 기존에 알고 있었던 지식들과 연결지어보며 점검을 하고는 한다. 이러한 과정을 통해 기존에 내가 이해하고 있었다고 착각을 하였던 지식들을 발견하게 되고, 이러한 지식들을 수정해나가면서 기본기를 다지고 있다.
혹은 학습을 함에 있어, 내가 알지 못하였던 혹은 제대로 이해하지 못하고 넘어갔던 지식들에 대해서 이해를 하게 되고, 기존에 배웠던 것을 복습을 행했을 때 기존과 비교하여 이해가 더 풍성해짐을 느끼고 있다.
그렇지만 요즘은 AI가 점점 발달되어질수록 이러한 행동의 의미가 희석되어지는 것은 아닌가 느껴진다. 최근에는 LLM을 이용하여 이러한 궁금증을 쉽고 빠르게 해소할 수 있게 되었기에, 내가 기존에 학습하였던 방법은 시간이 다소 오래걸리는 방법이다보니 시간을 효율적으로 사용하지 못하고 있는 것은 아닌지 생각해보게되었다. 또한 취업을 하여 돈을 벌어야 하는 만큼... 이러한 방식으로 학습을 하는 사람을 고용주 입장에서는 원하지 않을 수도 있겠다 혹은 필요로 하는 경우가 적을 수도 있지 않을까 생각을 해보았다.
최근 이러한 고민이 나를 괴롭게 하였고, 혼자서는 답을 찾기가 힘들다고 판단하였기에 주변 존경하는 시니어 지인들과 대화를 나누어 보았다.
그들의 이야기를 짧게 요약해보면 다음과 같다.
현재 나의 학습 방향에 대해서 잘못되었다라고 생각하지는 않는다. 오히려 요즘 같은 AI에 의존적인 시대에서 보기 드문 사람이라고 생각한다. 다만 염려되어지는 부분은 AI의 활용을 덜 하고 있는 것은 아닌지 생각이 되어진다. 학습 방법적인 측면에서 시간을 더 적게 쓰면서도 원하는 공부를 찾을 수 있을까가 중요한데, 지금과 같은 방식은 깊이있게 학습은 가능하지만, 그만큼의 시간을 소모하게 된다. 이러한 점을 고려하며 학습 방법을 수정하면 좋을 것 같다.
AI 시대를 바라보았을 때 AI 자체는 러닝커브를 줄일 수 있게된다. 다만 코드 체인지를 봤을 때 이것이 잘 짠 코드인지 즉, 확장성을 포함한 부분에서 아닌지를 판단할 수 있어야한다. 그렇지 않을 때 개발자로써의 가치는 없다라고 본다.
밸런스를 얼마나 잘 잡는가도 중요하다. 한 영역에서만 뾰족해지는 것은 오히려 좋지 않을 수 있다. 편식함 없이 성장이 골고루 되어야하는데, 한 쪽만 뾰족해지는 것은 아닌지 걱정이 된다. 즉 이는 시간 분배도 중요함을 의미한다. 진도를 어느정도 진행시키는 기준안에서 깊이를 추구하는 것이 중요하다.
최근에 나는 네트워크와 파일과 커널의 관점, 이에 따른 커널 쓰레드의 상태와 드라이버의 관계에 대해서 학습을 진행하고 있다. 이러한 학습을 진행할 때 디바이스 드라이버에 대한 이해가 부족하여, 커널 쓰레드의 상태(이 중 I/O를 하게되면 BLOCK일 경우 Waiting이 되고, 후에 인터럽트로 작업을 진행하여야 할 시점을 알려준다.)에 대해서 계속 오해를 하게 되었었다. NIO의 경우 결국 I/O 작업을 하는 것은 커널 쓰레드가 Waiting이 될텐데, 그러면 이게 BIO랑 차이가 뭐지 왜 톰캣은 NIO를 디폴트로 설정하였을까 라면서 고민을 하였으나, 결국 요청은 커널 쓰레드가 하고, 실질적인 I/O 작업은 디바이스 드라이버를 통해 한다는 것을 이해하고나서야 정리가 됨을 느끼곤한다.
이제서야 멘토님이 말씀해주신 애플리케이션 서버에서의 꽃은 운영체제라고 얘기하셨던 것이 공감이 된다.
위에 내용을 포함한 여러 내용들을 학습을 하다보니 나의 운영체제 지식이 상대적으로 부족함을 느끼고는 운영체제 또한 재학습 하고 있는 중이다. 이제 네트워크와 운영체제 학습을 목표치만큼 끝낸다면 위의 조언들을 고려하여 CS에 대한 학습은 잠시 멈출 생각이다. 이 후에는 다시 Java와 웹에 대한 학습을 진행해나가며 여러 기술들도 배워나가보고자 한다. 또한 그동안 학습이 소홀하였던 인프라에 대해서도 진행을 해볼 생각이다.
지인 분들의 귀중한 시간을 나에게 할애하여 여러 대화를 나누어 보았으나 아직은 나도 뚜렸한 답을 모르겠다. 그저 지금보다 더 낫은 개발자가 되고 싶은 생각만을 갖고 있다. 언젠가 시간이 흘렀을 때 지금 이러한 고민이 추억으로 남겨지기를 바라보며 글을 마쳐본다.
다음 내용이 궁금하다면?
이미 회원이신가요?
2025년 6월 15일 오전 12:36
In the exciting Geometry Dash Lite rhythm and reaction test, find out how each jump exactly corresponds to heart-pounding rhythms! https://geodashlite.io
안
... 더 보기우
... 더 보기