차트 프로그램을 개발하는 회사에서 2년

Hojun Jeong·2025년 3월 9일
post-thumbnail
  1. 입사과정
  • 신체검사 4급 판정을 받은 이후, 공익근무요원이나 산업기능요원으로 복무를 해야하는 상황이되었다.
    일찍이 병역을 미뤄온 나로서는 3학년을 마친 시점에서 얼른 복무를 시작해야했다.
    2021년 즈음이었고,
    이때 당시 산업기능요원으로 개발 회사에서 근무를 하기에는 객관적으로 보아도
    실력, 경험이 없는 상황이었기 때문에 1년 휴학을 하며 국가지원 부트캠프를 하기로 결정했다.
    이 과정을 진행하며 개발에 대한 실무감각을 조금은 이해하고 지원서를 제출 할 수 있었다.
    (물론 부트캠프가 자율주행 ai 에 대한 과정이었지만 다양한 개발을 하였다. 웹, 프론트,백엔드)
    과정이 9월에 끝나게 되어 이때부터 이력서를 작성하여 개발 회사들에 지원을 하였다.
    경험과 실력을 증명할 수 있는 것들이 고작 프로젝트 몇개 였던 당시에는 회사에 서류에서 거부당한 횟수가 30회 정도 되었고, 그래도 몇군데에서 이력서를 조회하여 연락이 왔다.
    이력서에는 의료 시스템을 위한 프로그래밍 해커톤을 본선 진출하거나, 코로나 백신 조회 프로그램등이 기재되어 있었고, 이를 보았는지 전능아이티라는 의료 서비스와 관련된 개발회사에서 면접을 볼 수 있냐고 문자가 왔다.
    바로 코딩테스트를 보러갔고, 임원면접을 본 이후 합격이 되어 근무를 시작하게 되었다.
  1. 1년차
  • c#은 처음 개발 해 보았지만 객체지향 언어로 기존에 java를 사용했어서 언어자체가 크게 힘든 부분은 없었다.
    개발했던 프로그램은 NC라는 진료비관리 프로그램이었고,
    그중에서 보험청구와 관련된 개발을 하는 파트에 배정을 받았다.
    추가적으로 진료이미지를 관리하는 프로그램이 하나 있었는데 그 프로그램은 향후 내가 주로 관리를 하게되었다.
    낮설긴 했지만 도메인은 항상 낮설기 마련이니 괜찮았다.
    팀에는 사수 한명과 나, 그리고 내 입사 이후에 몇명 들어와 4,5명의 인원이 개발팀을 이뤘는데
    사수로 있던 분이 내 부족함을 많이 매꿔주어 감사하게도 꽤나 금방 업무에 익숙해졌다.
    하지만 힘든 부분은 개발이 아닌 개발 업무라는 점에 있었다.
    학교만 다니던 대학생들이 아마 회사를 다니면 제일 처음 겪는 난관일 것인데,
    이것은 업무로서의 개발과 배우는 개발의 차이점이다.
    업무로서의 개발은 크게 2가지가 중요한 것 같다.
    1. 문제상황 파악
    2. 제한 시간내에 문제해결
    내가 제일 힘들었던 부분은 문제상황 파악이었다.
    프로그램에 대한 기획이 나오던, 버그가 발생하던, 문제 상황을 빠르게 파악하기가 나로서는 힘이 들었던 것 같다.
    소프트웨어 학과에서 주로 하는 개발은 내가 말한 2에 문제해결의 과정을 위한 개발로 본다면,
    문제상황을 파악하는 과정은 직접 경험하는 방법 외에는 따로 없지 않나 싶다.
    문제상황을 빨리 파악하고, 해결에 많은 시간을 쏟아야 하는 상황이 되기까지는 꽤나 긴 시간이 걸렸고,
    아마 입사후 1년정도는 이 업무 시스템을 나혼자 채득하려고 노력을 했었다.
  1. 2년차
  • 개발 방법론, 팀과의 소통, 신속한 대응을 위한 개발이 익숙해 졌었다.
    애자일 방법론의 개발이 주가 되다 보니,기획 구현, 버그에 대한 핫픽스의 형식으로 진행이 되었다. 언어적으로 익숙해 진 것도 있고, 프론트, 백엔드를 모두 하게 되는 상황이 많아서 개발적으로 경험이 쌓이게 되었다. 사실 회사를 입사하기 전까지 프론트에 대한 지식은 거의 전무했지만, 구글링, gpt를 사용하면서 빠른 개발을 할 수 있었다.
  • Front: winform, wpf의 프레임워크를 사용하면서 페이지를 최대한 독립적으로, 그리고 중복 가능성이 있는 부분들은 resource dictionary의 형식으로 개발을 하였다. 이에 따라 뷰모델도 독립적으로 분리를 하여 사용을 하였는데 이러한 방식을 선택한 이유는 mvvm패턴을 사용하는 과정에서 뷰모델의 의존성을 갖는 뷰들을 여러개 만들다 보니, 재사용성도 힘들고, 가독성이 떨어지며, 새로 들어오는 신입분들이 코드에 대해 이해하는 시간도 길어진다는 점들이었다.
  • Data: 데이터의 경우 이 회사 차원의 최대 장점이었는데, 데이터를 매우 오래전부터 저장을 해놓았기때문에 리소스가 많다는 장점이 있었다. 하지만 개발자인 나로서는 아쉬웠던 부분들이 이부분들에 있었다. 스키마 구조나, 키들, 칼럼들의 형식이 때로는 프로그램 의존적인 경우가 있었고, 한번 만들어놓은 테이블을 컨버팅하는 일이 복잡하여 많은 경우 과거의 스키마를 따라가는 보수적인 개발이 이루어져서 힘들었던 적이 더러 있었다. 이와 같은 방식에서 간혹 속도 이슈나 메모리 이슈가 발생했던 적이 꽤나 있었는데, 이러한 경우에 해결한 방식은 orm이었다. 프로그램적으로 해결을 했다는 이야기다. 일례로 한번 7개의 테이블을 조인해서 데이터를 가져오는 경우가 있었는데, 병원에서 메모리 문제, 밑 속도 이슈로 프로그램이 터진다는 것이었다. 데이터가 많은 문제도 있었지만 그냥 조인을 해서 한번에 가져오겠다는 방식의 문제라고도 볼 수 있었고, 20초 이상의 로딩을 3초 안으로 단축시켰는데, 비동기적으로 데이터를 가져오는 방식을 사용하며 조인시에 꼭 필요한 칼럼들만 연결을 하며 해결을 하였다.
  • Back: 위에 말한 데이터와는 별개로 나는 이 회사를 다니며 백엔드의 흥미를 찾은 케이스다. 회사를 입사하기 전에는 이러한 구분에 얽매이지 않고, 회사가서 어떤 일이든 해보겠다는 마음이었는다. 하지만 업무를 하다보니 백엔드 부분이 재미있었고, 내가 제일 빠르게 처리할 수 있는 부분이 많았다. 진행한 업무를 대략 얘기하자면, 아까말한 프론트에 필요한 데이터들을 데이터 서버나, api서버로 부터 받아서 처리되어야 할 기능들을 개발하였고, 특히 청구 심사를 하는 경우에는 해당 엑셀파일들을 이용해서 api 서버에 데이터를 올리는 업로드 api나, 심사를 해주는 api 를 개발하는 등 다양한 새로운 개발이 많았다. 이러한 개발에서는 개발외적으로 기획과의 소통에서 여러 시행착오를 겪었지만 주체적인 개발을 많이 할 수 있어서 업무가 재밌었다.
  • 소통: 내가 이 부분을 적은 이유는 이 부분이 개발 외적인 부분중에서 제일 중요하다고 느꼈기 때문이다. 어느정도 상황을 해결하는 개발이 가능한 시점부터 제일 많이 충돌이 있었던 것은 이 소통에 있었다. 소통이 필요로 한 부분은 두가지로 나뉘었다. '기획기반 개발을 할때 기획자와의 소통', '버그를 고객지원팀으로 부터 인계받고 해결하는 과정에서의 소통'이다. 기획기반 개발은 특히 앞서 말한 api 개발과 같이 새롭게 진행이 되는 프로젝트 들에서 발생했는데, 우리 팀같은 경우 기획하시는 분이 한분이었는데 개발을 잘 모르시지만 도메인에 대한 이해를 매우 깊이 잘하시는 분이었다. 이분은 우리가 말하면 아시는게 많아서 여러가지 생각을 하셨는데 도메인에 대한 이해가 부족한 나로서는 대화가 빠르게 진행되지 않았고, 그래서 힘들었던 시기가 조금있었다. 더군다나 이분이 재택근무를 하셔서 사내 슬랙으로만 소통을 하게되니 힘든 부분이 있었는데, 내가 선택한 해결책은 화상회의를 통해 직접적인 소통을 하는것, 그리고 그분이 생각할 만큼의 상황들을 내가 미리 파악을 해놓고 대화를 진행하는 방식, 이렇게 두가지가 있었는데 꽤나 이 두 방식으로 잘 풀려서 오히려 좋은 경험을 얻었다고 생각이 된다. 아까 말한 두번째 소통인 고객지원팀과의 소통은 마찬가지로 프로그램에 대해서는 아시지만 개발에 대해서는 모르기 때문에 사용자에게 설명서를 쓴다는 방식으로 소통을 진행했었다. 이렇게 되면 이 방식의 설명을 통해 고객지원팀이 고객에게 설명하기도 편하기 때문에 좋은 방식이라고 생각했다.
  1. 마치며
  • 2년동안 회사를 다니며 입사 전에 '내가 기대했던 정도의 성장을 했냐?' 라고 묻는다면, 65% 정도로 나는 대답할 수 있을 것 같다. 성장한 부분에 있어서 말하자면 개발 숙련도(가독성, 복잡도), 다양한 개발론에 대한 이해, 효율적인 메모리관리, 속도 관리의 측면, 도메인에 대한 이해를 생각하며 개발을 했다는 점이 나에게는 발전이었다. 하지만 35%나 차지했던 나의 아쉬운 부분은 회사가 나에게 성장을 가져다 주는 부분이 아닌, 내가 스스로 발전시켜야 한다는 부분에 있다. 2년차에 접어들며 안전반원안에 놓여진 나는 또다른 발전을 위한 개발이 아닌 익숙함에 가까운 개발을 많이 하였고, 이러한 부분은 내가 앞으로 개발자로서의 제일 크게 신경써야 할 부분이라고 인지할 부분이다. 2년의 시간이 크게 보면 짧았고, 가까이 보면 길었지만, 개발자로서 매우 좋은 자양분이 되었다 생각하며 이제 복학 준비를 하러 간다..
profile
Student , Junior Developer

0개의 댓글