스타트업 인턴 회고

김범수·2022년 6월 18일
1

회고

목록 보기
1/1
post-thumbnail

📍Intern Review

6개월 간 근무했던 스타트업에서의 인턴 근무가 끝나고 다음 발걸음을 내딛기 전 짧게 나마 회고를 풀어보려한다.

지금 생각해보면 부족한 점이 많았지만 뛰어난 동료 분과 함께 열정적으로 근무하면서 추후 뒤돌아보면 개발자로서 사회인으로서 첫 단추를 정말 잘 꽤었다! 라고 말할 수 있는 경험으로 남을 것 같다.

📍인턴 결정 이유

✔️ 첫 애플리케이션 배포 이후

첫 애플리케이션 배포이자 입시 학원 외주 프로젝트인 ‘입사미’ 배포 후 보수 과정을 거쳐 정상적으로 운영이 지속되자 새로운 프로젝트에 대한 욕심이 생겼었다.
아무래도 입사미는 친구와 함께 협업하여 진행하다보니 이슈나 PR, 코드 리뷰, 현상 관리 등에 미숙한 점이 많았고 코드 자체도 기능 구현에만 집중되어 있을 뿐 추후 확장성이나 유지보수에 대한 고려가 전혀 되지 않았다는 점에서 ‘더 체계적인 환경에서 개발을 경험해보고 싶다!’ 라는 생각이 많이 들었다.
마침 외주 프로젝트 디자이너 분의 지인 분께서 근무하시는 스타트업의 iOS 인턴을 모집 소식을 듣고 바로 메일로 컨택을 진행했다.

✔️ 바로 인턴 근무를 결정한 이유

지원 메일을 보낸 날짜로부터 이틀 후 바로 면접을 보았고 그 다음 날 첫 출근을 하였다. 출근하게 된 스타트업은 전기차 충전 플랫폼으로 애플리케이션 배포 경험이 있는 클라이언트 개발자에 대한 니즈가 있었고 빠르게 시장에 진출하고자 빠른 시일 내에 채용 절차과 마무리 되었다.
회사의 입장이 아닌 내가 빠르게 인턴 근무를 결정하게 된 이유는 세가지였다.

  1. 빠른 실무 경험 가능
    체계적인 환경에서 개발을 경험해보고 싶었지만 아직 취업 준비에 대한 과정을 아직 겪지 않은 상태였기 때문에 바로 실무 경험을 할 수 있었다는 점이었다.

  2. 뛰어난 역량의 동료들과의 근무
    규모가 큰 회사는 아니었지만 CTO님께서는 AI 스타트업 팀장 출신이시며, CEO님께서는 국내 로펌 변호사 출신이셨다. 이런 분들과 밀접하게 일을 하다면 기술적인 부분을 포함하여 다방면에서 많은 성장을 할 수 있을 것이라 생각하였다.

  3. 기업 단위 앱의 기획부터 배포, 운영 Cycle을 경험에 대한 기대감
    서비스 기획 단계부터 참여를 할 수 있었으며 기업 단위의 서비스의 기획, 개발 및 운영 Cycle을 경험할 수 있다는 점이 가장 매력적으로 다가왔다. iOS 파트를 전담 개발하기 때문에 iOS 개발자와 협업이 없다는 점은 조금 아쉬웠지만 그만큼 앱 자체를 더 주도적으로 개발할 수 있다는 점도 좋았다.

📍회고

부족한 점도 많았고 정말 많이 배우기도 한 기간이었다. 6개월의 기간을 간단하게 협업과 기술, 어떤 개발자로 성장하고 싶은지에 대해 느낀점들을 얘기해볼까한다.

✔️ 함께하는 일

‘소프트웨어 장인'이라는 책에는 이러한 구절이 나온다. ‘개발자가 하는 일 중 코드를 짜는 일은 20프로도 되지 않는다.' 나머지 80프로 중 큰 비율은 함께 일하기 때문에 필요한 부분들이 차지하고 있을 것이다. 이번 인턴 근무 협업 과정에서 느낀 점들을 풀어보려한다.

  • 현상 관리, 코드 리뷰

Github을 이용한 Issue, PR, Epic 등의 현상 관리 능력이 많이 증진된 것 같고 무엇보다 코드 리뷰를 임하는 자세가 많이 바뀌었다. 코드 리뷰를 적극적으로 요청하지 못해 PR이 쌓이고 브랜치가 복잡해진 적도 있었는데, 이 과정을 해결해가면서 Github 관리 능력은 많이 늘었으나 발생하는 리소스 낭비가 팀적으로 얼마나 손해인지도 느꼈고다. 적극적으로 코드 리뷰를 요청하고 리뷰를 수행하는게 팀 단위 개발에서 매우 우선순위가 높은 일이라는 것을 깨달았다. 또한 코드 리뷰 과정에서 명확한 의미 전달과 어떤 식으로 해답을 찾아가는게 서로를 존중하고 성장시킬 수 있는 방법인지에 대해서도 많은 고민을 하게 되었고 앞으로도 계속 고민해야하는 부분이라고 생각한다.

  • 소통의 중요성

