정말 하나도 몰랐다. 심지어 내가 얼마나 모르는지도.
영한님의 모든 강의를 사고, 스프링 입문을 통해 본격적으로 "공부를 해야겠다"라고 생각한 계기는 한 교육생 덕분(?)이다.
내가 만든 코드에 대해 리뷰해 줄 수 있는 사람도 없었고, 단편적인 지식들의 종합으로 만들어진 코드를 보며 이만하면 됐지
하는 안일한 생각들만 가득했다.
그마저도, Spring Data JPA로 Develop을 진행하면서 나는 그래도 계속 발전하는 개발자야!
라는 안일한 생각도 가지고 있었다.
오만했다. 어리석고도 안일한 생각이였다.
교육생이 만든 코드를 보면서 처음으로 코드를 잘 짜면 이렇게 보이는구나
라는 생각을 가지게 되었고, 내 코드가 얼마나 나쁜 코드인지 알 수 있었다.
그리고 느낄 수 있었다.
정말 "개발자"가 되기 위해선 저렇게 성장해야하는구나. 라는 부분을.
지독하게 성장하고 싶다는 느낌을 받을 수 있었고, 너무나도 늦었다는 생각도 들게 되었다.
이런 생각들이 너무나 큰 자극이 되었다. 어떻게 성장해야하는지 모르는 나에게 이정표가 새로 생긴 것만 같은 느낌이였고, 당장 무언가 시작해야한다는 생각이 너무나 크게 들었다.
지금 바로 시작한다면 어떤 것을 해야 하나
라는 질문에 우선은 기본기를 채우고 가야겠다는 생각을 하게 되었다. 무엇보다도 기본기가 너무 부족했다.
그래서 우선 기본기를 채우기 위해 스프링에 관한 내용을 체득하고자 스프링 입문으로 시작했다.
수강 중 느끼는 부분들도 충격적이였다. 얼마나 지엽적인 지식들을 퍼즐처럼 짜맞추며 돌아가는 코드
에 집착했는지 뼈져리게 느낄 수 있었다.
스프링으로 API를 만들면서 사용했던 그 모든 Annotation들, 그 모든 코드들에 이유가 있었고, 아무 생각 없이 만들던 코드는 하나하나 이유가 있었다.
Spring Bean에 대한 내용을 들으면서 지금까지 생각하지 못했던 Dependency Injection의 의미를 알게 되었고, 왜 @Service
, @Repository
를 만들 때 @NoArgConstructor
를 붙이는지 알 수 있었으며, 수십번의 배포에서 Spring boot를 배포할 때 웹서버 없이 배포할 수 있는 이유를 깨닳았고, Spring Container가 Bean을 관리한다는 사실까지 모든 것을 새롭게 알게 된 느낌이였다.
신선했다. 내가 충분히 알지 못하는 것을 교육생인 누군가는 모두 체득하며 사용하고 있었고, 이제야 이런 내용들을 이해하기 시작했다는 것이.
뭐 그래서...
어쩌겠나... 열심히 해야지.
이정표도 생겼고, 어떤 것을 어떻게 공부해야 하는지도 느꼈으니, 이제 그냥 열심히만 하면 될 것 같다.
정말 오랫만에 공부를 하고 싶다는 느낌을 받는다. 공부를 해야만 한다는 느낌도 받는다.
호락호락하진 않지만... 나도 호락호락하지 않으니까.