들어가며
학교 + 부트캠프 8개월 수료를 완료하고 백엔드/서버팀에 합류한지 1년차가 되어간다.
내가 할 수 있을까 라는 생각을 많이 했는데 어쩌다보니 1년이 되었다.
그동안 내가 느끼고 배운 점을 기록하기 위해 작성한다.
상상 vs 현실
입사 전 백엔드/서버 개발자라고 하면 하루종일 코드를 분석하고, 설계하고, 코딩하는 모습을 떠올렸다.
부트캠프에서 실무자 멘토님에게 들었던 말인,
개발하는 시간은 실제로 많지 않다. 개발 능력은 시간이 지나면 다들 비슷비슷해진다. 좋은 개발자를 판별하는 것은 결국 요구사항을 명확하게 정의하는 것, 의사소통 하는 것이다.
이 말을 처음엔 믿지 않았다
입사 1년차인 지금 저 뼈저리게 공감된다.
하루 8시간( 야근하면 12시간이 될수도...) 동안 코드를 쳐다보면 당연히 개발 능력이 향상된다.
입사하자마자 업무에 투입되는 것이 아니다. 신입사원 교육 기간이 있다. 이 기간동안 토이프로젝트를 진행하기도, 기존 프로젝트를 분석하기도, 내부과제를 진행하기도 한다.
전에 누군가 입사하기만 하면 그 후에는 어떻게든 된다고 했는데 이 또한 맞는 말인거같다..
어떻게든 하게 된다. 사수님, gpt, gemini, claude 등 나를 도와주는 분들은 많다
그리고 애초에 신입에게 큰 기대를 하지 않는다. 그도 그럴 것이 학생때 진행했던 프로젝트와 차원이 다르다...
1년 동안 맡았던 역할/업무
나는 운이 좋은건지 나쁜건지 입사 2달차에 실무에 투입되었다. iot sm 업무였다.
나는 내가 웹 개발자가 될 줄 알았다. iot 라니 tcp, mqtt, spring integration 이라니...
심지어 어드민 페이지는 프론트까지 제가 한다고요?
운영/ 추가 개발을 담당해야하니 당연히 프로젝트를 분석해야했다
call flow를 꽤 오랜 기간 그렸던 기억이 있다.
프로젝트 스펙은
- Spring Boot
- Java
- Kotlin
- groovy
- Mysql
- jsp
- jQurey
- AWS
내가 실제로 한 업무는
- VOC 핸들링
- API 개발, 수정
- 배치 수정, 개발
- 배포
그렇다. 프론트, 백엔드, 서버 모든 일을 했다
성장, 아쉬운 부분
성장
인프라: 프로젝트를 clone 받고, yml 파일을 설정하는데 yml 파일이 왜이리 많은지? local, dev,prod 이거 설정을 어떻게 하는지? ( 고객사는 이런걸 하나하나 다 알려주지 않는다...) 이게 다 무슨 소리인지? 인프라에 대해 하나도 몰랐다.
또한 나는 서버 관련 지식이 약했는데, 스크립트를 분석하고 배포를 진행하다보니 인프라 경험이 쌓이면서 관련 지식이 늘었다.
프론트엔드: 2학년때까지만 자바스크립트를 살짝살짝 배웠고, 그 후로는 백엔드만 해왔다. 하지만 일을 하며 프론트도 진행하다보니 어느 정도 핸들링은 가능하게됐다.
의사소통: PM 이 있으니 모든 소통은 피엠을 통해 할거라고 생각했다. 개발언어를 사용해도 잘 정리해 사업부에 전달해주실 줄 알았다.
하지만 메일과 슬랙은 사업부와 pm에게 양방향으로 왔다..
초반엔 사수님이 모든 메일, dm을 처리하셔서 나는 원인 분석 - 정리 (개발언어로..) 해 사수님에게 전달드리기만했다.
하지만 사수님도 휴가를 가시고... 나도 이제 해야하는 순간이 오고..
이 때 gpt 를 정말 많이 사용했다. 덕분에 어떻게 설명을 해야하는지 감은 잡은 거 같다
학생 땐 보지도 못했던 백엔드: 학생 땐 자바+스프링부트를 사용해 웹 서비스 개발했다.
하지만 내가 투입된 프로젝트는 IoT 였고.. 코틀린, 자바, 그루비를 사용하고 있었다. 하드웨어와 연동할 때는 Spring Integration 을 활용해 TCP, mqtt 를 사용하고 있었다.
이런건 듣도보도 못했다.. 해야하니 찾아봤고, 하나씩 추적해나가며 보다보니 대충 어떻게 돌아가는 건지 이해는 하게 되었고, 업무중 예외 발생 - 로그 를 확인하며 자세히 이해할 수 있었다.
코틀린 코드도 처음엔 당황했는데, 계속 보다보니 눈에 익었고 나중 가선 기능 추가 개발도 가능하게 되었다.
아쉬운 부분
온전한 개발 시간 부족: 기능 개발, 기능 수정을 하다가도 VOC 가 오면 다 제쳐두고 그것부터 해결해야했다. 우선순위가 VOC 인 것이 아쉬웠다. 개발을 집중해서 잘 해두면 VOC를 줄일 수 있었을텐데...
한우물을 파지 못한 것: 이것은 장점이될 수도, 단점이 될 수 도 있는 거 같다. 여러가지를 하느랴 하나에 집중하지 못했다. 여러분야에 대한 지식이 늘었다고 해도 겉핥기만 한 느낌이랄까..
그치만 실무에서 어떤 기능을 쓰는지 알게되었고 시스템이 돌아가는 방식을 알게 되었으니, 이 부분은 내가 채워나갈 수 있다고 생각한다.
사실 별로 단점이라고 생각하지 않는다.
가장 힘들었던 순간들
당연히 야근
VOC폭탄 + QA 문의 폭탄
새로운 모델 추가로 인해 기존 있던 기능들을 테스트 했고 ( 하드웨어 - 소프트웨어 기기 연동 테스트)
이 과정에서 기존 있던 문제들이 다 나왔다. 하드웨어 측에서 주지 않아 못받은 코드를 왜 자꾸 저장되지 않냐고 여쭤보셔서 참 힘들었던 기억이 있다.
나의 실력
보안 관련 코드 리팩토링을 해야했었다.
이 과정에서 테이블간 연관관계를 고려하지 못한 내 코드 때문에 재배포를 해야했었다.
핑계를 대보자면.. 테이블이 너무 많았다 (500개 넘음..)
테이블간 연관 관계를 파악하지 못해 테스트도 제대로된 실패 케이스를 작성하지 못했다..
이 이후로 테이블간 연관관계 라는 개념이 머리에 확실히 박혔다. 그땐 힘들었지만 나의 피와 살이 되어준..
긴급 패치
"전임님, 이거 삼십분 안에 수정해주실 수 있나요? "
위 상황과 연관된다. 코드 반영 후 갑자기 서버 alert 가 미친듯이 발생했다.
30분안에 코드 수정 -> 테스트 -> 배포를 해야하는 상황이었다...
서버 로그 확인으로 인해 문제점을 정확히 알고 있어 어렵지는 않았지만 그 상황이 주는 압박감이 있었다
(내가 제시간안에 완성하지 못할까 사수님이 미리 코드를 완성해두셨었다.. 너무 감사해요)
잘했다고 생각하는 선택들
건강한 몸에 건강한 코드
가장 잘 한 것은 운동을 꾸준히 한 것이다.
줄이기는 커녕 더 늘렸다
그 시간에 공부해야지 뭐하는거야 라고 생각 할 수 있다하지만 하루 8시간(12시간이 될수도..) + 3시간 30분 대충 교통을 사용하고 나면 뇌가 정말 익는다이런 상태를 해결 할 수 있는 방법이 운동이라고 생각했고, 효과가 있었다.아무리 힘들어도 운동을 하고나면 뇌가 리셋돼 다음 날 업무 효율이 더 좋아졌다.반대로 야근 후 운동을 하지 않고 바로 자면 다음 날에 컨디션이 안좋아진게 느껴졌다.
단기적으로 보면, 퇴근 후 코드를 하나라도 더 보는게 나에게 도움이 될 수 있다.
하지만 지속가능하다고 생각하지 않는다.
길게 보면 체력 관리하는 것이 나의 퍼포먼스 향상에 도움이 될 것이라고 생각한다.
2년차를 바라보며
더 이상 신입이 아니게 됐다
더 이상 신입이라서 그렇군.. 이런 말은 통하지 않을 것이다.
현재 나는 서버/인프라 지식이 부족하다고 느낀다.
올 해 초도 개발 건에 투입된다고 전달 받았고, 이를 진행하며 부족한 부분을 많이 개선 할 수 있다고 생각한다.
마치며
작년 말 내가 개발한 기능이 prod 환경에 배포됐다. 현재 실사용 되는 기능이다!
내가 만든 기능을 누군가 사용하고, 실제 앱스토어에 나와있다는게 신기하다.
올 해 들어갈 초도개발 업무는 처음이라 긴장되기도 하지만, 작년의 나도 똑같이 느낀 감정이다.
이렇게 새로운 것을 시작하기 전 느끼는 불안함과 설렘을 즐길 수 있게 된 거 같다.
처음에 힘들고 나면 나를 힘들게 만들 었던 것들이 내 것이 된다.
좋은 수지타산이라고 생각한다.
평생 공부한 양보다 입사해 실제 서비스를 분석하며 공부한 양이 더 많은 거 같다.
유익한 시간이었다.
헤맨 만큼 내 땅이 된다는 말을 좋아한다
두려워말고 일단 뛰어들면 뭐라도 된다~ 올해도 파이팅
'회고록' 카테고리의 다른 글
| 쿠폰 선착순 발급 이벤트 회고록 (3) | 2024.12.10 |
|---|---|
| 대규모 트래픽을 고려한 프로젝트 Board Server 회고 (1) | 2024.11.27 |
| 파이널 프로젝트 회고록 (4) | 2024.10.24 |
| 미니 프로젝트 회고록 (3) | 2024.10.24 |