Docker에서 중요한 개념이 이미지와 컨테이너입니다. 컨테이너는 이미지를 실행한 상태라고 많이 설명합니다. 이 컨테이너중에 데이터 볼륨 컨테이너라는 유형이 있는데 이에 대한 이야기를 해보겠습니다.


Docker 호스트에 있는 특정 디렉토리를 Docker 컨테이너에 공유하고 싶다면 VOLUME을 사용합니다. Dockerfile에 VOLUME을 설정해보겠습니다.


FROM ubuntu:14.04

MAINTAINER scott hwang("k16wire@gmail.com")

VOLUME ["/opt/project/webapp", "/data"]


이 Dockerfile 이미지로(k16wire/ubuntu) 컨테이너를 만들면 '/opt/project', '/data' 디렉토리가 컨테이너에 만들어집니다. 컨테이너에 만들어진 디렉토리와 호스트에 있는 디렉토리를 바인딩 시키는건 컨테이너를 실행할때 합니다. 

docker run -d -P --name datacontainer -v src/webapp:/opt/project/webapp k16wire/ubuntu


 VOLUME을 명시하지 않고 -v 로 바인딩하면 어떻게 될까요? 바인딩 됩니다. 단 바인딩하려는 디렉토리가 반드시 존재해야 에러없이 컨테이너가 실행됩니다.


컨테이너가 하나 더 있다고 해보겠습니다. 이 컨테이너 역시 호스트에 있는 src/webapp 디렉토리를 공유하고 싶습니다. 그럼 앞에서 사용한 -v 옵션을 이용하면 됩니다. 

docker run -d -P --name web -v src/webapp:/opt/webapp nginx

하지만 이렇게 하지않고 앞에서 만든 컨테이너를 활용할수도 있습니다.

docker run -d -P --name web --volumes-from datacontainer nginx

후자처럼 컨테이너를 실행한다고 했을때 VOLUME을 공유하는 컨테이너를 데이터 볼륨 컨테이너라고 부릅니다. 그럼 데이터 볼륨 컨테이너를 쓰는것과 -v로 직접 디렉토리를 공유하는게 어떤 차이가 있을까요. 결과만 놓고 본다면 다르지 않습니다만 컨테이너 구성면에서 변화가 생깁니다.


-v 옵션으로 공유를 추가하는것은 컨테이너와 호스트간에 연결을 맺는것이지만 데이터 볼륨 컨테이너를 사용하면 컨테이너와 컨테이너간의 연결로 바뀝니다.(궁극적으로는 데이터볼륨컨테이너를 거쳐 호스트와 연결이 되는것이죠.) 호스트가 공유하고 싶은 데이터(여기서는 디렉토리)를 논리적인 단위로 추상화 시켰다고 볼수도 있습니다. 꼭 Symbolic Link를 만들어서 사용하고 물리적인 실제 경로는 숨기는것과 유사해보입니다.

Microservice 아키텍처로 본다면 컨테이너는 서비스에 해당하며 서비스는 특정 행위를 책임집니다. 데이터 볼륨 컨테이너는 데이터 공유라는 행위를 책임지는 서비스인 셈입니다. 이렇게 행위에 대한 역할이 명확해 지기 때문에 데이터 볼륨 컨테이너가 필요합니다. 


참고자료

[1] https://docs.docker.com/userguide/dockervolumes/#creating-and-mounting-a-data-volume-container

[2] https://medium.com/@ramangupta/why-docker-data-containers-are-good-589b3c6c749e

[3] http://stackoverflow.com/questions/18496940/how-to-deal-with-persistent-storage-e-g-databases-in-docker/20652410#20652410

[4] http://www.offermann.us/2013/12/tiny-docker-pieces-loosely-joined.html

[5] http://crosbymichael.com/advanced-docker-volumes.html


저작자 표시 비영리 변경 금지

닷 클라우드 솔로몬 하이크(Solomon Hykes)가 내부적으로 개발하던 Docker를 Pycon2013에서 처음 공개했던 영상입니다.


