안녕하세요. 개발하는 정주입니다.
오늘은 2020년 3월부터 2022년 2월까지의 산업기능요원 회고를 작성해보려고 합니다.
코로나와 함께 입사해서 코로나와 관련된 프로젝트를 진행하고 코로나가 끝날 때쯤 퇴사를 하니 참 기분이 묘하네요.
첫 회고 글이라 엉성할 수도 있으니 댓글로 피드백 주시면 감사하겠습니다.
입사 포지션
저의 입사 포지션은 안드로이드입니다. (지금은 iOS를 준비 중이지만... ㅎ)
다만 23개월 중 첫 2개월 정도는 C 프로젝트를 진행했는데요.
이때 말고는 포지션에 맞는 프로젝트를 진행했습니다.
주요 업무
제가 입사한 회사는 안드로이드 소프트웨어뿐만 아니라 안드로이드 보드와 하드웨어까지 직접 생산을 했기 때문에
일반적인 모바일 앱 개발과는 거리가 멀었습니다. (개발 제품 중 하나의 홍보 영상 : https://youtu.be/lrgmfYhetyQ)
앱이 항상 꺼지지 않는다는 점, 인터넷 연결이 불가하다는 점 등의 차이점이 있습니다.
기능 개발
한 제품 안에 여러 업체가 요청한 기능을 각각 한 두 개씩 추가해야 해서 프로젝트가 전체적으로 난잡했는데요.
들어온 요청 사항에 대해서 기존 기능을 응용해서 해결할 수 있진 않은지, 불가능하다면 어떤 식으로 처리해야 할지를 고민합니다
이런 요청 사항 중 괜찮아 보이는 것은 조금 더 개선해서 Public 기능으로 전환하여 제품의 전체적인 품질을 높이기도 했습니다.
메모리 최적화
제가 개발한 제품은 모바일 앱과는 다르게 앱이 종료되지 않고 365일 24시간 켜 있는 경우가 많습니다.
따라서 메모리 누수(Memory Leak)는 절대 용납하면 안 되는데요. 조금이라도 누수가 있으면 언젠가 앱이 죽기 때문입니다.
이런 빡센 메모리 최적화가 참 고됐다는 생각이 듭니다.
메모리 누수가 바로바로 눈에 띄면 좋겠지만 Profiler를 사용해도 하루 이틀 만에 눈에 띄지 않을 정도로 미미하게 오를 때도 있거든요.
내심 이 정도는 넘어가도 되지 않나?라는 유혹도 많이 들었지만 포기하지 않고 릭을 잡았을 때는 참 기분이 좋았습니다.
문제 원인 추리
제품마다 다르지만 제가 개발한 제품은 기본적으로 인터넷 연결을 하지 못합니다.
즉 문제가 생겼을 때 상황을 파악하는 것이 너무 어려웠습니다.
단편적인 조각으로 결과를 유추하는 방법뿐이었는데요. 어떤 날에는 내가 개발자인지 추리하는 코난인지 헷갈리기까지 했습니다.
이런 점 때문에 프로젝트를 더욱 빡세게 파악하고 있고 기능 하나를 추가하더라도 여러 케이스를 생각하며 테스트했습니다.
이 과정이 참 힘들었으면서 배운 게 많았습니다. 개발력도 그렇지만 추리력, 통찰력이 많이 좋아진 것 같아요...ㅎㅎ;
배운 점
업무를 하며 개발자로서도, 개발 외적으로도 배운 점이 참 많습니다.
그중에서도 학생 때는 배울 수 없었던 귀한 경험 세 개정도를 정리해보려고 합니다.
빠른 개발이 답이 아니다
입사하기 전 학생이었던 시절에는 빠르게 개발하면 개발을 잘하는 줄 알았습니다.
하지만 지금은 생각이 많이 바뀌었어요.
빠른 것도 중요한 요소 중 하나지만 정확성과 신중함이 더 중요하다는 것을 깨달았습니다.
빠르기만 한 것은 추후 문제가 생길 가능성이 다분한데 조금 느리더라도 신중하게 정확히 개발을 하면 문제가 확연히 줄어들더라고요.
위에서 말한 것처럼 프로젝트가 많이 난잡할 때 빨리빨리 개발하다 보면 서로 영향을 주기도 해서 다시 해결하는데 또 시간이 들었습니다.
빠른 게 오히려 느린 결과를 불러온 셈이죠.
산업 기능 요원으로 일을 하며 정말 중요한 점 중 하나를 배웠습니다.
일정 계산하기
프로젝트를 거의 혼자서 진행했기 때문에 개발에 대한 일정도 직접 정해서 보고를 했어야 했는데요.
일정을 너무 타이트하게 맞추지 않고 적절한 쿠션을 줘야 한다는 점을 배웠습니다.
처음 진행한 C 프로젝트의 경우 너무 타이트하게 잡은 나머지 2일 정도 일정을 넘긴 실수가 있었습니다.
그 뒤로는 일정에 어느 정도 쿠션을 줬던 것 같아요.
제 실력이 부족해서 늘어지는 경우, 기획이 갑자기 변경되는 경우, 의도치 않게 틀어지는 부분 등을 고려해서 넉넉하게 일정을 보고 드리고 시간이 남을 경우엔 더 개선할 점이 있는지를 충분히 고민했습니다.
다만, 쿠션을 너무 많이 줄 경우 저에 대한 기대와 신뢰가 낮아질 수 있다는 것을 기억하며 주의했던 것 같아요.
비전문가와의 커뮤니케이션
회사 특성상 직접 운영팀, 영업팀과 직접 커뮤니케이션을 하는 상황이 많았습니다.
이럴 때마다 어떻게 하면 비전문가에게 개발적인 요소를 쉽게 설명할 수 있을까 고민을 많이 했던 것 같아요.
정확한 정보와 개발자로서의 의견을 표출 하면서 개발 용어를 최대한 줄이며 말하기가 쉽지 않았습니다.
이건 아직까지도 뭐가 정답인지 모르겠지만 저는 일부 정보의 정확성에서 타협을 보았습니다.
사실 특수한 경우가 아니라면 영업팀이나 운영팀에서는 정확한 수치까지는 필요 없다는 판단이었습니다.
가령 복잡한 알고리즘을 있는 그대로 정확하게 말하는 게 나은가, 정확성이 좀 떨어져도 일부 생략해서 쉽게 말하는 게 나은가를 생각해보면 당연히 후자가 맞다고 생각했습니다.
결과적으로 소통이 개선된 느낌은 있었습니다만 조금 더 좋은 방법이 무엇이 있을까 하는 생각이 들었습니다.
앞으로의 계획
산업 기능 요원을 마치고 4학년 1학기로 복학해야 하는 현시점에서 앞으로의 계획을 생각해보았습니다.
iOS 공부 & 토이 프로젝트
제 커리어를 위한 iOS 공부를 하려고 합니다.
물론 공채로 입사하여 커리어가 변할 수 있지만 지금 가장 하고 싶은 iOS를 공부하며 프로젝트를 진행해보고자 합니다.
현재 정말 작은 앱을 하나 출시했는데 많은 관심 부탁드립니다. ㅎㅎ
23개월 간 진행한 산업 기능 요원 회고를 마쳤습니다.
참 배운 것도 많고 아쉬운 것도 많았던 23개월인데요.
진짜 취업을 할 때 이런 경험을 잊지 말고 잘 녹여 좋은 곳에 취업했으면 좋겠습니다.
감사합니다!