음대생 개발자의 2022년 회고 - 2. 아 잠깐만 나 뼈 맞았어

Han Gyul Kang·2023년 8월 15일
2

개발 일기장(잡담)

목록 보기
4/4

안녕하세요 여러분.
여기까지 오시느라 고생 많으셨습니다.

네 여러분은 지금 뼈 맞아서 아픈 개발자를 보고 계십니다.


1. 여기가 뼈인가요?


Swallaby에 입사하고 잠깐 고문을 맡아주셨던 기술고문님이 백엔드 로드맵이라고 공유해주신 게 있습니다.

  • 원본은 없어서 당시 받아봤던 로드맵과 흡사한 사진으로 대체합니다.

당시 이 로드맵을 보고 개발팀원 대다수가 고개를 절레절레했던 기억이 납니다 ㅋㅋㅋ...

저기 있는 모든 것을 주니어 개발자가 다 잘할 순 없겠죠.
하지만 어쩐지 다 해야 할 것 같았습니다.
왜냐하면 저기 있는 모든 것을 다 잘하는 주니어 개발자가 있거든요.

생각해보면 실무를 통해서 생각보다 많은 것들을 해보긴 했습니다.

  • Java, Python
  • 배포 자동화
  • 클라우드 서비스(AWS)
  • RESTful API
  • ORM : JPA, QueryDSL
  • ACID, N+1문제
  • NoSQL : DynamoDB
  • RDB : Oracle, MySQL
  • 인증, 인가
  • OS : Windows, MacOS
  • Unit Test
  • Redis
  • TDD, DDD
  • 프레임워크 : Spring MVC, Spring Boot, Spring WebFlux, Vert.x
  • 도커

해봤으니까 안다고 생각했습니다.


올해 2월, 한참 Swallaby에서 웹 고도와 작업 마무리를 할 때쯤
이직을 한 차례 시도했던 적이 있습니다.

서류가 통과되고 면접 기회가 생겨서 기술 면접을 봤습니다.
정말 부드럽고 친절하시고 누가 봐도 개발자 같은 분이 면접관으로 들어오셨는데,
지금도 참 인상 깊게 남아있는 질문을 받았습니다.

Spring WebFlux를 왜 쓰셨나요?

이 질문 하나에 뼈를 맞았고, 아파서 탈락했습니다.
왜긴요... 전임자가 썼으니까 쓰고 있죠...
지금 내가 쓰고 있는 기술인데 왜 쓰는지조차 모른다는 걸 자각한 순간이었습니다.

부끄러웠습니다.
개발자가 이렇게나 '왜?' 라는 걸 망각하고 살았나...


면접이 끝나고 충격받아서 퇴사한 전임자에게 바로 물어봤습니다.
Spring WebFlux는 근데 왜 쓰신 거예요?
기억이 안 난답니다 ㅠㅠ

뼈 맞은 환자가 되었습니다.
근데 이제 치료는 받지 못한...


2. 선생님! 여기 응급환자요!


Swallaby에 입사하자마자 현장에서 QueryDSL을 쓰고 있었기 때문에 JPA 기본 강의를 건너뛰고 QueryDSL부터 들었습니다. 정말 급했거든요.
당장 내일 개발을 해야한다니까요?

신입으로 들어온 백엔드 개발자도, 저도 QueryDSL과는 초면이었습니다.
심지어 이게 Spring Boot도 아니고 Spring WebFlux랑 붙어있었죠.

Spring WebFlux에서 Mono와 Flux의 차이도 모른 채 전임자가 작성해둔 코드만 보고 이해해서 개발했습니다.
당장 주력 프레임워크로 처음보는 Vert.x를 사용 중이라 이거 이해하기에도 시간이 빠듯해서 Spring WebFlux는 기존 소스 보고 빨리 적응하자는 생각이었거든요.

QueryDSL 강의 듣다가
Spring Boot로 구현하는 RESTful API 강의 듣다가
이 와중에 방대한 로드맵을 받아보니 AWS부터 공부해야할 것 같아서 강의를 사서 조금 듣다가
당장 수정해야 하는 프로그램이 Python으로 되어있어서 Python 또 조금 듣다가
여유가 조금 생겨서 JPA 기초 강의로 돌아가서 JPA 강의 듣다가
그래도 개발자가 네트워크는 당연히 알아야 한다는 말을 듣고 또 네트워크 강의 듣다가

