소프트웨어 스펙의 모든 것 - 프로젝트를 성공으로 이끄는 소프트웨어 스펙(SRS) 작성법
김익환.전규현 지음 / 한빛미디어 / 2021년 1월
평점 :
장바구니담기




이직 후 세 번째 프로젝트를 진행하고 있다. 그도 어느새 끝 무렵.

프로젝트를 할 때마다 피를 토하고 있어서 '일을 일답게 하는 법'에 대해 관심을 가지기 시작했다.

내가 내 일을 아무리 정리하고 단순화하려고 아등바등해도 더 상위 영역에서 일이 일답게 흘러가지 않으면 매번 이렇게 피를 토할 수밖에 없다는 결론에 이르렀다.


소프트웨어 스펙이 뭔지는 모르겠지만 책 표지 뒷면에 있는 소개말을 보고 읽어야겠다 싶어서 고르게 된 책.




"프로젝트를 망치기 전에 알았다면 좋았을 것들"

"무작정 키보드를 두드리는 개발자에서 벗어나 프로젝트 전체를 보는 진짜 실력을 키워보자."


개발자를 하든 다른 일을 하든 뭘 하든, 큰 그림 속에서 꼼꼼하게 디테일을 챙겨가는 사람이 되고 싶다.

아는 만큼 보인다고 했던가. 지금 당장 관리자가 될 수는 없겠지만 계속 안테나를 켜놓고 되도록 많은 걸 경험하고 또 느끼는 게 결국 내 자산이 될 것이라고 믿는다.

그런데 그 '큰 그림'이라는 게 소프트웨어 개발 영역에서는 정말로 크다.

수많은 이해관계자가 얽혀있고 다양한 영역에서의 인사이트가 필요하며 절대적이고 명확한 답이 정해져있지 않다.

책 머리말에서도 이렇게 이야기한다.

스펙을 잘 작성하기 위해서는 실전을 통한 노하우 축적이 필요한데 방법이 잘못되면 경험이 좋은 노하우로 이어지지 않으니 좋은 코치가 필요하고 피드백을 받아야 한다고. 그러나 우리나라 소프트웨어 업계에서는 그런 역량을 갖춘 인물을 찾아보기 힘든 것이 현실이라고. 소프트웨어 개발은 원리를 모르고 무작정 따라 해서는 성과를 낼 수 없으니 원리를 이해하는 데 도움이 되는 이야기를 하겠다고 한다.


그런 책이다.



책은 1부와 2부로 나눠져있다.

1부는 '소프트웨어 스펙이란?'이라는 제목으로 굉장히 다양한 방면의 이야기를 한다.

스펙은 뭐고, 현주소는 어떤지, 기업문화와 프로세스 측면에서도 살펴보고 who? what? how?의 흐름을 통해 자연스럽게 2부 'SRS 작성법'으로 넘어간다.

2부는 SRS 템플릿 순서를 따라가며 작성법을 설명하는데, 무엇보다 실제적인 예제가 곁들여있어서 매우 좋았다. 이런 책은 아무리 이론 설명이 친절하고 자세하다 한들 좋은 예제 하나가 그 모든 것을 뛰어넘는다고 생각하기 때문에. 책이 두꺼워져도 상관없으니 템플릿이 조금 더 다양했으면 하는 아쉬움은 있다.


이런 류의 책들은 외국 서적이 굉장히 많다. 좋은 책도 있지만 읽다 보면 내가 현재 경험하고 느끼는 현실과 너무 동떨어져있다는 생각을 하게 된다. 그래서 잘 걸러듣고 우리나라에 맞게 생각을 보정하는 과정이 꼭 필요한데 이 책은 국내 도서라 현실에 대해 적나라하게 이야기하고 있다는 점이 마음에 들었다. 내가 처한 현실, 그리고 아마도 많은 개발자들이 처해있을 현실을 짚어가며 그게 왜 합당하지 않은지를 이야기하는 부분에서는 위안까지 얻었다.


