2013년 9월 23일 월요일

2013-14: 공개적인 글쓰기를 권함

들어가는 글: 6일간의 긴 추석연휴를 마치고 출근을 하려니 밤에 잠이 잘 안오네요. 3시쯤 눈이 떳는데 인터넷을 좀 하느니 직장인의 글쓰기에 관해 평소의 생각을 좀 적어보겠습니다.

0. 글쓰기는 왜?

저는 몇달전 Facebook에 공언을 했었습니다. 매주 한편씩 글을 쓰겠노라고.. 어떤 특정인에게 한 약속은 아니었지만 큰 무리없이 지금까지 계속하고 있습니다.  

  • 7월엔 7편 
  • 8월엔 5편 
  • 9월엔 3편째.. (이것포함) 
9월도 일주일정도 남았으니, 약 3개월정도 해본 것인데 처음에 발 담그기가 어렵지 막상 해보면 일기를 쓰는 것 보다는 훨씬 의미도 있고 흥미로운 것 같습니다.


1. 글쓰기를 추천합니다

이 글을 읽으시는 분께 자신만의 글쓰기를 추천합니다. 왜?

글쓰기에는 어떤 순서가 있는 듯 합니다. 대략 적어보면  

  1. 주제를 탐색한다(Search)  
  2. 적는다(Writing)
  3. 탈고한다(Accomplish)
  4. 발행한다(Publish)  
편의상 SWAP이라고 부르겠습니다.

글쓰기는 '쓰기'만 있는 것이 아닙니다. 회사에는 크게 기획부서, 개발부서, 생산부서, 영업부서가 있듯이 글쓰기에도 주제를 탐색하고 적어보고 탈고를 하고 발행을 하는 여러 절차로 이루어져 있습니다. 당연히 연결된 절차로서 하나로 볼수도 있지만 오히려 나눠놓고 보면 자기만의 강점도 발견하고 재미도 있습니다.

다시 돌아가서..

글쓰기를 왜 추천할까요?

  • 남습니다: 오늘 2004년~2006년까지 적었던 글을 모아서 '유동환's Archive'를 개설하였습니다. 10년전에 쓴 글을 보며 어찌나 뿌듯했던지.. 특히 요즘은 영어는 손에도 안대는데 그때의 영작은 단어 하나 하나에 꽤 신경을 쓴 듯 하여 반성도 됩니다. 
  • 탐색은 즐겁습니다: 일주일에 한개씩 주제를 찾는 것은 꽤나 힘듭니다. 하지만 '이번주에 뭐하지?'라고 생각하는 것은 꽤나 유쾌한 취미같습니다. 못찾으면 짜내야 합니다. 맘에 들지 않을수도 있지만 지속적으로 생각을 하니 무언가 탁탁 튀어나오는 것 같습니다. 
  • 내가 누군지 알수 있습니다: 다들 비슷합니다. 주변의 지인들과 나를 비교해보면 도대체 나만이 가진 어떤 고유한(unique) 정체성을 찾는다는 것이 쉽지 않습니다. 내가 남긴 글은 내가 누군지 구별(recognize)해주는 좋은 척도가 될 듯 합니다. 



2. 어떻게 시작할까요?

틀에 맞춘 글쓰기를 추천합니다. 제가 수년간 취미삼아 여기저기에 글을 올려본 결과 자기만의 틀을 만들어놓고 글을 쓰는 것이 '내용'에만 집중할 수 있고 글쓰기도 훨씬 편해보입니다. 내용과 구성을 함께 생각하려고 하면 정신이 집중되지 않아 금방 질리게 됩니다.

작은 가이드를 드릴테니 이렇게 해보세요

  1. 200자 정도의 짤막한 글은 Facebook에 올려보세요. FB도 좋고 twitter도 좋고 어떤 SNS도 좋습니다. 제목을 꼭 달아보세요. 한가지 명심해야 할 점은 여기는 거쳐가는 공간입니다. 여기가 종착역이 되어서는 안됩니다. 
  2. SNS에서 자신감을 얻으시면 블로그를 개설해보세요. 몇가지를 써봤는데 개인적으로 국내 포탈보다는 www.blogger.com 이나  www.wordpress.com 을 권합니다. 전자는 구글계정을 그대로 쓸수 있다는 장점이 있고 후자는 좀더 이쁘고 기능이 많습니다. 
  3. 비공개 글을 써보세요. 한두편 연습해보는 겁니다.  
  4. 공개하세요. 전혀 오글오글하지 않습니다. 생각보다 주변의 반응도 나쁘지 않습니다. 감정을 주로 전달하는 일기글보다는 어떤 주제를 갖춘 글을 올려주세요. 감정은 그때는 충실하지만 시간이 지나면 호소력이 떨어집니다. 건조한 성격의 글은 몇년이 지나도 신선도가 크게 상하지 않는 듯 합니다.  

