메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

선개 개발자의 39가지 노하우

jen3***

|

2024-05-25

더 나은 프로그래머 되는 법

더 나은 프로그래머로 거듭나는 법, 선배 개발자의 39가지 노하우 공개

  • 저자 : 피트 구들리프
  • 번역 : 최원재 , 강전희 , 안재덕 , 남윤화
  • 출간 : 2024-04-30

 

선배 개발자의 39가지 노하우가 들어있는 <더 나은 프로그래머 되는 법>. 더 나은 방법으로 일하는 것에 고민이 많은 찰나에 이 책을 읽게 되었다. 저자는 '피트 구들리프'로 프로그래머이면서, 소프트웨어 개발 칼럼리스트이고, 음악가이며 작가라고 한다. 무척이나 다재다능하신 것 같다. (아마도) 현재 '더 나은 프로그래머 되기'라는 칼럼을 매거진에 기고하고 있으신 것 같다. 그 칼럼을 바탕으로 만들어진 것이 아닌가 생각한다. 그리고 또 하나 흥미로운 점은 이 책의 옮긴이는 4명이나 되는데, 사내 게임 길드로 시작하여 길드원들이 번역을 함께 해 만들어진 책이라는 것이다. 좋아하는 것을 하면서, 업무와 관련된 일로 확장한 좋은 예가 아닌가 싶다.

 

 

더 나은 프로그래머가 된다는 의미는 뭔가 추상적이다. 그럼에도 각자 더 좋은 사람이 되고 싶은 만큼, 더 나은 프로그래머가 되기 위한 방향에 대해 생각해 볼 수 있을 것이다. 책을 통해 생각해 볼 수 있는 더 나은 프로그래머가 되기 위한 길은, 문법에 대한 단순한 이해나 기본적 설계의 통달이 전부는 아니라는 것이다. 왠지 프로그래밍은 혼자만 하는 일로 생각되기 쉽지만? 생각보다 더 다양한 사람들과 유기적으로 소통한다. 그러기 위해서 일하는 방법이나 일을 대하는 태도, 그리고 코드에 접근하는 방법과 기법 등에 대해 더 많은 것을 알고 있어야 한다. 물론 이게 결코 쉽지는 않아 보인다. 무엇이든 관심을 갖고 노력하는 게 필요한 것 같다. 아무튼 이 책에서 다루는 주제들은 '소프트웨어 개발자로서의 삶 전반에 대한 것'이라고 한다. 코드를 어떻게 작성하면 좋을지에서부터, 일에 국한된 것이 아닌 삶을 어떤 마음으로 바라볼 것인지에 대한 것도 들어 있다. 경력자인 저자의 말이 정답은 아닐 거다. 사실 삶이라는 것 자체에 어떤 정답이 있는 것은 아니니? 하지만 경력자의 경험이니만큼, 수용할 것은 수용하면서 나의 경험도 만들어가는 게 좋지 않을까 생각해 본다.

 

 

대상 독자는 취미로 개발을 공부하는 일반인부터 신입 개발자나 경험 많은 개발자, 업계 전문가 등을 막론하고 누구에게나 도움이 될 것이라고 한다. 주니어라면 앞으로의 방향에 대한 고민과 어떤 태도로 업무를 해야 하는지에 대한 궁금증을 가지고 읽어볼 수 있을 것 같다. 나 또한 그런 마음과 더 나은 업무를 하고 싶다는 마음으로 읽었던 것 같다. 현실적으로 주변에서 이런 팁 같은 것을 얻기는 쉽지 않은 일이니 말이다. 아! 이 책을 읽기 전에 필요한 유일한 선행 조건이 있는데, 그것은 '더 나은 프로그래머가 되고자 하는 마음'이라고 한다.

 

 

이 책은 총 5부로 나누어져 있다.

1. you.write(code);

2. 연습을 통해 완벽해진다

3. 개인적인 일로 받아들이기

4. 일 끝내기

5. 사람의 일