The Future of Docker Container

http://www.youtube.com/watch?v=wW9CAH9nSLs

5분밖에 안되는 발표지만 지금 보면 정말 충격적인 내용을 선보인겁니다. 저기 앉아 있는 사람들은 복받았네요. Hello World를 찍는 새로운 방법으로 추가할만 합니다.


위 데모중 Hello World 찍는 부분을 다시 재 구성한 영상도 있습니다.

http://www.youtube.com/watch?v=w4jfLy633xM





저작자 표시 비영리 변경 금지



개발자 꾸뻬씨는 이번주까지 마무리 해야 하는 일이 몇가지 있는데 한가지도 쉬운일이 아니어서 아침부터 한숨만 나옵니다. 가장 급한건 신규 프로젝트를 위한 개발서버와 스테이징 서버 준비입니다. 이게 빨리 준비 안되면 어렵게 모인 개발팀과 파트너사 직원들이 개발을 시작할수 없기 때문이죠.

그 다음은 지난주 발생한 장애건에 대해 팀장님이 지시한 재발방지 대책 마련입니다. 1급장애 상황이라 일단 서버 재시작으로 정상화는 시켰지만 정확한 원인을 찾으려면 동일한 상황을 재현해야 합니다. 그런데 운영서버도 빠듯한 상황에 서버를 내려서 테스트하겠다면 사업부서가 가만있지 않을거 같아 걱정입니다.

마지막은 신규로 도입하려는 게이트웨이 서버에 대한 검증작업입니다. 제대로 테스트하려면 적어도 서버를 종류별로 따로 받아서 설치해서 실행해 놓고 다양한 시나리오로 테스트해야 하는데 설치는 고사하고 아직 서버도 받지 못한 상황입니다.


Docker기반의 DevOps 인프라가 있다면 위에서 언급한 업무는 어려운 일이 아닙니다. 미리 준비된 이미지를 이용하면 개발과 스테이징 환경을 위한 컨테이너를 만드는 작업은 몇번의 클릭으로 끝납니다. 컨테이너는 바로 만들어져 제공되기 때문에 기다릴 필요가 없습니다. 

운영중인 컨테이너가 문제를 일으키면 미리 커밋해둔 컨테이너 이미지를 이용해 바로 동일한 컨테이너를 몇분만에 만들어 대체할수 있습니다. 문제를 일으킨 컨테이너는 멈춘채 그대로 아카이브했다가 나중에 다시 실행해서 왜 장애가 발생했는지 확인하는데 사용합니다.

원하는 이미지가 없다면 필요한 SW가 설치된 이미지를 요청해서 받을수 있습니다. 검증후에는 따로 반납할 필요없고 데이터만 백업받고 바로 지워버릴수 있어 편리합니다.


DevOps 인프라는 개발자 꾸뻬씨가 행복한 하루를 보낼수 있게 해줄겁니다.

저작자 표시 비영리 변경 금지

Play 웹앱을 개발할때 특정 URL에 대한 접근권한을 제어하는 부분을 직접 구현하기보다는 Deadbolt를 이용하면 쉽게 처리할수 있습니다. Deadbolt는 오픈소스로 Java와 Scala를 둘다 지원합니다.


  • 소스코드: https://github.com/schaloner/deadbolt-2-java
  • Deadbolt 데모 페이지: http://deadbolt-2-java.herokuapp.com/

Deadbolt를 적용해보겠습니다.


1.project/plugins.sbt파일에 Resolver 추가

resolvers += "Deadbolt2 java releases" at "https://github.com/schaloner/deadbolt-2-java/releases"


2.build.sbt 파일에 Dependency 추가

"be.objectify" %% "deadbolt-java" % "2.3.2"


3.DeadboltHandler 정의

public class MyDeadboltHandler extends AbstractDeadboltHandler {

    @Override

    public F.Promise<Result> beforeAuthCheck(Http.Context context) {

        return F.Promise.pure(null);

    }


    @Override

