[회고] 11개월차 개발자의 일 그리고 일상


    지난 6월 포스팅 이후로 정말 오랜만에 쓰는 회고!
    각 잡고 쓰려면 영원히 안 쓸 것 같아서 최대한 힘 빼고 써보려고 한다.

    그동안은 업무 관련된 내용만 회고를 했었는데 이번에는 개발 일상(?)도 같이 공유하겠다.



    📌 목차
    1. 배를 만들어 바다에 띄우는 마음으로 - 프로젝트 오픈
    2. API를 만들었다. - SoftPhone API
    3. 정처기 뽕 뽑기 프로젝트 - 독학사
    4. 주말 오전은 연락이 되지 않으니 양해 바랍니다. - 주말 스터디
    5. 넋두리


    1. 배를 만들어 바다에 띄우는 마음으로 - 프로젝트 오픈

    약 3개월 간 준비한 서비스를 드디어 오픈했다. 입사 후 벌써 세 번째 서비스 오픈이지만, 처음으로 단독으로 맡아서 진행한 프로젝트였다. 걱정을 많이 했는데 생각보다 순조롭게 흘러가서 다행이었다. 예전보다 성장했다고 느꼈던 부분을 공유하자면, 다음과 같다.

    신규 기능
    1. Callback 조회, 처리 상태 변경
    2. Select Box에 검색 기능 추가
    3. 클립보드 라이브러리 사용
    4. 상담 이력을 국문/영문으로 각각 조회하는 것
    5. 교환/환불 조회, 수정

    Callback 조회의 경우 콜백 API를 통해 입력된 콜백 요청 데이터를 조회하는 기능인데, 당일 요청한 동일한 번호는 중복으로 insert 되지 않도록 처리했다. 처리 상태 변경 또한 콜백 테이블에서 해당 전화번호를 검색하고, 콜백 요청 이력이 있다면 처리 상태를 변경하도록 작업했다. (기존 로직은 콜백 조회 리스트에서 수동으로 처리 상태를 변경해야 했음) 물론 저마다의 장단점이 있겠지만, 수동으로 처리 상태를 변경하는 것보다 상담 이력 저장할 때 콜백의 처리 상태를 변경하는 것이 사용자 편의성을 높인다고 판단했기 때문이다.

    Select Box의 검색 기능은 select2 라이브러리를 사용했다. 기존에는 직접 스크롤을 내려서 찾고, 선택해야 했지만, 검색 기능을 적용하니 키워드 검색이 가능해져서 사용자들의 만족도가 높았던 기능이었다. 가장 많이 걱정했던 기능이기도 한데, 직접 사용하면서도 예전보다 편해졌다는 생각이 들어서 뿌듯했다. (바로 이런 점이 개발의 매력인 것 같다.)

    클립보드 라이브러리는 select2 라이브러리를 사용하면서 적용하게 되었는데, select box에서 선택한 데이터를 클립보드에 복사하여 사용할 수 있도록 적용했다. 기존에는 직접 해당 영역을 드래그해서 복붙 했었다면, 지금은 바로 해당 데이터가 클립 보드에 담기니 붙만 해도 된다. 😊

    오픈 전날 오픈 시나리오를 체크하면서 이슈가 될 법한 사항을 발견했다. 다행히 업무 협조를 받아서 오픈에 문제가 되지 않도록 해결했지만, 내가 담당하는 부분이 아니니까 체크하지 않아도 되겠지 <라고 생각했던 점은 반성하게 되었다. 서비스 오픈은 모두가 같이 하는 일이고, 직접적으로 내가 연관되지 않(다고 생각하) 더라도 내가 연관이 될 수밖에 없는 부분이 반드시 있는데 그 부분을 간과했던 것 같다. 항상 레이더를 켜고, 이슈가 될 사항들은 미리미리 공유하고 협조를 받자.

    오픈 당일에는 부끄럽지만 집작 광공처럼.. 모니터링을 했다...ㅎ 아무리 개발자 테스트, 사용자 테스트까지 했어도 예상치 못한 이슈는 늘 있기 마련이라 역시나 약간의 이슈가 있었지만, 침착하게 해결했다. 사용자에게 가이드 줄 사항은 다시 가이드를 주고, 우리 쪽에서 확인 안 되는 부분은 관련 부서에 요청하고, 어떤 부분 때문에 이런 이슈가 발생했는지 파악하고.. @.@ 오픈날은 정말 정신없음의 연속이다. 아무리 그래도 오픈 이후에 정상적으로 서비스가 운영되는 걸 보면, 열심히 배를 만들어서 바다에 띄우는 사람의 마음이 뭔지 알 것 같다. 이렇게 세 번째 배가 바다에 올라갔다 ~ 문제없이 끝까지 항해하길!

    2. API를 만들었다. - SoftPhone API


    드디어 SoftPhone API 개발이 끝났다. 세 번째 프로젝트와 같이 API 개발을 진행했는데, 정말 우여와 곡절이 장난이 아니었다 (ㅠ)
    레거시 소스에는 하나의 메서드에서 전역 변수 상태에 따라 이벤트 처리를 했다. 이때 문제점은 다음과 같다.

    1. 하나의 메소드에 너무 많은 기능을 처리해야 함
    2. 유지보수 어려움
    3. 개발자의 실력에 따라 결과물이 상이함
    4. 전역 변수 추가 및 삭제 시 소스코드에서 따라가면서 바꿔줘야 함

    이러한 문제들 때문에 전역 변수 대신 상태별로 클래스를 정의했다. Singleton Pattern과 State Pattern을 적용하여 만들었는데, State Pattern은 정의해둔 상태에 진입했을 때 다음 상태의 메서드를 호출하여 상태를 전이시켰다. Call에 대한 처리는 전적으로 SoftPhone API에서 담당하기 때문에 어플리케이션단 개발자는 비즈니스 로직에 집중할 수 있다. 세 번째 프로젝트에 처음으로 API를 적용했는데,
    개발 기간이 1-2주가량 단축되었다. 하나의 메소드에서 처리하던 기능들을 나누어서 관리하기 때문에 소스코드가 간결해졌고, 전역 변수를 사용해 이벤트 처리를 하지 않기 때문에 안정적인 운영이 가능해졌다. 덕분에 비즈니스 로직에 집중해서 개발할 수 있었다.

    보완할 점이 있다면, 에러 처리하는 부분에 좀 더 신경을 써야겠다고 생각했다. 기능 구현도 중요하지만, 예외가 발생하더라고 안정적으로 서비스 운영이 가능하도록 사용자에게 탈출구(?)를 만들어주자. 내 딴에는 예외 처리, 에러 처리를 한다고 하긴 했는데 아직 미흡한 부분이 있는 것 같다. 이 부분을 염두에 두고 개발하자 명심 또 명심..!

    3. 정처기 뽕 뽑기 프로젝트 (독학사)


    작년 겨울 독학학위제라는 제도가 있다는 걸 처음 알았다. 총 4단계의 시험이 있는데, 4단계를 모두 합격하면 학사 학위가 나오는 제도이다.
    정처기(정보처리기사)가 있으면 컴퓨터공학과 1~3단계가 면제고 4단계만 시험을 보면 컴공 학사 학위가 나오는 것이다..! 정처기 뽕뽑기 프로젝트의 일환으로 독학사를 준비했고, 10월 30일에 시험을 보고 왔다...ㅎ... 개정된 처음 시험이라 그런지 일부 과목이 나를 배신했지만, 이미 시험은 봤고! 결과는 받아들이는 나의 몫이니 결과가 나오기 전까지는 너무 상심하지 않으려고 한다. 그래도 준비하면서 배웠던 건 많으니까 좋게 생각하려고 한다. 긍생긍살 ~

    아쉬운 점이 있다면, 이 시험을 준비할 때 "간절한 마음"이 부족했던 것 같다. 시험 문제 자체가 정처기에 비해 어렵지 않고, 6과목 중 3과목은 안전빵(?)인 과목이 있어서 내가 마음만 먹으면 할 수 있겠지!라는 안일하게 생각했던 건 스스로에게 너무 아쉽다. 오늘은 일했으니까, 오늘은 야근했으니까~라며 붙였던 많은 핑계들이 주말에 4시간씩 공부하고, 새벽에 일어나서 공부했던 순간들을 무의미하게 만드는 것 같아서. 무슨 시험이든 간절한 마음으로 전력을 다해도 원하는 결과가 나오지 않을 때도 있는데, 그 마음 자체가 부족하면서 합격을 바란 게 부끄럽다.. ^^..ㅎ 합격한다면 합격 후기를 꼭 써야지...!


    4. 주말 오전은 연락이 되지 않으니 양해 바랍니다. - 주말 스터디


    6개월 간 매주 주말 사내 스터디를 진행하고 있다. JAVA의 정석 기초편을 진행하고 있다. 올해 말까지 완독 하는 것을 목표로 매주 1 챕터씩 진행하고 있고, 10시부터 12시까지 추가 설명이 필요한 부분 + 예제 코드 검증 + 문제 풀이 해설을 진행하고 있다. 이 책은 꼭 동영상 강의와 함께 보는 것을 추천한다. 책으로만 봤을 때 이해되지 않던 내용도 영상에서는 구현 원리에 대해 보충 설명을 해주시기 때문이다. 영상을 보면서 느낀 점은 "남궁성 쌤은 .... 천사다.."였다 ㅠ ㅋㅋㅋㅋㅋㅋㅋㅋ 무료로 이런 양질의 강의를 업로드하는 일이 쉽지 않을 텐데, 꾸준하게 영상 올려주시고 답글도 달아주신다. 슬픈 건 뒷부분으로 갈수록 조회수가 떨어져서 ㅠㅋㅋㅋ 마음이 아프다.. 내가 할 수 있는 일이라곤 좋아요 누르기 + 다른 사람들에게 강의 추천하기라서 열심히 영업하고 있는 중이다. 자바를 처음 입문하는 분들 그리고 1년 차 미만 초급 개발자들에게 적극 추천하는 강의다! 주말 오전마다 일찍 일어나서 스터디 준비하는 게 정말 정말 쉽지 않지만, 스터디를 준비하면서 자바 기초에 대해 다시 복습할 수 있게 되었다. 클래스, 상속, 다형성, 제네릭 등 알고는 있지만 남에게 설명하기에는 애매~한 개념들을 이 스터디를 통해 복습하고 몰랐던 부분들도 배울 수 있었다. 그리고 혼자 공부했다면 놓쳤을 부분들을 스터디원과 대화하면서 챙겨갈 수 있어서 아주 만족스럽다!

    5. 넋두리


    다음 달이면 벌써 입사 1년이 된다. 내 실력은 과연 1년 차에게 요구하는 실력일까?라는 의문이 든다.
    1년 전과 비교해 정말 많이 성장했다고 자부할 수 있는데, 과연 다른 개발자들이 보기에도 그럴까?
    성장하고 공부하는 게 정말 좋아서 개발자가 되었는데, 아무리 공부해도 끝이 없다는 사실이 솔직히 버겁게 느껴질 때도 있다.
    그럼에도 불구하고 내가 이 일을 사랑하는 이유는 뭘까?
    바로 공부하는 만큼 성과로 나오기 때문이다.
    절대 풀리지 않을 것 같던 문제가 풀렸을 때 짜릿함
    공부했던 내용을 현업에서 만났을 때, 그게 뭔지 물어보지 않아도 이해할 수 있을 때의 성취감
    나의 고민의 결과가 "더 편해졌어요!"라는 말로 바뀌었을 때의 뿌듯함

    이런 순간들이 모여 "그래.. 이 맛에 개발하지.."라는 말을 하게 한다.
    직업은 그냥 직업일 뿐이라고, 돈을 버는 수단일 뿐이지 많은 의미를 둘 필요 없다고 생각하는 사람도 있겠으나,
    나에게 직업이 갖는 의미는 그 이상이라서 이왕 할 직업이라면 재미있게 그리고 잘하고 싶다.

    재미있게 하기 위해 오래 할 힘을 남겨둬야 된다.
    지난 1년 동안은 쉬어야 할 때를 잘 몰랐던 것 같다. 그냥 달리기만 했던 것 같다.
    이제는 쉴 때는 아무 걱정 없이 푹 쉬고, 나를 돌보며 오래 할 힘을 남겨둬야겠다.


    728x90

    댓글