본문 바로가기
320x100
320x100

요즘 내가 못하고 있는 부분, 잘 하고 있는 부분, 그리고 직장인이 되어서 총 개발 기간 1년 조금 넘은 2년차 개발자로서 느낀 점을 적어보려고 한다

내가 느끼고 겪고 적은게 정답이 아닐 수도 있다는 점 알아주셨으면 좋겠습니다

그리고 반말과 존대를 섞어 쓸 수도 있다는 점

 

회고

일단 난 가산에서 Excel + Python + Visual Basic을 다 써서 엑셀과 앱, 웹 개발을 다 도맡아서 짧게 개발한 것을 개발 커리어로 시작했다

알다시피 가산디지털단지, 구로디지털단지쪽이 흔히 계약뻥튀기로 온 SI 개발자들을 많이 접할 수 있는 동네이다

나는 운 좋게도 그런 경우는 아니었다

다만 내가 전공자로써 이것저것 다 개발을 할 수 있다고 어필을 했었기때문에, 대표님이 원하는 개발제품을 어떤 언어이든, 어떤 플랫폼이든 상관없이 나를 시키려고 했었다

나는 백엔드 개발자, 특히나 스프링쪽으로 개발 전문성을 키우고 싶었기때문에 나랑은 맞지 않는다 생각했었다

막 졸업한 상태의 경력도 없는 나였기때문에 대표님하고 처음 4개월 계약으로 시작하고 이후에 정직원으로 할지말지 하는쪽으로 얘기를 했었다

4개월 이후에 나는 정직원이 되는 것을 포기하고 재계약을 안하게된다

 

그리고 제대로된 첫번째 직장(정규직)은 강남으로 갔다

드디어 내가 원하는 스프링 백엔드 개발자로 일을 할 수 있게 됐다

시니어 개발자는 2년차 개발자 2명이었으며, 내가 입사하고 1명은 나갔고 내 입사 동기는 나 포함해서 총 3명이었다

인프라는 대기업 못지않은 곳이었다

CI/CD는 GitlabCI와 ArgoCd와 k8s(쿠버네티스)를 같이 써서 자동화를 시켰고, Private Respository - Nexus 등도 가지고 있었다

하지만 소스코드는 2010년대 초반을 보는 듯 했다

테스트코드는 당연하게 없었으며, 앞서 작성된 사람이 왜 이렇게 작성했는지에 대한 고민도 없이 Ctrl + C/V를 쓰고 확장성과 중복코드에 대한 고민이 없는 동료들과 선배개발자를 봤다. 과연 유지보수가 될 수 있을까에 대한 아주 구체적인 두려움이 있었다

부족한 시간과 인력은 외주로 맡겼으며, 의미 없는 야근이 잦았다

내 건강과 커리어에 대한 고민을 하면서 일을 계속 하다가 퇴사를 결심했다

 

두번째 직장은 성수에 위치한 곳으로 갔다

공유오피스에 있는 회사이고 현재 재직중이다

현재는 타입스크립트와 앵귤러, 스프링과 몽고DB를 써서 풀스택 개발자로 일을 하고 있다

간단한 CRUD를 제외한, 뭔가 매일 매주가 새로운 과제가 나한테 주어지는 느낌이라 매일이 힘들지만

선배 개발자들도 DRY와 KISS를 알고 적용하려고 노력하며, 정말 개발자로서 배울 점이 많은 분들이시다

내가 여기에서 겪는 것들은 전 직장들과 다른 연차와 실력을 가진 개발자끼리의 실력차와 의사소통, 그리고 업무 도메인에 대한 이해도에 대한 부족에서 오는 어려움이다

어떤 회사이고, 정확히 어떤 일을 하는지 오픈할 수는 없지만 업무에 대한 이해(도메인-영역, 전문용어)를 해야 하고, 내가 안써본 NoSQL과 TypeScript, Angular에 대해서도 많이 부족함을 느낀다

그래서 퇴근하고 공부하고, 주말에도 공부를 하고 있다

매우 만족스러운 회사이고, 아직 여기로 입사한지 반년이 안되는 만큼 계속 더 열심히해서 좋은 개발자가 되고싶다

