Extremely Agile/CVS2014.01.27 15:06

Git을 사용하다 보면 아래와 같은 상황에 자주 부딛히게 된다. 가령 어떤 branch 상에서 여러 프로그래머들이 공동으로 작업을 진행하고 있다고 하자. 


   +------------------------------> a


위의 그래프는 branch a의 초기 상태다. 이 상태에서 여러 프로그래머들이 branch를 만들면 상태는 곧 다음과 같이 바뀐다. 


                +----> a01
                |
                |
                +----> a02
                |
                |
     +--------->+ a
                |
                |
                +----> a03
                |
                |
                +----> a04


이 상태에서 몇몇 프로그래머들이 자기 브랜치를 commit하고 원래 branch에 merge 하면 branch 상태는 아래와 같이 바뀔 것이다. 


                +----> a01 +-------------+
                |                        |
                |                        |
                +----> a02 +---+         |
                |              |         |
                |              |         v
     +--------->+----^---------v--------->
                |    |
                |    |
                +----+ a03
                |
                |
                +----> a04 +---------------->


현재 a04 만이 독야청청 독자적인 길을 가고 있다. 그런데 만일 원래 branch a의 상태가 굉장히 많이 변경되어서 (가령 핵심적인 API가 바뀌었다던지) 더 이상 독자적으로 작업하는 것이 의미가 없다면? 그렇다면 원래 branch a를 다시 받은 다음, a04 브랜치에서 바꾼 파일들의 내용을 반영하도록 하는 것이 좋을 것이다. 그런 작업을 수행하는 기본적인 절차는 다음과 같다. 


1. a04 브랜치에서: git stash (현재까지 바꾼 파일들을 stash 영역에 보존한다)

2. a 브랜치로: git checkout a

3. a 브랜치에서: git pull (최신 버전으로 갱신)

4. a 브랜치에서: git branch a05 (a04의 변경 내용을 반영할 브랜치 생성)

5. a05 브랜치로 이동: git checkout a05

6. a05 브랜치에서: git stash apply --index (a04의 종전 작업 내용 반영)

7. 원래 branch a04 삭제: git branch -d a04


6 단계에서 staged 상태까지 그대로 복원하고 싶은 경우에는 끝에 --index를 붙이고, 그렇지 않은 경우에는 --index는 생략해도 된다.  


또한 4, 5, 6 단계는 git stash branch a05 명령으로 한방에 실행할 수도 있다. 주의할 것은 이렇게 하면 stash 영역에 저장된 내용은 branch에 apply된 다음에 자동으로 삭제된다는 것이다. 



저작자 표시 비영리 변경 금지
신고
Posted by 이병준
TAG Git, Stash

소중한 의견, 감사합니다. ^^

Extremely Agile/CVS2013.12.20 15:56

SVN을 사용하다 Git으로 넘어온 개발자건, 아니면 Git을 통해 소스 코드 버전 콘트롤 시스템을 처음 사용하게 된 사용자건 간에 Git을 처음 접하면 낯선 명령어와 (?) 원칙들 때문에 어려움을 겪습니다. 아마 Git을 맨 처음 접하면 가장 먼저 사용해보는 명령어는 다음과 같을 겁니다.


  • git init - 이 명령을 실행한 디렉터리를 Git 저장소로 만든다.
  • git clone /로컬/저장소/경로 - 로컬 저장소를 복제한다.
  • git clone 사용자명@호스트:/원격/저장소/경로 - 원격 저장소를 복제한다. 


이렇게 해서 복제한 (또는 생성한) 저장소는 대관절 어떻게 사용해야 하는 걸까요? git을 사용하는 방법은 너무나 다양하고 활용 범위도 너무나 넓습니다만, 초보자는 '일단' 다음의 원칙을 기억합시다. 최소한 이 절차만 알아도 팀의 일원으로써 '면피'는 할 수 있습니다. (응?) 


1. 소스 코드를 수정하고 싶다면 새로운 브랜치(branch)를 만든다.

2. 새로 만든 브랜치로 간다. (checkout) 

3. 새로운 브랜치에서 소스코드를 수정하고, add하고, commit한다. 

4. 원래 브랜치에 수정된 사항을 반영하고 싶으면, 일단 원래 브랜치로 돌아간다(checkout)

5. 그런 다음 수정이 끝난 브랜치를 병합한다(merge)

6. 원래 저장소에 반영한다. (push) (clone된 저장소의 경우만) 


이 과정을 그림으로 표현하자면 다음과 같습니다. 


http://rogerdudler.github.io/git-guide/index.ko.html


