개발자가 되기까지

dongha1992·2021년 1월 17일
14
post-thumbnail

"사람 김동하" 섹션에서는 개발 외적인 저에 대한 전반적인 것들을 기술했습니다. 연대순으로 경험을 통해 얻었던 것들을 위주로 적었습니다.

"개발자 김동하" 섹션에서는 개발자가 된 계기부터 부트캠프에서 배운 것들 그리고 개발에 있어 저의 강점과 약점에 대해 정리했습니다.

인생관

한 순례자가 헉헉 거리며 숨을 돌리던 중 정자에서 쉬고 있던 노인에게 물었습니다.

저기에 있는 마을은 어떤가요? 숙소는 깨끗한가요? 사람들은 친절하나요?

노인은 순례자를 물끄러미 보더니 되물었습니다.

전에 있던 마을은 어땠나요?

순례자는 인상을 찌푸렸습니다.

_ 아주 별로였습니다. 사람들은 불친절하고 숙소는 엉망이었어요._

노인은 웃으며 말했습니다.

저기 있는 마을도 비슷할 것입니다.

얼마 뒤 다른 순례자가 노인 옆에 앉아 배낭을 풀고 땀을 닦았습니다. 그리고 노인에게 똑같은 질문을 했습니다.

저기에 있는 마을은 어떤가요?

노인도 똑같이 되물었습니다.

전에 있던 마을은 어땠나요?

순례자는 벅찬 듯이 대답했습니다.

모두 친절했어요. 마을은 아름다웠고 너무 즐거운 시간이었어요. 숙소는 조금 불편하긴 했지만 전혀 문제가 없었습니다.

노인은 웃으며 말했습니다.

그럼 저기 있는 마을도 비슷할 것입니다.

삶은 순례라고 생각합니다. 제가 지나온 모든 마을에서 저는 크게 만족했고 깊게 성장했습니다. 지금까지도 그래 왔고 앞으로도 그럴 것입니다.

사람 김동하

목표 지향적

목표를 정하면 쟁취할 때까지 포기하지 않습니다. 고등학교 1학년, 수학 성적이 481등이 나왔습니다. 총원이 490명이 있었으니 제 뒤에 9명이 있었던 것이죠. 충격을 받았고 그날부터 수학 공부를 시작했습니다. 공부를 하려고 하는데 간단한 방정식도 풀지 못했습니다. 중학교 시절 내내 수학을 멀리했던 탓에 수학 기초가 없었음을 그때 깨달았습니다. 또다시 충격을 받았고 중학교 수학부터 다시 시작했습니다. 갑자기 수학 공부를 하겠다고 책상에 앉아 있는 저를 보고 친구들은 얼마나 갈지 내기를 했습니다. 하루, 이틀, 일주일, 한 달... 친구들은 저를 보며 이러다 말겠지 생각했습니다. 저는 한 번 목표를 정하면 포기하지 않습니다. 2년에 걸쳐 꾸준히 수학을 팠습니다. 조금씩 성적이 올랐고 제게 농담을 던지던 친구들의 표정도 바뀌었습니다. 그렇게 3학년 1학기 기말고사에서 전교 14등을 했습니다. 그때 처음으로 저라는 사람에 대해 알게 되었습니다. 내가 생각보다 머리가 비상하진 않구나. 그런데 상상 이상으로 근성이 있구나.

스스로에 대한 고민

대학교에 입학 후 방황을 했습니다. 내가 무엇을 좋아하는지도 모르고 다들 대학에 가니 대학에 와버린 것입니다. 그래서 학과 공부보다는 다양한 경험을 해보았습니다. 여행을 다니고 책을 읽었습니다. "꺼삐딴리"라는 독서 소모임을 만들어 1년 동안 활동했는데 커뮤니티라는 것이 생각보다 즐거웠습니다. 그래서 리더의 자질이 있나 확인하고 싶어 2학년 땐 과 학생회장을 했습니다. 생각보다 리더가 적성에 맞았습니다. 사람 만나길 좋아하고 리더로서 나쁘지 않다고 판단했습니다. 대기업에 들어가 임원이 되겠다. 제 인생의 첫 번째 목표였습니다.

자기 주도적

