좋은 개발이 무엇인지 끊임없이 생각하며, 늘 안정성과 확장성을 고민하는 사람. 피플펀드의 소프트웨어 엔지니어 김동석 님을 만났습니다.

소프트웨어 엔지니어 김동석입니다.

피플펀드 Internal Product팀에서 주로 Application logic과 In-house tool을 구현합니다. 최근에는 채권 유형을 유연하게 변경할 수 있도록 시스템을 개선하고 있어요.

현실과 맞닿은 논리, 프로그래밍.

대학교에서 원래 선택했던 전공은 생명과학이었는데, 1학년이 반드시 수강해야 하는 기초 필수 과목 중에 프로그래밍 수업이 있었어요. 이전에 프로그래밍에 특별한 흥미가 있던 것은 아니었지만, 수업을 들어보니 재미있더라고요. 만약 고등학교 때 프로그래밍을 접했다면 컴퓨터공학을 선택했겠다, 싶어서 2학년 때 전과했어요.

컴퓨터공학은 논리를 바탕으로 한다는 점에서 다른 과학과 비슷하지만, 현실에서 체감할 수 있는 정도에서 차이가 크다고 생각해요. 여타 자연과학은 추상적인 경향이 강한 데 반해, 컴퓨터공학은 현실에 직접적인 영향을 줄 수 있다는 점이 재미있었어요.

조금  와닿는 엔지니어링.

학계에서는 깊은 지식을 추구한다면, 기업에서는 조금 더 넓고 조금 더 와닿는 엔지니어링을 추구한다고 생각해요. 예를 들자면, 데이터베이스 연구자들은 데이터베이스를 잘 만드는 것이 목적이고, 기업의 엔지니어들은 데이터베이스를 잘 선택하고 잘 쓰는 것이 목적이죠.

컴퓨터공학에 매력을 느꼈을 때와 비슷한 맥락에서 저는 학문보다 기업의 엔지니어링에 관심이 많았고, 졸업 전에 최대한 다양한 경험을 하고 싶었어요. 펌웨어 구현, 웹서비스 구현, 빅데이터 클러스터 관리 등 이런저런 개발을 접했어요.

그중에서도 미국 e-Commerce 기업에서의 인턴십이 가장 인상 깊었는데요. 기업에서도 굉장히 많은 것을 공부할 수 있다는 것을 느꼈고, 스스로가 경쟁력 있는 소프트웨어 엔지니어가 될 수 있겠다는 자신감을 얻었어요.

새로운 시도의 기회가 열려 있는 .

피플펀드는 병무청 병역일터에 올라온 채용공고를 통해서 처음 알게 되었어요. 평소 ‘자본주의 사회에서 편하게 살기 위해서는 금융을 이해할 수 있어야 한다’라는 생각이 있었기에, 피플펀드가 가장 마음에 들었고 합류하게 됐죠.

스타트업을 선택하는 사람 중에는 개인의 성장에 목마른 이들이 많을 텐데요. 피플펀드에는 아직 갖추어지지 않은 것이 많다 보니, 직접 밑바닥부터 만들어볼 기회가 매력적일 수 있다고 봐요. 예를 들어, 다른 곳에서는 데이터 파이프라인을 잘 사용하고 개선하는 경험을 얻을 수 있다면, 피플펀드에서는 데이터 파이프라인을 만드는 것부터 경험할 수 있어요. 또한 ‘다른 동료들이 데이터 파이프라인을 활용할 수 있도록 하려면 어떻게 해야 할까’ 하는 고민도 할 수 있죠.

또, 저희 Internal Product팀은 시간으로 일하지 않아요. 야근이나 눈치가 없다고 말하는 회사는 많지만, 정말 실천하고 있는 곳은 그만큼 많지 않잖아요. 저희 팀은 말뿐만이 아니라 실제로 그것을 잘 지키고 있어요.

한편, 개발 조직 전반적으로는 치열함이 부족한 면이 아쉬워요. 더 좋은 제품을 만들고, 더 좋은 개발을 하기 위해서는 같은 기능을 구현하더라도 더 깊은 논의와 많은 고민이 필요하잖아요. 그렇게 일하기 위해서는 두 가지가 필요하다고 생각해요. 그것을 실천하고 이야기할 수 있는 사람들, 그리고 그들이 지치지 않을 수 있도록 서포트하는 문화.

안정성과 확장성을 갖춘 개발.

좋은 개발이 무엇인지 항상 고민하면서 개발하는 것이 좋은 개발이라고 생각해요. 조금 더 구체적으로 말하자면, 안정성과 확장성을 갖추는 것이죠. 프로그램을 돌아가게 만드는 것은 당연한 일이고, 좋은 개발자라면 안정성과 확장성까지 담아낼 수 있어야겠죠.

관련 글: 가짜 확장성, 진짜 확장성

회사를 기준으로 말하자면, 소프트웨어에 관한 이해에서 좋은 개발 문화가 만들어질 수 있다고 생각해요. 소프트웨어가 하드웨어와 가장 다른 점은 수정의 즉시성인데, 달리 말하면 애초에 완성이 있을 수 없는 거죠. 제품을 출시했다고 끝이 아니라는 점에 얼마나 공감할 수 있는가, 그에 따라 좋은 개발을 실천하는 회사와 그렇지 못한 곳이 나뉜다고 봐요. 소프트웨어에 대한 이해가 부족하다면 리팩토링을 왜 한다는 것인지, 멀쩡히 돌아가는 것을 왜 개선한다고 이야기하는지 공감할 수 없을 것이고, 개발은 점점 더 비효율적으로 되겠죠.

잘하는 사람이 되고 싶다.

소프트웨어 엔지니어로서 제 모토는 ‘잘하는 사람’이 되는 것이에요. 개발은 물론, 다른 것들도요. 소프트웨어 개발이라는 한 가지에서만 뛰어난 것이 아니라, 운영, 사업, 의사 결정 등 연관된 분야들을 넓게 이해할 수 있는 엔지니어가 되고 싶어요. 그러기 위해서 모든 일을 대할 때 폭넓게 바라보려고 해요.

한편, 피플펀드에 합류하기 전에 연구실에서 일하면서 자주 들었던 조언이 있는데요. 교수님께서 ‘그건 문제를 해결한 것이 아니라 때운 것’이라 말씀하셨던 것이 기억나요. 일하면서 쉬운 문제는 당연히 없지만, 그걸 핑계로 삼으면 안 되잖아요. 오히려 더 완벽히 하는 동기가 되어야겠죠.

관련 글: 문제 해결, 문제 탈피

지금의 저를 자평한다면, 항상 생각하면서 일하는 사람이에요. 대충 넘어가는 것을 싫어하고, 늘 이성적으로 판단하려고 노력해요. 저와 함께 일한다면, 무의식중에 적당히 타협하는 것을 멀리하는 데에 도움이 될 거예요. 또한 새롭게 배우는 것을 좋아하기 때문에, 서로 피드백을 주고받을 수 있는 파트너가 될 수 있을 거예요.


새로운 시도의 기회가 열려 있는

ps.
개발에 관심이 있거나 커리어패스를 그리는 사람에게 이야기한다면, 원래 개발은 재미있다는 것을 잊지 않았으면 좋겠어요. 우리가 처음 ‘Hello World!’를 찍었을 때처럼요. 개발이 재미없게 느껴진다면 그건 스스로가 개발을 제대로 안 하고 있거나, 개발을 제대로 하지 않는 문화에서 일하고 있기 때문이에요.