[기술서] 파이썬 병렬 프로그래밍 – 내용없음

리뷰 내용 말고 책 내용없음
스레드나 그 메커니즘을 자세히 설명한 것도 아니고
튜토리얼이 잘 나온것도 아니다

GIL이라던가.. 하는 파이썬에서 논란이 많은 부분에 대한 설명이있었으면 했는데
그냥 키워드만 나온다
각 기술의 차이도 비교가 상세히 되어있지 않다.

그냥 파이썬에서 병렬프로그래밍을 할 수 있는 기술과 그 샘플코드 정도만 소개 돼 있다.

내부모듈 이용

  1. threading
  2. multiprocessing

라이브러리 이용(추상화계층을 얹어서 병렬프로그래밍 구현)

  1. Celery: 표준. https://docs.celeryproject.org/en/stable/
    multiprocessing, gevent, eventlet 등 활용
  2. PP: Parallel Python 안쓰이지 않나….

파이썬 분산형 서버를 만들때 사용하는 기술

이 책에서는 참고할게 없고 그냥 일반적으로는

  • RabbitMQ, Redis 사용시에는 Celery 사용
  • Kafka와 StreamData를 다룰 때는 FaustStreams 사용

threading이나 multiprocessing은 쓸 일이 있을까
한 서버에서 돌릴수 있는 정도의 프로그램을 만들때
웹프로그램에서는 사용하지 않음

실용주의 프그래머The Pragmatic Programmer,

자기계발서 읽는 느낌이다
다 맞는 말인데
머리에 남는건 별로 없는

  • 이미 하고 있는 것들
  • 하면 좋은 것들
  • 해야만 하는 것들
  • 할 수 없는 것들

이렇게 분류 해 볼 수 있을까

그냥 한번 읽어보고 넘어가면 될 것 같다
잠재의식 속에 남아있겠지

커맨드라인

find . -name '*.c' -newer Makefile -print
zip archive.zip *.h *.c
tar cvf archive.tar *.h *.c
find . -name '*.java' -mtime +7 -print
find . -name '*.java' -mtime +7 -print | xargs grep 'java.awt'
grep '^import '*.java |
  sed -e's/.*import *//' -e's/;.*$//' |
  sort -u > list

여기서 할 줄 아는게……압축하는거

맨먼스 미신The Mythical Man-Month, 프레더릭 브룩스

내용

  • Prototype – 두 번째 시스템
    : 첫번째 시스템은 프로토타입이다
  • 1:10 업무효율
    : 같은 조직내에서 비슷한 급여를 받는 살마들 사이에도 업무능력 차이는 10배
  • 일정 늘어짐
    : 일정은 항상 늘어진다. 일정을 너무 루즈하게 잡은게 아니라면. 돌발상황에 대비해 조금 타이트하게 업무처리
  • 문서화
    : 워크북. 요즘은 위키를 주로 사용
  • 급하다고 많은 인원 투입
    : 의사소통 비용 증가
  • 소수정예
    : 큰 프로젝트 불가
  • 핵심개발인력과 보조인력 구조
    : 아키텍트와 모듈분할
  • 구체적인 마일스톤의 정의
  • 프로젝트 관리자는 의사 결정이 아닌 의사 소통

대상

오히려 개발자보다
한국에서의 특이직군인 기획자, PM
그리고 스타트업 대표, PO, 원청업체담당자가 봐야 할 책

읽고나서

소프트웨어 공학을 모를 때도
개발 업무를 하면서 맞딱뜨리게 되는 불편한 점들과 개선점을 생각했었는데
내가 찾아낸 최선의 방법의 핵심은 빠른 프로토타이핑과 작은 개선의 반복이었다.

이 책에서는 이것을 포함해서 그리고 더 다양한 상황에서의 대응법이 잘 정리가 되어 있다. 현업을 겪어보지 못했다면 그렇구나.. 하면서 감흥없이 넘어갔을 것 같다. 어차피 한번 겪어보고 다시 읽어야 됐었겠지
소프트웨어 개발 싸이클틀 겪어 본 사람이라면 이 책을 읽으면서 자기가 겪었던 문제점이 그대로 다 써 있다는데 놀라지 않을까

1975년 초판이라는데
아직도 그대로라니

UNIX 유닉스의 탄생

그냥 옛날이야기나 써 있을 줄 알았는데
기술서적이었다

