head first agile

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

 

 

애자일이 뭘까요?

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

 

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

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

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

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

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

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

 

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

 

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

 

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

 

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

 

이미 commit 및 push 한 revision 의 저자명을 바꿀 필요가 있어서 검색해 봤다.

역시나 정리를 잘해놓으신 분이 있으셔서 링크를 건다.

 

https://madplay.github.io/post/change-git-author-name

 

MadPlay's MadLife.

git commit author 변경 (커밋 작성자 변경하기)

madplay.github.io

* 3줄요약

1. git rebase -i -p {커밋 hash값} 

커밋 hash값 이후 부터 를 대상으로 한다. 맨처음 부터를 대상으로 하려면

git rebase -i --root

 

2. pick -> edit

 

3. git commit --amend --author="저자명<이메일>"

 

4. git rebase --continue

 

5. git push origin +master

http://aladin.kr/p/7b00x

 

아, 보람 따위 됐으니 야근수당이나 주세요 by 히노 에이타로 (지은이) / 양경수 (그림) / 이소담

일본 직장인들은 우리나라 직장인들처럼 노동시간이 길어 ‘과로사(Karoshi)’라는 일본어가 영어사전에 정식 등재될 만큼 권위적이고 경직된 직장문화 속에 노출되어 있다고 한다. 일본 직장인들의 ‘노동조건’에 ...

www.aladin.co.kr

책내용 보다 일러스트가 훨씬 유명해진듯한 그책

"고작 '일의 보람'을 위해 몸과 마음을 축내다니...... 너무 바보같지 않나"

 

* 덧

오우아 출판사의 다른책이 뭐있나 하고 검색해보다가 나온 책

http://aladin.kr/p/p8wM

 

천 번을 흔들려야 어른이 된다 by 김난도

대한민국에 멘토 열풍을 불러온 에세이 <아프니까 청춘이다>의 저자 김난도 교수의 에세이. 한국 출판 역사상 최단기간 밀리언셀러를 기록한 <아프니까 청춘이다>는 2012년 현재 국내 판매 200만 부 돌...

www.aladin.co.kr

아, 어른따위도 되고 싶지 않으니 흔들지 말라.

혼자공부하는C언어 - 때론 혼자 때론 같이

 

혼자공부하는C언어


- 서평시작

“처음 C 언어를 독학할 때 느꼈던 답답합을 생각하여 ‘처음 공부하거나 한 번쯤 실패 한 경험이 있는’ 독자를 기준으로 설명하고자 했다.” - 저자 인터뷰에서

나는 실패한 경험이 있는 걸까?
공부한 적은 있지만 실무 경험은 없다.

- 왜 C언어 인가?


“메모리 관리를 개발자가 직접 해야하는 언어를 공부하면서 실제 OS, HW 레벨에서 메모리 관리하는 법, 포인터 옮기는 법 등을 배우면서 메모리는 이렇게 관리되는구나, 이렇게 하면 메모리 누수가생길 수 있겠구나, 이래서 자바와 C#은 거의 모든게 포인터구나 하는 것을 느껴야한다. 

코딩을 하면서 이 코드는 이렇기 때문에 느릴 수 밖에 없구나(데이터 복사가 많이 일어남, 메모리 해제가 많이 일어남, 메모리 해제를 줄이기 위해선 어떻게 해야할까에 대한 고민 등)라는 생각을 할 수 밖에 없다. 이러한 개념없이 성장하는 개발자와의 성장속도 차이는 엄청날 것이다. ” 

- 포프tv (프로그래머로 살아남기 위해 필요한 언어 둘)  

라는 이야기를 듣고 다시금 C언어를 공부하고 싶어졌다.

그리고 예전에 리뷰했던 [실습과 그림으로 배우는 리눅스 구조] 책에서 나온 예제코드 중 잘 이해되지 않는 부분이 있어서 그렇기도 하다. 이책을 읽고 다시 복습할 예정이다.

- 캐릭터 


졸라맨 비슷한 캐릭터. 은근히 귀엽다.

- 포인터 포인터