중간중간 많은 생각을 하게 하는 책이라서 열심히 밑줄 긋고 메모하며 읽었다. 외워서 모든 걸 내 것으로 만들어야겠다, 하며 읽는 책이 아니라 밭에 거름 주는 심정으로 읽는 책이다. 언제나 중요한 건 내가 지금 몸담고 있는 곳에서 나만의 방법을 찾는 것이다. 언젠가 나만의 방법을 찾을 때에 이 책의 내용들이 좋은 거름이 되길. 뭐 거창한 이유가 아니더라도 술술 재밌게 읽기 좋은 책이다. 이런 국내 도서가 많이 나왔으면 한다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
자바로 배우는 핵심 자료구조와 알고리즘 - 기술 면접에 필요한 실용주의 자료구조와 알고리즘
앨런 B. 다우니 지음, 유동환 옮김 / 한빛미디어 / 2018년 6월
평점 :
장바구니담기



자료구조와 알고리즘은 만날 해야지 해야지 해놓고 잘 안 보게 된다.

게임 등 다양한 방식으로 접근하는 알고리즘 책을 몇 권 봤는데 이번에는 웹 검색이다.


두꺼운 책이면 부담스러워서 보려고 시도도 안 했을 텐데 약 180페이지 분량의 얇고 가벼운 책이다.

고로 내용 하나하나, 개념 하나하나 디테일하게 짚어주는 책은 아니다.

두껍게 처음부터 끝까지 하나하나 읊어주는 책 vs 핵심만 담아놓고 직접 찾아 공부해야 하는 책

취향이나 공부 방법에 따라 선호도가 나뉠 수 있을 듯한데 이 책은 후자다.

책 소개에도 있듯이 자료구조가 어떻게 동작하는지보다 어떻게 활용하는지에 초점을 맞춘 책.

저자도 책의 철학에 대해 "소프트웨어 개발자에게 가장 유용한 주제들에 초첨을 맞추어 분량을 매우 줄였습니다."라고 소개하고 있다.

대신 사전지식이 필요한 부분을 과감하게 외부로 빼서 참고할 링크를 제공하고 소스코드도 github을 통해 제공한다. (근데 링크가 다 영어다.)


다른 책과 다르게, 단순히 이론만 학습하는 것에 그치지 않고 그게 어떻게 실무에서 적용이 될 수 있는지를 알 수 있는 책이라 읽을만 한 가치가 있었다.

이론 설명과 실습과 테스트와 정답을 루즈하지 않게 적당히 제공하는 점도 괜찮았다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
러닝 리액트 - 리액트와 리덕스로 구축하는 효율적인 웹 UI
알렉스 뱅크스.이브 포셀로 지음, 오현석 옮김 / 한빛미디어 / 2018년 2월
평점 :
구판절판




프론트엔드 프레임워크를 하나쯤은 다룰 수 있어야겠다 싶어서

프론트 3대장 중 러닝커브가 제일 높다는 앵귤러를 제외하고 Vue.js와 React.js 중 뭘 공부할까 고민이었다.


마침 회사에서 리액트 프로젝트를 진행하게 됐다.

공부할 시간 없이 바로 투입이 돼서 "일단 만들자"가 됐다.

진짜 고생 많이 했다.

"오, 신기해" 할 시간도 없었는데 한 고비 넘기고나니 리액트의 매력에 흠뻑 빠졌다.


시중에 리액트 책이 꽤 많다.

뭘 해도 책 한 권은 옆구리에 끼고 있어야 속 편한 타입이라 무슨 책을 볼까 고민이었는데,

동물책은 믿고 볼만하지 싶어 보게 되었다.


유명한 벨로퍼트님의 '리액트를 다루는 기술'을 먼저 떼고 봤다.

그 책은 약 900페이지, 이 책은 약 400페이지이니 절반도 되지 않는다. 얇다.

'리액트를 다루는 기술'은 매우 친절한 편이다.

설명도 그렇고 예제도 혼란스러운 것 없이 깔끔하다.

JSP, jQuery에 멈춰있는 나 같은 사람도 리액트에 쏙 흡수될 수 있다.