유닉스 계열을 많이 경험 해 보지 않은 사람이 보면 대부분 내용은 그냥 넘어가야 하지 않을까
awk, sed, grep, … 을 한 번도 써 보지 않았다면 내용에 몰입하기 힘들 것 같다.

자주 사용하던 기술들이 어떻게 만들어졌고 왜 생겼는지를 알게 되는것으로도
기술을 이해하는데 도움이 되니
유닉스계열(리눅스)를 자주 사용하는 사람이라면 한번 보면 좋을 것 같다

미국의 벨 연구소

kt연구소랑 비슷한 분위기일 것 같다
독점기업의 지원금에 돈 걱정없고
빡빡한 듯 하지만 자유롭고
연구 좀 실패해도 아무도 뭐라 안 하고

KT연구소도 좀

[도서] 웹서비스 해킹 대작전 – 해킹관련 소프트웨어 목록

http://www.acornpub.co.kr/book/web-hacking

회사에 있어서 봤는데 유치한 제목때문에 별거 아닌 줄 알았는데
흔한 해킹기법이나 신경써야할 부분이 좀 나와있다
옛날에 나온 책이라 그런지 보통 다 아는부분일듯

60년대 프로그램은 엄청 잘만들었는데
70년대는 퍼스널컴퓨터 처음 나오면서 개판레거지가 많다는듯
이후에 비슷한 흐름이긴한데 좀 나아지다가

내 생각엔 21세기 다시 비슷한 양상이 발생하고 있는 것 같다
노드를 필두로한 초보개발언어들이 난립하면서 점점 개판설계 코드가 많아지고 있다
노드쪽은 라이브러리도 초반에 생각없이 설계한게 남아있어서 이상한게 많다

해킹테스트용 소프트웨어 소개

취약점 스캔
nikto: https://cirt.net/Nikto2
wikto: nikto의 GUI https://github.com/sensepost/wikto

Web Scan
Stunnel: https://www.stunnel.org/
black widow: Proxy https://github.com/1N3/BlackWidow
paros: fiddler 유사 https://sourceforge.net/projects/paros/
fiddler: https://www.telerik.com/fiddler
BurpSuite: https://portswigger.net/burp

Gnu
curl: 커맨드라인으로 http 호출시 많이 쓴다고..
wget: 다운로드 recursive 방식 사용도 가능하다는데

SSL
SSL Digger: https://www.owasp.org/index.php/Testing_for_SSL-TLS_(OWASP-CM-001)

자바9 모듈프로그래밍, 한빛미디어

자바9의 모듈화(jigsaw) 개념을 중심만 다뤘다.

간단하다
소스루트에다가 module-info.java파일을 생성해서
module{}을 정의하고
requires, exports.. 외 몇가지 구문으로 정의하는것.

typescript같은 언어에서 export 선언한 것만 접근할 수 있는것처럼

 

이 책의 내용은 이게 전부다. 모듈화에만 집중해놔서
자세한 정보는 : http://openjdk.java.net/projects/jigsaw/quick-start

실전적용

라이브러리 개발의 경우에는 캡슐화에 신경쓰려면 세부적인 설정을 해야겠지만
일반적인 서비스모듈 개발에는 현재와 별 차이는 없을 것 같다.
maven/gradle에서 좀 더 신경쓸게 생기겠지만

gradle의 한개 모듈마다 module-info.java를 한개씩 갖게 된다.
jar파일 한개당 한개의 module이라고 생각하면 된다.

기타 책들

가장 빨리 만나는 코어 자바9: 자바9으로 배우는 모던 자바, 길벗
도 같이 봤는데.. 이건 두꺼우면서 쓸데없는 내용이 잔뜩 있고
막상 중요한 부분은 짧게 설명이 돼 있어서 제대로 보지 않았다.

자바9에서 변하는 점

구조적으로 큰 변화인지는 모르겠지만 개발하는 입장에서는 코드상에 큰 변화는 없다.

gradle에 mysql.jar을 가져와서 ide에서는 com.mysql.Driver이 검색되는데 프로젝트에서는 빨간불이 뜨는 상황은 좀 더 자주 보게 되겠지만.

어차피 지금도 gradle 모듈로 프로젝트 나눠서 개발하는 사람은 거의 변화를 못 느끼지 않을까

~

어차피 금방 보니까 한번 보면 좋지 않을까

혹시 다른내용이 있나 싶어서 꼼꼼히 읽다가 몇시간 지났는데 별거 없으니 그냥 훑어보면 될 것 같다. 아니 그냥 공식도큐먼트랑 블로그만 몇 개 봐도 되려나

