[개발일기/#5] 2022 회고

djawnstj·2022년 12월 31일
0

개발 일기

목록 보기
5/5

21년 12월 1일 첫 개발자로 취업하고 나서 맞이하는 첫해가 정말 다사다난했다.
사실 뭘 회고한다 하기엔 부끄럽지만 기록이 중요하니......

1. 회사

국비지원 아카데미를 수료하면서 아카데미 강사님이 대표로 계신 회사로 취업하게 됐다.
직무는 안드로이드 개발이고 헬스케어 SI회사다. SI지만 삼성서울병원의 모바일 개발과 유지보수를 전담하고있다.

주니어 개발자고 개발이란걸 아카데미를 시작하면서 처음 해봤기 때문에 나도, 회사도 나에게 기대를 크게 안했지만 크고작은 프로젝트를 세개나 했고 무사히 마무리 지었다.

업무

맡은 업무로는 회진 앱, 약제부 앱, 비대면 회진 앱 이렇게 세가지를 진행했다.

1. 회진 앱

처음 맡은 업무(회진 앱)가 꽤 규모가 있는 프로젝트였는데 당시 회사가 바쁜 시기라 나와 동기 둘이서 진행했다. 동기도 아카데미 출신이라 둘 다 심하게 아마추어였고, 코드도 엉망진창이었다. (지금 코드 까보면 10줄도 읽기 싫을정도...)
의사 선생님들이 회진을 돌 때 환자마다 차트, 영상 등을 출력하고 들고다니면서 생기는 불편함을 태블릿 하나로 해결할 수 있도록 만든 앱이었다.
하나 특별한 점은 화면을 캡쳐해서 의사분들이 메모를 추가하거나 감염부위 표시를 하는 등 스크랩 기능을 추가로 개발했다.

성장

첫 프로젝트를 끝내고 정보처리기사도 따면서 다른 회사/개발자들은 어떤 개발을 하는지 궁금해 시야를 넓히게 됐다.
정확히는 정처기를 공부하면서 회사가 짜는 코드 스타일이 좋지 못하다는 느낌이 들었고 좋은 코드는 어떤코드인지 찾아 떠났었다.
처음엔 이해가 안되는 부분이 MVP, MVVM 패턴이라면서 굉장히 복잡하고 파일을 여러개로 분산하며 코드를 짜는거였다.
회사는 한 액티비티/프래그먼트에 이벤트를 받고 api 콜, 응답 후 view 처리까지 모든게 들어있었고 코드짤때 훨씬 쉽게 짤 수 있다고 생각했다.
공부할수록 회사에서 짜던 코드가 절차지향인것을 알았고 객체지향 원칙을 지키며 역할을 분산시키는게 코딩할땐 시간이 오래걸려도 유지보수가 쉬운 코드란걸 체감했다.

2. 약제부 앱

그래서 두번째 프로젝트인 약제부 앱에서 간단히라도 스타일을 바꿔보려고 시도했다. 일단 회사 컨벤션을 완전 부정할 수 없었기 때문에 여전히 절차지향 코드였지만 최대한 함수로 역할을 쪼개서 만들고 정적변수, 전역변수 사용을 줄여 결합도를 낮추는데 노력했다. 또 중복코드를 없애고자 abstract class 로 BaseFragment를 만들어 사용되는 Fragment들은 해당 클래스를 상속받도록 하였다.
다른 개발자들이 보기엔 아직도 좋은 코드는 아니겠지만 회사입장에선 큰 변화였다. 특히 다른 직원분이 유지보수를 위해 프로젝트를 열었을때 이번엔 코드 보기가 편했다는 말을 듣고 개인적으로 뿌듯하기도 했다.
이 프로젝트를 진행할 때 또 개선을 위해 한 작업이, 기존 회사 앱 업데이트를 관리하기 위해 사용한 것은 XML 파일로 최신버전을 기록해 그 파일을 다운받아 버전체크를 진행했다. (회사에서 개발한 앱은 모두 특정 병원 내부용이기 때문에 앱스토어로 관리되지 않고 자체적으로 관리했다)
이런 XML 파일로 관리하면서 생기는 문제가 매번 XML 파싱을 위한 레거시 코드가 어마어마하게 많아지고 XML 파일 자체도 앱 별로 생성돼야 하고, 파일 내부도 직관적이지 않기 때문에 불편한 점이 있었다.
이를 해결하고자 DB 테이블로 앱별로 값을 가지고있게 하여 앱에서 api 콜을 하면 해당 앱의 버전 정보를 json으로 응답받아 gson을 이용해 간단히 객체로 변환해 체크를 하도록 로직을 변경하였다. 이로써 필요한 코드가 거의 1/10정도로 줄은거같다.

3. 비대면 회진 앱

세번째 프로젝트는 비대면 회진 앱이다.
삼성병원과 한국로봇산업진흥원에서 진행하는 로봇 프로젝트 중 회진로봇에 설치될 앱이다.
회고를 적는 시점에서 아직 대외적으로 공개가 되지 않았기 때문에 자세한 내용은 못적지만 의사분들이 환자 앞으로 직접 회진을 가지 않고도 로봇이 병상앞으로 가 zoom같은 영상통화를 이용해 회진을 하는 기능이다. 대표님께서 만드신 webRTC를 이용한 영상통화를 비대면 회진에 맞게 살짝 변경하고 redis pub/sub을 이용해 단방향 통신을 구현하는게 내 주 업무였다.
다행히 어제(12/30) 테스트를 무사히 마쳐 1차년도는 무사히 넘어갔고 내년 2차년도에 마무리될 사업이다.


(기획 당시 이미지라 현재 로봇들의 모습과는 다른점이 많다)

계획

감사하게도 대표님께서 좋게 봐주셔서 이직 없이 오래 남아서 본인이 은퇴하시면 회사에서 리더역할을 해주길 바란다는 얘기를 해주셨다.

처음 이 얘기를 들은게 2-3월 쯤이었던거 같은데 그땐 정말 너무 감사하고 무조건 회사에 뼈를 묻을 생각이었다. 그런데 이후 세계관을 회사에서 외부로 넓히면서 회사의 방향성과 내 주관이 너무 다르다고 느꼈기 때문에 퇴사를 고민하던 시기였고 9월쯤 한번 더 위 얘기를 들었을땐 대답은 아직 이직은 생각 없습니다 라고 했지만 마음은 서서히 돌리고있던거 같다.

이번 12월 월급에 상여금으로 한달 월급을 추가로 받을만큼 많이 받았는데, 대표님께서 내년에도 상여금을 많이 받을만한 프로젝트를 나랑 같이 진행할 예정이라고 하셔서 퇴사를 미룰 마음이 생겼다가 내가 변화를 준 코드들을 보고 좋지 못한 코드라고 하시는것을 듣고..... 확실히 나는 돈보단 성장을 원한단것을 한번 더 깨닫고 퇴사에 마음을 굳히게 되었다.

솔직히 지금 내 수준이 개발자라고 말하기는 많이 부끄럽기 때문에 공부를 더할 생각이다.
내년 1분기엔 꼭 퇴사한다는 목표이고 후술하겠지만 백엔드 개발자가 되기로 마음먹었기 때문에 스프링위주로 공부하고 부족한 알고리즘, 전공 수준의 CS를 공부할 계획이다.


2. 개인

안드로이드 개발자로 취업을 했지만 원래 백엔드 개발자가 목표였기도 하고, 유튜브 채널 '개발바닥'에서 김영한님의 얘기를 듣고 무조건 백엔드 개발자가 돼야겠다는 생각을 다시 하게됐다.
사실 전공자도 아니고 백엔드는 알아야하는게 엄청 많은 분야라고 생각했기 때문에 꿈도 못꿨는데 시도를 안하고 포기하면 후회할거같다는 생각이 많이 들었다.

Spring Boot를 공부하면서 그냥 HashMap으로 api를 만들기만해도 설레는 감정도 들었고 지금은 너무 재밌게 공부중이다.

지금 회사는 8-17 근무이기 때문에 5시 20분에는 기상을 해서 퇴근 후 집에오면 19시 20분쯤 된다. 잠을 하루 5시간씩 자면서 공부도 빼먹지 않고 하지만 체력적으로 너무 힘들다는게 느껴진다. 사실 핑계일순 있지만 회사에서 치열하게 코딩하고(SI다 보니 기간이 짧고 요구사항히 매일 바뀐다보니..) 집에오면 공부에 집중도 안되는 느낌이다.
금전적인 이유때문에 퇴사 후가 걱정되긴 하지만 지금 수준이 개발자로 취업하기 말도 안되는 정도라고 보기 때문에 업보라고 생각하고 공부를 하려한다.(사실 공부할 목록을 보면 너무 기대되고 공부가 하고싶어 퇴사하는거 같은 생각도 든다)

일단 내년은 공부에 매진할거고 24년도까진 취업을 못해도 조바심 없이 역량을 올리려고 계획중이다.
된다면 'SW 마에스트로'나 '우아한 테크 코스'를 도전할 생각도 있다.


profile
이용자가 아닌 개발자가 되자!

0개의 댓글