    public F.Promise<Subject> getSubject(Http.Context context) {

        final Http.Cookie userCookie = context.request().cookie("userid");

        return F.Promise.promise(new F.Function0<Subject>()

        {

            @Override

            public Subject apply() throws Throwable

            {

                return // Subjet를 구해서 반환

            }

        });

    }

}


4.Deadbolt 모델 정의

https://github.com/schaloner/deadbolt-2-java/tree/master/test-app/app/be/objectify/deadbolt/java/test/models


5.application.conf에 Deadbolt 핸들러 정의

deadbolt {

    before-auth-check-timeout=4000,

    java {

        cache-user=true,

        handlers {

            defaultHandler=MyDeadboltHandler

        }

    }

}


6.conf/play.plugins에 Deadbolt 플러그인 추가

10000:be.objectify.deadbolt.java.DeadboltPlugin


7.로그인때 subject 키를 쿠키에 저장

response().setCookie("userid", String.valueOf(user.id), 60*60);


8.로그아웃때 subject 키를 쿠키에서 삭제

response().discardCookie("userid");


9.컨트롤러에 접근권한 설정

admin 그룹만 접근할수 있다면

@Restrict(@Group({"admin"}))

public static Result restrictedToFooAndBar()

{

        return ok("Content accessible");

}


로그인한 사람만 접근할수 있다면

@SubjectPresent

public static Result subjectPresent() {

    return ok(accessOk.render());

}


로그인하지 않은 사람만 접근할수 있다면

@SubjectNotPresent

public static Result subjectNotPresent_loggedIn() {

    return ok(accessOk.render());

}


컨트롤러에 Deadbolt가 적용되면 기존에 작성해 놓은 컨트롤러 테스트 코드가 인증정보가 없어서 실패할수 있습니다.


[1] 설정 관련 도움말 http://deadbolt.ws/#/java-docs


저작자 표시 비영리 변경 금지

Docker 컨테이너를 만들때 사내 사이트 dns에 대한 정보를 hosts 파일에 넣어야 하는 상황이 생겼습니다. 처음에는 간단하게 생각했습니다. 


표준 이미지를 만들때 표준으로 사용하는 hosts 파일을 복사하자.


Dockerfile의 COPY 명령어로 해결될줄 알았는데 해당 url에 대한 ip가 다르게 나와서 확인해보니 아래 링크를 찾았습니다.


Editing networking config files

Starting with Docker v.1.2.0, you can now edit /etc/hosts/etc/hostname and /etc/resolve.conf in a running container. This is useful if you need to install bind or other services that might override one of those files.

Note, however, that changes to these files will not be saved by docker commit, nor will they be saved during docker run. That means they won't be saved in the image, nor will they persist when a container is restarted; they will only "stick" in a running container.


원본링크: https://docs.docker.com/articles/networking/


요약하면 /etc/hosts, /etc/hostname, /etc/resolve.conf 와 같은 네트워크 설정 파일을 실행중인 컨테이너에서만 유지된다는 설명입니다. 이를 지원하는 옵션이 RUN 명령에 들어있습니다.


$ /docker run -ti --add-host db-static:86.75.30.9 ubuntu cat /etc/hosts

RUN 명령어 문서: https://docs.docker.com/reference/run/


--add-host 옵션뒤에 dns:ip 와 같이 적어주면 etc/hosts 파일안에 내용이 추가된것을 확인할 수 있습니다.

저작자 표시 비영리 변경 금지

유리감옥

Life & Culture/생각지도 2014/12/31 10:47 posted by k16wire

니콜라스카의 신작 '유리감옥' 홍보영상인데 볼만하네요. 읽어봐야겠습니다.



책 내용 요약: http://korezn.tistory.com/432



저작자 표시 비영리 변경 금지

Play2 프로젝트를 개발할때 IDE로 IntelliJ를 이용하면 Scala 플러그인이 있어 편하다. 그런데 Activator idea 명령으로 Play 프로젝트를 IntelliJ 프로젝트로 변환할때 소스 Path가 잘못 잡혀서 스칼라 코드 컴파일 에러가 나온다. 간단한 설정만 수정하면 스칼라 코드 컴파일 에러를 제거할 수 있다.


