개발자의 열정을 유지하기 위해

박성룡 ( Andrew park )
8 min readFeb 23, 2020

--

최근 여러일로 인해, 개발의 열정을 유지하는 법에 대해서 많은 고민이 생겼습니다.

스스로 열정을 유지하고, 방향을 유지하기, 위한 다짐글을 작성해 보려고 합니다.

모든 일과 삶에는 열정이 필요합니다.

개발자의 삶과 소프트웨어의 삶도 다르지 않습니다.

소프트웨어를 유지보수를 하지 않으면, 죽어간다는 표현을 들은 기억이 있습니다.

사용자가 정확히 원하는 동작을 하는 소프트웨어를 왜 죽어간다고 표현을 했을까요?

개발자의 열정을 소비하는 소프트웨어

세상에는 많은 개발 방법론이 있습니다. 그리고 입모아 이야기 하는 단 하나의 공통사항이 있습니다.

소프트웨어의 요구사항과 환경은 항상 변합니다.

요구사항과 환경이 변화하는 이유는 다양합니다.

기술의 발전 이나 재발견 (ex 머신러닝, Framework) 이나, 사회환경이나 문화적 가치관의 변화 등으로 인해, 시장에서 원하는 요구사항이나 개발의 환경이 달라졌을 수도 있습니다.

많은 기업들은 이런 변화에 적응 하기 위해 여러 개발 방법론이나 기술을 도입하여 적응해 나갑니다.

그리고 이런 방법론과 기술들을 도입 받은 소프트웨어는 계속해서 환경에 맞춰, 진화 및 적응해 나갑니다.

이런 환경에 변화하지 못하는 소프트웨어들은, 유저들의 기억에서 잊혀지거나, 경쟁 서비스에게 점차 밀려나거나, 버그로 인해 소프트웨어 자체가 동작하지 않을 수도 있습니다.

소프트웨어에게 이러한 변화를 수용하고 적응 시키기 위해서는 개발자의 많은 노력과 도움이 필요 합니다. 이러한 노력과 도움은 개발자의 열정을 소모 하게 됩니다.

소프트웨어는 이러한, 개발자의 열정을 지원 받으며, 그리고 개발자의 열정 소모하며 살아갑니다. 개발자의 열정이 부족해지기 시작하면, 소프트웨어는 원동력을 잃기 시작합니다.

열정을 잃은 개발자는 더 이상 소프트웨어에게 노력이나 아이디어를 부여할 동기와 원동력을 잃고, 점차 소프트웨어를 멀리하게 됩니다. 그리고 그 여파는 개발자 삶에게도 찾아옵니다.

그렇다면, 개발자는 열정을 어떻게 유지하고 충전 해야 할까요?

개발자는 왜 개발을 좋아할까?

사람들은 여러가지 동기를 가지고 직업을 선택하게 됩니다.

많고 많은 직업중에 개발을 선택한 사람들은 정말 다양한 동기를 가지고 있습니다.

  • 어려운 문제를 풀고 해결할때
  • 제작한 소프트웨어가 남에게 도움이 되는 모습을 보았을때
  • 텍스트로만 작성한 코드가 화면이나 사물로써 동작하는 모습이 신기할때

등등 정말 다양하고, 많은 이유들이 존재합니다.

저는 개발을 시작하고 유지하는 많은 동기 중 개발 지식을 배우고, 실험해 보고, 개발를 알아가는 것을 좋아합니다. 그리고 이러한 행위와 배움은 재미가 있습니다.

많은 사람들이 다양한 이유와 동기가 존재 하겠지만, 저는 개발의 열정은 배우는 재미로 부터 온다고 생각합니다.

앞서 이야기한듯, 모든 요구사항과 환경은 변합니다. 끊임없이 변화하고 진화하는 환경에 개발자가 적응하기 위해서는 끊임없이 배우고 익혀야 합니다.

그리고 재미를 유지하기 위해, 그리고 끊임 없이 배우고 익혀서, 좋아하는 개발을 계속 유지하기 위해서는, 여러 노력이 필요 합니다.

개발 열정을 유지하기 위한 방법

저는 아래 방법으로 개발의 열정을 유지합니다.

  1. 개발 공부하기
  2. 개발 해보기
  3. 개발 정리하기

1. 개발 공부하기