듣다가 듣다가 보니 씬피자가 되어가고 있었습니다.
얕고 넓어지고 있었다는 거죠.
씬피자는 매우 좋아합니다.

사람이 피자가 되면 그건 문제인 거잖아요?

살려주세요! 선생님! 여기 응급환자요!


3. 왜 이런 사태가 벌어졌는가?


구체적인 계획을 세우는 데 완전히 실패했습니다.

출근하면 매일 현장에서 만나는 것들은 처음 보는 기술들이었고,
개발팀 회의에서는 한동안 도대체 이게 무슨 말이야? 싶은 대화들이 자주 오갔습니다.

모르는 용어는 적어두고 퇴근 후 찾아서 공부하고,
실무에서 처음 써보는 것들과 개발자가 알아야 한다는 것들을 마구잡이로 사서 들었습니다.
그런데 그게 계획 없이 너무 다양했던 거죠.

쏟아지는 기술의 빗속에서도 우선순위를 정확하게 정해서 중요한 것들부터
구체적으로 또 계획적으로 깊게 파고들었어야 했는데
그저 새로 알게 되는 기술이 있으면 신기해서 계획 없이 마구잡이로 공부했습니다.

직장인이 퇴근 후 적으면 한 시간, 많으면 세 시간 정도 공부하고 잠자리에 드는데
이 짧은 시간을 무계획 공부로 날렸습니다.

뼈대 없이 쌓은 지식은 순살입니다.
씹으면 살살 녹아 없어집니다.

네, 저는 뼈를 맞고 순살 개발자가 되어버렸습니다.


4. 반성


저는 Java, Spring 개발자로 개발 일을 시작했습니다.
그런데 내가 정말 Java, Spring 개발자가 맞나? 라는 생각을 근래 많이 하게 됩니다.
막연한 생각이 아니라, 구체적으로 저런 생각이 들어서 사실 많이 아픕니다.
아 내 뼈...

뭐 이동욱님 팬이어서 그런 것도 있지만
최근에 이직 준비하면서 개발바닥의 이력서 폭행을 자주 봤고
저한테 무슨 허점이 존재하는지 이제야 정확하게 알게 되었습니다.

  1. Java를 주력으로 쓰는 개발자인데 Java를 모른다.
  2. Spring을 주력으로 쓰는 개발자인데 Spring을 모른다.

다시 말해 기술에 깊이가 없었습니다.
기초조차요.


이쯤이면 됐지

라는 생각,
이 생각 때문에 당장 눈 앞에 있는 기초가 무너지는걸 모르고 새로운 기술, 다른 언어에 눈이 멀어있었습니다.

물론 실무에서는 문제 없이 개발을 하겠죠.
또 문제 없이 개발을 해왔구요.

그런데, 사실 운이 좋아서 아직까지 문제가 없었던 건 아닐까요?
혹은 이 상태로 시니어 개발자가 된다면, 주니어 개발자들이 물어보는 수 많은 질문들에

아 잠시만요. 저도 구글링좀... 허허...

라고 하는 말도 안 되는 개발자가 되지 않을까요?


개발자로 살다보니 언어와 프레임워크는 이름만 다르지 본질이 크게 다르지 않습니다.
Java, Kotlin, Go, Python, Java Script, C, C#, C++ 등등 다양한 언어들이 있지만,
이 중에 하나를 깊게 파고들어 알게되면 다른 언어는 비교적 수월하게 습득합니다.

문법이 약간 다른거지 돌아가는 본질은 차이가 크게 없으니까요.
뭐 여기서 컴파일 언어와 인터프리터 언어는 차이가 있는데? 라고 하시면 또 말이 길어지지만 무튼...

프레임워크도 마찬가지입니다.
Spring MVC, Spring Boot, Spring WebFlux, Vert.x를 겪어봤고
전자정부표준프레임워크(는 스프링), 티맥스에서 만든 ProObject도 겪어봤지만
결국 기본 바닥은 다 비슷합니다.