1.프로젝트 > Open Module Setting 화면을 연다.

2.소스코드 경로에 자동으로 생성되는 scala 코드 위치를 추가한다.

target/scala-2.11/twirl/main/views

target/scala-2.11/src_managed/main 



저작자 표시 비영리 변경 금지

읽는 힘과 듣는 힘

Life & Culture/생각지도 2014/12/24 12:02 posted by k16wire

어느 학자는, 문명은 '해답'에 있는 것이 아니라, '질문'에 있었다고 얘기한다. 선진국과 후진국의 차이는 '질문하는 힘'에 달렸다고 말하기도 한다. 선진국은 인류의 문제의 변경에서 그 밖을향해 질문하고 있는 나라이며, 후진국은 선진국이 질문을 통해 닦아놓은 대답의 길을 그대로 따라오고 있는 나라라는 것이다.

질문은 어디에서 나오는가. 질문은 말하기이며 글쓰기이다.


http://www.asiae.co.kr/news/view.htm?idxno=2014122317482063759


저작자 표시 비영리 변경 금지

Kubernets 소개 영상

Work & Study/TechTalk 2014/12/23 02:23 posted by k16wire

Docker 컨테이너 오케스트레이션 시스템 Kubernets를 소개하는 영상입니다.


http://www.youtube.com/watch?v=tsk0pWf4ipw#t=89

 

저작자 표시 비영리 변경 금지

DevOps 2년차

Work & Study/애자일 개발 2014/12/01 10:19 posted by k16wire

처음 DevOps라는 용어를 접하고 내용을 살펴보면서 들었던 생각은

  • 실체가 뭐냐???
  • 애자일에 대한 새로운 키워드인가
  • CD가 전부 아닌가
이 정도였습니다. 그런데 작년부터 지금까지 나름 DevOps를 위해 일한지 2년이 다되가는 시점에 뭘 배우고 뭘 했는지 생각해보니 약간 달라졌네요.
  • DevOps는 운영을 편하게 한다.
  • 인프라스트럭처가 받쳐주지 않는 DevOps는 너무너무 어렵다.
  • Legacy 시스템은 DevOps 적용할때 중요한 장애요소이다.
개발과 애자일에 대한 경험이 많아서 큰 문제없을거라 생각했던 DevOps. 하지만 복병은 인프라였습니다. 1년반동안 인프라에대한 지식과 경험은 정말 많이 늘었습니다.

Docker 까지만 JARVIS에 붙이면 처음에 그렸던 아키텍처가 모두 완성될거 같네요.


저작자 표시 비영리 변경 금지

'Work & Study > 애자일 개발' 카테고리의 다른 글

DevOps 2년차  (0) 2014/12/01
레거시 코드 어디까지 가봤니  (0) 2014/09/18
Agile Korea 2013 발표 영상 - 켄지 히라나베  (0) 2014/07/09
PMI 회고  (0) 2013/12/15
스크럼 팀에서의 팀장의 역할  (2) 2013/12/10
자율이 오히려 부담이 될수있다.  (0) 2013/11/29
TAG DevOps

AWS 콘솔에서 Docker 지원

Work & Study/TechTalk 2014/11/27 16:28 posted by k16wire

'소리없이 강하다.'는 표현은 아마존에게 어울리는 말이라는 생각이 듭니다.

조용히 있다가 툭하니 서비스를 내놓는데 그게 물건이니까요. MS나 구글이 도커에 대한 지원을 발표할때 가만히 있다가 이번에 API 로 도커 컨테이너를 만들수 있는 기능을 발표했습니다.


http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&oid=293&aid=0000015091&sid1=001


저작자 표시 비영리 변경 금지

'Work & Study > TechTalk' 카테고리의 다른 글

