리팩터링 2판 (리팩토링 개정판) - 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기
마틴 파울러 지음, 개앞맵시 외 옮김 / 한빛미디어 / 2020년 4월
평점 :
장바구니담기


실력없는 개발자만화 - 똥똥배 (https://bit.ly/3bPgO6I)


만화에서 하고자 하는 이야기랑은 좀 다르긴 하지만, 저기서 나오는 전 개발자가  실제로는 대부분 나다. 


짜놓은지 며칠만 지나도 기능 추가 등을 위해서 열어보면 어떻게 이렇게 엉망진창으로 해놓았지라고 생각할 경우가 많다. 생각해 보면, 여러가지 이유로 일단 돌아가기만 하게 하자 라고 하고 작성한 코드들을 나중에 쳐다 볼 때 더욱 그랬다. 


심지어 이건 과거의 이야기가 아니고 현재 진행형이다....


알아보기 쉽고, 좋은 코드를 작성하는 것에 대한 책이 여러가지 있지만, 그중 가장 유명한 책이 리팩터링이다. 


리팩터링 책이 (원서 기준으로) 20년 만에 2판이 나왔다. 원서 기준으로 20년 만의 개정판이라니 대단하다. 개작을 할 수 있는것도 대단하고, 이 책이 아직도 읽히고 팔린다는 것이 대단하다.


리팩터링이란 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법이다. 그리고 한다고 표시가 나는 것도 아니고, 기능이 달라지는 것도 아니고 (달라지면 안되지), 성능이 좋아지는 것도 사실 아니다.


책에서도 이야기 하지만, 리팩터링을 해야하기 때문에 일정을 빼야 한다고 실제로 윗사람에게 이야기를 하면 잘돌아가는 프로그램을 괜히 건드려서 오류가 나면 어떻게 할거냐, 공연한 시간낭비를 하지 마라 라는 소리를 듣기 쉽상이다. 


그럼에도 불구하고, 저자는 다음과 같은 이유로 리팩터링을 해야 한다고 한다. 


- 코드를 건강한 상태로 유지하는데 도움을 줄 수 있다. 

- 소프트웨어 설계가 좋아진다 (아키텍쳐를 충분히 이해하지 못한 채 단기 목표만을 위해 코드를 수정하다 보면 기반구조가 무너지기 쉽다.) 

- 소프트웨어를 이해하기 쉬워 진다. 

- 버그를 쉽게 찾을 수 있다. 

- 프로그래밍 속도를 높일 수 있다. 


그리고 리팩터링을 하는 것은 내가 작성하는 코드를 개선 하고 싶고, 좀더 나은 개발자로 성장하고 싶다면 꼭 해야 한다고 생각 한다. 모든 기능을 지속적으로 개선해나가는 의지를 가지는 것은 자신의 성장에 크게 도움이 된다고 생각 한다. 


책은 순서대로 리팩터링은 무엇인지, 언제 또 왜 해야하는지, 어떻게 해야하는지를 알려 주고 있다. 그리고 언제 하지 말아야 할 지 까지. 


나의 경우 2장까지는 주욱 한번에 보았고 3장 부터는 코드를 쳐다 보다가 이걸 어떻게 개선할 방법이 없을까 할 때 찾아서 보고 또 보고 하고 있다.  


작성된 코드를 리팩터링 할 때 마다, 프로그램의 성능이 좋아지지는 않을지라도 내머리속 성능은 좀나아지는거 같기는 하다. 


내가 짠 코드 보고 내가 욕을 안하는 그날 까지 리팩터링은 계속 된다.


댓글(0) 먼댓글(0) 좋아요(4)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
출판사가 OK하는 책쓰기 : 악마 편집자가 신랄하게 알려준다! - 책 기획, 책 쓰기, 글쓰기, 마케팅, 저작권을 한 권에
최현우 지음 / 한빛미디어 / 2020년 2월
평점 :
장바구니담기


바쿠만이라는 만화가 있다. 만화가를 꿈꾸는 콤비가 중학교 때 부터 출판사에 원고를 제출하기 시작하여 잡지에 연재를 하고 결국에는 히트작가로 성장 한다는 내용이다.


작가로 성공 하기 까지의 과정에서 가장 중요했던 요소 세가지는 주인공의 재능과 노력 그리고 좋은 편집자와의 만남이었다.


스토리를 짜고 만화를 그리는 재능이 있었던 주인공을 편집자는 만화 세계의 현실에서 부터 어떤 독자가 읽는 만화를 그릴 것인지 그리고 잡지 데뷔와 단행본 출간에 이르는 긴 과정을 함께 하며 아마추어에서 프로 작가로 성장 하게 한다.


오늘 소개할 이 책에서 이른바 악마편집자는 책을 쓰고 싶어하는 사람에게 필요한 거의 모든 내용을 짧지만 확실하게 압축하여 보여주며 책을 출판 하는 작가가 되는 방법을 설명 한다..


  1. 왜 써야 하는지 생각하기 부터 시작하여 (자기브랜딩)

  2. 글을 쓸때 지켜야할 내용

  3. 누구에게 팔 것인지에 대한 마케팅적 접근

  4. 실제 원고 작성에 대한 예시

  5. 출판 이후 프로세스 

  6. 저작권과 계약


처음 접하는 분야이기에 모든 부분이 새로웠고 흥미로웠지만 실제로 글을 작성하는 부분에 대한 내용이 개인적으로 항상 고민하던 부분이었기에 특히 재미있었고 도움이 되었다.


p.106 용어표 만들기

왜 용어표가 필요한지 설명한다. 무슨 글이든 쓰다보면 앞에서 쓴 단어와 뒤에서 쓴 단어가 달라지는 경우가 생기는데, 이런 실수를 대비 하여 용어표가 필요 하고 용어표를 어떻게 작성할 것인지에 대한 내용이 나온다.


p.152 본문을 쓰는 나만의 4원칙

본문을 작성하는 원칙 4가지를 제시한다.

첫번째 원칙은 “두괄식으로 설명하라”.


“설명만 주저리주저리 많고 정의를 제시하지 않는 이유는 본인도 모르기 때문이다.”


이부분이 확실하게  와닿았다. 모르면 설명할 수 없다.


p. 174 외국어 우리말 표기 원칙

따로 공부를 하지 않으면 잘 모를 수 있는 외국어로 된 용어를 사용하는 부분에 대한 설명이다. 온통 영어로된 용어를 사용하는 IT 에서 무슨 설명서라도 하나 작성하려고 하면 이 용어를 원어로 써야하는지 한글로 써야하는지 고민할 때가 많다. 이런 부분에 대한 설명이 잘 되어 있다.


p. 175 흔한 번역투 TOP 12

읽다 보니 내 글쓰기가 얼마나 잘못되었는지 알 수 있었다.


p. 199 비문을 방지하는 비법

“문장을 짧게 쓴다.”

비법이다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
최고의 아빠가 알려주는 1등 코딩, 스크래치 - 2019 SW 교육 정규 과목 채택/저자 카페 서비스 제공
김종훈 지음 / 한빛미디어 / 2019년 9월
평점 :
장바구니담기


초등학교에서 수업시간에 코딩 교육을 한다고 한다. 5,6학년 2년을 합쳐 17시간이니 그리 많은 시간을 할애하는 것은 아니지만, 정규 교육 과정에 코딩이 들어간다는 것 자체가 큰 의미가 있는 것 같다.


그런 흐름을 타고 코딩 학원이나 코딩에 관한 책 들이 마구 쏟아져 나오고 있다. 제일 많이 사용하는 것이 스크래치와 엔트리이다. 하지만 일시적인 유행이나 흐름을 타고 그저 상품을 팔아먹기에만 급급한 것이 현실인듯 하다.


이 책의 저자이신 김종훈 교수님은 이런 유행이 있기 한참 전 부터 초등학생 및 초등교사를 위해서 스크래치 강의를 해오신 분으로 , 책을 통해서   단순한 스크래치 사용법 뿐만 아니라 코딩교육의 실제 목적인 문제해결 능력과 창의성을 기를 수 있도록 하고 있다.

책은 기본적인 스크래치에 대한 설명과 스크래치를 사용 하여 프로젝트를 만드는 방법으로 시작 한다.


스크래치에 대한 첫 인상은 생각보다 쉽지 않지만, 그렇다고 또 어렵지는 않다는 점이다. 각각의 동작이나 제어, 이벤트에 관한 블록을 선택하고 끌어다 연결하여 일련의 동작을 만들어내는 것은 실제 타이핑을 하지는 않지만 의사코드를 사용하여 프로그램을 하는 것과 비슷하다는 생각이 들었다. (굳이 제일 비슷한 것을 찾아 보자면 파워포인트에서 애니메이션 순서를 정하고 꾸미는 것이 가장 비슷해 보인다.)


의사코드를 사용해서 프로그램을 할 때는 머리속으로만 결과를 예상하는 방식으로 문제를 해결 해야 하는데, 스크래치에서는 실제 화면의 스프라이트를 동작시키는 방식으로 결과를 보여 주기 때문에 좀더 직관적이고 편하기는 하다.


책에서는 스크래치 뿐 아니라 코딩을 할 때 일반적으로 알아야 하는 개념인 변수, 리스트, 재귀 등에 대한 설명도 담고 있다. 초등학교 학생에게는 어려운 단어 인거 같기도 하지만 필요한 만큼의 설명을 최대한 친절한 방식으로 알려 주고 있다.


코딩을 처음 시작하는 초등학생이 바로 보기에는 약간 힘들어 보이기는 하지만, 코딩을 처음 시작하는 엄마나 아빠와 함께 읽으며 같이 입문하기에는 참 좋은 책이다. 다만 책띠의 카피문구는 사실 좀 낯간지럽기는 하다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
나는 LINE 개발자입니다 - 라인의 개발 고수 12인의 도전과 기회, 성장의 개발 라이프
강윤신 외 지음, LINE Developer Relations 팀 엮음 / 한빛미디어 / 2019년 9월
평점 :
장바구니담기


딱히 개발에 관한 내용을 찾아서가 아니더라도, 블로그나 개발자 커뮤니티를 자주 들락거리는 것을 좋아 한다. 이유는 비슷한 직업의 사람들이 어떻게 살아가는지 이야기듣는 것을 좋아 해서 이다. 


많은 개발자 분들이 자기 이야기를 올려 주시지만 의외로 잘 정리된 이야기를 찾기는 어려운데, 심지어 하나의 회사에서 근무하시는 분들의 이야기를 책으로 엮어서 나온 것을 읽을 수 있는건 괜찮은 기회였다.


거기에 개발자 분들의 이야기 뿐만 아니라, “오픈소스매니저”, “테크에반젤리스트” 같은 생소한 일을 하시는 분의 이야기도 함께 들어있다. 특히 "개발자, 그들의 커리어에 대한 단상" 부분은 소프트웨어에 대해서 단순히 개발, 영업 두 직군 밖에 생각 하지 못했던 나의 짧은 안목을 넓혀 주기도 하였다.


커뮤니티에는 오늘도 “조언 부탁드립니다” 라는 글이 올라오고 있다. 가보지 않은 길에 대한 불안은 누구나 있는 것이고 그 길이 어제와 오늘이 다를 정도로 급변하고 있는 IT 분야라면 더더군다나 무엇을 어떻게 하면 좋을지 모르는 경우가 많을 것이다.


물론 라인이 모든 개발 하는 회사를 대변하는 것은 아니지만, 성공한 회사에서 어떻게 입사했고, 어떻게 근무하는지를 간접적으로 경험할 수 있게 하여, 조금이라도 자기 미래에 대한 청사진을 그릴 수 있게 하여, 책 머리에 팀 리드 분이 적어주신 것 처럼 개발자로서의 미래와 삶에 대해 고민하고 주저하는 청년들에게 도움이 되었으면 좋겠다. 


마지막으로 원하는 바라면, 이 기획이 시리즈화 되어서 경쟁적으로 기업들이 나는 “카카오” 개발자 입니다. 나는 “배민” 개발자 입니다 같은 시리즈를 마구 내주었으면 좋겠다. 


하지만 나는 “SI” 개발자 입니다. 이런건 조금 우울 하려나?




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
Head First Agile - 개념부터 시험 대비까지, 가장 애자일다운 안내서 Head First 시리즈
앤드류 스텔만.제니퍼 그린 지음, 박현철 옮김 / 한빛미디어 / 2019년 8월
평점 :
장바구니담기


head first agile

  • 어서와 애자일은 처음이지?


애자일이 뭘까요?

  • 소프트웨어 팀이 특정 문제를 해결하는데 도움을 주기 위해 최적화된, 단순함을 유지해서 상대적으로 간단하게 개발하는 일련의 방법 또는 방법론


애자일이 인기를 얻은 이유?

  • 팀이 애자일에 적응하면 마감일을 지키기가 아주 쉬워진다

  • 소프트웨어 버그를 실제로 줄일 수 있다

  • 코드의 유지보수도 훨씬 쉬워진다

  • 사용자는 훨씬 만족 하고, 덕분에 모든 사람의 삶이 편해진다

  • 무엇보다 애자일 팀이 효과적으로 일한다면 합리적인 시간대에 퇴근할 수 있고 주말 근무를 할 필요가 없어지기 때문에 삶의 질이 개선 된다.


책에서는 애자일 선언문을 시작으로 애자일의 가치와 원칙에 대한 이해를 이야기 하고, 각 방법론 (스크럼, XP, 린/칸반)에 대한 개략적인 설명을 이어 나간다.


헤드퍼스트 책 답게 (헤드 퍼스트 시리즈를 매우 좋아함!) 지루한 설명을 이어나가는 것이 아니라 큰 주제어와 대화체 그리고 그림으로 이해하기 편하게 해준다.


PMI-ACP 시험 준비 부분에 관해서는 솔직히 관심 밖이라서 읽지는 않았는데, 시험 자체가 정해진 정답 외워서 찍는 것이 아니라 주어진 상황에 대한 이해와 실제 상황에서 팀이 애자일 도구, 기법, 개념을 어떻게 활용하는지를 잘 알아야 한다고 하니 관심 있는 분들께는 많은 도움이 될 듯 하다.


실제로, 나의 현업에서 애자일 방법론을 적용할 수 있을 지에 대해서는 미지수이지만, 수십년 전에 배운 (그보다 더 수십년 전에 개발된 ) 폭포식 소프트웨어 개발 방법론 이후 오래간만에 개발 방법론에 대해서 배워보고, 좀더 나은 개선을 위해 무엇을 할 수 있을지에 대해서 잠시나마 생각해 볼 수 있는 좋은 기회 였다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo