fbpx

국내 스타트업 개발자들도 저녁이 있는 삶을 산다. : 스타트업 창업이야기

한국도 변하고 있다. 실리콘밸리도 부럽지 않은 개발 환경

A: “남편은 무슨 일 해?”
B: “IT회사 다녀”
A: “무슨 일 하는데?”
B: “개발자야.”
A: “아휴, 그럼 야근도 많고 주말에도 일할 텐데..애들 키우기 힘들지 않아?”

 

필자 아내와 아내 친구들과의 일상 대화 중 일부입니다. 짧은 대화지만 많은 의미를 함축하고 있습니다. 

 

우리나라에서는 IT개발자에 대한 이미지가 좋은 편은 아닙니다. IT개발자는 금융회사나 유통 및 제조회사에서 사용하는 시스템을 개발하기 위해 파견온 협력업체 직원, 또는 그 협력업체에서 고용한 소위 을, 병, 정 프리랜서를 떠올리기 마련입니다. 또 반바지에 제대로 빗질도 못해 헝클어진 머리, 그리고 밤낮없이 주말에도 코딩을 하느라 제대로 씻지도 못한 사람들이라고 생각하기 일쑤입니다. 

 

최근 국내 상위의 한 게임회사에서만 세 명이 과로사하거나 업무 부담으로 회사에서 자살했다는 소식이 들리니, 이러한 인식이 전혀 틀린 것도 아닌 듯 합니다.

 

미국에서는 대우받는 소프트웨어 개발자

 

미국에서는 소프트웨어 개발자에 대한 이미지가 우리나라와 많이 다릅니다. 미국에서는 소프트웨어 개발자라고 하면 엄지손가락을 세우며 ‘6 digits’이냐고 물어봅니다. 연봉이 $100,000, 즉  1억 원 이상이냐고 묻는 것입니다. 연봉 10만 달러는 미국에서도 높은 편이지만, 소프트웨어 개발자들은 일반적으로 이를 상회합니다. 실리콘밸리에서는 개발자 대졸 초임이 10만 달러 정도입니다. 미국에서는 시가총액 상위 기업 대부분이 ICT 기업이며 미국에도 소프트웨어 개발 인력은 공급이 상당히 부족하니 그럴 수 밖에 없습니다.

 

공대 중 최고로 꼽히는 스탠포드와 MIT에서 최고 인기 전공은 단연 컴퓨터 공학(Computer Science)입니다. 하지만 우리나라에서는 좋은 인재들이 소프트웨어 분야를 여전히 기피합니다. 소프트웨어 분야가 열악해지는 악순환이 계속되고 있습니다.

 

자율주행 시스템, 암진단을 하는 IBM 왓슨, 자산관리 로봇 등 최근 발전하고 있는 인공지능뿐 아니라 간단해보이는 뱅킹, 콜센터, 주차 정산, 음식 주문, 모바일 게임 등 우리 일상 생활의 많은 부분을 소프트웨어 개발자들이 책임지고 있습니다. 하지만 만성적인 개발 인력 부족으로 우리 ICT 산업의 경쟁력이 갈수록 떨어지는 것이 현실입니다.
 

조금씩 개선되고 있는 국내 개발 환경

 

그나마 다행스러운 점은 과거보다는 소프트웨어 개발자의 근무 환경을 사회에서 더 관심을 갖고 야근 문화를 없애기 위해 노력하는 기업들이 많아지고 있다는 점입니다. 핀테크 기업인 핀다도 접근 방법은 다소 다르지만 이러한 긍정적인 문화를 확산시키는 데 노력하고 있습니다. 

 

개발자들의 집중력 향상을 위한 여러가지 방법들 중 핀다는 최대한 업무 공간 다변화를 통해 원하는 공간에서 최대한의 성과를 낼 수 있는 방법을 취하고 있습니다. 반드시 정해진 자리에 하루 8시간 꼬박 앉아서 일을 하는 것이 아니라 근무 중 머리를 식히기 위해 사무실 내 탁구장에서 함께 탁구를 치기도 하고 다트 게임을 하기도 합니다. 큰 TV 화면을 보며 개발할 수 있는 회의실, 탁트인 전망이 있는 라운지 쇼파, 독서실 같은 1인실 등 본인이 원하는 공간에서 일하기도 합니다. 
 