IntelliJ에서 Play 프로젝트 설정 팁  (4) 2014/12/27
Kubernets 소개 영상  (0) 2014/12/23
AWS 콘솔에서 Docker 지원  (0) 2014/11/27
도커 입문서 Docker Book  (0) 2014/11/25
Play 책 저술을 접습니다.  (9) 2014/08/12
Try Ruby  (0) 2014/08/07

도커 입문서 Docker Book

Work & Study/TechTalk 2014/11/25 01:57 posted by k16wire

도커 공부하시는 분들 많으시죠.

저도 요즘 시간날때마다 찾아보는게 도커인데요. 

새로운 기술을 배울때 책으로 배우면 이미 늦었다고 말하지만 이정도면 괜찮은거 같습니다.

도커에 관심은 있고 컨퍼런스에서 발표도 몇번 들었는데 막상 해본적은 없어서 어떻게 시작할까 망설이는 분들에게 권해드립니다.


http://www.dockerbook.com/


저작자 표시 비영리 변경 금지

'Work & Study > TechTalk' 카테고리의 다른 글

Kubernets 소개 영상  (0) 2014/12/23
AWS 콘솔에서 Docker 지원  (0) 2014/11/27
도커 입문서 Docker Book  (0) 2014/11/25
Play 책 저술을 접습니다.  (9) 2014/08/12
Try Ruby  (0) 2014/08/07
멤버변수 타입과 클린코드  (0) 2014/03/31

파운데이션과 로봇시리즈가 그립네요.


http://newspeppermint.com/2014/10/28/masimov/


저작자 표시 비영리 변경 금지

키를 재는 괴물

Life & Culture/생각지도 2014/10/27 20:50 posted by k16wire

옛날옛날에 키를 재는 괴물이 살았습니다.

이 괴물은 매년 초가 되면 나타나 아이들의 키를 재면서 물었습니다.

"년 말이되면 키가 얼마나 클거 같니?" 

아이들은 저마다 대답했습니다. "20센치요." "10센치요"

괴물은 아이들의 대답을 다 듣고나서 사라졌습니다.

년말이 되자 괴물이 다시 아이들 앞에 나타났습니다.

어디 키가 얼마나 자랐는지 다시 재보자.

이야기했던 만큼 키가 자라지 않은 아이들은 차례대로 괴물에게 잡아먹혔습니다.

"전 책을 열심히 읽었어요." "운동을 열심히 해서 얼마나 튼튼한데요."

이런 아이들의 변명은 괴물에게 전혀 들리지 않았습니다.

괴물에게 중요한건 년초에 아이들이 말했던 "20센치" 뿐이었으니까요.


이 괴물은 아직도 우리 주변에 살아있습니다.

학교에, 직장에, 사회에.


저작자 표시 비영리 변경 금지

일단, 써! 잘 쓰려고 하지 말고 써요. 잘 쓰려고 하니까 안 써지는 거예요. 잘 쓰고 못쓰고는 자기 몫이 아닌 거예요. 나는 그림쟁이가 아니지만, 정말 그림을 좋아해요. 무조건 그려요. 그림이 되건 말건... 글쟁이도 마찬가지고 음악 하는 사람도 마찬가지예요. 음악 하는 사람이 멋있는 음악을 해야겠다? 개코 같은 소리지. 무조건 열심히 곡을 써야 돼요. 실천적이지 않으면 아무것도 안되는 거야.


내가 관심사도 많고, 하고 싶은 것도 너무 많으니까..돈으로부터 자유롭고 싶었어요. 그 어떤 힘이라기보다 강박인데요. '할까 말까?' 판단 이전의 문제예요. 열심히 일하고 돈을 벌어야 내가 하고 싶은 일을 걱정 없이 할 수 있으니까 매일 규칙적으로 하는 일이 있어야만 해요. 그 생각은 불수의근이 심장을 뛰게 하는 것과 같은 거죠. 불수의근과 같은 사고, 심장이 늘 뛰는 것 처럼...

- 김창완 인터뷰 중에서 -