이 그림을 이해하기 위해서는 저장소를 복제하면 기본적으로 만들어지는 master 브랜치가 있다는 것. 그리고 거기에서 임의의 branch를 만들어 낼 수 있다는 것 등을 이해해야 합니다. ('새로 생성한' 저장소의 경우에는 파일을 추가하지 않으면 master 브랜치가 생기지 않으므로 주의해야 합니다. 그러니 README 파일이라도 추가한 다음에 commit해서 master 브랜치는 만들어 놓도록 합시다. Orz)


  • branch 생성: git branch <branch이름>  
  • 특정한 브랜치로 이동: git checkout <branch이름> 
  • git checkout -b <branch이름> 하면 위의 두 과정을 한 방에 수행할 수 있습니다. 
  • 새로운 브랜치에서 소스코드를 수정하는 것은 아무 편집기나 사용하셔서 하시면 되고.
  • 현재 브랜치 상태 확인: git status (변경된 파일이 있다면, 그 파일의 목록도 나타남)
  • 변경된 파일을 commit 대상에 포함시키는 명령: git add <파일경로> 
  • commit 수행 (로컬): git commit -m "<commit 로그 메시지>" 
  • 현재 브랜치에 특정 브랜치 병합: git merge <병합할 branch명> 입니다. 
  • 병합 결과를 원래 저장소로 밀어넣는 명령어는 git push origin <branch명> 입니다. 

자. 그러면 쌩초보의 git 사용 순서를 다시 한 번 정리해 봅시다. 

  • git clone <원격지 저장소명> 
  • git branch bjlee01
  • git checkout bjlee01
  • ... 소스 코드 수정 ....
  • git add modified.java
  • git commit -m "modified.java bug fix."
  • git checkout master
  • git merge bjlee01
  • git push origin master 
  • 끝. 


그러나 끝내기 전에 한 가지 원칙만 더 짚고 넘어갑시다. 기본적으로 각 branch는, 서로 다른 담당자가 있는 것 처럼 생각하세요. 그렇게 생각하면 '소스코드를 수정할 때 새로운 브랜치를 만들어야 하는 이유'가 비교적 분명해 집니다. 


그리고, 절대로 master 브랜치를 '직접' 수정하지 마세요. 인생이 고달파 집니다.
(그 이유는 다음에.) 



저작자 표시 비영리 변경 금지
신고
Posted by 이병준
TAG Git, 초보자

소중한 의견, 감사합니다. ^^

Extremely Agile/General2013.10.08 08:30

Git과 같은 분산 코드 관리 시스템의 내부 구조나 구현 방법이 궁금하신 분들이라면, 이 소식에 관심이 있으실 법 한데요. Git의 내부 구조를 설명한 Git Internal이라는 책이 오픈 소스로 풀렸습니다. (ㅎㅎ) 저자는 Scott Chacon. 


Git Internals 표지Git Internals 표지



Git의 내부 구조를 설명한 책 답게 이 책의 '소스코드'는 GitHub에 공개되어 있습니다. https://github.com/pluralsight/git-internals-pdf에 공개되어 있는데요. 라이선스는 Creative Commons Attribution-ShareAlike를 따르고 있습니다. 소스코드가 다 나와 있긴 하지만 그걸 다 받아야만 책을 읽을 수 있는 것은 아니구요. 최종 '컴파일'이 끝난 책의 PDF만 따로 받을 수도 있습니다. 



Git - Book 웹사이트Git - Book 웹사이트



한편, 인사이트에서 출간한 Pro Git의 원본도 인터넷에 이미 공개가 되어 있죠? 그 책은 http://git-scm.com/book/ko 여기서 보실수 있습니다. (물론 인사이트 책이 보기는 훨씬 더 깔끔하죠.) Git의 기본기는 이 책으로 닦고, Git의 내부구조는 재미삼아 Git Internal로 공부해 보면 좋을 것 같아요. 대가가 설계하는 소프트웨어의 내부는 어떤지 살펴본다는 것은 생각만 해도 흥미진진한일이죠. (나는 대체 언제쯤....ㅜㅜ)



저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

Extremely Agile/General2013.10.07 09:11

아마 대부분의 개발자들은 둘 중 하나일 겁니다. 오픈 소스를 쓰고 있거나, 아니면 오픈 소스를 개발하고 있거나. 물론 오픈 소스를 사용하기만 하는 개발자들이 대부분이겠죠. 오픈 소스 소프트웨어 개발에 직접 관여하는 사람은 드뭅니다. 