그래서 올해 남은 4개월 동안은 우선 Java와 Spring을 해부해보려고 합니다.
물론 실무에서 사용해야 하는 기술들은 틈틈이 공부하겠지만
일은 해야죠
올해가 지나도 약 2년간은 Java와 Spring을 해부하는데 시간을 쏟지 않을까 싶습니다.
Java와 Spring을 수족처럼 부릴 수 있을 때가 오면,
그때가 비로소 넓어질 때가 아닐까요...


5. 이직


여하튼,
위와 같은 깊이 반성하는 마음가짐으로 ㅋㅋ,
먹고 살아야 내일이 있기 때문에
7월 초부터 이직 준비를 시작했습니다.

끝없는 경기침체 속에 내가 들어갈 회사는 있을까? 괜히 퇴사한게 아닐까? 불안했습니다.

  • 출처 : MBC 나는 가수다

심지어 구인구직 플랫폼 점핏에 들어가 보니 구인 광고가 줄어든 게 많이 체감됐습니다.
그럼에도 성공적인 이직을 위해서 우선 구체적인 목표를 정했습니다.

  1. 입사 전형에 코딩테스트 또는 과제전형이 있는가?
    다시 말하면 코딩테스트나 과제전형에 합격한 사람들이 다니는 회사라는 겁니다.
  2. 직원 수가 50명 이상인가?
    우물 안 개구리 탈출을 위한 조건이 직원 수 최소 50인 이상이었습니다.

특별한 이유가 없는 이상 위 조건에 부합한 회사들에만 이력서를 제출했습니다.


중간에 넥슨에 서류가 합격하는 기이한 현상도 경험해봤습니다.

코테에서 떨어졌지만요... 하... 빡쎘다...

그렇게 약 2주간의 구직활동을 진행했고,
서류전형, 코딩테스트, 기술 면접 + 컬쳐핏 면접을 거쳐
한 회사에 최종 합격했습니다.


6. 마치며


6-1. 존경하는 개발자님들...

나도 기술 블로그를 하나쯤은 가지고 있어야지 하는 생각에 velog를 사용 중이었는데,
보시다시피 거의 버려지고 말았습니다.

이 자리를 빌려 직장생활을 하면서
Github 드루이드가 되셔서 무한한 풀밭을 가꾸시고
동시에 기술 블로그를 꾸준히 관리하시는 개발자분들을 진심으로 존경합니다.
실례지만 MBTI가 뭔가요...?


6-2. 새 보금자리

8월 22일(화)
저는 구루미(gooroomee)로 출근합니다.

개발자가 된 뒤로 강남에 사옥이 있는 회사에 출근하면 어떨까? 라는 막연한 생각을 종종 했었는데
진짜로 강남에 사옥이 있는 회사로 출근합니다.


6-3. 남은 2023년도 계획

2022년은 궁지에 몰린 쥐처럼 살긴 한 것 같은데,
궁지에는 몰렸는데 이제 고양이를 문 게 아니라 뭐 다른 걸 열심히 문 것 같습니다.

똑같은 실수를 피하기 위해 우선 Java는 책 세 권과 백기선님 인강 두 개를 선정했습니다.
당연히 광고는 아닙니다. 광고일 수가 없죠...

  1. 집에서 굴러다니고 있던 자바의 정석
  2. 모던 자바 인 액션
  3. 자바 개발자들의 성경책 이펙티브 자바
  4. 인프런 : 이펙티브 자바 완벽 공략 1부
  5. 인프런 : 이펙티브 자바 완벽 공략 2부

Spring은
요즘 아내가 남궁성님 강의를 듣고있는데 옆에서 듣다보니 스프링 해부학 수준이더라구요.
역시 광고는 아닙니다.

  1. 패스트캠퍼스 : 스프링의 정석 : 남궁성과 끝까지 간다
  2. 패스트캠퍼스 : 스프링 부트의 정석 : 이번에도 남궁성과 끝까지 간다

이렇게 두 개로 정리했습니다.


아무쪼록 올해는 부디 고양이가 물려서 야옹 하길 바라며...

또 긴 글 읽어주셔서 감사합니다.
올해도 화이팅.

profile
피아노 치는 개발자

0개의 댓글