스타트업 개발자

 

스타트업 개발자

 

물론 업무가 몰리고 데드라인에 쫓기면 야근도 하고 주말에도 근무를 합니다. 하지만 이를 권장하기보다는 지양하고 줄여나가려고 합니다. 저녁이 있는 삶을 위해서입니다. 

‘월화수목금금금’ 일정 맞추기도 어려운데..배부른 소리라고?

업무량이 많은 개발 환경에서 ‘저녁이 있는 삶’은 현실성이 떨어진다고 말하는 사람도 있습니다. 하지만 업무방식을 효율적으로 개선하고 생산성을 극대화한다면 가능합니다. 
 

 

무슨 일이든 그렇겠지만, 특히 소프트웨어 개발은 집중력이 중요합니다. 사람은 하루에 8시간을 집중해 일하기는 쉽지 않습니다. 집중하지 못한 상황에서 작업을 하면 낮은 품질의 코딩으로 이어지게 되며, 이는 더 많은 오류를 일으키고 결국 더 많은 시간을 할애해야하는 악순간이 발생하게 됩니다. 나중에는 직원의 행복 지수, 건강, 충성도도 떨어지고 퇴사할 가능성이 높아집니다. 결국 회사는 잃는 것이 더 많아지게 된다고 생각합니다. 

 

단지 초과 근무로 인해 생산성이 떨어지기 때문에 이를 지양해야 한다고 하기에는 개발 현실은 대부분 너무 열악하고 다급합니다. 초과 근무를 대신할 다른 혁신적인 방안이 있어야 기업의 관리자를 설득할 수 있습니다.

 

생산성 극대화를 목표로하는 개발 환경 조성
 

핀다는 개발 프로세스, 코딩 컨벤션, 소프트웨어 설계 원칙을 엄격하게 지켜 생산성을 극대화합니다. 이를 통해 초과근무를 줄이고 있습니다.

 

1.     이슈관리 시스템 Jira를 이용하여 태스크, 오류 등 모든 이슈를 관리합니다.
 

이슈별로 진행과정, 현재 상태, 담당자 등을 명시적으로 공유하고 관리해 커뮤니케이션 비용을 대폭 줄입니다.

 

2.    위키 시스템 Confluence를 통해 회사 및 프로젝트별 지식을 관리합니다.
 

스타트업 개발자  


위키에 프로젝트별로 위와 같이 스페이스를 만들고 트리 구조로 페이지를 생성합니다. 그림 상의 페이지에는 Jira에서 생성한 이슈들을 나열해 볼 수 있습니다. 이런 방식으로 회사의 모든 지식들은 체계적으로 정리되고 공유됩니다.

 

3.  Git을 이용하여 소스코드 뿐 아니라 디자인 프로젝트까지 관리합니다.

 

스타트업 개발자


동시에 여러 버전의 소스를 유지하고, 여러 사람이 협업하기 위해 위와 같은 Git flow를 준수합니다.
소스 변경(커밋) 시에는 그림과 같이 관련 이슈 번호를 넣어 커밋과 이슈를 연동합니다.
상용 배포 버전에는 그림과 같이 버전을 태그로 달아두고 버전별로 릴리즈 노트를 작성합니다.

 

developer

 

4. Jenkins를 이용하여 시스템 빌드 및 배포를 자동화하고 있습니다. 
 

각 빌드에도 버전을 태그로 붙이고 있습니다.

 

5. 객체지향 프로그래밍 방식을 철저히 준수합니다.
 

시스템을 모듈로 나누고 각 모듈 간의 의존도는 최소화합니다. 논리적으로 관련된 코드는 한 패키지, 클래스 등에 모아서 응집도를 최대화합니다. 데이터와 데이터 처리 코드는 한 클래스에 모읍니다. 중복된 코드는 피할 수 있다면 한 줄이라도 허용하지 않고, 상속, 함수화, 오버로딩 등을 최대한 활용하여 코드 사이즈를 줄입니다.

 

