////
Search
🎙️

라인웍스 - 정우성 개발자님 (서버/백엔드 포지션)

개발자 커리어 점프 [점핏]! 개발자를 위한 직무 이야기를 전해드립니다.
개발자님의 직무 이야기
1. 담당하고 계신 업무를 소개해주세요.
저는 현재 라인웍스에서 백앤드(서버) 개발을 하고 있고, MDwalks CLUE 라는 제품의 백앤드를 메인으로 담당하고 있습니다. 쿼리 튜닝부터 API 구현, 비동기 작업 설계, 성능 최적화, 인프라 구축 등 백앤드에 관련된 여러가지 업무를 보고 있습니다.
2. 현재 회사와 지금의 직무를 선택하게 된 계기는 무엇인가요.
한국에서 가장 큰 병원들의 빅데이터 분석을 하고 AI 기술도 같이 다루는 회사라고 해서 라인웍스에 지원하게 되었습니다. 백앤드 (서버) 개발자를 선택한 이유는 데이터를 직접 다루고, 비즈니스 로직을 구현하고, 고성능 인프라를 구축하는 일들이 특별히 재미있다고 느껴서 백앤드를 하게 되었습니다.
3. 하루 일과를 소개해주세요.
보통 아침 9시에서 11시 사이에 자율 출근하고, 하루 일과를 Daily Scrum이라는 챗방에 기재한 다음, 보통 11시에 회의가 있어서 회의를 합니다. 12시에 식사하러 가고, 1시 쯤 복귀해서 여유가 있는 날은 2시 전까지 사내 보드게임 클럽 분들하고 같이 보드게임을 즐기고, 2시부터는 본격적으로 개발을 시작합니다. 대략 7시정도까지 집중적으로 코딩하고, 퇴근합니다.
4. 업무를 하며 가장 보람을 느낄 때는 언제이신가요.
무엇인가 공들여서 최적화를 한 후 실질적인 성능 향상이 있고, 유저의 사용성이 개선될 때 보람을 느낍니다.
[라인웍스]의 개발이야기
1. 업무의 프로세스를 소개해주세요.
1-1. 기획부터 개발까지 진행되는 프로세스
현재는 Agile Scrum 방식으로 진행하고 있습니다. 버전 0.1~0.9의 MVP 단계에서는 기획에서 필요한 기능들이 들어가있는 틀만 잡고, 개발자들이 구현을 한 후 Feedback을 받으면 기획에서 다시 수정하고, 개발자들이 수정해서 구현을 하는 프로세스를 반복합니다. UX 디자인은 보통 MVP에서 정규 버전으로 넘어가기 직전에 본격적으로 작업합니다.
1-2. [설계, 분석, 개발, QA, 런칭] 단계별 소요되는 평균시간
Agile Scrum 방식이어서 기획 및 개발 소요시간은 천차만별입니다. 어떤 경우는 기획은 하루 걸렸는데 개발은 2주 걸릴 때도 있고, 기획이 1주일 걸렸는데 개발은 며칠만에 진행한 적도 있습니다. 간단한 QA는 보통 배포 당일 신속하게 끝내고, 정밀 QA는 보통 1~2주 기간을 잡고 체계적으로 진행합니다.
2. ★개발 배포 프로세스를 소개해주세요.
저희는 B2B 소프트웨어를 병원의 폐쇠망 안에 설치하는 방식으로 배포를 하기 때문에 실서버는 병원 내에 있고, VDI를 통해서 도커 이미지를 올리는 형식으로 배포합니다. 사내에서는 개발 서버, 스테이징 서버가 있고, PR을 브랜치에 머지시키면 자동으로 배포시켜주는 배포 시스템을 사내 개발해서 운영 중입니다. 실배포도 도커로 하기 때문에 사내 배포도 동일하게 도커로 하고 있습니다.
3. ★개발환경을 소개해주세요.
컴퓨터는 조립 PC와 27인치 모니터 두 대 견적을 맞춰서 사용 중이고, OS는 Ubuntu 20.04를 사용하고 있습니다. 백앤드 개발 언어는 Python이고, 버전은 3.8.7입니다. API 프레임워크로는 Flask를 사용하고 있고, DB에 날릴 쿼리 생성해주는 ORM으로 SQLAlchemy 사용 중입니다. 무거운 데이터 분석 작업을 비동기로 실행시켜주기 위해서 Celery를 사용 중이고, 한번 쿼리 날린 데이터를 캐싱하는 용도로 Redis를 사용하고 있습니다. DB는 주로 PostgreSQL을 사용하는데, 다른 DB에서도 큰 변화 없이 사용 가능하도록 최대한 ORM을 사용하고 있습니다. WSGI 앱서버로는 Gunicorn을 사용하고 있고, 외부에 노출되는 웹서버 및 gunicorn의 reverse proxy로 nginx를 사용하고 있습니다.
4. 코드리뷰 문화를 소개해주세요!
급한 hotfix가 아닌 이상 최대한 코드리뷰를 꼼꼼히 진행하고 있습니다. 매번 PR 올릴 때마다 리뷰어를 지정하고, 리뷰어는 한시간 이내로 PR에 코멘트를 달고, 올린 사람은 코드를 수정하는 과정을 많으면 2~3일동안 반복합니다. 새로운 기능을 구현했는데 리뷰 없이 머지하는 경우는 드뭅니다. 리뷰 툴로는 요나 (Yona)를 사용하고 있고, 리뷰 요청 및 코멘트가 달렸다는 노티는 구글 챗으로 하고 있습니다.
5. 장애나 긴급상황에서는 어떤 프로세스로 대응하시나요.
저희 회사는 B2B이기 때문에, 현재는 대략 10명 정도의 사내 데이터 분석가 분들이 MDwalks CLUE 제품을 사용하고 계십니다. 장애가 났을 때는 공개 챗방에 통보를 해주시고, 제가 확인한 후 백앤드 관련이면 제가 hotfix하고, 백앤드 이외의 이슈면 클라이언트 개발자 또는 데이터 엔지니어 에게 hotfix 요청을 드립니다.
6. 기술 도입이나 업무 영역의 확장이 자유로우신 편인가요.
기술 도입 및 업무 영역 확장은 매우 자유롭습니다. 본인의 메인 업무를 충실히 수행한 후에는 여유 시간이 있을 때 다른 업무를 하면서 기술 습득을 할 수 있습니다. 저 같은 경우는 데이터 엔지니어 그룹의 업무를 몇 개 맡아서 진행한 적도 있고, 현재는 머신러닝 그룹의 업무도 파트타임으로 진행해보려고 합니다.
나의 개발 Tip
1. 개발을 위한 나만의 데스크 세팅!
저는 현재 레오폴드 사의 정전용량 무접점 키보드 및 체리식 기계식 키보드를 번갈아가면서 사용 중이고, 마우스는 로지텍의 G502 게이밍 마우스 및 스틸시리즈 마우스 패드를 사용합니다. 모니터는 27인치 QHD 해상도, 350 니트 이상의 밝기, 높은 색재현율의 IPS 패널이 탑재된 모니터를 선호합니다. 의자는 허만밀러 사의 에어론을 사용하고 있고, 개발 PC는 적어도 8코어 CPU와 32GB 램 이상 있어야된다고 생각합니다. 요즘 미세먼지가 너무 안 좋아서 업무 공간에 맞는 공기 청정기도 필수라고 생각합니다.
2. 최근 가장 관심있는 기술스택(예, OS/ 언어) 은 무엇이며, 왜 관심을 가지게 되셨나요?
요즘 가장 관심 있게 보고 있는 기술 프레임워크는 Celery입니다. Celery는 단순 비동기 작업 처리 뿐만 아니라 대용량의 작업들을 분산처리하는 용도로도 사용할 수 있어서, 멀티코어 CPU를 잘 활용할 수 있는 굉장히 유용한 프레임워크라고 생각합니다.
3. 현재 하고 있는 업무의 역량을 키우기 위한 나만의 노력은 무엇인가요?
무엇을 개발하기 전 항상 남들은 어떻게 했나 stackoverflow 등을 검색해보고, 직접 알고리즘을 짜기 전 이미 짜져있는 것들은 성능이 어떤지 조사해봅니다. 저보다 라이브러리를 잘 이해하는 사람들이 짠 코드를 계속 보고 배우면서 개발자로서 가장 많이 성장한 것 같습니다.
우리회사는 개발자를 위해 이렇게 지원합니다.
기술 역량 향상을 위한 지원이 GOOD! - 도서구매, 인터넷 강의 등은 모두 회사에서 지원해줍니다. - 본인이 심층 깊게 배워보고 싶은 topic이 있다면 공개 챗방에 올리고, 같이 공부할 사람을 모집해서 스터디도 업무 시간에 진행 할 수 있습니다.
우리회사의 테스트 기기 및 업무 환경은 - 개발자는 거의 다 조립 PC에 Ubuntu를 사용합니다. - VDI를 통해서 배포하는 분들에게는 맥 미니도 지원하고 있습니다.
라인웍스의 채용 포지션이 궁금하다면?! 점핏 앱에서 확인해보세요