2012년 5월 의경에 입대합니다. 군생활이 익숙해질 때쯤 공부를 시작했습니다. 대기업 임원이 되기로 정했으니 시간이 부족하다고 생각했습니다. 하나라도 더 채우기 위해 분 단위로 시간을 쪼개 사용했습니다. 근무를 마치고 초소에 들어오면 책을 펼쳤고 근무지로 나가는 버스에서 영어 단어를 외웠습니다. 전역할 때까지 한국사능력검정시험, 한자시험, KBS한국어능력시험, 토익, OPIC 등등 8개의 자격증을 취득했습니다. 공부를 시작하고 하루도 쉰 적이 없습니다. 생활관 분위기를 주도적으로 만들었고 제가 만든 분위기에 따라 후임, 동기, 선임도 자기 계발을 시작했습니다.

새로운 경험에 대한 갈망

군대를 전역하고 해외에 나가 다양한 경험을 하고 싶다는 생각이 들었습니다. 영어 공부도 하고 다양한 사람을 만나 세상에 대한 지식을 쌓고 싶었습니다. 그렇게 호주로 떠났던 워킹 홀리데이 1년이 제게 큰 변화를 주었습니다. 나와 다른 문화를 이해하는 즐거움, 나와 다른 이야기를 듣는 즐거움에 빠져 좀 더 큰 세계를 경험하고 싶다는 생각이 들었습니다. 특별하면서 잊을 수 없는 경험을 위해 4,017km 유럽 도보 횡단을 계획합니다.

기획력

1년이란 시간을 쓰는 데 그저 목표를 이루고 마는 소영웅주의에 빠지고 싶지 않았습니다. 그래서 크라우드 펀딩을 준비합니다. 제 여행을, 제 이야기를 팔기 위해 셀링 포인트를 고민했습니다. 누군가가 돈을 지불하고 제가 만든 것을 살 수 있도록 크라우드 펀딩을 기획했습니다. 한 달간 진행한 펀딩에서 총 410만 원이 모였습니다. 목표 금액인 400만 원이 넘으면 모두 기부한다고 했기 때문에 10만 원은 기부했습니다. 약속은 꼭 지켜야 한다고 생각합니다.

인간미

4,017km를 걸었습니다. 포기를 모르는 근성이라고 해도 너무 버거운 목표였습니다. 수천 번은 포기하고 싶은 마음이 들었고 부끄럽지만 아무도 없는 산 길을 걷다 외롭고 지쳐서 혼자 운 적도 몇 번 있습니다. 그렇게 7개월 넘게 걸어서 결국 유럽 서쪽 더 이상 걸을 땅이 없는 곳까지 걸었습니다. 제가 힘들 때마다, 포기하고 싶을 때마다, 비가 쏟아지는 날 젖은 몸으로 텐트에 들어가 웅크려 잘 때, 제게 응원을 보냈던 수많은 사람들 덕분에 포기하지 않았습니다. 혼자 걸었지만 아이러니하게도 혼자서는 불가능한 일이었습니다. 결국 모든 사람은 타인의 도움을 받고 살아간다고. 저는 따뜻한 응원을 보내길 좋아합니다. 작은 한 마디로 인해 그 사람은 세상을 놀라게 할 대단한 일을 해낼지도 모릅니다.

문장력

첫 책을 쓰게 됩니다. 약 3,000권이 넘게 팔립니다. 아마추어 작가가 낸 첫 책치고 굉장히 많이 팔린 것이라고 합니다. 글을 쓰며 생각을 짧고 명확하고 함축적이게 전달하는 능력을 길렀습니다. 내가 생각하는 것을 타인에게 잘 전달하는 것은 중요한 일입니다. 글을 쓸 때 이 글을 읽을 타인의 가독성과 이해도를 고려합니다. 이는 곳 좋은 커뮤니케이션의 출발이기도 합니다. 글을 쓰게 되면서 관계와 커뮤니케이션에 대한 이해도가 높아졌습니다.

쉬지 않는 도전

이후 스스로의 성장을 위해 다양한 도전을 하게 됩니다. 독일어 공부를 하고 작게 민박 사업을 하면서 독일에서 2년 간 지냅니다. 프리랜서 작가로 활동하며 지내다 문득 '유용함' 에 대해 생각합니다. 나의 창작과 나의 결과가 누군가에게 편의를 줄 수 있는 것에 대해 글이 지닌 한계를 고민합니다. 독일어 한 마디 하지 못한 일본인 미술 작가의 전시를 보며 감탄하고 그곳에서 영감을 얻는 사람들을 보고 사람이 만든 '언어' 라는 벽을 뛰어넘을 수 있는 무기를 찾습니다. 그러다 '개발' 을 알게 되었습니다.