책을 받고, 처음 페이지를 펼친곳은 9장 포인터 부분이다.
누구나가 이야기 한다. C언어는 포인터를 알면 끝이라고. 다만 어려울 뿐.
9장을 읽고15장 응용포인터 까지 단숨에 읽었는데, 의외로 쉽게 이해가 되어 놀라웠다. 물론 C언어를 공부한적도 있었지만, 하도 고리적의 이야기이고 포인터는 그냥 어려워 이렇게만 생각하고 있었는데 읽어가면서 별것 없네 라고 생각하고 있었다. 사실 개념 자체야 단순한 것이다. 그리고 “혼자공부하는C언어” 책은 단순하지만 복잡한 개념을 참 친절히도 잘 설명해 주고 있다.

- 친절한 설명과 그림의 예시


저자의 설명이 돋보이는게 이중 포인터를 설명할 때 의 그림을 보면 인터넷에서 이중포인터라고 검색했을 때 나오는 다른 설명들과 많이 비교가 된다.

이중포인터


- IF GOTO


“이런 의문이 든다면 9장을 다시 한번 살펴보고 오길 권합니다.” - p.421
공부를 하다보면 앞장 에서 진행했던 내용이 기억이 안나거나, 현재 장에서 나온 내용에 대해서 어디서 나왔는지 다시 한번 확인할 필요가 있는 경우가 있다. 

물론 이를 위해서 인덱스가 있는 것이지만 저자가 친절하게 이런식으로 어디를 다시 보고 오라 던지, 아니면 “미리 말해두자면, 13장을 학습하려면 함수와 포인터에 대한 이해가 있어야해” 하는 식으로 친절하게 설명하는 부분이 많다. 작은 배려가 돋보인다.

- 헷갈릴 땐 그림으로


“헷갈릴 때는 직접 그림으로 그려보는 것도 좋은 방법이야” - p.436

고리타분한 이야기 같긴 하지만, 처음 C언어를 배울 때 는 책상위에 컴퓨터를 놓고 실습하지 않고, 노트에 코드를 적고 결과를 예측 하는 식으로 공부 했었다. 반복문등이 나올 때면 디버거를 실행하는 것 처럼 각 변수들의 값을 표를 그려가며 적었다.

실제로 처음 공부하면서 헷갈릴 때에는 이런식으로 그림 혹은 표를 그려가며 공부하는 방법은 여러가지로 도움이 된다. 코드만 딱 입력해놓고 왜 이게 이렇게 되지 라고 이해 하지 못하면 공부하는 의미가 없다.

배열이나 포인터를 설명할 때에도 눈에 보이지 않는 메모리 영역을 그림으로 알아보기 쉽게 표현해주셔서 오랜만에 보는데도 쉽게 이해할 수 있었다.

-  디버깅에 대한 자세한 설명이 있었으면 어땠을까?


다만 초보자를 위해 아쉬운 점이 있다면 디버깅을 단순이 구문오류 있는 곳을 더블클릭하면 오류난 곳으로 커서가 이동하는 것이라고 설명하는것 말고 - p.015, 반복문 등을 설명하면서 VS의 강력한 디버깅기능을 사용하는 방법에 대해서 간단하게 나마 설명하는 곳이 있었으면 어땠을까 싶다. 물론 툴소개를 하는 책은 아니다.

-  서평끝


고리타분한 C책만 봤었는데,  이렇게 산뜻하고 친절한 C책도 있다.
다음번에 나오는 책은 혼자 공부하는 C 자료구조 였으면 좋겠다.

사족으로, 카페에서 혼공씨 자료구조라고 되어있는 게시글을 읽어 봤는데
단순히 구현만 있는 소스여서 약간 실망했다.

 

알쏭달쏭 자바 200

 

알쏭달쏭 자바 200제 - 텍스트 출력부터 예외 처리까지 하나씩 만들어보는 기초 자바 프로그래밍

프로그래밍 문제를 풀며 자연스럽게 자바를 배울 수 있는 초/중급 개발자를 위한 코드 중심의 자바 입문서로 총 16개 장, 200개의 프로그램 문제와 1,115개 실전 문제로 구성되어 있다. 각 장에서 출제되는 코드를 ...