나도 시니어 개발자가 되었을 때 주니어 개발자가 멋있다고 생각이 드는 사람, 개발자가 되고 싶다

 

주니어/신입 개발자의 자세 & 방향성

내가 이제 막 시작하는 개발자로서 느낀 점이 몇 가지 있다

일단 배울 점이 많은 사람이 있는, 문화가 있는 회사로 가는게 최고로 좋겠지만, 그러지 못한다면 그런 환경에 적응을 하지 말도록 노력해야 한다는 것이다

내가 실력 있는 개발자, 좋은 사람이 되기 위해서는 주변 환경을 좋게 만들고 좋은 습관을 만들어야 한다

주변 환경이 나쁘다면 물들지 않고, 자기 주관을 가지도록 노력해야 한다

 

그리고 나한테 들어오는 업무를 명확히 이해하고, 메모하고, 이행하는 습관을 들여야 한다는 것이다

이건 매우 중요하다

분명히 사람마다 요구사항을 들었을 때 똑같이 메모도 했고, 이해도 했지만 다음날/다음주에 보면 다른 의미로 해석되게 받아들일 수도 있다

 

또한 본인 실력에 대한 자신감을 갖되 부족하다고 느끼지도 말고, 부풀려서 생각하지도 않아야 한다고 생각한다

이건 다른 분야에서도 어려운 일이고 사람으로서 이런 점을 갖춰야 성장할 수 있는 것 같다

 

그리고 IDE를 너무 믿지 말자는 것이다(완료된 작업에 대해서 두번 이상 확인을 해라)

IntelliJ든 ecllipse든.. 내가 언제 한번은 분명히 pull을 받고 push를 했고, 시니어도 옆에서 그것을 봤다

하지만 퇴근 후에 받은 연락은 'ㅇㅇ님 프론트 push 안했죠?'라는 연락....

오마이갓, 보니깐 진짜 안되어있더라. 분명히 버튼을 눌렀는데..

그래서 앞으로는 소스 버전관리이던 배포든 두번 세번 확인하고 퇴근을 하려고 한다..ㅠ

 

개발자로서의 비전을 가진 사람이 되라

누군가가 나한테 꿈을 물어보면, 강남이나 용산에 비싼 집을 사는것도, 외제차를 사는것도 좋지만...

난 내가 시니어 개발자가 되었을 때 후배 개발자들한테 선망을 받을 수 있는 존재가 되면 좋겠다고 말한다

돈은 실력에 따라 들어온다고 생각한다. 돈을 좇는 인생을 살아보진 않아서 모르지만, 나라는 개발자가 가지는 가치를 키우는 방향으로 나는 내 인생의 길을 정했다

 

마지막으로는 모든 점에 있어서 Why를 생각하는 습관을 들여야 한다는 것이다

예를 들어, 새로운 인프라를 적용할 일이 있다고 할때 SPOF(Single Point Of Failure) 문제가 발생하지는 않을지, 비용적인 면은 어떻게 되는지, 라이센스는 어떻게 되는지, 커스터마이징은 쉬운지, 한글이 적용되는지(Pdf, Poi)...

서버에 부하가 가는 작업은 아닌지, 반복되는 작업이면 Short CirCuit Logical 적으로 처리를 할지...

요즘 MSA가 대세라던데 우리도 이거 써볼까! 라고 한다면 아키텍쳐가 변경되는것인데 이 부분에 대해서 다 이해를 하는지, 에러처리와 유지보수는 가능한지 등등

코드레벨에서는 중복을 제거하고, 확장성을 가지게 개발을 한다면 인자를 어느정도로 주고, 어떤건 옵셔널하게 처리를 할건지, 객체지향이나 디자인패턴 레벨을 어느정도로 적용해서 설계쪽으로 뺄 수 있는지 등등

 

모든 점의 시발점(Starting Point)은 내가 어떤 것을 행하기에 앞서 Why라는 마인드를 갖고 일을 하기때문이 아닌가싶다

320x100

'DailyLife > Retrospect' 카테고리의 다른 글

면접관 참여 후기  (1) 2024.03.22
2023년 개발 회고  (0) 2024.01.19
2.n년차 주니어 개발자의 2021~2022년 회고 with 노트  (6) 2023.01.05

댓글