스타트업 특성 상 개발 뿐만 아니라 기획, 디자인 등의 부분에서도 의견을 낼 수 있었고 다방면의 식견을 얻을 수 있는 기회라 생각되어 적극적인 자세로 참여하였다. 개발, 비개발 / 시니어, 주니어 여러 동료 분들과 스크럼을 진행하는 과정에서 많은 점을 배웠다. 상대방에게 배경 지식을 파악해서 정확하게 내 의견을 전달하려 노력하거나 내가 이해가 안되는 부분이 있다면 해당 포인트를 정확히 전달하는 점이 매우 중요하게 느껴졌다. 또한 스크럼 자체를 즐거운 분위기 속에 리소스가 낭비되지 않도록 효율적이게 수행하는 컬쳐핏을 만들어 내는게 얼마나 중요한 일인지도 느껴졌다. 소통을 잘하려 노력하는 사람이자 그런 문화를 만들어갈 수 있는 사람으로 성장한다면 능률도 즐거움도 모두 얻을 수 있지 않을까?

  • 문서화

문서화에 능력 향상에 대한 니즈가 지금 이 회고를 작성하게하는 이유 중 가장 큰 부분을 차지하고 있다. 이슈, 세미나, 기능 구현 설명, 인수인계서 등의 문서들을 작성하면서 내게 글쓰기 능력이 얼마나 부족한지 뼈져리게 느꼈고 개발자에게 필수 역량이라고도 느꼈다. 내가 구현한 기능에 대해 훌륭한 설명 문서가 동반된다면 본인, 동료의 리소스 절감 및 팀의 컬쳐핏에도 많은 영향을 끼칠 것이라 생각한다. 누가시키지 않더라도 스스로 복기하는 차원에서 동료들을 더 친절하게 이해시키기위해서 over documentaion을 추구하도록 하자.

✔️ 기술적 성장

  • Network Layer

HTTP 통신 시 반복되는 request 부분을 줄이고 싶었지만 따로 써드파티 라이브러리를 추가하고 싶지는 않아 직접 Moya를 커스텀하여 적용을 시도해보았고 반복되는 코드 감소 및 Network layer를 템플릿화가 가능했다.

  • TestCode, CleanArchitecture

기획적 변화로 인해 개발적으로 구현할 이슈가 없었던 기간이 있었다. 그 기간을 회사와 개인 모두 발전할 수 있도록 사용하는 방법이 무엇일까 고심하다가 테스트 코드 작성을 시작했다. 테스트 코드 작성을 시작해보니 기존 내가 짜고있던 구조는 Testable하지 않은 상태였고 의존성 분리 작업 및 기능 단위로 모듈화를 위한 리팩토링이 필요했으며 내가 회사를 나가더라도 누구든 쉽게 참고할만한 자료가 있는 CleanArchitecture를 공부하여 리팩토링을 적용하였다.

  • REST API, Mock

Post Man을 이용한 Mock 서버와 ngrok을 이용한 Local 서버를 활용하여 서버 상태와 독립적으로 개발을 진행해볼 수 있었다. 또한 Swagger와 API 정의서를 통해 약속된 모든 오류 사안에 대해 대응하고 Interceptor를 활용해 OAuth2.0 토큰 관리 및 공용 오류 등의 처리 대응을 경험해볼 수 있었다.

  • CoreBluetooth

주변 디바이스 검색 및 연결을 위한 CoreBluetooth 프레임 워크를 공부하고 적용해 볼 수 있었다.

  • AVCaption

신용카드, QR 등의 스캔 기능을 위해 AVCaption 프레임 워크를 공부하여 적용해보았으나 상대적으로 리서치를 통해 참고한 코드를 그대로 사용한 부분이 많아 따로 조금 더 공부해보고 싶다는 여운이 남는 부분이다.

✔️ 어떤 개발자

개발 철학서를 읽거나 CTO님께서 해주시는 말씀을 들으면서 어떤 생각을 가지고 개발을 해야할지 생각을 많이 해봤다. 지금까지의 결론은 내 개발자 커리어에서 목표 설정에 대해 많은 고민을 하고 있다. 사실 정말 단순한 논리를 통해 도출된 결론이다.

즐거움을 잃지 않는 개발
→ 코딩 노동자로 전략되지 않아야함
→ 상황에 독립적인 끊임없는 성장
→ Self-Motivation할 수 있는 목표

인턴 종료 시점에서 관성에 따른 취업 준비가 아닌 내 개발자 커리어의 방향에 대해 많은 고민을 함에 있어 망설이지 않도록하자.

📍회고

부족한 점이 많았음에도 많은 동료 분들께 과분한 평가를 받으면서 일을 했던 것 같다. 사용자, 회사, 동료 입장에서 생각하려 노력했고 주도적으로 열정 있게 일하려 했던 부분을 높게 평가해주신 것 같다.
이번 인턴 근무에서 얻은 자신감과 일에 임하는 태도는 앞으로의 인생에서 많은 거름이 될 것이라 확신하며 회사도 나도 더 성장해서 다른 위치에서 다시 함께 할 수 있는 날이 있기를 고대해본다.

profile
iOS Developer

0개의 댓글