7개월 24일

SeungHyuk Shin·2022년 4월 16일
0

돈을 받고 백엔드 개발자로 일한지 7개월 24일이 지났다. 현재 나는 개발자라고 할 수 있을까?

매일 출근하기전에 자리에서 일어나며 돈을 받고 개발을 할 수 있고 매일 배워가는게 있다는 것 자체에 감사함을 느끼고 행복함을 느낀다.

어제는 자기 전 유튜브에서 길거리에서 바이올린을 연주하시는 머리가 희끗하신 할아버지의 얼굴에 미소를 보았다. 영상을 끌 수가 없어서 몇시간 동안 바이올린의 연주를 듣다 잠 들었다.

느껴지는 것이 많았다. 나이가 들어서도 내가 하고 싶은 개발을 저렇게 즐기면서 할 수 있었으면 좋겠다라는 생각이 들었다. 돈을 많이 받든, 적게 받든, 안 받든.

7개월 전 구직을 할 땐 내가 개발자가 될 수 있을까 하는 막막함에 길을 잃은 기분이 였다면 지금은 어떤 개발자가 되야 할지 길을 잃은 기분이다.


나는 새로운 알고리즘을 개발 하거나 번뜩이는 천재적인 개발자가 되진 못하더라도 훌륭한 개발자가 되고 싶다. 그러면 훌륭한 개발자는 무엇일까?

훌륭한 개발자가 되기 위한 성질을 여러 가지가 있을 수 있다. 하지만 내가 생각하기에는 자기 계발에 대한 욕심이라고 생각한다. 자기 계발을 하다보면 훌륭한 개발자의 여러 가지 성질을 자연스레 얻을 수 있다.

사람들은 종종 개발자는 언어가 중요하지 않다고 한다. 나도 동의를 한다. 개발자는 자신의 생각을 코드에 옮기는 사람이지 언어를 쓰는 사람이 아니다.

하지만 문제는 대부분의 개발자 취업시장은 전혀 그렇지 않다. 자신이 쓰는 언어의 숙련도,경력에 따라 취업의 문이 결정 되곤 한다.

나는 그 동안 내가 쓰는 기술에 대해 이해를 하면서 써왔는지 돌아보게 되었다. 왜 우리 회사는 백엔드 주력 프레임워크로 라라벨과 PHP를 쓰고 있을까?

궁금해서 입사 초기에 CTO에게 물어본 적이 있다. 답변은 10년전 즈음, 대부분의 웹 개발자는 PHP를 사용하고 있어서 지금까지 쭉 사용되고 있다고 한다.

그 상황에서 회사에서 러닝커브 비용 손해를 감수하며 JAVA로 바꾸는건 부담스러웠을 거라고 생각이 든다.

또한 루비 온 레일즈의 웹 프레임워크를 보았을 때 엄청난 생산성에 감탄을 한적이 있다고 한다. 그리고 그 루비 온 레일즈를 모티브로 만들어 진게 지금의 라라벨이다. 라라벨 또한 생산성이 좋고 써보았을때 느낌은 정말 잘 만든 프레임워크라는 것을 느꼈다. 규모가 커졌을때의 성능은 다른 이야기 지만.

특히 artisan 명령어를 통해 트러블슈팅을 쉽게 지원한다거나 bolier plate 코드를 빠르게 생산할 수 있다는 점이 좋았다.

마치 스프링이 우주를 여행 하려는 우주선이라면 라라벨은 드라이브를 즐기기 위한 스포츠카 같은 느낌이였다.


현재 프로젝트를 하면서 코드 품질적으로나 아키텍쳐적으로 많은 고민을 하고 있다.

변수 하나를 쓸 때도, 함수의 매개 변수를 정할때도 "이 코드를 보면서 다른 사람들이 욕하지 않을까?" 라는 생각으로 코딩을 하고 고민을 한다. 왜냐면 내가 속으로 많이 욕해서 그렇다.😈

그러다보니 자연스럽게 코드 품질적으로 고민이 되는 것 같다

또한 SqlAlchemy에서 페이지네이션을 지원하지 않아서 직접 구현해야 했는데, 기능 구현을 완료 했지만 이 클래스를 어디 레이어에 의존성을 추가해줘야 할지 1시간 넘게 고민을 했다. 결국에는 페이지네이션 내부에는 인프라 의존적인 코드가 많으므로 추상화가 제일 낮은 인프라스트럭쳐 레이어에서 의존성을 관리하는걸로 결정을 했다.

또한 RestAPI와 아키텍처 설계의 불일치성 때문에 고민이 너무 많다. 프론트엔드 측에서 1요청 1페이지 데이터를 고수하고 있어 한 엔드포인트에 요구하는 자원의 수가 너무 많아지면서 도메인별로 깔끔하게 나누려던 나의 계획이 점점 실패해 가고 있고, 뭔가 특단의 조치가 필요해 보이는데 자료를 많이 찾을 수가 없어 답답하다. 이 곳 저 곳 카카오톡 오픈챗방을 돌아다니며 질문을 해봐도, 시원한 대답을 얻을수가 없었다.

정말 GraphQL을 사용해야 하나 하는 고민도 하고 있다.

그리고 오버 엔지니어링인지 아닌지에 대한 논쟁도 매일 겪고 있다. 그림을 그릴때도 선만 있으면 그림을 그릴 수 있다. 하지만 입체적이고 풍부한 그림을 그리려면 선만으로는 안된다.

그런걸 보면서 개발도 습관이 중요하다는 걸 많이 느낀다.


val conclusion = "공부를 더 열심히 하자"
var myAge= 31

while(myAge != deadAge){

	println(conclusion)
}

2개의 댓글

comment-user-thumbnail
2022년 4월 25일

전 회사 아무런 생각 없이 다녔던 것 같은데... 승혁님 보면 반성을 많이하게 돼요 ㅜㅜ...
와일문에 브레이크가 걸리는 그날까지!

1개의 답글