개발은 공부를 해도 해도 끝이 없는 영역입니다.

개발의 영역은 너무나도 다양하고 방대하며, 끊임 없이 많은 사람들에 의해, 발전해 나갑니다. 때문에 배우고 익힐 영역이 끝없이 생성 됩니다.

모든 것을 알고 배우면, 좋겠지만, 우리의 시간은 한정적입니다. 때문에, 어느정도 우선순위는 필요합니다.

저는 일단 여러 채널을 열어 두고, 배울만한 정보를 수집합니다.

  1. 개발자 블로그나 SNS 구독하기
  2. 개발 관련 커뮤니티에 가입하고, 이를 구독하기
  3. 컴퍼런스에 참석하기
  4. 주변 개발자에게 물어보기
  5. 책을 추천 받거나, 서점에서 책 찾아보기

배울만한 정보가 수집되면, 현재 상황에 따른 우선순위를 부여하고, 이를 공부 시작하는데, 이를 꼭 문서로 정리합니다.

  1. 개발 관련 책 읽고 정리하기
  2. 개발 블로그 글 읽고 정리하기
  3. 컨퍼런스 참석한 내용을 정리하고, 배울만한 정보를 정리하기
  4. 개발 강의 (youtube 등) 를 보고, 이를 정리하고, 더 깊이 배울만한 내용을 정리하기
  5. Open 소스 코드 읽어보고, 정리하기
  6. 라이브러리 API 정독하고, 정리하기
  7. 표준 SPEC 문서 나 MDN 문서 읽어보고 정리하기
  8. 기본 컴퓨터 공학지식 (네트워크, 운영체제) 정리하기

관심있는 개발 서적을 읽고, 다른 프로젝트의 소스코드나 API를 읽고 정리하는 것은 많은 노력이 들어 가지만, 책이나 블로그 글, 강의를 보고 생각과 지식을 나누고, 다른 소스코드나 API 문서를 보면서 다양한 관점에서 생각하다 보면, 배움에 대한 열정과 갈망을 만들어 내기에 매우 좋습니다.

그리고 이런, 열정과 갈망은 새로운 동기를 부여하여 개발 공부에 또 다른 재미를 부여해 줍니다.

2. 개발 해보기

개발은 공부만 하면, 잊기가 매우 쉽습니다. 실제로 적용해보며, 배울 내용을 익혀야할 필요가 있습니다.

  1. 실제 프로젝트에 적용해 보기
  2. 토이 프로젝트 나 TEST 프로젝트를 만들어 보기
  3. 알고리즘 문제 풀기

실제로 진행중인 프로젝트에는, 공부한 내용을 적용해 보기 매우 좋습니다. 문제를 해결 해야하는 명확한 모습이 보이기 때문입니다. 특히나 생각지 못했던 문제를 발견하거나, 배운 내용을 적용하며, 다양한 방향으로 적용해 보면서, 부족한 부분은 다시 공부해 보기 때문에, 기억에 오래 남게 됩니다.

하지만 프로젝트에 배운 내용을 너무 많이 적용 하다보면, 동료와 협업 하기 매우 어렵습니다. 동료는 아직 배운 내용을 같이할 준비가 안되어 있었기 때문입니다.

하여, 토이 프로젝트나 Test 프로젝트를 만들어서 적용해 보면서, 익혀 볼 수도 있습니다. 부담없이 새로운 프로젝트를 만들고 부시고 만들고 부시는 과정은, 여러 과정을 실험해보며, 자신에게 맞는 방법을 찾기에 매우 좋습니다.

그리고, 프로젝트 뿐만이 아니라, 알고리즘 문제를 풀때에도 배운 내용을 적용해보기 좋습니다. 특히나, 알고리즘 문제는 해결해야할 과제를 명확히 줄 뿐더러, 성능 (속도, 메모리 용량) 부분도 동시에 고려하기 때문에, 깊이 있는 관점에서 고민해보기 좋습니다.

이러한 과정은 문제 해결과 그 과정에 재미를 부여해 주어, 새로운 문제를 풀기위한 열정을 심기에 탁월합니다.

3. 개발 정리하기

기록은 기억을 지배한다는 말이 있습니다.

