[개발자 원칙] 메이저를 위한 마이너 원칙들_❶ 두리번거리면서 속력과 방향을 자주 확인하기

이 글은 [개발자 원칙]에서 발췌했습니다.
골든래빗 출판사

처음 만드는 소프트웨어는 약하고 부서지기 쉽습니다.

개발자가 소프트웨어를 만드는 행위는 꾸준히 버전을 업그레이드해서 생명력을 갖도록 하는 일입니다.

소프트웨어 버전이 올라갈수록 기능이 추가되고, 예외 상황을 대처하면서 점차 단단해지고 완성되어 갑니다.

그런 소프트웨어를 만드는 경험을 반복하려면 개발자도 자신을 업그레이드해 차근차근 버전을 올려야 합니다.

지속적으로 성장하는 소프트웨어 버전처럼 개발자 자신의 메이저 버전을 업그레이드하는 마이너 원칙들을 소개합니다.

 


두리번거리면서 속력과 방향을 자주 확인하기

집에서 어딘가 목적지를 찾아가는 과정을 생각해 봅시다.

단골 카페라면 가야 할 길을 굳이 떠올리지 않고 길을 나설 겁니다.

반면에 처음 가는 장소라면 상황은 달라집니다. 이동할 방향과 경로를 미리 확인하기 마련입니다.

지인에게 맛집이나 명소를 물어보거나 지도 앱을 열어서 추천 경로와 예상 시간을 확인할 수도 있습니다.

성장으로 가는 길도 마찬가지입니다.

 

성장을 목표로 한다면 먼저 방향과 나만의 속력을 알아야 합니다.

낯선 목적지를 찾아갈 때 방향을 정확하게 인지하지 못하면 방황하거나 더 먼 길로 돌아갈 수 있으므로 이동할 방향을 반드시 알아둬야 합니다.

그런데 현실에서는 목표가 있는 방향으로 일직선으로 나아가는 일이 불가능합니다.

인생에는 언제 내리고, 언제 방향을 바꾸고, 어디로 돌아가야 할지 알려주는 지도 앱 같은 안내자가 없습니다.

인생에서는 출발부터 도착까지 단 한 번에 도착하길 애초에 바라지 말아야 합니다.

맹수가 우글거리는 야생에서 초식 동물이라면 반복해서 두리번거리면서 주위를 경계하고 방향이 맞는지 반복해서 확인하며 발걸음을 옮길 겁니다.

현실은 야생에 가깝습니다.

 

 

경로를 결정하고 가까운 역까지 걸어가는 동안 길 위에는 누군지 모르지만 같은 방향으로 가는 사람이 한두 명쯤 있습니다.

아는 사람이라면 속도를 맞춰서 함께 걸어갈 수도 있지만, 모르는 사람이라면 각자 속도로 각자 갈 길을 갈 겁니다.

바쁜 사람은 건널목 신호등이 켜지기 전에 서둘러서 뛰어가기도 하고, 전날 발목을 다친 사람은 조심조심 천천히 걷기도 합니다.

대개는 옆 사람이 어디로 가는지, 얼마나 빨리 걷는지, 나보다 천천히 걷는지 신경 쓰지 않습니다.

오로지 내가 가는 속도만 중요할 뿐입니다.

 

저마다 걸음걸이가 다른 것처럼 책을 읽을 때도, 공부를 하거나 일을 할 때도, 심지어 밥을 먹을 때도 나만의 속도가 있습니다.

같은 책을 읽더라도 사람마다 이미 알고 있는 배경지식과 새로운 지식의 연결점이 다르기 때문에 이해하는 범위가 다릅니다.

배경지식이 부족한 분야에 대한 자료를 읽으면 생소한 단어가 3개만 등장해도 다음 문장으로 넘어가기 어렵습니다.

한꺼번에 인지할 수 있는 단어 분량도, 책을 읽는 동안 기억할 수 있는 글자 수도 제한적입니다.

‘공부는 엉덩이로 한다’라는 말이 무조건 들어맞지는 않습니다.

무작정 앉아서 공부한다고 저절로 체득이 되는 것이 아니기 때문입니다.

자신에게 알맞은 방향과 속력을 찾아야 공부도 제대로 되는 겁니다.

 

사회 초년생 때는 회사에서 일을 배운다는 것이 학교에서 시험보는 것과 비슷하다고 생각했습니다.

주어진 명세를 만족하도록 구현하면 되니까 마치 실습 과목에서 시험을 치르는 느낌이 든 겁니다.

처음에는 막연하게 나름 일을 잘한다고 생각했습니다.

그렇게 회사 일을 척척 해나가다 내가 해낼 수 있을 만한 일만 주고 있음을 깨닫는 데 그리 오래 걸리지 않았습니다.

1년도 되지 않아서 회사 일은 예측하기 어렵고 시급한 일이 산재하다는 걸 알았습니다.

 

빠르게 필요한 부분만 찾아서 학습하고 해결해야 했습니다.

내가 할 수 있는 일의 양, 학습할 수 있는 시간과 지식의 양도 한계에 다다랐습니다.

회사 일을 빠르게 그리고 제대로 처리할 역량을 갖출 필요가 생겼습니다.

 

그래서 여가 시간에 《월간 마이크로소프트웨어》를 비롯한 컴퓨터 잡지를 보며 기술을 공부하고 업계 소식도 살펴봤습니다.

자바를 업무에 사용하지는 않지만 자바 책도 읽어보고 예제를 따라서 입력해 보았습니다.

XML 표준이 공표되고 다양한 자료 형식을 기술하게 된 것을 보면서 새로운 기술도 수집했습니다.

수집한 자료를 당장 맡은 업무와 관련 있는 것, 업무와 관련은 없지만 살펴볼 것, 그리고 전혀 다른 분야로 나눠서 (책을 복사하거나 오려서 파일에) 분류했습니다.

일하는 속도를 인지하고 두리번거리면서 기록했기 때문에, 운 좋게도 시간이 지날수록 업무와 관련이 없던 내용과도 관련이 생기게 되고,

전혀 다른 분야인 줄 알았던 내용도 연결할 수 있는 기회가 찾아왔습니다.

 

저는 가본 적 없는 곳에서 약속이 있으면 약속 시간보다 일찍 도착합니다.

가장 큰 이유는 길을 잘못 들어 시간을 더 소비할 수 있기 때문입니다.

그뿐만 아니라 의도적으로 일찍 가면 목적지 주변을 둘러볼 여유가 생겨서 모르는 장소를 파악하는 데 도움이 됩니다.

이 같은 방법으로 새로운 지식을 탐험하면 성장에 도움이 됩니다.

 

개발자는 평생 공부하는 직업입니다. 새로운 지식이나 새로운 분야, 그리고 신기술을 탐험하는 숙명을 가진 직업이 개발자입니다.

언젠가는 익숙한 도구를 익숙하지 않은 다른 도구로 바꾸거나, 익숙한 라이브러리를 대신해서 새로운 라이브러리를 사용해야 합니다.

배워야 할 지식을 저처럼 현재 업무랑 관련된 것에 50%, 앞으로 관련될 것에 30%, 관련 없지만 관심 있는 것에 20% 정도만 시간을 투자해 보세요.

개발자에게 성장은 멈춰 있는 약속 장소가 아니라, 계속해서 움직이는 사냥감에 가깝습니다.

두리번거리며 준비하다 보면 회사 업무가 나와 상관없이 변화하더라도 기회가 될 겁니다.

일을 하다 보면 극단적으로 속도를 한계까지 올려야 하는 상황이 생깁니다.

나만의 한계 속력을 알아야 합니다. 예를 들어 하루를 기준으로 내가 할 수 있는 일, 읽을 수 있는 글, 처리할 수 있는 일감에도 한계가 있습니다.