중요한 것은 공개하라! 입니다. 혼자만의 글은 오래가지 못하는 것 같습니다.
Give it a shot! 한두편 써보고.. 세번째 글부터는 꼭 공개하시길 바랍니다. 그래야 지속할 수 있습니다.


3. 틀을 갖춰주세요. 내용에 집중할 수 있도록 

제 경우 글의 틀(template)은 아래와 같습니다.

  • 글 제목: 연도 + 일련번호 + (특집제목) + 제목
  • 챕터: 들어가는 글  -> 0번 -> 1번~3번 -> 결론 
  • 강조: 각 챕터에 볼드체 및 밑줄이 적용되어 있어 글의 내용중에 강조할 부분은 볼드체만 적용합니다. 
국어시간에 배운 기승전결도 좋고 3단 구성도 좋고 단일 구성도 좋습니다. 틀을 어느정도 고정해놓고 나는 내용만 채운다 이렇게 하는 것이 좋을 것 같습니다.

내용이 중요합니다. 제목이 특히 더 중요합니다.

   매력적인 제목을 기획해주세요!

본문의 내용은 200자만 넘는다면 짧아도 하나의 글은 유지될 듯 합니다. 그리고 글의 길이는 쓰면 자연스럽게 늘어납니다.


4. 무엇을 써볼까요?(주제) 

결국은 주제입니다. 어떤 주제로 글을 써 볼까요?

제 생각에 가장 좋은 것은 본인의 직업에 관한 내용입니다. 프로그래머라면 Software에 관한 글이 좋고 일반 회사원이라면 직장생활에 관하여.. 그리고 학생이라면 자기의 전공에 관하여 올리는 것이 가장 좋습니다. 전업주부라면 가사, 육아, 살림에 관하여 올려도 좋습니다.

그 다음에는 새로운 분야에 도전을 하세요. 단일 topic만으로는 곧 한계가 올 것 입니다.

누구나 확장할 수 있는 주제는 아래와 같습니다.

  1. 자기계발: 하루에도 수십권의 책이 쏟아집니다. 하지만 영원히 나올 수 있는 topic입니다. 좀더 잘사는 방법, 행복하게 사는 비법등 말이죠. 
  2. 재테크: 올리기만 하면 주변인에게 관심을 듬뿍 받을 것입니다. 
  3. IT: 스마트폰도 좋고 게임도 좋고 App도 좋습니다. IT일반에 대한 내용은 이제 상식입니다. 왠만한 용어는 이제 국어사전에 등재해도 좋을 정도 입니다. 쿼드코어..라는 말은 초등학생도 이해할 것입니다. 
  4. 영어공부: 영어에 대한 내용도 마르지 않는 샘물이죠. 
  5. 건강: 30대 넘어가면 체력이 예전같지 않습니다. 먹는것, 운동하는 것, 다이어트 등 건강에 대한 주제도 무궁무진합니다. 
  6. 자기만의 관심사<최고>: 이것이 단연 최고죠! 자기만의 전문분야에 관하여 글을 쓰고 의견을 개진할 수 있는 능력은 칭찬받아 마땅한 것 같습니다.  


이런건 쓰지 마세요. 불필요한 언쟁만 생길 뿐입니다.

  1. 일기.. 이런건 비공개로 해주세요. 재범이 보셨죠? 
  2. 정치.. 
  3. 종교.. 
  4. 단순한 감정.. 
  5. 펌글.. 
제가 별다른 comment를 하지 않아도 잘 이해하실 듯 합니다. 


글쓰기의 즐거움 


사실 직업으로서 작가는 그렇게 매력적이지는 않습니다. 인터넷 매체의 발달로 수많은 미디어가 쏟아지고 있기 때문에 글쓰기의 대표 매체인 '신문'도 고전을 면치 못하고 있습니다.