'러닝 리액트'는 초급책이긴 하지만 설명이 아주 자세하지는 않다.

아무것도 모르는 상태에서 이 책을 봤으면 어려웠을 수도 있겠다는 생각을 한다.

챕터 7 컴포넌트 개선하기, 챕터 10 테스팅 부분은 도움을 받았다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
쉽게 배워 바로 써먹는 디자인 패턴 - 24가지 패턴으로 알아보는 객체지향의 원리
이호진 지음 / 한빛미디어 / 2020년 10월
평점 :
장바구니담기





이번엔 디자인 패턴 책이다.


디자인 패턴, 디자인 패턴 말만 들었지 한번도 각 잡고 공부한 적이 없다. 왜 쓰는지 잘 알고 쓰는 건 고작해야 싱글턴 패턴, 빌더 패턴 정도이려나. 가끔 실무에서 일을 하다가 고민되는 지점이 생기면 '이런 문제를 쉽게 풀어가려면 디자인 패턴을 공부해야할까?' 싶었다. 이것도 말이 되고 저것도 말이 되는데 뭐가 더 좋은 방법인지 모르겠을 때. 집에 Head First Design Patterns 책을 가지고 있는데 앞에 10장 읽고 도저히 안 읽혀서 가지고만 있었다. 아무리 번역이 잘 되어도 번역서보다는 국내 도서가 좋다.


약 500페이지 분량의 책이고, 컬러인듯 컬러 아닌 책이다. 이런 걸 뭐라고 하지? 주황색, 검은색, 갈색 세 가지 정도의 컬러를 쓰는 듯한데 개인적으로는 이런 책을 매우 선호한다. 얇은 종이의 흑백 책은 정말 싫고, 그냥 흑백 책은 딱딱하고 올 컬러책은 부담스러우므로 이런 책이 딱이다.


24가지 패턴을 소개한다.


<생성 패턴>

1. 팩토리 패턴

2. 싱글턴 패턴

3. 팩토리 메서드 패턴

4. 추상 팩토리 패턴

5. 빌더 패턴

6. 프로토타입 패턴


<구조 패턴>

7. 어댑터 패턴

8. 브리지 패턴

9. 복합체 패턴

10. 장식자 패턴

11. 파사드 패턴

12. 플라이웨이트 패턴

13. 프록시 패턴


<행동 패턴>

14. 반복자 패턴

15. 명령 패턴

16. 방문자 패턴

17. 체인 패턴

18. 감시자 패턴

19. 중재자 패턴

20. 상태 패턴

21. 메멘토 패턴

22. 템플릿 메서드 패턴

23. 전략 패턴

24. 인터프리터 패턴


많기도 하다.

아예 처음 들어본 것도 있고 몇 번 들어봤지만 뭔지 전혀 모르는 것도 있고 많이 듣고 얼핏 아는 것도 있다. 보다 보니 아, 남들도 똑같은 고민을 했구나 혹은 이미 쓰고 있었구나 싶은 것들이 있어서 흥미롭게 읽을 수 있었다. 초중급으로 분류된 책 답게 내용이 아주 깊거나 어렵지는 않고 말그대로 쉽게 배우는 책이라 부담 없이 봤다. 사실 코드가 PHP로 되어있는 건 모르고 골랐는데 낯설다 뿐이지 아예 못 볼 지경은 아니었다. 내가 쓰는 언어였으면 더 좋았겠으나.


이런 책 읽는다고 갑자기 패턴의 달인이 되거나 문제 상황에서 아, 그것! 하지는 않겠지만 읽어두고, 생각날 때마다 들춰보고 잊을만 할 때 다시 꺼내 읽다 보면 옷깃에 꽃물 들듯이 뇌에 스며들지 않을까, 하는 기대를. 이거 하나 읽으면 디자인 패턴 정복! 이라는 마음가짐 보다는 24개의 미니북을 하나로 엮어놓은 책이라고 보면 더 좋을듯.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
자바 최적화 - 가장 빠른 성능을 구현하는 검증된 10가지 기법
벤저민 J. 에번스 외 지음, 이일웅 옮김 / 한빛미디어 / 2019년 4월
평점 :
장바구니담기