저작자 표시 비영리 변경 금지

스칼라 학교

Relation/즐겨찾기 2014/10/14 09:25 posted by k16wire

http://twitter.github.io/scala_school/ko/


저작자 표시 비영리 변경 금지

'Relation > 즐겨찾기' 카테고리의 다른 글

스칼라 학교  (0) 2014/10/14
links for 2011-09-15  (0) 2011/09/15
links for 2011-08-05  (0) 2011/08/05
links for 2011-07-19  (0) 2011/07/19
일류로 가는길 - 안철수  (0) 2010/02/23
Xper 1월 정기모임 후기  (3) 2010/02/21



농부로 사는 즐거움

저자
폴 베델, 카트린 에콜 브와벵 (정리) 지음
출판사
갈라파고스 | 2014-09-11 출간
카테고리
시/에세이
책소개
"내 비밀낚시터는 침묵의 장소이자 그 누구도 침범하지 않는 나만...
가격비교


그에게 있어 농부라는 직업은 자유와 같은 말이다. 필요한 만큼 일하고, 필요한 만큼 쉬고, 필요한 만큼 가질 수 있기 때문이다. 이웃들이 우유업체와 계약을 맺고 그 계약에 맞추기 위해 허둥지둥 살아가지만, 그와 그의 가족은 낙농업자의 시간표에 얽매여 생활하지 않는다. 트럭비, 운송비, 세금 등을 더 내기 위해 서너 마리의 소를 더 길어야 했을것이고, 그렇다면 훨씬 더 많은 일을 해야 했기 때문이다. 그에게 부란 자신이 하고 싶을때 일하고, 자고 싶을때 자고, 배가 고프면 먹는 것이다. 폴은 이미 가지고 있는 밭과 소들로 충분히 먹고 살 수 있었기에 밭의 크기를 늘리고 소의 마릿수를 더 늘리는 데 욕심을 내지 않았다.

그래서 이웃들이 비료 가격에 쩔쩔매고 우유 유통업자들의 채근에 시달리는 동안 여유와 자유를 잃지 않고 자신의 속도대로 천천히 살아 갈 수 있었다.

- 프랑스 늙은 농부가 사는 방법 -


저작자 표시 비영리 변경 금지

NIPA의 SW 자산뱅크는 공공 및 민간의 우수 SW 자산을 공유하는 서비스입니다. 지난달 매주 발행되는 웹진에 기사를 써달라는 요청을 받았습니다. 어떤 내용을 쓸까 고민하다가 평소 사내에서 진행하던 '클린코드와 코드리뷰' 교육 내용을 글로 정리해서 보내드렸는데 그게 오늘 나왔네요.


클린 코드에 관심있는 개발자 분이라면 한번 읽어보시길 권해드립니다.


SW 자산뱅크 기사 링크: https://www.swbank.kr/introduce/bbs/knowledgeChannelView.do?nttId=226

저작자 표시 비영리 변경 금지

'Work & Study > 애자일 개발' 카테고리의 다른 글

DevOps 2년차  (0) 2014/12/01
레거시 코드 어디까지 가봤니  (0) 2014/09/18
Agile Korea 2013 발표 영상 - 켄지 히라나베  (0) 2014/07/09
PMI 회고  (0) 2013/12/15
스크럼 팀에서의 팀장의 역할  (2) 2013/12/10
자율이 오히려 부담이 될수있다.  (0) 2013/11/29

이야기의 힘

Life & Culture/서평 2014/08/25 14:24 posted by k16wire

사람들이 이야기를 좋아하는 이유는 그것이 때로 '내' 삶에 없는 것을 보완해주는 판타지가 되어주기 때문이고, 보잘 것 없는 '내' 일생에 의미를 부여해주기 때문이다.


[1] EBS 다큐 프라임 '이야기의 힘 1부': http://www.youtube.com/watch?v=ig1ajHtKVmU

[2] EBS 다큐 프라임 '이야기의 힘 3부': http://www.youtube.com/watch?v=qzuOl5ef8oI