신문의 생명은 특종, 속보인데 왠만한 SNS가 이제는 더 빠르고 정확하기까지 합니다.

하지만 일반인의 글쓰기는 이제 '건강한 취미'로 각광받을 것 같습니다. 정신건강에는 '뇌 건강'이 필수적인데 글을 쓰게 되면.. SWAP 기억나시죠? .. 머리에 많은 신선한 자극을 가득 주는 것 같습니다.

좋은 저작 도구들이 정말 많습니다. 공짜입니다. 저도 이 글을 쓰기전에 정리를 해보니 짧은 글에서 긴글까지 특화된 여러 도구들을 이미 사용하고 있었더라구요. 기회가 되면 어떻게 각각을 쓰고 있는지 사용기를 공개하도록 하겠습니다.

한 개의 도구에 머무르지 마시고 다양한 도구에 도전해보세요. 포탈 , 무료app , 웹사이트 등등...

그리고 공개하세요. 자신과 잔잔한 대화를 시작하실 수 있습니다.
매번 반복되는 한주가 아니라 스스로 창조하는 한 주를 만들어갈 수 있습니다.

새벽이라 다소 센치한 글이 되지 않았나 싶은데,
제가 전하고 싶은 메세지는 잘 적은 것 같습니다.

긴글 읽어주셔서 감사합니다.

2013.9.24 오전4시26분 @Home



2013년 9월 14일 토요일

2013-13: 안경 탈출하기

들어가는 말: 내 시력은 양쪽 0.1이다. 어릴적에 컴퓨터를 열심히 하면서 곤두박질치던 내 시력은 1.0에서 0.1로 되는데 채 2년이 걸리지 않았다. 최근 '생각의 힘'에 관하여 많은 생각을 하고 있는데 안경으로부터 탈출해보자는 얼토당토(?)않은 계획을 세우게 되었다.


0. 한계

나는 안경학에 전문가도 아니고 관련지식도 전무하다.
순수하게 개인적이고 주관적인 관점으로 접근할 것이다.


1. 안경의 시작

내가 안경을 쓰게 된 것은 초등학교 4학년때이다. 그때 학교에 컴퓨터부가 생기면서 완전 빠져들게 된 나는 하교후 집에와서 엄마에게 이런 얘기를 하게 된다.

   '엄마~ 칠판이 안보여~ T-T'

그때부터 안경을 쓰기 시작했다. 벌써 25년이 다 되어간다.

2. 안경이란 무엇인가?

눈(eyeball)은 일종의 렌즈이다.
가까운데를 보기 위해서는 안근육을 당겨서 렌즈를 두껍게 하고 ,
먼데를 보기 위해서는 안근육을 이완시켜서 렌즈를 얇게하면
상이 맺히게 된다. 그것이 두되로 전달되는 것이다.

안경은 추가적인 랜즈를 눈위에 덫대어 안근육을 보조한다.
눈은 그대로 두고 상이 잘 맺히게 하는 방법이다.

눈의 입장에서 생각을 해보면,
안경을 쓰는 한 내 눈은 더이상 '나아질 필요'가 없는 것이다.

생명의 특성은 자기 치유력에 있다. 공기호흡과 혈액순환, 소화작용, 면역등을 통해 우리몸은 항상성을 유지할 수 있다. 신체대사 말이다. 세포도 바꾸고 에너지도 교환하고 배설도 한다.

안경을 쓰면 시력이 좋아지지는 않고 서서히 않좋아진다.
안경의 도수를 높이면 그만이다. 간편하게.


3. 안경은 어떻게 탈출할까?

1) 안경을 안써야 한다.
2) 안근육을 강화해서 안경같은 보조도구가 없이도 상이 맺히도록 해야 한다.

옛날에 안근육 운동이니 뭐니해서 많은 시도들이 있었던 것으로 안다.
사실 최근에 '1.5 시력만들기'라는 책을 샀는데 아직 펴보지는 않았다.


4. 행동 지침

난 이렇게 실천해보려고 한다. 

1) 안근육 운동을 시작한다. 집에 들어오면 안경쓰는 시간을 최소화하고 눈의 건강을 좋게하느데 노력을 할 것이다. 당근도 먹고 운동도 하고.. 올해 말까지 해보고 효과 유무를 공개할 예정이다. 