6. 이해하기 쉬운, 설명이 필요 없는 코드와 문서를 작성합니다.
 

소프트웨어는 본질적으로 복잡합니다. 복잡한 문제를 최대한 쉽게 풀어내는 것이 소프트웨어 개발자의 핵심적인 능력 중 하나입니다. 다른 사람이 이해하기 어렵도록 문제를 더 복잡하게 만들어 본인의 능력이 뛰어나다고 자만을 하거나, 주석을 달지않고 문서화하지 않아 다른 사람이 코드를 보고 알아서 이해하면 된다고 자만하지 않는 것이 중요하다고 생각합니다. 경험이 부족한 신입 개발자라도 30분 내에 구조와 흐름을 파악할 수 있도록 하고 있습니다.

 

7.  웹, 안드로이드, 아이폰 앱은 철저히 통일된 MVC 구조로 구현합니다.
 

모델(M) 부분은 ▲서버로부터 데이터를 받아오는 모듈, ▲데이터의 세부사항을 처리하는 모듈, ▲데이터의 보존과 공급을 담당하는 모듈로 철저히 분리하여 구현합니다. 화면 부분을 담당하는 뷰(V)는 주어진 데이터로 화면을 그리는 것만 담당합니다. 화면을 구성하기 위해서는 뷰를 배치하고 모델로부터 데이터를 받아서, 뷰에 전달해야 합니다. 이는 컨트롤러(C)가 담당하는데 컨트롤러는 철저히 컨트롤만 하고 세부적인 사항을 처리하지 않습니다.
핀다의 웹, 안드로이드, 아이폰 앱은 모두 동일한 폴더, 클래스 구조를 가지도록 설계하고 있습니다. 다른 분야를 접해보지 못한 개발자라도 하루 내에 파악하여 코드 수정까지 할 수 있어 누구나 쉽게 풀스택 개발자가 될 수 있습니다.


________________________________________

 

종합 해보면, 핀다 개발팀은 자신만의 스타일로 코드를 작성해서는 안됩니다. 프로그래밍 컨벤션에 따라 최적의 간결한 코드를 만들어야 합니다. 타이트한 프로세스를 따라야 합니다. 구글이나 마이크로소프트보다 더 높은 수준의 클린 코드를 작성해야합니다.

 

다소 타이트해보일 수 있습니다. 하지만 공통의 규칙을 철저하게 준수하고 오히려 더 나은 개선 방안을 연구합니다. 저녁이 있는 삶뿐 아니라 신나고 발전적인 직장생활도 누리기 위해서입니다. 
 

스타트업 개발자


<핀다 프로덕트 개선을 위한 협의 모습> 

 

국내 스타트업의 미래가 밝아 보이나요? 아니면 너무 타이트해 보이나요?
나은 방법으로 더 밝은 미래를 만들 수 있다고 생각하는 인재들에게 스타트업에서 더 큰 기회를 만들 수 있습니다. 
보다 많은 스타트업과 IT기업들이 핀다에서 추구하는 방식 또는 그 기업과 문화에 맞는 더 나은 방식을 도입하여, 행복하게 일하는 개발자들이 더 많아지기를 기대해봅니다.

 

 

김경전
핀다 기술총괄이사(CTO), 15년동안 대표적으로 디지탈아리아, 삼성전자, MS, 티젠스, SK플래닛에서 저작도구, 임베디드, UI 프레임워크, 윈도우폰 OS, 노래 합성 및 오디오 프로세싱, 커머스 SW 등을 개발. 기술적으로 다양한 경험을 하는 것과 개발/업무 프로세스 혁신을 좋아함. KAIST 전산학 석사, 고려대학교 컴퓨터학과 학사.
김경전

김경전

핀다 기술총괄이사(CTO), 15년동안 대표적으로 디지탈아리아, 삼성전자, MS, 티젠스, SK플래닛에서 저작도구, 임베디드, UI 프레임워크, 윈도우폰 OS, 노래 합성 및 오디오 프로세싱, 커머스 SW 등을 개발. 기술적으로 다양한 경험을 하는 것과 개발/업무 프로세스 혁신을 좋아함. KAIST 전산학 석사, 고려대학교 컴퓨터학과 학사.