저작자 표시 비영리 변경 금지

'Life & Culture > 서평' 카테고리의 다른 글

이야기의 힘  (0) 2014/08/25
꿈꾸는 다락방  (0) 2014/07/29
우리는 언젠가 죽는다  (0) 2014/06/26
해커와 화가  (0) 2014/06/19
탐스 스토리  (0) 2014/04/09
칸반과 스크럼  (0) 2013/05/21

Play 책 저술을 접습니다.

Work & Study/TechTalk 2014/08/12 09:39 posted by k16wire

출판사와 맺었던 Play 책 저술 계약을 파기했습니다. 책을 쓰겠다고 결심하고 1년 넘게 진행했던 일을 접으려니 아쉬움이 남네요. 사실 원고를 80~90%정도 쓰고나서 출판사 리뷰, 독자리뷰도 여러차례 진행하면서 몇가지를 깨달았습니다.


  • 이 책은 많이 팔리지 않을거 같다.
IT책이 아니더라도 국내 출판 시장이 부진한건 어제 오늘 일이 아닙니다. 그중에도 IT책은 더 심하죠. 당장 써먹을수 있는 기술이나 트렌드가 되는 기술이 아니면 책을 사지 않습니다. 애자일, SW 품질, Play 프레임워크 같은 기술은 철저히 외면받는게 현실입니다. 팔릴거 같지 않은 책을 굳히 내겠다고 출판사를 조르는것도 아닌거 같습니다.
  • 책을 쓰는게 돈벌이가 안된다.
책을 쓰는 목적이 여러가지가 있겠습니다만 들어간 시간대비 비용은 보전할수 있어야 한다고 생각합니다. 저술의 경우 인세율은 5~15% 사이입니다. 보통 8-10% 정도 받는다고 보시면 맞습니다. 10,000원이 정가인 책을 1쇄(2000~3000권)를 찍는다고 하면 저자가 손에 쥘수 있는 돈은 인세 8%기준일때 160~240만원 정도되겠네요. 이 돈이면 그냥 강의한번 하는게 낫죠. 책이 많이 팔리면 더 많이 벌수 있는거 아니냐고 반문하실 분들도 계실거 같은데 IT책은 1쇄를 파는데 보통 1년이 걸리고 2쇄를 안찍고 절판되는 경우도 흔합니다.
  • 제가 쓰고 싶은 책은 이게 아닌데
이 부분이 저술을 접게된 가장 큰 이유입니다. 처음에 쓰겠다고 잡았던 컨셉은 점점 안드로메다로 가버리고 어느새 제 손에는 전혀 다른 책이 들려 있었습니다. 독자들이 원하는 책, 읽고 싶어하는 책에 맞추다 보니 저도 모르게 그렇게 되더군요. 그러고 나니 점점 책을 교정보기 싫어하는 자신을 발견했습니다. 왜 내가 이렇게 싫은일을 꾹꾹 참으면서 해야하는 거지.

책을 낼겁니다. 그런데 이런 기성 출판 시장의 문제점을 끌어 안은채 내고 싶지는 않네요. 제가 쓰고 싶은 책을 원하는 방식으로 내기 위해서 오늘은 저술을 접습니다.


저작자 표시 비영리 변경 금지

'Work & Study > TechTalk' 카테고리의 다른 글

AWS 콘솔에서 Docker 지원  (0) 2014/11/27
도커 입문서 Docker Book  (0) 2014/11/25
Play 책 저술을 접습니다.  (9) 2014/08/12
Try Ruby  (0) 2014/08/07
멤버변수 타입과 클린코드  (0) 2014/03/31
빌드배포 시스템 JARVIS  (0) 2014/02/26

벤쿠버 시내에서 촬영된 광고라고 하는데 아이디어 참 좋네요.



저작자 표시 비영리 변경 금지

프랑스 대학입학 자격시험 '바칼로레아' 이야기입니다.


http://www.youtube.com/watch?v=Imx7vgTslyY


