회사가 커서 서울로 가게 되었습니다. 저는 얼마를 불러야 할까요?
안녕하세요...!
오키에 몇 번 신세도 지다가,
안드로이드 앱 개발자로 독학 취업했던 병아리입니다.
https://okky.kr/articles/946265
많이 활동하는 유저가 아닌 만큼,
질문만 덩그러니 있으면 무안하니까
그 동안의 썰이나 한 번 풀어서 읽는 재미를 드리고 싶네요 ㅎㅎ
2021년
21년도는 그저 정신이 없었습니다.
여느 스타트업처럼 앞으로 해야할 일이 밀려있었고
비즈니스 로직은 정확히 파악되지 않은 상태였으며
구현에 눈이 멀어 저는 전문가로서의 책임을 다 하지 못 했죠.
안 좋은 상황이었지만 재밌는 일거리는 있었습니다.
앱으로 실시간 그래프, 결과 그래프를 나타내야 했는데,
값이 X축으로 감소 혹은 증가할 때
'왔다갔다' 해야하는 그래프였습니다.
처음엔 생각했습니다. '껌이지'
갓갓 MP차트를 의존성에 추가하고 코딩했습니다.
와 근데... MP차트는 한 방향만 지원했습니다.
이 때 처음으로 View 에 대해 이해하고
커스텀 뷰라는 것을 만들어봤습니다.
처음엔 훨씬 조잡했습니다.
Path 를 끌어다가 ViewGroup 에 하나 그리고,
여러 ViewGroup을 겹쳐서 보여주었으니까요...(여러개의 그래프를 보여줘야 합니다)
그 이후 더 좋은 방법이 있을 것 같아서 찾아봤습니다.
MP차트처럼 깔끔하진 않지만 소규모 그래프 컴포넌트를 만들어서
아직까지 다른 안드로이드팀에서 사용하고 있습니다.
왜 다른 안드로이드팀이냐구요?
...
2022년
숨겨져있던 비즈니스 로직이 서서히 드러나기 시작했습니다.
안드로이드 앱만 있어서는 절대 사업의 목표를 달성할 수 없음을 구성원 모두가 이해했습니다.
iOS 앱이 필요했고 백엔드도 필요했습니다.
당연히 저 혼자서는 말이 안 됐고,
각 개발자를 한 명씩 채용했습니다.
간단하게 요약하면
이 팀은 굴러가지 않았습니다.
소통의 문제였습니다.
제 생각에,
먼저 근무하고 있던 저는 새롭게 들어온 분들에게 비즈니스로직을 아는만큼 설명하지 못 했고
그들이 제시하는 의견을 귀담아 들을 능력이 부족했습니다.
조금 조심스럽게 말하면, 다른 두 분은 저의 고집을 받아줄 이유가 없었죠.
머릿속으로만 알고 있는 비즈니스 로직과 비전을 표현하지 못 하자,
제 말들은 그저 고집이었고, 감정도 잘 갈무리하지 못 했습니다.
여름이 지나가기 전에 새롭게 들어온 분들은 떠나갔습니다.
저는 iOS개발도 할 줄 모르고,
비전공 출신이라 백엔드 도구는 AWS EC2잠깐 만져본 것이 전부였기 때문에
이번에는 외주개발자를 찾아다녔습니다.
아무도 비즈니스 로직을 이해해주려 하지는 않았습니다.
왜냐하면 정리돼있는 요구사항 문서와 프로그램 명세가 없었습니다.
구두로 설명하는 것을 달갑게 받아줄 사람이 있을리 없었습니다.
그로부터 두달쯤 지나고 가을무렵 결심을 하나 했습니다.
내가 하는 수밖에 없구나...
고민은 물론 많이..많이..했습니다.
'지금까지 안드로이드가 운명이라 생각하며 전문가가 될 생각으로 팠는데
이제와서 백엔드에 손대면 분명 이쪽으로 전향해야 할 것이다.
진짜 해야하나?'
라고 말이죠.
그럼에도 전향한 이유는
제가 안드로이드를 고집하는 것 보다
한 회사에서 프로젝트를 이해하여 성공시킨 경험이
훨씬 값지고 제 미래에도, 앞으로 함께할 사람들에게도
도움이 되거나 더 좋아보일 거라고 판단했습니다.
물론 백엔드에 대한 관심도 꾸준히 있기는 했습니다.
서비스가 굴러가는 흐름을 알고 작업하고 싶었으니까요.
그렇게 22년 막바지,
안드로이드 개발자 한 명과
iOS 개발자 한 명을 새롭게 채용했습니다.
저는 외주개발 미팅으로 주워들은 정부프레임워크를 사용해보기 위해
난생처음 정부프레임워크 IDE(커스텀 이클립스)와 스프링을 접해봤습니다.
2023년
첫 번째 과제는 4월에 있는 전시회까지
REST API 서버와 이와 연동되어 동작하는 앱을 1차 구현하는 것이었습니다.
다행히 배포는 아니었죠.
1월이 돼서야 온갖 기본설정들과 정상적으로 동작하는 API를 투박하게 구현할 수 있는 수준이 되었습니다.
새롭게 들어온 분들이 세련되었던 덕분에
회사는 노션과 슬랙, 깃(팀 유료버전)의 사용가치를 깨닫고 조금씩 문서화를 시작했습니다.
부끄럽지만 HTTP 에 대해 거의 아는바가 없던 터라
메서드, 헤더, 바디, JWT 등을 새롭게 알게 되었고,
모르는 부분은 표준문서를 읽으며 알아나갔습니다.
어찌저찌 앱에서 제가 구현했던 로직을 서버로 숨기고
앱은 요청과 응답만으로 대부분 작동하도록 만드는데 성공했습니다.
전시회가 끝나고는 꽤 큰 요구사항이 들어왔습니다.
이 요구사항을 만족시키려고 하니,
공학적?물리적?인 저희 제품의 문제를 해결해야 했습니다.
예전부터 타사제품과 비교해 거슬리던 것이었고
정확도와 직결된 문제라 해결해야 했지만 실패해서... 차선 해결책만 적용해둔 상태였죠.
다행히 이 때 쯤에는 경험치가 꽤 쌓였던 모양인지
다른 분들의 조언을 조합해서 유의미한 데이터를 발견해냈고
논문에 실어도 될 정도의 결과물을 얻었습니다.
문제가 해결됐습니다.
이클립스 개발환경에서 인텔리제이 개발환경으로 이전도 했습니다.
깃 플로우도 제대로 활용하지 못 하다가 필요성을 깨닫고 제대로 분기를 타기 시작했습니다.
REST API 에 대한 감을 찾고 익숙해진 팀원들과 마찰없이 소통하며 더 좋은 아이디어로 나아갈 수 있었습니다.
최근
... 라고 생각했는데 더 큰 요구사항이 흘러들어왔습니다.
저희가 B2B 가 메인인 사업이거든요.
클라우드 기반으로 지금까지 작업해왔는데
인트라넷에서 동작하게 만들어달라고 했습니다...
우선 해본적도 없고 무서워서 감정도 잘 컨트롤이 안 되더군요...허허..
일단 그쪽의 요구사항대로 미니PC를 구매해서
리눅스마스터 공부할 때 처럼 우분투를 설치했습니다.
AWS EC2 환경과 동일하게 맞췄습니다.
단일 PC 로는 동작하는 것을 확인했습니다.
여기까지야 매번 하던 배포작업이니까요.
목적이 앱은 한 개로 퉁치자였기 때문에
PC에 DNS 서비스를 제공하는 bind9 을 배워서 적용했습니다.
인트라넷에 접속하면 원하는 이름으로 호출되더군요.
아싸!
이제 앱은 접속돼있는 와이파이에 따라 클라우드 서버에도, 인트라넷 서버에도 요청할 수 있게 되었습니다.
이중화도 해달라고 했습니다.(그만..그만...!)
MariaDB 를 쓰고 있었기 때문에 이중화 전략들을 알아봤습니다.
처음에는 잘 몰라서 DB용 리버스프록시인 max scale 을 써야 하나 했는데
복제기능만으로 충분할 것 같았습니다.
PC 를 한 대 더 사서 서로 master, slave 설정을 해두었더니
양방향 복제가 되는 것을 확인했습니다.
이제 이 컴퓨터 두 대를 하나로 합칠 차례였습니다.
마찬가지로 처음엔 잘 몰라서
pacemaker 를 이용해 가상 IP를 만들고자 했는데
여러 블로그를 보다가 keepalived 라는 더 쉬운 툴이 있는 것을 찾았습니다.
저희의 목적에 더 부합해보였고 실제로 가벼웠습니다.
가상 IP 를 양쪽 모두에 설정해두고 MASTER , BACKUP 을 부여해주니
하나가 죽었을 때 다른 한 쪽이 이어받더군요.
지금은 이를 제품화하여 공급할 계획에 있다는 것 정도만
여기서 말씀드릴 수 있어보입니다.
현재
그렇게 글을 쓰는 지금,
AWS 의 대부분을 비용을 고려해 다룰 수 있게 되었고
레거시 스프링 MVC 에 대해 기초정도는 안다고 자부하고 있으며,
인트라넷 경험을 노션에 모두 정리하여 네트워크가 돌아가는 구조와
이를 PC 환경에 어떻게 적용하여 제어할 수 있는지 알고 있다고 생각합니다.
또한 로버트 C. 마틴의 클린아키텍처, 클린코드를 얼마전에 읽고 큰 감명을 받아
현업에서 가능한한 적용해보고 있습니다.
안드로이드에서 필요한 커스텀뷰도 가끔 작업해서 PR 을 보내고 있구요.
여전히 바쁘지만 개발팀은 더 이상
요구사항에 뒤쳐지지 않고 있고 더 나은 것을 적용하고 앞서가려 노력하는
꽤 이상적인 모습이 되어가고 있습니다.
타이밍 좋게 아산나눔재단이 주관하는 마루180에 입주하게 되어
대전에서 서울로 올라가게 된 것이구요.
돈
ㅎㅎ... 마침 올라가는 타이밍이 연봉협상의 계절과 맞닿아 있습니다.
여러분이 보시기에
좋게 말하면 만능이고
나쁘게 말하면 조잡한
저라는 주니어 개발자가
서울에서는 얼마를 받아야 적합해보이시나요?
학력은 여전히 고졸이나...
독학사나 학점은행제 제도를 활용해서 점수를 쌓고 있습니다.
24년도에는 학사를 딸 예정이고
이후에는 석사욕심도 나는군요.
어차피 목표로 하는 금액은 있습니다. 하지만,
1) 보통 사람들이 어느정도로 생각하는가?
2) 현실은 어떤 상황인가?
두가지를 알면
제가 훨씬 협상하고 설득하기 유리해질 것이라고 봅니다.
올해도 도와주십쇼...!!!