개발자 김동하

개발자가 된 계기

처음 '개발' 에 대해 매력을 느끼게 된 것은 PCT(Pacific Crest Trail) 이라는 미국 서부 산맥을 관통하는 트래킹 코스를 걷고 있을 때입니다. 사람의 손길이 닿지 않는 산맥을 육 개월 동안 걷는 트래킹 코스에서 물이 있는 곳을 미리 아는 것은 생명과 직결된 일입니다. 그 해의 여름은 무척 더웠고 예상보다 일찍 강물이 말라 버렸습니다. 아무런 정보도 믿을 수 없게 된 그때, PCT 어플리케이션이 많은 하이커들에게 큰 도움을 주었습니다. 실시간으로 물이 있는 곳을 업데이트 해주었고 하이커들은 어플리케이션에 의지하여 물이 있는 곳을 찾을 수 있었습니다. 그때 '개발' 의 위력을 알게 되었습니다. 넓은 확장성으로 모두에게 편리함을 줄 수 있는 일. 그때부터 개발 공부를 시작하게 되었습니다.

위코드 부트캠프

  • 커뮤니케이션

개발 문화에 대해 정확히 알지 못했습니다. 개발이란 당연히 혼자 하는 일이라고 생각했고 나 혼자만 잘하면 된다고 여겼습니다. 위코드 부트캠프를 시작하면서 개발 문화에 대한 생각이 달라졌습니다. 개발을 한다는 것은 아주 작은 퍼즐들을 맞춰 나가면서 하나의 결과물을 만드는 것입니다. 그 퍼즐 조각을 맞추기 위해서는 끊임없이 동료와 얘기를 나눠야 했습니다.

첫 프로젝트를 할 때 동료들과 커뮤니케이션을 하며 개발하는 것이 익숙하지 않아 뒤도 보지 않고 제가 맡은 파트만 무작정 만들었습니다. 한 번도 하나의 프로젝트를 완성해본 경험이 없기 때문에 프로젝트의 전체적인 플로우를 이해하지 못했습니다. 그래서 어떤 대화를 나눠야 하는지 알지 못했고 일단 제 파트를 만들기만 하면 된다고 생각했습니다.

결국 프로젝트 마감 하루 이틀 전에 merge를 했고 수많은 conflict로 인해 CSS가 깨지고 PR이 누락되기도 하면서 전체적인 완성도가 떨어졌습니다.

커뮤니케이션의 중요성Agile 전략으로 두 번째 프로젝트에서는 하루 단위로 팀원들의 진행도를 체크했습니다. 프론트 엔드 팀원들끼리는 잘못 이해하고 있던 로직을 수정하고 공통 컴포넌트 정하는 등 어떤 방식으로 어떤 커뮤니케이션을 해야 하는지 알게 되었습니다. 또한, 벡엔드 팀원들과는 각자가 파악한 프로젝트에 대한 비즈니스 로직을 서로에게 설명해주면서 불필요한 데이터나 API를 최대한 줄이려고 했습니다. 아직도 어떤 '형' 으로 서버에서 데이터를 받게 되는지에 대해서는 경험이 부족해 API를 맞추고 프론트 엔드쪽 로직을 많이 수정해야 했지만 동료들과 프로젝트를 진행하며 커뮤니케이션을 나눈 덕분에 완성도 높은 결과를 만들 수 있었습니다.

실무 수준의 프로젝트였던 인턴십 과정은 그간 겪었던 시행착오를 통해 원만하게 진행되었습니다. 공통 컴포넌트를 더 작은 단위로 나눴고 불필요한 작업을 줄이기 위해 Notion과 Slack을 통해 어떤 컴포넌트에 어떤 작업을 했는지 문서화 했습니다. 특히 각 feature에 대한 요구 사항 정의를 적어 공유했는데 다른 팀원들의 컴포넌트를 이해하는 데 큰 도움이 되었습니다. 백엔드와는 로직을 짜기 전에 미리 API 문서를 공유해 효율적으로 프로젝트를 진행했습니다.

  • 동료