[기술서] Angular 앵귤러 첫걸음 – 제목에 충실하게 처음시작할 때 보면서 개념을 잡기 좋은 책

[sb_book_infobox_from_interpark id=9788968486807]

책 소개에 앞서

먼저, 이 책을 보는 시점의 제 기술수준을 밝히면
5~6년차 Java개발자로 웹개발/백엔드개발을 주로 해왔구요. 요즘은 백앤드 개발을 주로 하고 있고
HTML,CSS,JQuery,Bootstrap.. 등등 보통 SI개발자들 많이 쓰는 기술 다 비슷하게 써 봤을 것 같습니다.
TypeScript, Angular – 아예 처음은 아니고 공식사이트에서 튜토리얼을 돌려보고 간단한 페이지를 만들어본 경험은 있는 상태.

이 책을 보게된 동기

요즘엔 동적화면구성을 많이 하다보니 화면한개에 HTML, 스타일, 스크립트까지 너무 길어서 다 만들고나면 어디에 뭐가 있는지 기억도 안 날 지경으로 코드가 망가져 버리는데
정리를 하려고 해도 스크립트 코드 특성상 디버깅/테스트도 힘들고 하다보니 모듈화를 해서 구성을 하는것도 쉽지가 않구요.
결국엔 기능만 구현 해 놓고 버리게 되는 경우가 많습니다.

이런문제를 해결하기 위한 방법 중 하나로 Angular, React .. 등의 기술에 관심을 갖고 살펴보던 와중에
한빛 도서리뷰어에 뽑혀서 이 책을 보게 됐습니다.

공식사이트 : 앵귤러 첫걸음 http://www.hanbit.co.kr/store/books/look.php?p_code=B3348481708

좋은점/아쉬운점

여기부터는 책을보면서 그때그때 메모했던 부분을 옮겨적은거라 내용이 자연스럽게 이어지지 않을 수 있습니다.

  • Angular/Vue/React… 난 무조건 Angular~ 이러는 경우가 아니라면 여러 기술을 놓고 엄청 고민을 하게된다.
    Angular가 다른기술에 비해 뭐가 좋고 왜 Angular를 선택해야 하는지 비교분석이 있었으면 좋았을 것 같은데 없어서 아쉽다.
  • Angular 프레임워크의 구조부터 설명이 되어 있어서 이해에 많은 도움이 된다.
  • 어떤 사람에게는 오히려 장점일수도 있는 부분이지만…
    좀 간단히 설명하고 넘어갔으면 싶은 부분에 대한 설명이 과도한 경우도 간혹 있었다.
  • 윈도우도 맥의 brew처럼 scoop, chocolate같은 패키지 관리자가 있는데…
  • 스타일 차이일 수도 있지만 개인적으로 1~2단원에서 프레임워크의 전체적인 구조를 설명하고 뒷쪽은 세부적인 내용을 배치하는게 좋다고 생각한다.
    이 책은 좀 무작정따라하기’ 시리즈류의 구성스타일을 가지고 있어서 … 그냥 모든 내용이 순서대로 나온다.
    공식 홈페이지에 가면 도큐먼트가 다 있지만 굳이 책을 사서 보는것은 요약집(참고서?)를 사보는 것과 비슷한거다.
    책을 다 외우는 경우도 없을거고 한번 본 책을 다시 뒤적여보는 개발자도 잘 없을거다.
    기술의 뼈대만 이해하고 책의 인덱스와 키워드만 만 머릿속에 입력하고 나머지는 검색인데
    너무 교과서적인 설명이 나와서… 보는데 시간이 오래걸리는 문제가 있다.
  • ES6와 ts 언어 자체에 대한 설명에도 좀 할당이 되어있어야 하지 않을까 싶다.
  • 책의 편집에서 아쉬운점 ex)100p

이 부분도 취향차이겠지만
텍스트로 길게 설명하는 것보다 소스에 주석처럼 설명이 붙어있는게
그리고 구조도와 설명이 함께 있는게 이해가 빨리 된다.

총평

처음 Angular를 접한 사람이 궁금해할만한 부분들을 구석구석 빠짐없이 잘 소개 해 주는 책으로
인내심을 가지고 끝까지 본다면 Angular 개발을 하는데 큰 도움이 될 것 같다.
구성/편집은 내 취향이 아니라서 잘 읽히진 않았다