www.aladin.co.kr

- 서평시작

기본서라는 것은 항상 지루하기 마련이다. 보기에 생소한 단어나 문법을 가지고 뭔가 알아듣지 못할 이야기를 해대는 기본서는 사실 두꺼우면 두꺼울 수록 한번을 끝까지 보기가 어렵고 끝까지 본다고 해도 내용이 머리속에 잘 남아있는 경우가 드물다. 그래서 보통 기본서를 추천 할 때 되도록 얇은 책을 한권 공부 하고 그 다음에 두꺼운 책을 보는 것을 추천 하곤 한다.

이 책에 대한 첫인상은 상당히 두껍다는 것이다. 그리고 알쏭달쏭 자바 200제 라는 타이틀을 보고 자바 퍼즐러 같은 책이라고 생각 했는데, 목차를 보니 완전히 기본서의 목차였다.

사족으로, 원제목을 찾아보니 “新 풀어가면서 배우는 자바” (新・解きながら学ぶJava)라고 한다.

목차도 기본서고 사실 내용도 기본서다. 다만, 지루한 문법부터 소개 하는 것이 아니라, 각 장마다 풀어야할 큰 문제를 내고 문제 해결의 기본 소스코드를 보여주고 해당 내용에 대한 문법적인 설명을 한다.

 

책 내용 예시

예를 들자면 위와 같이 먼저 문제를 내고
아래에 코드를 쓰고
소스 설명이 필요한 부분에 대해서는 블록을 지정 하여 설명 한다.

소스 설명 부분에서 자바 문법에 관한 설명을 같이 하는데, 클래스 초기화 와 인스턴스 초기화가 1)  구문 해석도를 통하여 어떠한 형태를 지니는지 보여주고, 2) 언제 3) 왜 사용 되는지 자세하게 설명 한다.

설명에 관해서는 소스와 구문 해석도 그리고 필요에 따라서는 순서도 등을 사용하여 설명 하기 때문에 알아듣기가 쉽다.

다만 용어에 관해서는 어떤 책에서도 사실 그렇겠지만 영어 용어와 그걸 번역한 용어를 함께 사용하다 보니 약간은 혼란이 올 수도 있을 것 같다. 

초보자에게 많이 친절하다고 느낀 부분은 javadoc 를 설명하는 부분이다. (책 541page)
기본적으로 javadoc을 만들기 위한 주석을 작성 할 때 방법은 대충 알고 있지만, 안의 각 상세설명들에 대한 자세한 내용을 일부러 찾아보지 않으면 알기 힘든데 (초보자에게는 더더욱이나) 해당 내용들에 대한 설명이 잘 적혀 있다.


- 서평 끝
워낙에 두꺼운 책이고 이런저런 사정상 통독을 하지는 못했지만
관심있는 몇몇 장을 발췌해서 읽으면서 의외로 모르고 있는 부분도 많이 알게 되었고 이미 사용은 하고 있었지만 왜 그렇게 사용해야 했는지에 대해서 잘 모르는 부분에 대해서도 알게 된것이 많았다.

자바를 처음 공부하거나 조금 공부해본 사람에게 꼭 추천 하고 싶은 책이다.

한자와 나오키

 

한자와 나오키 1 - 당한 만큼 갚아준다

 

www.aladin.co.kr

읽는 내내 머리속에서 사카이 마사토가 떠나질 않았다.

 

드라마 보다 책이 오바 하지 않는 면이 좀 낫다.

전쟁사에서 건진 별미들

전쟁사에서 건진 별미들 - 세계의 전쟁이 만들어낸 소울푸드와 정크푸드

모든 사물에는 유래가 있다고 했던가. 우리가 일상적으로 먹는 카레라이스, 주먹밥, 케이준 샐러드, 팝콘, 초밥 등에도 탄생의 뒷이야기가 숨어 있다. 그중에는 특히 전쟁이라는 극한 상황에서 탄생한 것들이 많다. ...

www.aladin.co.kr

 

작전에 실패한 군인은 용서할수 있어도 배식에 실패한 군인은 용서할수 없다.

 

덧.