1부에서는 코드베이스부터 이야기를 풀어나간다. 코드 작성 시 중요한 기법과 좋은 코드를 어떻게 작성할 수 있는지에 대한 팁 같은 걸 얻을 수 있다. 2부에서는 프로그래밍 연습에 대해서 다룬다고 한다. 더 나은 코드를 고안하는 데 도움이 되는 기법 같은 것에 대해 알 수 있다. 3부에서는 효율적으로 배우고, 번아웃을 피하는 법 등에 대해서 볼 수 있다. 4부에서는 목표에서 벗어나거나 일정을 지연시키지 않고 정해진 시간 안에 업무를 완수하는 방법에 대해 설명한다. 마지막으로 5부에서는 소프트웨어 업계에서 다른 사람들과 협업하는 방법에 대해 설명한다. 그리고 추가적으로 국내 개발자 8인 인터뷰 또한 뒤쪽에 수록되어 있다.

 

 

각 챕터의 제목 아래에는 해당 챕터와 관련이 있는 것 같은 명언도 적혀져 있다. 그리고 위에서 설명한 부분 중에 중요한 내용은 TIP으로 한 번 더 설명을 해주기 때문에, 같이 읽어보면 좋을 것 같다. 나는 읽다가 나중에 다시 읽고 싶은 부분에는 형광펜으로 밑줄을 그었다. 원래는 색연필로 했었는데, 다시 볼 때 생각보다 눈에 들어오지 않아 눈에 잘 들어오는 형광펜으로 바꿨다. 위에서 밑줄 그은 부분은 코드뿐만 아니라, 모든 것에 적용되는 말이 아닐까. 좋은 코드를 작성하려면 코드에 엄청난 노력을 들여야 하듯이, 뭔가 이루고 싶은 게 있으면 그만큼의 노력이 필요하겠지. 너무 당연한 말이지만, 때때로 그 당연한 말을 잊고 살기 때문에 적당한 타이밍에 복기해 주는 게 필요할 듯하다.

 

 

한 챕터가  끝날 때 [마치며] 부분이 있다. '생각해보기', '연습해보기', '쉬어가기', '참고'가 있어서 적당히 생각해 보며, 참고하기 좋으니 읽어보고 적용을 해보면 좋을 것 같다.

 

 

사실상 회사에서 하고 있는 현재의 프로젝트가 실직적인 나의 프로그래밍 첫 프로젝트였다. 그런데 시작하고, 1개월이 지났을 때까지도 다 함께 공유하는 코드 컨벤션 같은 게 없었다. 혼자만 하는 게 아니라, 여러 사람과 함께 하는 프로젝트이니 규칙 같은 게 필요하다고 생각했다. 그래서 깃 커밋을 할 때 컨벤션 같은 걸 찾아서 이렇게 했으면 좋겠다고 내가 제안하고 공유했었다. 물론 코드 컨벤션은 아니지만 그래도 같은 규칙을 공유하니 훨씬 보기 좋다는 것을 깨달았다. 혼자 하면 사실 누가 보는 게 아니라 크게 상관이 없겠지만, 협업을 하면 분명 중요한 것 중에 하나인 것 같다. 사람이 많아질수록 원래 규칙도 필요한 법이니 말이다. 특히나 코드 같은 경우에는 나도 나이지만, 시간이 흘러 또 다른 누군가가 유지 보수를 할 때를 대비하며 작성해야 하는 게 좋지 않은가 다시 한번 생각해 본다. 

 

 