평소 속력과 한계 속력은 분명히 다릅니다.

 

경력이 7년 정도 쌓였을 때 일입니다.

새로운 서비스 론칭을 앞두고 며칠에 한 번 집에 갈 정도로 바쁘게 업무를 수행했습니다. 회사에 공용 침실이 있을 정도였습니다.

그렇게 2주 정도 바쁜 생활을 하고 예정대로 서비스를 출시하고, 귀가했는데 장애가 났다고 회사에서 연락이 왔습니다. 다급히 출근해서 원인을 찾았습니다.

스레드 개수에 대한 환경 설정값을 읽어서 전달하는 코드에 break문이 누락되어 지정한 값이 아니라 기본값2로 동작했습니다.

기본 중의 기본인데 한계 속력을 넘어서서 일을 하다 보니 평상시에 하지 않았을 실수를 저지른 겁니다.

이런 기본적인 실수를 아마 다들 한 번씩은 해보았을 겁니다. 한계 속력에 다다르면 실수를 하기 마련입니다.

이런 상황에서 실수를 줄이는 최선의 방법은 평소에 자신을 성장시키는 방법밖에 없습니다.

 

지금까지 나만의 속력과 방향에 대해 이야기해봤습니다.

물리학에서 속도의 정의는 속력×방향입니다.

얼마나 빠른지 나타내는 속력만큼이나 방향도 중요합니다.

처음에는 출발점에서의 거리가 멀지 않기 때문에 방향에 별로 신경 쓰지 않습니다.

그렇지만 계속 가면 방향에 따라 목적지와의 거리가 더 가까워지거나 더 멀어질 수 있습니다.

 

그러므로 개발 과정에서도, 성장 과정에서도 목적지로의 방향을 계속해서 확인하고 다시 조정해야 합니다.

시대와 상황에 따라 더 나은 결과를 이끄는 도구나 방법론이 달라질 수 있으니 올곧게 한 방향으로만 고집할 필요는 없습니다.

성장할 수도, 반대로 성장하지 않고 제자리걸음을 걸을 수도 있습니다.

 

2편에서는 낯선 방식으로 해결하는 방식을 얘기해 보겠습니다.

 

★ 더 나은 개발자로 성장을 꿈꾼다면
★ 먼저 헤쳐온 테크 리더들의 원칙에서 해답을 찾아보세요

“나도 테크 리더가 될 수 있을까? 어떻게 선배 개발자들처럼 성장할 수 있을까? 3년 10년 후에도 개발자로 살아갈 수 있을까? 팀워크는 도대체 어떻게 맞춰야 하는 걸까?”

개발자로 살아가면서 하루에도 천 번을 되묻는 물음에 마켓컬리, 레몬트리, 카카오, 코드스쿼드, 무신사, 몰로코, 데이블, 인프런, 패스트캠퍼스 테크 리더 9명이 답합니다.

지금까지 만나 볼 수 없었던 생존과 성장의 원칙에서 자신만의 해답을 찾아보세요.

 김정

소프트웨어 교육 기업 코드스쿼드 대표로 모바일 iOS 마스터를 담당합니다. 케텔 시절 비파툴, 델마당 개발자 커뮤니티를 시작해서 취미 맥개발자 커뮤니티 OSXDev를 거쳐 레츠스위프트 커 뮤니티 운영진으로 끊임없이 살아가는 중입니다.

1 Comment

Leave a Reply

©2020 GoldenRabbit. All rights reserved.
상호명 : 골든래빗 주식회사
(04051) 서울특별시 마포구 양화로 186, 5층 512호, 514호 (동교동, LC타워)
TEL : 0505-398-0505 / FAX : 0505-537-0505
대표이사 : 최현우
사업자등록번호 : 475-87-01581
통신판매업신고 : 2023-서울마포-2391호
master@goldenrabbit.co.kr
개인정보처리방침
배송/반품/환불/교환 안내