리디셀렉트로 읽은 첫 책. 술술 읽혔고 재미있다.

 

1. 문제점

oracle11g 로 구성 되어 있는 DB를 export 하는데 데이터가 없는 테이블이 dump 파일에 포함 되지 않는다.

 

2. 해결

검색 결과 해당 문제를 해결 하는 방법이 잘 나와 있다.

http://mighty-x.blogspot.com/2015/11/11g-table.html

 

오라클 11g 에서 사용하지 않은 Table 백업/복원 안될 때

Mighty-X 개발과 관련된 블로그 입니다.

mighty-x.blogspot.com

3. 정리

1) oracle 의 옵션을 변경

alter system set DEFERRED_SEGMENT_CREATION=FALSE scope=both;

 

2) 옵션 변경전에 만들어진 테이블 속성 변경

ALTER TABLE  ALLOCATE EXTENT;

 

3) 2) 의 내용을 전체 데이터가 없는 테이블에 적용 하기 위한 sql 생성

SELECT 'ALTER TABLE '||table_name||' ALLOCATE EXTENT;' FROM user_tables WHERE segment_created = 'NO';

예전에 폐쇄망 안에서 사용하던 remine 의 데이터를 확인할 필요가 있어서 redmine 을 virtualbox 에 설치하고 데이터를 이관 하였다.

 

1. redmine 다운로드

https://bitnami.com/stack/redmine/virtual-machine

 

Redmine Virtual Machines

show MD5 978da4ff220a5ea0e2989e32ac772fb4 SHA1 33dd488989eafb5f104230fff4f4b3f2c33df956 SHA256 c5a68caeecc01547f9120b0ed3de12f95b550e2116c23b23b474d86b32127a7c

bitnami.com

Download .OVA format 을 클릭하여 bitnami-redmine-4.0.4-0-linux-debian-9-x86_64.ova 파일을 다운로드  

 

2. virtualbox 다운로드

https://www.virtualbox.org/ 

 

Oracle VM VirtualBox

Welcome to VirtualBox.org! News Flash New May 14th, 2019VirtualBox 6.0.8 released! Oracle today released a 6.0 maintenance release which improves stability and fixes regressions. See the Changelog for details. New May 14th, 2019VirtualBox 5.2.30 released!

www.virtualbox.org

virtualbox 6.0을 다운로드

 

3. virtualbox 설치

 

4. 가상 시스템 가져오기

virtualbox 에서 파일->가상 시스템 가져오기에서 다운로드 받은 ova 파일을 선택 하여 가져 온다.

설정의 저장소를 확인 하면 vdi 파일이 15G로 설정 되어 있기 때문에 15G 이상의 용량이 확보된 곳에 가져 와야 한다.

램은 2G를 설정 하였다.

 

5. 로그인

사용자 bitnami 로 로그인 한 후 (초기 패스워드 : bitnami)

패스워드를 변경 한다.

 

6. ssh 설치

sudo service sshd status 로 확인 했는데 정상동작 하지 않아 지우고 다시 설치  했다.

sudo apt-get purge openssh-server

sudo apt-get install openssh-server

 

7. 네트워크 설정

host 컴퓨터의 특정 포트만을 포워딩 하여 사용할 것이므로 어댑터 1(기본)은 NAT로 설정 하고 포트 포워딩 설정 한다.

내부로의 연결을 위하여 어댑터2는 호스트 전용 어댑터로 추가 했다.

 

8. 기존 redmine 데이터 백업 및 이동

https://redgura.tistory.com/378

 

RedMine Mysql 백업 및 복구

RedMine DB 설정파일 C:\BitNami\redmine-2.2.2-0\apps\redmine\htdocs\config\database.yml production: adapter: mysql2 database: bitnami_redmine host: localhost port: 3306 username: bitnami password: "a..

redgura.tistory.com

9.  redmine 데이터 마이그레이션

cd /home/bitname/apps/redmine/htdocs

bundle exec rake db:migrate RAILS_ENV=production

 

10. files 디렉토리 복사

/home/bitname/apps/redmine/htdocs/files

 

11. redmine 서비스 재기동

