티스토리 뷰

(해당 포스트에서 소개하고 있는 "학교에서 알려주지 않는 17가지 실무 개발 기술" 책은 한빛미디어로부터 제공받았음을 알려드립니다.)

 

학교에서 알려주지 않는 17가지 실무 개발 기술

실무에 필요한 지식은 너무나 광범위해서 학교에서 배운 내용만으로는 부족하다. "학교에서 이런 것도 안 배웠어?"에 당황하는 주니어 개발자와 "아직도 이걸 몰라?"에 지친 실무자를 위해 17가

www.hanbit.co.kr

 처음 회사에 입사하면 어떤 일을 할까 고민했던 적이 있었던 것 같다. 석사 전공이야 컴퓨터 구조와 관련된 내용을 했고, 그걸로 합격이 되었으니, 아마 이와 관련된 일을 하지 않을까 싶었는데, 사실 제일 처음 입사하자마자 한 일은 테스트 자동화를 위한 Shell Script 개발과 테스트 방법을 잘 이해할 수 있도록 나름의 Documentation 작업을 하는 것이었다. 이런 것들을 사실 학교에서 다루지 않는 것이다. 물론 나도 학부가 컴퓨터전공이 아니었기 때문에 뭐라고 확언하기는 어렵지만, 적어도 학교에서 가르치는 것은 뭔가 개념적인 내용이지 실제 실무에서 활용할 수 있는 자동화 개발이나, 어떻게 하면 SW 관련 문서를 잘 쓸 수 있을까에 대한 내용은 아니었던 것 같다. 모든 케이스가 그렇다고는 못하겠지만, 적어도 회사에 처음 왔을 때 신입사원에게 시키는 것은 당장의 개발 문제나 프로젝트 수행이 아닌, 업무를 통해서 빨리 익숙해지는 소위 OJT 식이라고 생각한다. 

그렇다고 직접적으로 실무에 연관이 된 내용이 아니더라도, 그렇게 시키는 내용들은 현업에서는 자주 쓰이는 내용이고, 어떻게 보면 필수적인 것들이다. 특히 데이터를 다루는 입장에서는 반드시 거쳐야 하는 단계가 Data Preprocessing인데, 여기서는 진짜 평소에는 경험하지 못한 문제들이 툭 튀어나온다. 가령 데이터를 인코딩한 쪽과 디코딩하는쪽과의 환경이 달라서 제대로 못 읽어오는 경우도 있었고, 또는 datetime 형식으로 csv에 저장되었는데, 실제 읽어올 때는 해당 타입으로 안 읽히는 경우도 있었다. 또는 뻔하게 오픈소스 코드에서 환경 재생성을 위한 yaml 파일이 제공되는데도, 이를 몰라서 삽질하는 경우도 있었다. 이런 상황을 단순히 학교에서 배운 내용으로 커버될 수 있을까?

그림 1. 학교에서 알려주지 않는 17가지 실무 개발 기술

앞에서 언급한 문제들을 해결하려면 그만큼 구글링을 해야되고, 어쩌면 왜 그렇게 작성했을까 이해하기 위해서 소스코드를 분석해봐야 한다. 그리고 가장 많이 방법을 찾는 곳이 stackoverflow일텐데, 이 책은 어쩌면 그런 stackoverflow에 나올 법한 해결책들이 쭉 나와있는 일종의 cheatsheet이라고 할 수 있다. 일반 개념서나 역서처럼 정해진 목차를 따라서 가는 방식이 아니라 크게

  • 소프트웨어 기술
  • 데이터 처리 기술
  • 웹 기술

3가지 카테고리로 나눠서 각 기술별로 유용하게 쓸만한 팁과 이와 관련된 python 예시들이 제공되고 있다. 

처음 책을 접하는 사람이라면 책의 두께가 생각보다 얇다고 느낄 수도 있지만, 이 안에 담겨져 있는 내용들은 그 얇은 책으로 표현하기 힘들만큼 광대한 범위를 담고 있다. 여기서 다시 질문을 던져보면 다음과 같다. "이 안에서 다루는 내용들을 과연 학교에서 가르쳐줬을까?" 아마 장담하건데 아닐 것이다. 물론 학교 교육에서 기대하는 것은 수업 내용과 과제를 통해서 이런 기술들을 자연스럽게 습득해나가길 바라겠지만, 아마 대다수가 저런 문제를 딱 접하면, 진짜 저런것을 배웠나 싶을 정도로 생소하게 느껴질 것이다. 그리고 이 책의 내용이 담고 있는 내용을 보면, 현업에서 바로 쓰는데 도움이 많이 될 기법들이 소개되어 있다.

개인적으로 관심있게 읽은 내용은 파트 2에서 다뤘던 데이터 처리 기술 내용들인데, 아무래도 python과 관련된 실험을 수행할 때 되면, 실험마다 설정을 바꿔주고 기록하는 부분이 자주 발생한다. 이렇때 보통 설정을 스크립트와 병행해서 자동화하려면 필수적으로 다룰 내용이 JSON이나 XML일텐데, 이책에서 다루는 기본적인 파일 생성/처리 관련된 부분에서 해당 내용을 다룬다. 또한 Tensorflow에서 처리되는 모든 파일 형식은 ProtoBuf라는 형식을 따르게 되는데 역시 책에서 다루고 있고, 개인적으로도 이와 관련된 내용을 다루는 것은 거의 이 책에서 처음 본 것 같다.

여타 많은 말들을 계속 했지만, 이 책의 장점은 우리가 학교나 일반적인 교육 과정에서는 다루지 않은 기술들이 소개가 많이 되어 있고, 분명 현업에서 이런게 있으면 좋겠다 싶은 내용들이 담겨져 있다. 물론 책의 내용이 주류가 되어서 활용되지는 않지만, 뭔가 개발을 열심히 하고, 뭔가 편한 것, 내가 원하는 기능을 새로 구현해보려는 사람은 이 책에서 뭔가를 얻어가지 않을까 생각한다.

PS: 책의 예제 코드는 공개되어 있기 때문에, 어떤 내용이 다뤄지는지 궁금한 사람은 해당 github를 참고하면 좋을 것 같다.

 

sorrowhill/17techs

Contribute to sorrowhill/17techs development by creating an account on GitHub.

github.com

 

실무 기술
엔지니어를 위한 파이썬
나카쿠키 켄지 저/심효섭 역
학교에서 알려주지 않는 17가지 실무 개발 기술
이기곤 저
예스24 | 애드온2
댓글