프로그래밍 세계에서 배움은 끝이 없습니다. 끝없는 배움이 개발의 매력이라고 생각합니다. 종종 그러한 무한한 지식이 버겁게 느껴집니다. 배워야 할 것이 너무 많기 때문에 무엇을 해야 할지 모를 때가 있습니다. 인턴십 과정에서 Next.js와 Mobx를 처음 접했습니다. 잘 모르는 기술 스택을 바로 프로젝트에 적용하려니까 부담이 되었습니다. 동료들과 배운 것들을 서로 스터디 형식으로 알려주었습니다. 혼자서 공부했다면 몇 주가 걸렸을 것을 파트를 나눠 공부하고 나니 금방 기술이 익숙해졌습니다. 무한한 프로그래밍의 세계에서 동료는 든든한 아군입니다. 함께 성장할 수 있는 동반 성장의 가능성을 느끼며 더 잘 알려주기 위해 더욱 열심히 배워야 함을 깨달았습니다.

나의 강점

  • 열정

4개월 넘게 하루 평균 14시간씩 개발을 했습니다. 그럼에도 여전히 열정이 불타오르고 있습니다. 아직도 리팩토링 해야 할 코드가 쌓여있는 걸 생각하면 가슴이 뜁니다. 제가 좋아하는 일에 모든 것을 쏟아냅니다. 제가 가진 최고의 강점은 Burn-out을 모른다는 것입니다.

  • 책임감

적당한 부담감을 안고 프로젝트를 시작합니다. 적당한 부담감은 안일해질 수 있는 순간을 경계하도록 만듭니다. 하나의 업무가 완벽하게 완성될 때까지 긴장을 놓지 않습니다. 가령, 인턴십을 진행하는 중 팀원 중 한 명이 확진 판정을 받아 팀원 전체가 2주간 자가격리를 했습니다. 원격으로 프로젝트를 진행해야 하는 상황 속에서도 늘어지지 않고 기한보다 빠르게 프로젝트를 완수했습니다.

  • 비유

저는 처음 접하는 것에 대해 비유로 이해하는 것에 강합니다. 비유로 이해한다는 것은 추상화에 강하다는 뜻이기도 합니다. 객체 지향 프로그래밍인 언어를 다룰 때 직관적인 이해보다 추상적인 비유로 더 쉽게 이해할 수 있었습니다. 예를들어 Javascript의 주요한 개념 중 하나인 this를 이해할 때는 "강력한 자석" 으로 이해했습니다. this는 강력한 자석이라 해당 객체에 달라붙는다. 이런 식으로 새롭게 배우는 **난해한 개념을 저만의 방식으로 추상적이게 이해할 수 있기 때문에 새로운 지식 습득에 유리합니다. **

  • 집요함

침대에 눕기 전까지 풀리지 않았던 문제에 대해 고민합니다. 문제를 해결했을 때 쾌감이 좋기 때문에 어떻게 해서든 문제를 해결하려고 합니다. 하지만 거기에 매몰되지는 않습니다. 여러 방법을 시도해봐도 풀리지 않는다면 일단 치워두고 다른 일을 합니다. 그리고 시간이 날 때마다 고민을 해서 결국 풀어냅니다.

첫 미니 프로젝트인 인스타그램 클론을 하면서 필터 로직을 짰는데 필터 된 리스트만 UI에 렌더하는 과정에서 막혀서 애를 먹었던 적이 있습니다. 밥을 먹으면서도, 집에 가면서도, 샤워를 하면서도 계속 방법을 고민했고 문득 생각이나 해결했던 기억이 있습니다.

profile
글과 코드와 사람에 관해 생각합니다.

8개의 댓글

comment-user-thumbnail
2021년 1월 18일

당신... 크게 될거라구...

1개의 답글
comment-user-thumbnail
2021년 1월 25일

이 사람 된 사람이다.
아 오타

된장빵 같은 사람이다.

1개의 답글
comment-user-thumbnail
2021년 1월 26일

Lieber immerFernWeh!
항상 유쾌하고 치열하게 살고 있는 동하님 반갑습니다!
타 SNS에서도 많은 모습들을 보며 배웠는데 velog에서 또 한수 배워갑니다 :)
vielen dank!
늦었지만 Frohes neues Jahr!
LG,
Spielmann KIM.

1개의 답글
comment-user-thumbnail
2021년 2월 1일

갓동하... 내 인생에 만난... 몇 안되는 귀감 되는 멋진 사람

1개의 답글