chapter 1. 성능과 최적화

chapter 2. JVM 이야기

chapter 3. 하드웨어와 운영체제

chapter 4. 성능 테스트 패턴 및 안티패턴

chapter 5. 마이크로벤치마킹과 통계

chapter 6. 가비지 수집 기초

chapter 7. 가비지 수집 고급

chapter 8. GC 로깅, 모니터링, 튜닝, 툴

chapter 9. JVM의 코드 실행

chapter 10. JIT 컴파일의 세계로

chapter 11. 자바 언어의 성능 향상 기법

chapter 12. 동시 성능 기법

chapter 13. 프로파일링

chapter 14. 고성능 로깅 및 메시징

chapter 15. 자바 9와 미래



중고급으로 분류된 책이다. 어렵다.

자바 성능이나 최적화에 대해 깊게 고민해본 적이 없어 도전하듯 골라든 책인데

술술 읽지 못하고 꽤나 시간을 들여야 했다.

아직 거기까지 인사이트가 없어서 잘 안 와닿는 내용도 있었고.

뼈가 되고 살이 되리라 하면서 꾸역꾸역 읽었지만

책장에 꽂아두고 두고두고 봐야하는 책이라는 생각이 들었다.


챕터 4 성능 테스트 패턴 및 안티패턴이 꽤나 재미있었다.


4.1 성능 테스트 유형

4.2 기본 베스트 프랙티스

4.3 성능 안티패턴 개요

4.3.1 지루함

4.3.2 이력서 부풀리기

4.3.3 또래 압박

4.3.4 이해 부족

4.3.5 오해와 있지도 않은 문제

4.4 성능 안티패턴 카탈로그

4.4.1 화려함에 사로잡히다

4.4.2 단순함에 사로잡히다

4.4.3 성능 튜닝 도사

4.4.4 민간 튜닝

4.4.5 안되면 조상 탓

4.4.6 숲을 못 보고 나무만 보다

4.4.7 내 데스크톱이 UAT

4.4.8 운영 데이터처럼 만들기는 어려워

4.5 인지 편향과 성능 테스트


목차만 봐도 알겠지만 흥미롭다.

개발자들이 왜 잘못된 기술 선택을 밥 먹듯이 하는지에 대해 이야기하며 갖가지 안티패턴을 소개한다.

사람 사는 곳은 다 똑같구나 싶으면서도

저런 이야기들조차 다른 나라 이야기 같아서 한숨을 잠깐.


가비지 컬렉터에 대한 부분은 어려웠지만 흥미로웠다.

가비지 컬렉터가 뭐하는 놈인지 알고만 있었지, 실제로 어떤 알고리즘을 활용하여 돌아가는지까지는 전혀 궁금해하지 않았었다.

오호.. 하며 읽었지만 역시 어려움.


11장 자바 언어의 성능 향상 기법에서는 컬렉션 최적화에 대해 소개한다.

이 책 전체 중에서 가장 나와 가까운 챕터였다.


데이터를 저장할 때 어떤 옵션을 사용 가능할 수 있는지 이해하려면 여러분 스스로 자바 컬렉션 API가 지원하는 자료 구조 및 구현 세부를 꿰고 있어야 합니다.

자료 구조가 어떤 원리로 조회되고 수정되는지 모른 채 자료 구조를 선택하는 것처럼 위험한 일도 없습니다. 평소 즐겨 쓰는 클래스를 별생각 없이 바로 갖다 쓰는 개발자들이 참 많지요. 사려 깊은 개발자라면 데이터가 어떻게 질의 되고, 어떤 알고리즘이 가장 효율적인지 신중히 살펴볼 것입니다.


"별생각 없이 바로 갖다쓰는" 나는 명치 호되게 후려맞고 11장 경건하게 정독했다.

사려 깊은 개발자가 되기 위해 얼마나 많은 공부를 해야 할지.

아는 것이 힘이다. 아는 만큼 보인다. 공부하자.


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