정말 이 부분을 보고, 삭제한 소스들이 있어서 적어 본다. 6월에 예정된 것은 고도화 프로젝트이다. 1차 때도 참여하기는 했었는데, 그때 프로그래밍을 했던 건 아니다. 하지만 6월에는 1차 때 소스를 바탕으로 나도 프로그래밍을 하게 될 것 같아서, 깃에서 소스를 받아서 살펴보고 있는 중이다. 이 프로젝트 초반에는 버전 관리 없이 로컬로 소스를 관리했었는데, 그러다 보니 수정이 되었던 것도 이력을 확인할 수 없다는 게 조금 쉽지 않다는 것은 나의 넋두리다. 다시 본론으로 돌아와, 이전에 작업을 하시던 분이 로컬로 관리를 하시면서 기존에 있는 소스 파일을 복사해서 백업을 해뒀던 것이었다. 그래서 원본 파일 'Hello.java'가 이렇게 있는데, 그 아래에 'Hello.java.backup' 이런 식으로 파일이 하나씩 더 있는 것들이 있었다. 그걸 보고도 그냥 두고 있다가, 이 부분과 다른 챕터를 읽다가 어차피 삭제해도 이력 관리는 되고 있다는 것을 깨달아 그냥 과감히 삭제했다. 대신 커밋을 할 때는 기능을 추가하거나 수정한 것과는 별도로, 삭제한 소스 코드만을 따로 관리하는 게 필요했다. 아무튼 그렇지 않아도 소스 파일이 많은데, 이렇게 백업 파일까지 있으니 보기가 쉽지 않았었다. 이렇게 삭제를 하니 정말 몇 십 개를 삭제한 것 같은데, 패키지 내의 파일들이 훨씬 보기 쉬워진 것은 말할 것도 없다. 이번에는 단순하게 파일들만 삭제를 했지만, 앞으로 하고 싶은 건 현재 코드를 더 읽기 좋으면서도 유지 보수가 쉬워지는 방향으로 리팩터링 해보는 것이다. 잘 해봐겠다.

 

 

흔히들 프로그래머는 끊임없이 배워야 하는 직업이라고들 한다. 하지만 프로그래머만 그럴까? 어떤 업무에서 더 나은 방향으로 일을 하고 싶다면 누구든 배워야 한다고 생각한다. '이러해야 한다~'라고 해서, 모두가 다 그렇게 하는 것은 아니지만! 그럼에도 열심히 하면서 잘 하는 사람들은 그만큼 노력하고, 배우는 것을 보면 확실히 배워야 하는 건 맞는 것 같다. 그 배운 걸 잘 적용하고, 내 것으로 만든 후에 그것을 잘 설명할 수 있다면 그건 정말로 내 것이 되었다고 할 수 있겠다. 그렇다면 업무적인 것만 배우느냐? 아니다. 업무적인 것을 배우면서 취미로 배우고 싶었던 것도 배워보고, 관심이 있었던 것도 배워보면서 적당한 균형을 맞추면 된다. 지난번에 컨퍼런스 가서 느낀 건 진심으로 배움의 열정이 넘치는 사람에게서는 그 에너지가 뿜어져 나온다는 거다. 저자는 말한다. 배움은 노력하면 나아질 수 있는 분야이기도 하다고 말이다. 배우고 열심히 하면서, 어떻게 하면 잘할 수 있을지를 끊임없이 고민해 봐야겠다.

 

 

그리고 마지막으로 국내 개발자들의 인터뷰를 볼 수 있다. 지난번에 한 세미나 같은 걸 참여해서 들었는데, 거기서 발표하시던 분들 중 몇 명이 이직을 한 후에 좋은 사수를 만났을 때 폭발적으로 성장을 했다고 한다. 하지만 모든 회사에 좋은 사수가 있는 것도 아니고, 심지어 사수가 없는 경우도 존재한다. 그럴 때 필요한 게 이렇게 간접적으로나마 다른 개발자들의 경험을 글로 읽는 게 아닌가 싶다. 국내 8인의 개발자의 경험을 엿볼 수 있을 것 같다. 이미 이 길을 걸은 경험자들의 글을 바탕으로 본인만의 아이덴티티나 방향성 같은 걸 정하면 될 것 같다. 마지막으로 더 나은 프로그래머가 되는 법에 정답이 있는지는 모르겠지만, 더 나은 프로그래머가 되고자 하는 열망이 있다면 한 번 읽어 보며 스스로 생각해 보면 좋을 것 같다.

 

한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공 받아 작성된 서평입니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?