2) 생각의 힘은 매우 중요하다. '안근육'에 집중하여 안근육의 수축과 이완이 잘 될 수 있다고 지속적으로 생각할 것이다. 시력이 좋아질 것이라고 생각할 것이다. 생각만으로도 눈 주위가 간질간질하다는 느낌이 들곤 한다. 

3) 집에서 노트북을 쓸때는 글씨를 좀더 키워서 본다. 원래 Chrome을 주로 쓰는데 IE의 경우 화면 확대 기능(ctrl +/-)이 있어서 쓸만하다. 현재 이글을 쓰는 것은 200%로 해서 보고 있는데 글자가 간신히 식별된다.

이렇게 안경에서 탈출되는 시간을 최대한 확보한다. 그러면서 시력이 회복되었다는 느낌이 든다면 시력검사를 다시하여 도수가 낮은 것으로 서서히 교체해 나갈 것이다. 올해말에는 어떤 결과가 있을까?

예상되는 불편함 & 예외상황도 있다.

1) 회사에서는 가능한 노력하겠지만 안경을 써야 한다.
업무에 불편함이 있으면 안되니까.

2) 교통수단을 탈때는 안경을 벗는다. 지하철은 맨날 아는 코스니까 큰 무리는 없을 듯 한데, 버스를 탈때는 좀 불편할 것 같다.

3) 글자를 키우고 인터넷을 하는 경우 아무래도 뉴스같은 것을 보는데는 좀 불편할 것 같다. 지금도 해보고 있는데 목 부위에 살짝 부담이 되는 것 같기도 하다. 인터넷..조금 적게 하면 되지.

5. 결어

나는 안경을 벗고 싶다.
안경을 쓰지 않고 일상생활을 하고 싶고,
내 시력을 향상시키고 싶다.

사실 안경쓰면서 일년에 두어번 정도 코 주위가 따끔따끔하여 한 이틀간 안경을 쓰지 않고 생활을 하는데 이것도 불편하다. 피부과에 가봤더니 근본적인 해결책은 없고 그냥 쉬면 된단다.

라식/라색이라는 수술에 의해 시력을 향상시킬 수도 있지만 내 생각에는 이것도 '안경'의 연장이다. 자연적으로 치유할 방법이 있을 것 같다. 적어도 현재 시력인 0.1은 극복될 수 있을 것으로 기대한다.

과연 잘 될까?

2013.9.15 @Home

2013년 9월 6일 금요일

2013-12: 고급 SW엔지니어로 가는 길 ③Git은 배워야 한다

들어가는 글: Git을 사용한지도 3년이 넘었다. 부끄럽게도 최소한의 명령어인 git pull / git push로 근근히 버텨오던 내게 드디어 '한계'가 찾아왔다. 최근 조직개편으로 나의 든든한 'Git 전문가'들은 모두 다른 팀에 있는 터라 충격이 더 컸다. 문제는 잘 해결되었지만 크게 반성하는 계기가 되었다. Git은 배워야 하는구나...


0. 지난 3년간 Git 사용기 

운이 좋게도 내가 속한 부서에는 항상 Git의 전문가가 있었다. 예전 회사에서는 CVS, SVN을 선도적으로 도입하자고 주장을 해왔던 나지만 Git 세계에 와서는 진짜 가장 최소한의 명령어만 사용하고 근근히 버텨왔던 것이다. Git이 와닿지 않았고 주변에 전문가에게 '물어보면' 되니까! 문제가 없었다.

GUI 툴을 쓰기보다는 콘솔에서 git command를 직접날리는 내 모습을 보며 '오~ 이정도면 되는거 아닌가?'라는 착각에 빠져들기 딱 좋은 나날들이었다.

<근근히 Git 쓰는 방법>
 - git init : 초기화 한다. 회사에서 문서 다 준다.
 - repo sync : 해당 branch 땡긴다.
 - repo start : 시작한다.

 - repo sync . 혹은 git pull : 난 두개의 차이가 무엇인지도 모른다.
 - git add -A : 추가하면 무조건 실행한다.
 - git commit : 커밋한다.
 - repo upload : git push랑 똑같음 (gerrit 연동하여 소스리뷰함)


1. Git은 무조건 어려워 


CVS, SVN을 쓰다가 Git으로 처음 넘어오면 하는 말이 'Git은 너무 어려워'이다. 나도 그랬고 덕분에 3년이라는 시간동안 정말정말 최소한의 필요한 명령어만 사용했던 것이다.