그런데 최근 개발자들 사이에서는, 오픈 소스 프로젝트에 참여하는 것이 능력치를 올리는 좋은 방법일 뿐 아니라, 좋은 직장을 구하는 방법이 될 수 있다는 것에 공감대가 형성되고 있습니다. Netty 프로젝트를 진행한 이희승씨의 사례는 귀감이 되고 있죠. (관련기사 참조: http://article.joins.com/news/article/article.asp?total_id=9364915&cloc=olink|article|default


최근, 인사이트(www.insightbook.co.kr)에서 대한민국 오픈소스 개발자들과의 인터뷰를 모은 책을 내려고 준비하고 있다고 합니다. (http://www.insightbook.co.kr/post/6600 참조) 잘 엮여지면 오픈소스 개발자를 꿈꾸는 많은 사람들에게 좋은 참고서가 될 법 한데요. 책으로 묶이기 전에 현재 책 내용의 일부, 그러니까 대담 가운데 일부가 온라인으로 공개되고 있습니다. http://osdi.insightbook.co.kr/ 로 들어가 보시면 내용을 확인하실 수 있습니다. 


최근 저도 오픈 소스 프로젝트를 진행하고 GItHub를 통해 공개하는 작업을 하고 있어서, 관심있게 지켜보고 있습니다. 오픈소스 개발을 꿈꾸는 다른 분들께서도, 진행 상황을 지켜보시면 좋을 것 같아요. 


제가 진행하고 있는 오픈 소스 프로젝트는 SDN (Software Defined Networking) 컨트롤러에 관한 것으로, 현재 http://openiris.etri.re.kr 에 공개되어 있습니다. Openflow를 사용한 네트워크 제어 기술에 대해서 관심 있는 분들께서는 둘러보시면 좋을 것 같네요. 






저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 오픈IRIS

    질문드려요 IRIS를 해보려고 하는데 튜토리얼봐도 잘 모르겠어요 알려주실수있나요?
    설치까지는 했는데.. 그다음부터는 잘 안되네요

    2014.08.26 15:57 신고 [ ADDR : EDIT/ DEL : REPLY ]

Extremely Agile/General2013.09.22 21:05


GitHub가 오픈소스 공유 플랫폼으로 각광받으면서 덩달아 Git 또한 버전 콘트롤 시스템으로 각광받는 분위기인데요. Git은 처음에 배우기가 그다지 만만치 않습니다. SVN이나 CVS 쪽에 다양한 경험이 있어도, 배우기가 썩 편하지 않습니다.


하지만 다음 참고자료들을 '순서대로' 일별하면 쉽게 능통해 질 수 있습니다. 


1. Git 간편 안내서 - 어렵지 않아요!


http://rogerdudler.github.io/git-guide/index.ko.html





슬라이드 쇼 형식으로 필수적인 Git 명령어들을 아주 알기 쉽게 설명합니다. 여기 소개된 명령어들만 알아도 일단 Git을 시작할 수 있죠. 


2. Git Cheat Sheet


Git의 명령어들을 일목요연하게 정리해 놓은, 일종의 참조표입니다. 


http://www.insightbook.co.kr/wp-content/uploads/2013/04/git-%EC%B9%98%ED%8A%B8%EC%8B%9C%ED%8A%B8%ED%94%84%EB%A6%B0%ED%8A%B8.png





3. Git Book - 가장 자세한 Git 안내서


이렇게 해서 감 잡기가 끝나고 사용 경험이 붙었다면, 이제 좀 더 깊이 있게 공부할 순서입니다. 


http://git-scm.com/book/ko


뭐니 뭐니 해도, 이 온라인 안내서만큼 친절하고 자세한 교제는 아직 없죠. '인사이트' 출판사에서 'Pro Git'이라는 제목의 도서로도 출간되어 있습니다. 책을 구입해서 보셔도 좋겠어요. 사실 위의 참조표는 이 책의 부록이에요. 




저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 사랑을구걸하는거지

    정말 좋은 정보 감사합니다.

    2013.09.23 11:42 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 오..이런 자료를 찾고 있었는데..감사합니다!

    2015.10.12 11:21 신고 [ ADDR : EDIT/ DEL : REPLY ]

Extremely Agile/General2013.08.09 10:31

포토샵 같은 프로그램을 설치해서 쓰자니 비용 부담이 있고, 기존의 무료 이미지 편집 프로그램들이 투명한 배경 처리 등의 제대로 안되어서 갑갑했던 사용자라면, 이 프로그램을 한번 고려해 볼 만 하다. 크롬 앱 스토어에서 무료로 받아 이용할 수 있고, 포토샵과 아주 유사한 사용자 인터페이스를 제공한다. 이미지를 PNG 등으로 저장하면 투명한 배경도 문제없이 처리할 수 있다. 크롬 기반으로 웹 디자인을 하는 사람들에게는 아주 유용한 도구가 될 것 같다.




설치하고 실행하면 위와 같은 화면이 뜬다. 컴퓨터로부터 이미지 열기를 시행하면 화면은 다음과 같이 바뀐다. 



이제 이 화면에서 이미지를 편집할 수 있다. 이미지 크기 조정, 필터, 레이어 등등 포토샵에서 흔히 보는 메뉴가 전부 준비되어 있다. 이미지 편집을 마치고 나면 로컬 컴퓨터에 저장할 수도 있다. 


포토샵에 익숙한 사용자라면 편리하게 사용할 수 있는 좋은 프로그램일 듯. 



저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 저도 크롬을 쓰고 있는데 이거 좋을 거 같네요.
    좋은 정보 감사합니다. 와, 포토샵과 비슷한 것을 공짜로 쓸 수 있다니.

    2013.08.19 22:29 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 염구나

    한글이 안되는게 좀 아쉽지만 정말 유용합니다.

    2014.01.07 12:25 신고 [ ADDR : EDIT/ DEL : REPLY ]

Extremely Agile/General2012.10.31 13:19

갤럭시 노트 시리즈가 S-펜을 내세운 필기 기능으로 인기를 모으고 있습니다. 그 가운데 노트 10.1 태블릿은 대화면을 내세워 인기 몰이를 하고 있는 중이죠. 


현재 노트 10.1에는 아이스크림 샌드위치 (4.0.4 버전)가 기본 탑재되어 있습니다.


그런데 필기 기능이 쓸모가 있으려면 필기 속도가 특히 중요한데요.


펜을 이동시키는 속도와 태블릿이 인식하여 입력을 받는 속도 간의 지연이 적어야 필기가 자연스럽게 이루어질 수 있게 됩니다.


그래서 (사실은 심심해서) 갤럭시 노트 10.1에 기본 탑재된 S-펜 앱을 사용해서 펜 입력 속도를 살펴봤습니다.



보시다시피 펜을 이동되는 시점, 그리고 태블릿이 이를 인식해서 화면 상에 점으로 옮기는 시점 사이에 아주 작은 차이가 있습니다. 즉, 펜 끝이 움직이고 나서 잠시 후에 화면에 선이 그어지기 시작한다는 것입니다.


(펜을 빨리 이동시킬수록 그 차이가 좀 더 커집니다.)


물론 그 차이가 아주 적어서 불편함을 느끼시는 분은 극히 소수일 것으로 사료됩니다만 (저같이 예민한 사람은 제외), 아직은 '진짜 펜'처럼 실시간으로 딱 맞아떨어지는 필기를 할 수는 없습니다. 


요즘 자주 사용되는 '수채색연필'같은 앱을 사용해도 마찬가지입니다. 어디까지나 이건 하드웨어와 운영체제 사이의 문제이니까요.




물론 갤럭시 넥서스가 젤리빈으로 업그레이드 되면서 놀랄만큼 빨라진 것을 기억해 본다면, 갤럭시 노트도 젤리빈 업그레이드가 완료되고 나면 펜 입력이 보다 실제처럼 자연스러워 질 거라고 기대해 볼 수도 있겠습니다. (정말?)


저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

Extremely Agile/General2012.10.29 14:02

갤럭시 넥서스와 S3는 똑같이 삼성에서 생산되는 제품인데도 설치할 수 있는 앱에 차이가 있습니다. 가령 S-보이스와 같은 앱을 갤럭시 넥서스에는 이용할 수 없습니다.


하지만 설치 문제를 해결한 버전이 인터넷을 뒤져보면 돌아다니고 있음을 확인할 수 있는데요.


http://www.mediafire.com/?fp04n29phdzeram


위의 링크를 클릭하면 갤럭시 넥서스에도 S 보이스를 다운받을 수 있습니다. 다운받은 후 설치하려면 "약관에 동의하지 않으면 사용하실 수 없다"는 메시지가 나오면서 바로 창이 닫힐 겁니다. 그러나 당황하지 마시고 다시 창을 열면 약관에 동의하실 수 있으십니다. :-)


설치 후에는 이런 화면을 만나게 됩니다. 





이 상태에서 마이크 버튼을 누르고 음성을 입력하면 S 보이스에 명령을 내릴 수 있습니다. 




S3에서 S 보이스를 이용하면 음성으로 안내가 나오지만, 갤럭시 넥서스에서는 음성 안내는 나오지 않습니다. 하지만 아쉬운 대로 쓸만 하다는 거...


S 보이스를 사용하시면 전력 소모량이 커진다는 것은 유의하시는 것이 좋겠습니다.


저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

Extremely Agile/General2012.09.24 11:44

일전에 삼성 노트북 터치패드 위치가 왜 불편한지에 대한 글을 적었었습니다. ([Extremely Agile/General] - 삼성 New Series 9 터치패드. 왜 불편한가) 글을 올리고 나서 조금 더 생각해봤는데요. 오늘 그 결과를 적습니다.


이전에도 언급했었지만, 애플 노트북은 터치패드가 노트북 가운데에 위치해 있습니다. 




반면, 삼성 노트북은 터치패드가 왼쪽으로 치우쳐 있죠. 




삼성 노트북의 터치패드가 왼쪽으로 치우져 있는 것은, 전적으로 F, J 키의 위치 때문인 것으로 보입니다. 아시다시피 F키와 J 키는 키보드를 두드릴 때 왼손 검지와 오른손 검지를 놓는 위치죠. 


삼성 노트북 설계자들은 터치패드가 이 키 바로 아래에 있어야, 키보드를 두드릴 때 손바닥에 의해 터치패드가 눌리는 증상을 최소화 할 수 있다는 결론을 내린것으로 보여요.


그런데 그런 가정이 성립하려면, 노트북을 쓰는 사람이 몸을 F와 J 맞은 편에 두고 노트북을 사용해야만 합니다. 그런데 보통 사용자들은 노트북 모니터를 기준으로 몸을 두지, 키보드의 F와 J키를 기준으로 몸을 두지 않습니다. 


그래서 노트북 위에 손을 올려놓으면, 손의 각도(검지 기준)는 다음 그림과 같이 될 가능성이 매우 높습니다. 



그 점을 고려할 때 터치패드의 최적 위치는 스페이스 바 바로 아래가 아니라, 노트북의 가운데 쪽이 되어야 맞습니다. 즉, 터치 패드를 키보드 기준으로 배열하는 것은 옳지 않다는 것이죠.


시중에 나와 있는 노트북 가운데, 터치패드를 가운데 놓는 제품은 HP, 애플, 아수스에서 나온 노트북 정도입니다. 많은 노트북들이 터치패드를 F와 J 아래에 두고 있습니다. 



저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 1

    직접써보시면 알게 되실거에요 노트북 중앙에 있는게 더불편합니다..

    2013.11.19 19:02 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 제가 맥북도 쓰고 있는데요.
      삼성 터치패드는 불편해서 자꾸 끄게 되더군요.. ㅎㅎ

      2013.11.21 08:42 신고 [ ADDR : EDIT/ DEL ]
  2. KC

    마우스 안쓰고 터치패드만 사용하면서 쓰신 글인지...마우스 없애고 터치패드만 쓰면 가운데 있는게 얼마나 불편한지 느끼실 겁니다.

    2016.01.19 15:34 신고 [ ADDR : EDIT/ DEL : REPLY ]

Extremely Agile/General2012.09.14 10:41

이 글은 아래 글의 후속편입니다. 출장지에서 이 노트북을 본격적으로 사용하면서, 키보드와 터치패드에 대해 몇 가지 느낀 점을 올려보려고 합니다.


[Systems/Windows] - 삼성 New Series 9 13인치 노트북 - NT900X3C-A54


짐작하시다시피, 이 노트북의 키보드는 다음과 같이 생겼습니다. 




굉장히 깔끔한 레이아웃입니다 .사용하기도 편해 보이죠? 그런데 정말 그럴까요. 아래의 맥북 에어 키보드를 보시죠.



어떻습니까? 사실 두 노트북이 키보드는 별 차이가 없습니다. 키보드 뒤쪽에 불 들어오는 기능은 삼성 노트북에도 있고, 펑션키는 오히려 삼성 쪽이 더 커서 편할때도 있습니다. 


결정적인 차이는 터치패드의 포지션이죠. 삼성 노트북의 터치패드는 다소 강박적으로 보일 정도로 스페이스바와 나란히 정렬되어 있습니다. 


그래서, 보시다시피 삼성 노트북의 터치패드는 노트북의 정 중앙에 위치하지 않습니다. 맥북의 터치패드는 노트북의 정 중앙 부분에 위치하죠. 이 사소한 위치 차이가 무슨 결과를 낳느냐면...


삼성 노트북은 터치 패드를 켜놓고 타이핑을 하다보면 왼손의 엄지 아래쪽 손바닥 부분이 터치패드에 닿아서 마우스 포인터가움직이는 일이 굉장히 자주 일어납니다. 맥북은 그런 현상이 덜하죠. 


이것이 터치패드의 감도 최적화 문제와 맞물리면...


타이핑을 많이 하는 작업을 할때는 꼭 마우스를 꽂아야 하는 불상사가 발생하게 됩니다. 


저는 특별한 문제만 없다면, 삼성이 다음 버전의 노트북에서는 터치 패드의 위치를 좀 더 오른쪽으로 조정해줬으면 합니다. 사소한 개선으로 노트북 사용자의 조작성을 개선할 수 있다는 점을 생각해줬으면 좋겠어요.


저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 다크

    J키와 F키의 위치(볼록표시 있는 키요)를 생각해보면 애플이 쏠려있는것 같네요.. 그냥 제 생각입니다^^

    2012.09.14 21:53 신고 [ ADDR : EDIT/ DEL : REPLY ]

Extremely Agile/General2012.09.04 22:47
집에 아령이 있습니다. 오키로 두개, 삼키로 두개입니다. 첨엔 이것도 충분하다 싶었지만 날이 갈수록 너무 가볍게 느껴집니다.

그런데 생각해보니 아령을 하나가 아니라 두개를 동시에 들수 있으면 최다 십키로 효과를 낼수 있습니다. 아령끼리 연결만 잘 할수 있으면 되는 일이라는 생각이 들었습니다.

해서 이런걸 만들었습니다.

""

재료는 세탁소표 철사 옷걸이.

펜치로 휘어 모양을 잡고 절단한후, 날카로운 절단면에는 캡을 씌웠습니다.

이것으로 아령들을 연결하면 이렇게 됩니다.

""

연결한 후에는 이렇게 운동할 수 있습니다.

""

고정이 잘 안되는것이 유일한 흠인데, 긍정적으로 생각하면 오히려 자세 안정에 도움이 된다고 생각할수도 있습니다. ^^

신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

Extremely Agile/General2011.07.05 16:02
Bitnami Redmine은 Redmine이라는 이슈 트래킹 시스템(issue tracking system)을 좀 더 설치가 편하도록 리패키징(repackaging)한 배포판으로서, 윈도우즈, 리눅스, 맥 OS X 등 다양한 운영체제에 설치가 가능하며 심지어는 Amazon 클라우드에도 설치가 가능한 형태로 배포되고 있습니다. http://bitnami.org/stack/redmine 여기가 해당 웹 사이트 링크. (Bitnami Redmine is the re-packaged distribution of the well-known 'Redmine' Issue Tracking System. Currently, Windows, Linux, and Mac OS X distributions are available. Above is the link to the Bitnami Redmine web site.)

이 시스템의 가장 큰 특징은 간트 차트(Gantt chart)를 제법 우아하게 지원한다는 것. 이슈 진척도 까지 한 화면에 확인할 수 있으므로 좋습니다. (One of the most important feature of this system is that Redmine supports Gantt chart very gracefully.)




백업 (backup bitnami redmine system), 그리고 복원(restore)

각설하고, 이 시스템을 백업하는 방법은 두 가지가 있습니다. (1) 어려운 방법 (2) 쉬운 방법. ㅋㅋ (There are two different methods for backing up the bitnami redmine stack. First one is more difficult than the second.)

어려운 방법은 Redmine 데이터베이스와 Redmine에 등록된 파일을 함께 백업하는 것이죠. 다음의 절차를 따릅니다. (Windows 기준으로) (The more difficult one is to backup Redmine DBMS and files that Redmine users registered. I will explain the procedure for Windows systems.)  

1. 모든 프로그램 -> Bitnami Redmine Stack -> Use Bitnami Redmine Stack (First, go to Start -> All Programs -> Bitnami Redmine Stack -> Use Bitnami Redmine Stack.)

이렇게 하면 화면에 콘솔 창이 하나 뜹니다. Redmine 이용과 관계된 모든 path 설정이 마쳐진 상태이므로, 가급적 이 창을 열어서 관리 작업을 수행하도록 하는 것이 좋죠. (Then, a console window will appear which is ready-to-go for Redmine administrations. All the environment variables are correctly set.)

2. DBMS 백업. 다음과 같이 합니다. (Then, do the DBMS backup just as follows.)

mysqldump -u root -p bitnami_redmine > redmine_backup.sql

패스워드를 물어볼텐데, BItnami Redmine 스택 설치할 때 입력했던 사용자 패스워드를 사용하면 됩니다. (If mysqldump prompts for password, input the user password that you have entered when you were installing the Bitnami Redmine stack.)

3. C:\Program Files\Bitnami Redmine Stack\apps\redmine\ 디렉터리로 이동 (After that, go to C:\Program Files\Bitnami Redmine Stack\apps\redmine\ directory.)

4. files 디렉터리 안에 있는 내용을 통째로 백업해 둠 (Backup all the files within the directory.)

이렇게 어렵게 백업한 파일을 복원할 때는 다음과 같이 합니다. 역시 아까 썼던 콘솔창을 활용하죠. (To restore the system status using the backup files, just do as follows.)

mysql -u root -p bitnami_redmine < redmine_backup.sql

그런 다음 아까 복사해뒀던 files 디렉터리 밑의 파일들을 원래 위치로 되돌려 놓습니다. 그런 다음 Bitnami Redmine 서비스들을 재시작하면 복원이 완료되죠. (Then, put all the copied files to their original location. After that, restart all the Bitnami Redmine services. That's it.)

그런데 백업 후 복원 이전에 시스템을 재설치한다거나 하면 Redmine 서비스 재시작 후에 Method가 missing 되었다면서 정상적으로 실행되지 않는 경우가 있습니다. 원인은 DBMS 마이그레이션이 올바르게 되지 않아서인데요. C:\Program Files\Bitnami Redmine Stack\apps\redmine 디렉터리에 가서 rake db:migrate RAILS_ENV=production 이라고 해 주면 DBMS 마이그레이션이 끝나면서 해결됩니다. (But, there might be a case that the Redmine stack, precisely, the underlying Rails system, complains that there are missing methods after the restart. The reason is that DBMS is not correctly migrated. To solve this problem, go to C:\Program Files\Bitnami Redmine Stack\apps\redmine\. And enter rake db:migrate RAILS_ENV=production. That will solve the problem.)

좀 더 쉬운 백업 방법은 C:\Program Files\Bitnami Redmine Stack\ 디렉터리를 통째로 백업하는 것이죠. (The easist way of backing up the Bitnami Redmine Stack is to backup the install directory as-is.) 

Gmail을 통한 메일 알림 설정 (Gmail-based email notification configuration)


Bitnami Redmine Stack 1.2.0 기준으로 봤을 때, Gmail을 통한 메일 알림 설정은 다음과 같이 하면 됩니다. C:\Program Files\Bitnami Redmine Stack\apps\redmine\config\email.yml의 마지막 부분을 다음과 같이 고치면 OK. (Gmail-based email notification setup for BItnami Redmine 1.2.0 stack is done by modifing the C:\Program Files\Bitnami Redmine Stack\apps\redmine\config\email.yml file as follows.)

production:
   delivery_method: :smtp
   smtp_settings:
     enable_starttls_auto: true
     tls: true
     address: "smtp.gmail.com"
     port: 587
     domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
     authentication: :plain
     user_name: "your_gmail_id@gmail.com"
     password: "your_gmail_pw"

development:
   delivery_method: :smtp
   smtp_settings:
     enable_starttls_auto: true
     tls: true
     address: "smtp.gmail.com"
     port: 587
     domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
     authentication: :plain
     user_name: your_gmail_id@gmail.com
     password: "your_gmail_pw"

다른 버전의 Redmine 에서는 좀 다를 수 있으니 조심하세요. Gmail을 써서 email 공지가 날아가도록 하면 속도가 좀 느리다는 문제도 있습니다. (The detail of the configuration might differ by Redmine versions. Using gmail, you might suffer from delay: Gmail SMTP does not respond fast to your request.)
 




신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. mj

    레드마인에대한 관심이 많던차에 좋은글 잘봤습니다^^감사합니다^^

    2011.07.07 23:27 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. gmail 설정법이 도움이 되었습니다. 감사합니다.

    2011.09.16 09:34 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 공개 테스트 공간 입니다. 공개 협업, 프로젝트 관리도구 ITS, Redmine 레드마인 의 테스트를 할 수 있습니다. & 공개 프로젝트 관리도구 선택시 도움이 되기를 바랍니다. http://211.110.130.75

    2014.02.08 17:29 신고 [ ADDR : EDIT/ DEL : REPLY ]

Extremely Agile/General2011.04.11 21:44
파워포인트와 키노트 둘 다 분명히 훌륭한 프로그램입니다. 그리고 대부분 기능은 엇비슷합니다. 아무래도 같은 일을 하는 프로그램이니까요. 그런데 세부사항으로 들어가면 파워포인트에서 좀 더 편리한 기능이 있고, 키노트에서 좀 더 편리하게 쓸 수 있는 기능이 있죠. 오늘은 그런 기능 중 하나에 대해 이야기해 보려고 하는데요. 

키노트에서 좀 더 편리한 기능 중 하나는, 도형에 그림을 채우는 기능입니다. 엄밀하게 이야기하자면 파워포인트에 있는 도형에 그림 채우기 기능이나 키노트에 있는 도형에 그림 채우기 기능이나 똑같긴 합니다. 그런데 키노트에는 하나의 기능이 더 있죠. '마스크' 기능입니다. 

마스크 기능을 어떻게 쓰는지 예를 좀 보시면...

 
일단 이렇게 슬라이드에 그림을 끌어다 놓습니다. (보통은 도형을 먼저 놓는데, 마스크 편집의 경우에는 그 반대죠.) 그리고 그 상태에서 상단의 "마스크" 버튼을 누릅니다. 이렇게 생긴 버튼입니다.


그러면 그림이 이렇게 변할겁니다. 


아래쪽에 마스크 편집이라는 버튼이 붙어있는 다이얼로그 박스도 하나 뜨는데 그건 캡처가 안되네요. 그런데 마스크 버튼을 누르면 사각형 마스크밖에 지정할 수가 없거든요. 다른 도형으로 마스크를 하고 싶으시다면 위쪽의 "마스크" 버튼을 다시 누르세요. 아마 "마스크 취소"로 이름이 바뀌어 있을 겁니다. 취소를 하셨다면, 메뉴에서 포멧->도형으로 마스크->별을 선택해 봅시다. 그림이 다음과 같이 바뀔 거에요.


이 사진은 캡처가 제대로 됐군요. 이 때 밝게 보이는 도형 영역이 화면에 실제로 마스킹되어 나타나게 될 부분이구요. 흐리게 음영처리된 부분이 해당 "마스크 영역" 뒤에 있는 그림입니다. 이 상태에서 그림 부분을 드래그 하면 별 안에 그림 어느 부분이 보이게 할 지 편하게 조정할 수 있구요. 그 아래 "마스크 편집" 다이얼로그 박스의 슬라이드 바를 왼쪽에서 오른쪽으로 움직이면 배율을 조정할 수도 있습니다. 적당히 조정하고 "마스크 편집" 버튼을 누르면...


이렇게 되구요. 이 상태에서 "마스크 편집" 버튼을 다시 누르면 그 윗 그림 상태로 다시 돌아갑니다만, 그림 영역 바깥 아무데나 클릭하면...


이렇게 되면서 편집이 종료됩니다. 굉장히 편리하죠. 하지만 문제는 지원하는 도형이 다채롭지가 않아서 좀 복잡한 도형을 이용할라치면 일일이 그려야 한다는 거... ㅎㅎ (그 부분은 파워포인트가 좋습니다.)

좀 더 꼼꼼한 메뉴얼이 필요하신 분은 이곳으로! http://evileye.tistory.com/1
 
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

Extremely Agile/General2011.04.09 12:46
SNMP MIB 파일이 없어도 그  세부사항을 살펴볼 수 있고, 어떤 항목들이 있으며 그 항목들 각각의 의미가 무엇인지 알고 싶다면? SIMPLEWEB 사이트를 방문해 보는 것이 좋을 듯. http://www.simpleweb.org/


웹사이트를 방문하면 좌측에 MIBs라는 메뉴가 있다. 이 메뉴를 클릭하면 다음과 같은 화면을 볼 수 있다.

 

 여기서 원하는 MIB을 선택하면 된다. 모든 MIB이 다 있는 건 아닐테지만, 중요 표준 MIB은 빠짐없이 볼 수 있다. 다음과 같이 표시된다.


MIB 항목 가운데 mplsTunnelRerouted 를 선택한 화면이다. 해당 MIB 항목의 의미를 description 필드 값을 통해서 자세히 확인할 수 있다.


 
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

Extremely Agile/General2011.04.05 17:41
http://ringblog.net/1934 그만님 블로그에서도 다루고 있는 주제지만, 카카오톡이 유발하는 keep-alive 성 트래픽이 단단히 문제가 되고 있는 모양. 특히 카카오톡 서버가 재부팅 되거나 재배치되는 경우에 증상이 심화되는 듯.

망 중립성 이야기도 나오는데, 아무래도 망이 좀 더 지능화 되어 '카카오톡 오버레이(overlay)' 같은 게 제공되지 않는 한 근본적인 해결은 어려울 듯. 그렇게 되면 카카오톡 회사는 타인의 트래픽을 침해하지 않는 선에서 ISP (Internet Service Provider)로부터 오버레이 회선을 구매하고, 그 오버레이 회선으로만 자사의 트래픽을 유통시킬 수 있을 것이다. 물론 그런 회선에 완벽한 QoS를 구현할 수 있고, 다른 사람들의 트래픽은 침해하지 않는다는 가정 하에서.

인터넷을 통한 '가상 회선별 QoS' 이야기는 NGN(Next Generation Network)이야기 나오면서 가장 크게 대두되었던 화두 중 하나인데 아직까지도 뾰족한 해결책이 없고, 그럼에도 사람들은 벌써 NGN을 넘어 '미래 인터넷' 이야기를 하고 있다.

사람들이 벌써부터 '미래 인터넷' 이야기를 하는 것은 아마 '현존하는 IP 프레임워크 위에서' 인터넷의 모든 문제를 해결하기가 굉장히 곤란해 보이기 때문인 듯. (이렇게 저렇게 다 해봤는데 안되더라 하는 게 가장 큰 이유일 것인데...)

사실 인터넷은 이미 '범 지구적인 인프라'가 되어 있지만, 아무도 그 인프라가 '정말로 안전한지', '정말로 예측가능한지' 모른다는 문제를 가지고 있다. 사실 이런 문제를 가지고 있는 인프라는 인프라로 불러서는 안된다. 왜냐? 인프라는 공공재적 성격이 크기 때문이다. 상수도도 인프라라고 부를 수 있고, 하수도, 전력 공급 시설 전부 인프라라고 부를 수 있다. 그런데 그런 인프라들은 예측 가능하다. 어떤 장애가 생겼을 때 어떻게 동작하게 될지, 예측이 가능하단 소리. 그래야 그 공공재에 기반하여 생활하는 사람의 삶의 질을 보장할 수 있다.

그런데 인터넷은 그렇지 않다. 웜 바이러스가 뿌려졌을 때 인터넷에 무슨 일이 벌어졌는지 아마 모두들 기억하시리라. 이런 건 인프라가 아니다.

이런걸로 만든 뭔가는 인프라라고 부를 수 있을지도



카카오톡 사태에서도 볼 수 있듯이, 우리는 인프라가 아닌 '무언가' 위에 '우리 삶을 해피하게 해 줄' 뭔가를 만들려고 한다. 그러다 보니, '무언가'를 만드는 사람도 그렇고 '해피하게 해 줄 뭔가'를 만드는 사람도 그렇고, 전혀 해피하지가 않다. 

이 사태가 원천적으로 해결되려면 우리가 쓰는 인터넷이 좀 더 예측 가능하게 바뀌어야 한다. 예측 가능한 인터넷은 선언적(declarative) 기술에 기반한 것이어야 하고, 증명 가능(provable)해야 한다. 현재 인터넷 기술을 구성하는 요소 중 많은 것들은 증명에 기반한 것도 아니고, 선언적이지도 않다. 프로그래밍 언어적으로 이야기하자면, 절차적이다. 그냥 그렇게 하니까 돌아가던데? 라는 말 쪽에 좀 더 가깝다. 

우리는 인터넷이 갖고 있는 이 '원천적인' 문제가 빨리 해결되기를 소망한다. 그러기 위해서는 인터넷을 설계하는 사람이나 그 위에서 돌아가는 뭔가를 만드는 사람들이 머리를 맞대고 함께 고민해야 한다. 대한민국은 세계 No.1 인터넷 강국이라서 그런 연구 하기 걸맞다.

그런데 대한민국에서 인터넷의 문제를 원천적으로 해결할 솔루션이 나오지 않는다면?

그건 아마 대한민국이 그런 일 하기에 썩 적합하지 않아서 일지도 모른다.
 
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^