인간의 뇌는 단기기억에 있는 지식을 보관하기 위해, 자신만이 이해할 수 있는 마인드 맵을 만들어 장기기억에 저장하기 때문에, 이를 단기기억으로 끄집어 낼 수 있는 자신만의 단어가 필요합니다.

  1. 문서에 정리하기
  2. 코드나 기술 리뷰 하기
  3. 블로그 글쓰기

배운 내용을 문서로 정리 해두면, 자신의 단어로 정리하기 좋기 때문에, 기억을 유지하는데 도움이 됩니다. 그중 TIL (Today I Lean) 이라는 방법이 존재합니다. 매일매일, 하루 동안 배운 내용을 문서로 작성하고, git 으로 관리하는 방법입니다. 매일 매일 공부하고 이를 정리하는, 꾸준한 습관은 단위는 작지만 배움에 큰 도움이 됩니다.

그리고 이렇게 정리한 문서나, 자신이 작성한 코드를 다른 사람에게 설명하는 과정은 공부법 중에서 최고의 효율을 자랑합니다. 익힌 내용을 타인에게 쉽게 설명하기 위해서, 다양한 방법으로 고민해보고, 이를 전달 하는 과정은 끊임 없이 지식을 자신의 것으로 만들 수 있습니다.

하지만 리뷰하는 것은 제 3자가 필요합니다. 하지만, 바쁜 현대 사회에서 다른 사람의 시간을 빌리는 것은 쉽지 않습니다.

블로그에 글을 쓰는 것은 특정 다수의 사람의 시간을 빌리기 좋습니다. 온라인으로 작성되어 여러 매체로 공유할 수 때문에, 다른 분들의 의견을 듣기도 좋고, 앞서 리뷰와 마찬가지로, 다른 사람에게 설명해준다는 느낌으로 작성한다면, 자신만의 지식으로 정리하기 매우 도움이 됩니다.

기술 블로그를 시작해보자

위 많은 방법중 열정을 올리기에 제일 좋았고, 다른 이에게 먼저 해보라고 권하고 싶은 것은 기술 블로그를 쓰는 것입니다.

배운것을 정리하고, 다른 사람에게 설명하기 위해서 블로그에 글을 쓰다보면, 배운것을 한번 더 찾아보고, 정리하게 되어, 배움에 더 큰 도움이 됩니다.

그리고, 작성한 글을 2, 3번 다시 읽어보면서, 자기가 잘 이해하고 글을 썼는지 확인하게 되고, 배움을 되새김질 할 수 있습니다.

작성된 글은 다른 분들께 공유되어, 다른 분들의 리뷰 받기에 좋고, 커리어 관리에 큰 도움이 된다고 생각합니다.

하지만 이런 블로그 글쓰기는 혼자서 하게되면 큰 의지와 열정 없이는 유지하기에 쉽지 않습니다.

그렇기 때문에 다른 분들에 도움을 받으면 좋은데, 글쓰기 스터디를 하거나, 스스로 혹은 소프트웨어로 규칙을 정해두고, 꾸준히 쓰도록 유도를 하거나, 블로그 글쓰기 모임에 참여 할 수 도 있습니다.

저는 글또라는 라는 모임을 통해, 이를 이어가고 있는데, 2주에 한번씩 글을 쓰고, 이를 공유하여, 리뷰를 받고, 다른 사람의 글을 읽으면서, 리뷰해 주면서 더 큰 배움에 다가갈 수 있었고, 글쓰기를 유지하는데에 많은 도움을 받고 있습니다.

마무리

개발자에게 배움을 추구하는 것은 중요한 덕목 중 하나인 것 같습니다. 그리고 그 개발의 열정을 유지하기 위해, 글로써 지식을 다른 분들께 나누어 줄 수 있는것 중 하나로써 블로그 글쓰기는 제가 할 수 있는 최고의 방법중 하나인 것 같습니다.

앞으로도 배운 내용을 쉽고 자세히 정리하여, 다른분 들에게 나누어 드릴수, 있을 만한 글을 쓸 수 있었으면 좋겠습니다.

이 글로써 개발자의 삶이 지치지 않고, 포기하지않고, 꾸준히 열정적으로 재미 있을수 있게 할 수 있도록, 스스로에게 다짐해 봅니다.

--

--

박성룡 ( Andrew park )
박성룡 ( Andrew park )

Written by 박성룡 ( Andrew park )

Javascript is great We may not be great

No responses yet