Git은 왜 어려울까?

1) SVN은 정말 단순하다. 내려받고(synchronize) 비교하고 커밋하면 끝난다. 이게 끝이다. 마치 중앙서버에 붙어있는 단말기(terminal)로 통신하는 것에 비유될 수 있다. 2009년까지 개발할 때는 branch라는 개념도 거의 없었던 것 같다. trunk라는 단일 브랜치면 충분했었다.

하지만 Git은 먼저 repository라는 개념부터 알아야 한다. 왜냐면 중앙서버가 아니니까. 그 얘기는 내 PC에도 레파지토리가 있고 서버에도 레파지토리가 있고 다른 개발자의 PC에도 레파지토리가 있는 것이다.

즉, '레파지토리가 있다' 라는 개념부터 시작해야 한다.

2) Git은 배워야 알 수 있다. 

SVN의 경우 시스템이라기 보다는 집에서 사용하는 망치, 줄자, 드라이버와 같은 소도구에 비교할 수 있다. 즉, 배울 필요가 없다. 상식만 가지도 쉽고 유용하게 사용할 수 있다.

Git은 배워야 알 수 있다.

Git이 무엇인지도 알아야 하고, 왜 복잡한 명령어가 필요한지도 공부하면 좋을 듯 하다. 요즘에는 좋은 gui tool도 많이 나와 있지만 급한 길도 돌아가라고 git command를 잘 쓰면 여러모로 훨씬더 power user에 가까이 갈 수 있다고 생각한다.


2. Git 어떻게 배울 것인가 


인터넷에 수많은 좋은 자료가 있다. Pro Git이라는 책은 무료로 배포가 된다.

 - git 궁극의 매뉴얼: http://git-scm.com/docs 
 - Pro git 책(한글)  : http://git-scm.com/book/ko 

하지만 내가 요즘 읽고 있는 요 책은 정말 감동적이다. 내 주변의 'Git 전문가'가 추천해준 책으로 Git의 원리부터 설명하는 접근법이 매우 맘에든다. 영어라는 점이 속도를 더디게 하지만 충분히 의욕을 가지고 도전해볼만한 서적이다. 

 - 제목 : Version Control with Git


3. Git이란 무엇인가 


Git이란 무엇인가? 왜 공부해야만 하는 주제인가? 소스코드 올리고 내리는 개발 tool 아닌가?

휴대폰을 개발하기 위해서는 수백명의 개발자가 투입되고 따라서 개발팀 , 운영팀의 Git repository는 별도 운영된다. 개발팀은 1개의 휴대폰만 개발하는 것이 아니고 어떤 모듈은 전 모델을 공통 대응하거나 아니면 특정 사업자의 모듈에만 대응해야 하기 때문에 그 관계는 매우 복잡하다.

 - 개발팀 : 프로그램을 개발하는 repository 운영
 - 운영팀 : 실제 휴대폰의 source를 build하는 역할(배포)

문제는 개발팀과 운영팀의 관계가 M:N 관계라는 데 있다.
그리고 수백명이 하루에도 몇만 라인을 갈아치울 수도 있다.

Git은 이러한 수많은 변경사항을 conflict를 최소화하면서 운영하게 해주는
소스코드 관리 시스템인 것이다.

     "Git은 도구가 아니고 배워야 알고 쓸 수 있는 소스코드 관리 시스템이다." 유동환

1) Git의 기본단위는 repository이다. 레파지토리는 중앙에만 있는 것이 아니다. 개발자 PC 각각에 존재한다.

2) Git은 파일을 저장하지 않는다. 각각을 object라고 부른다. 파일이 아니라 object라는 생각은 매우 중요하다. 객체 지향에서 말하는 그런 개념은 절대 아니며 '파일이 아니다'라고 생각하면 좋겠다.

3) Git은 SHA1를 통해 구별한다.


Summary 

1. Git은 배워야 알고 쓸 수 있다. 명령어를 쓰자.

2. Git의 기본단위는 레파지토리다. 각각의 레파지토리다.

3. Git은 파일을 저장하지 않는다. object를 사용한다.

4. Git은 SHA1으로 구별한다. 변경을 식별한다.


** 앞으로 Git에 관해서 몇 편더 글을 써볼까 합니다. Git맹에서 Git활용자로 거듭나는 모습을 보여드리고 싶습니다. 감사합니다.

2013.9.7 @Home