방학동안 여러 프로젝트를 진행하려 했지만, 중간에 기본적인 CS 지식이나 트레이드 오프에 대한 관점이 뚜렷하지않아서 하나의 토이 프로젝트를 마치고 개인 공부를 불태웠다.
얻은게 많은 만큼 참 짧은 한 해였다.
처음에는 무작정 많이 만들어보자는 생각을 많이 했던 것 같다. 이 개념이 나한테 들어오는지도 들오지않는지도 신경쓰지않고 만드는 것에만 의의를 두면서 한해를 보냈던 것같다.
이 것이 문제가 될 줄은 꿈에도 몰랐다... 허허
사용해본 것이 많은 만큼 부족한 부분도 많았고 최적화나 부하에 대한 개념을 이해할 때, 실질적으로 적용할 수 있는 내용이 거의 없었다. 쉽게 말해서 기초 가 부족했었다는 것이다. 이러한 과거 회상을 기반으로 회고록을 작성해 보려고한다.
내 개발 관점이 바뀌게 된 포인트가 올해 존재한다고 당연 확신할 수 있다.
단순히 이런 생각들이 해커톤을 한 이후에 많이 들었던 것 같다.
좋은 프로젝트를 만들려면 기반에 대해서 이해하고 그 것을 토대로 최적화할 수 있는 방법에 대해서 이해해야하고, 또한 내가 만든 프로젝트가 안정성 있는지 확인하기 위해서는 부하에 대해서 견딜 수 있는지 확인을 해야하는데 그러한 호기심에서부터 시작된 머릿 속 질문들을 해결하기 위해서 많은 인터넷 방황을 하며 정보를 찾았고 내가 가야할 방향을 잡을 수 있게 되었다.
터닝포인트 중에 하나는 스프링부트를 처음 사용하면서 배우는 과정에서도 느꼈던 것 같다. 하나의 프레임워크에 조합으로 프로그래밍을 하다보니 단순한 작업은 일련의 프레임워크 내에 존재하는 라이브러리의 집합이였고, 이는 내가 성장하는 것에 걸림돌이 되었다.
걸림돌을 극복하기 위해서 내부적으로 도대체 어떻게 소통하고 내가 어떻게 커스텀마이징 할 수 있는지 생각을 했고, 해당 생각이 좀 더 좋은 코드를 만드는데 한 몫했다고 생각한다.
작은 에피소드 ( ep. spring security 참 .. 어려운 녀석)
내가 스프링을 통해서 프로젝트를 진행하려고했는데, Spring Security를 통해 세션 쿠키를 통한 인증 방식을 구현하려고했다. 이미 존재하는 필터는 application/json 형식의 데이터를 파싱하는 것을 지원하지않았기 때문에, 많은 난항이 있었다.
어떻게 해야하지 생각하던 찰나, "직접 만들면 이런문제가 없잖아?"라는 생각으로 조금 더 깊게 공부를 했더니 필터라는 개념이 있었고, 해당 개념을 공부하면 내가 직접 원하는 방식으로 파싱하고 처리할 수 있겠다고 생각해서 공부를 했다.
현재는 잘 만들지는 못하지만, 어지간한 인증방식은 스프링으로 간단하게 만들 수 있다고 자신할 수 있다.
여전히 부족한 응애 개발자이지만, 내가 가야 할 방향을 방학동안에 찾았으니, 앞으로 나아가기만하면 된다고 생각한다.
내가 지향하는 개발자는 그저 구현만 하는 개발자가 아닌 코드와 소통하는 개발자로써, 좀 더 유연하고 최적화된 코드를 짤 수 있도록 나를 성장 시키는 것이 가장 주된 목표이다.
한 부분을 깊게 파는 것은 좋을 수도 있지만, 좁은 시야를 필연적으로 가지게 된다는 단점이 존재한다.
그렇기 때문에, 적당한 깊이에서 많은 것을 경험해 보는 것이 좋다고 생각이 들었다.
내 말대로라면 나는 매우 깊은 지식을 요하기 보다는 많은 것을 경험하며 내가 사용하는 라이브러리들이 왜(WHY?), 어떻게(HOW?) 작동하는지에 대한 생각을 가지며 적어도 내가 하는 부분에 있어서는 오롯이 나의 스타일로 녹여낼 수 있도록 성장하려 한다.
이번 년도 목표는 그렇게 크지않다.
누가보면 꿈이 작다고 할 수도 있다. 근데 나는 절대 허황된 꿈은 꾸지않는다. 당장 내가 필요로하고 할 수 있는 일을 생각했고, 위와 같은 결과가 나왔다.
해당 목표는 내가 원하는 개발자가 되기 위한 밑기둥을 세우는 작업이라 생각된다.
가는 길이 힘들지, 아니면 여유로울지 아무도 모르지만 최선을 다해서 성장하는 개발자가 되려고 한다.