단순히 학생들의 대학 입학 자격여부를 묻는게 아니라 정치가,교수,일반 시민까지 자신들의 의견을 자유롭게 토론한다는게 와 닿네요. 진정한 교육이 바로 이런게 아닐까요.


저작자 표시 비영리 변경 금지

Try Ruby

Work & Study/TechTalk 2014/08/07 20:54 posted by k16wire

루비 언어를 쉽게 배울수 있게 해주는 사이트입니다.


http://tryruby.org/levels/1/challenges/2


저작자 표시 비영리 변경 금지

'Work & Study > TechTalk' 카테고리의 다른 글

도커 입문서 Docker Book  (0) 2014/11/25
Play 책 저술을 접습니다.  (9) 2014/08/12
Try Ruby  (0) 2014/08/07
멤버변수 타입과 클린코드  (0) 2014/03/31
빌드배포 시스템 JARVIS  (0) 2014/02/26
git 레파지터리에 대한 통계가 필요하면 gitstats  (0) 2014/01/07

꿈꾸는 다락방

Life & Culture/서평 2014/07/29 02:59 posted by k16wire

이 책에 대한 이야기를 많이 들어서 호기심에 읽어봤습니다. 자기 계발서가 이야기하는 많은 내용중 하나라는 생각이 들었지만 끝까지 읽어봤네요. 책에서 말하는 원리는 단순합니다.

R = VD

생생하게 vivid 꿈꾸면 dream 이루어진다. realization

시크릿 이후 이런 이야기를 많이 들어서 새롭지는 않았습니다. 그래도 느낀 것 몇가지만 정리합니다.

  • 무조건 노력하기 보다는 성공 이후를 꿈꾸는게 필요하다.(공감)
  • 자신의 메세지를 전달하고 싶다면 처음부터 끝까지 일관되게 강조하는게 중요하다.
  • 사람들이 기억할만한 문구,공식을 만들어서 제시하자
  • 사례를 자신의 논리에 맞게 활용하자. 

전 꿈이라는 용어보다 비전이라는 용어를 선호해서 비전이 있어야 성공한다고 믿습니다. 

비전이 있으면 어려운 상황에도 굴하지 않고 밀고 나가는 의지가 생기고 여기에 실행력이 뒷받침 되었을때 성공하는게 아닐까요.


저작자 표시 비영리 변경 금지

'Life & Culture > 서평' 카테고리의 다른 글

이야기의 힘  (0) 2014/08/25
꿈꾸는 다락방  (0) 2014/07/29
우리는 언젠가 죽는다  (0) 2014/06/26
해커와 화가  (0) 2014/06/19
탐스 스토리  (0) 2014/04/09
칸반과 스크럼  (0) 2013/05/21

그대 발 딛는 곳 내 꿈

Life & Culture/생각지도 2014/07/16 03:33 posted by k16wire

내게 금빛과 은빛으로 수놓은

천상의 천이 있다면

밤과 빛, 어스름을 닮아 푸르고 몽롱하여

칠흑같은 천이 있다면

그 천을 당신의 발 밑에 펼쳐놓으련만,

저는 가난하여

가진 것이 꿈뿐이라,

제 꿈을 당신의 발 아래 펼쳐놓아요.

사뿐이 즈려 밟고 가셔요

그대 발 딛는 곳 내 꿈이오니


출처: 켄 로빈슨 경: 학습혁명을 말하다

http://www.ted.com/talks/sir_ken_robinson_bring_on_the_revolution?language=ko#t-1020266


저작자 표시 비영리 변경 금지

'Life & Culture > 생각지도' 카테고리의 다른 글

프랑스 늙은 농부가 사는 방법  (0) 2014/09/24
지식채널e - 시험의 목적  (0) 2014/08/08
그대 발 딛는 곳 내 꿈  (0) 2014/07/16
야근하는 직장인의 속마음  (0) 2014/06/29
객체지향 생활체조  (0) 2014/06/17
국민의 집  (0) 2014/05/26