https://docs.bitnami.com/virtual-machine/apps/redmine/administration/control-services/

 

Start or stop services

 

docs.bitnami.com

* 서비스 기동 관련 명령

sudo /opt/bitnami/ctlscript.sh status
sudo /opt/bitnami/ctlscript.sh start
sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/ctlscript.sh restart

sudo /opt/bitnami/ctlscript.sh restart apache

- 서평시작

앱에서 사용할 데이터를 데이터를 가져오기 위해서 아주 간단히 BeautifulSoup 를 사용해본적이 있다. 웹페이지 정보를 가져오고 싶은데, 방법을 찾다가 파이썬으로 하면 간단하다고 해서 블로그에서 검색해서 간단히 사용한 적이 있다. 그래서 이 책을 시작 할 때 단순히 BeautifulSoup 사용방법을 배우는 것 만이라면 이정도 책이 필요 없을 것 같은데 하고 생각하였다.

 

- 용어가 헷깔려?

책 제목이 영어로는  Web Scraping with Python, 한글로는 파이썬으로 웹 크롤러 (Web Crawling) 만들기 이다. 실질적으로 같은 용어이긴 한데, 책 말머리에 저자는 최근에 웹 스크레이핑이라는 용어가 더 널리 쓰이므로 책에서도 이 표현을 사용합니다 라고 적어 두었다. 한글로 웹 크롤러라고 표기한건 아마도 한국에서는 웹 크롤러라는 말을 더 많이 사용하기 때문인 것 같다.

 

1) 첫 번째 웹 스크레이퍼

BeautifulSoup 를 소개 하고 설치 하고 사용 한다.

간단히 웹페이지를 연결 하여 데이터를 가져오고 html 내용을 분석하여 원하는 값을 가져오는 것 만이라면 1장만 읽어도 끝날정도로 간단하다.

 

부제로도 써놨지만, 사실상 다 만들어져 있다. 

 

2) 고급 HTML 분석

좀더 복잡하게 BeautifulSoup을 사용하는 방법을 배우고, 필요한 데이터를 찾는데 사용하는 정규표현식에 대한 내용을 다룬다.

 

3) 크롤링 시작하기

단일 페이지가 아니라, 여러 페이지, 여러 사이트를 이동하는 스크레이퍼를 만든다. (말머리에서 저자는 이것을 특별히 크롤러라고 부르기로 하였다.)

 

4) 웹 크롤링 모델

단순히 웹사이트의 내용을 가져오는 것이 아니라, 필요한 데이터의 타입을 모델링 하고 이를 최종적으로 데이터베이스에 저장 하는 내용을 다룬다.

 

기술적인 내용도 있지만, 4.4 웹크롤러 모델에 대한 생각 부분이 읽으면서 참 도움이 되었다.

 

-------------------

4.4 웹 크롤러 모델에 대한 생각 (간단 요약)

인터넷에는 너무나 많은 것들이 있고, 당신에게 그것이 필요한지 어떻게 얻을지 항상 명확히 알기는 어렵다.

 

(1) 여러 도메인에서 유사한 데이터를 수집할 때는 항상 일반화를 시도해야 한다.

(2) 스크레이퍼를 만들 때에는 추후 더 많은 데이터 소스가 추가될 것이라 가정하고, 새 소스를 추가하는데 필요한 노력이 최소화 되어야 한다.

(3) 데이터 조각 간의 연결도 무시해서는 안된다. '유형','크기','주제' 같은 속성이 데이터 원본에 걸쳐 존재하는 정보를 찾고 있다면 이러한 속성을 어떻게 저장,검색,개념화 할 것인가?

-------------------

 

5) 스크레이피

Scrapy (web에서 데이터를 가져오기 위한 프레임워크) 를 사용한다.

BeautifulSoup는 가져온 데이터(HTML)를 파싱하는 작업만을 하는데 비하여 Scrapy는 페이지에 대한 규칙을 작성 해두면 자동(?) 으로 링크들을 이동 하며 데이터를 가져온다.

 

6) 데이터 저장

MySql 을 통해 데이터를 저장 하는 법을 다룬다.

 

 

+ Recent posts