'허니몬의 IT 이야기/프로그래머, '코드 엔지니어''에 해당되는 글 99건

허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

http://www.springcamp.io/2015/


3번째 준비하는 스프링캠프.

많은 개발자들이 교류할 수 있는 즐거운 축제가 되길 항상 바랍니다. ^^


허니몬의 IT 이야기/프로그래머, '코드 엔지니어'
책은 계속 지르게 된다.
도서정가제가 도입되어도 지르겠지.

허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

Honeymon의 Markdown 사용기

"허니몬의 마크다운 사용기" from Ji Heon Kim

1. 마크다운에 관하여

1.1. 마크다운이란?

Markdown은 텍스트 기반의 마크업언어로 2004년 존그루버에 의해 만들어졌으며 쉽게 쓰고 읽을 수 있으며 HTML로 변환이 가능하다. 특수기호와 문자를 이용한 매우 간단한 구조의 문법을 사용하여 웹에서도 보다 빠르게 컨텐츠를 작성하고 보다 직관적으로 인식할 수 있다.
마크다운이 최근 각광받기 시작한 이유는 깃헙(https://github.com) 덕분이다. 깃헙의 저장소Repository에 관한 정보를 기록하는 README.md는 깃헙을 사용하는 사람이라면 누구나 가장 먼저 접하게 되는 마크다운 문서였다. 마크다운을 통해서 설치방법, 소스코드 설명, 이슈 등을 간단하게 기록하고 가독성을 높일 수 있다는 강점이 부각되면서 점점 여러 곳으로 퍼져가게 된다.

1.2. 마크다운의 장-단점

  • 장점
    1. 간결하다.
    2. 별도의 도구없이 작성가능하다.
    3. 다양한 형태로 변환이 가능하다.
    4. 텍스트(Text)로 저장되기 때문에 용량이 적어 보관이 용이하다.
    5. 텍스트파일이기 때문에 버전관리시스템을 이용하여 변경이력을 관리할 수 있다.
    6. 지원하는 프로그램과 플랫폼이 다양하다.
  • 단점
    1. 표준이 없다.
    2. 표준이 없기 때문에 도구에 따라서 변환방식이나 생성물이 다르다.
    3. 모든 HTML 마크업을 대신하지 못한다.

2. 마크다운 사용법(문법)

2.1. 헤더Headers

  • 큰제목: 문서 제목

      This is an H1
      =============
    

This is an H1

  • 작은제목: 문서 부제목

      This is an H2
      -------------
    

This is an H2

  • 글머리: 1~6까지만 지원

    # This is a H1
    ## This is a H2
    ### This is a H3
    #### This is a H4
    ##### This is a H5
    ###### This is a H6
    

This is a H1

This is a H2

This is a H3

This is a H4

This is a H5
This is a H6
# This is a 7.

2.2. BlockQuote

이메일에서 사용하는 > 블럭인용문자를 이용한다.

> This is a blockqute.

This is a first blockqute.

This is a second blockqute.

This is a third blockqute.

이 안에서는 다른 마크다운 요소를 포함할 수 있다.

This is a H3

  • List
     code
    

2.3. 목록

● 순서있는 목록(번호)

순서있는 목록은 숫자와 점을 사용한다.

1. 첫번째
2. 두번째
3. 세번째
  1. 첫번째
  2. 두번째
  3. 세번째

현재까지는 어떤 번호를 입력해도 순서는 내림차순으로 정의된다.

1. 첫번째
3. 세번째
2. 두번째
  1. 첫번째
  2. 세번째
  3. 두번째

딱히 개선될 것 같지는 않다. 존 그루버가 신경안쓰고 있다고…

● 순서없는 목록(글머리 기호)

* 빨강
* 녹색
* 파랑

+ 빨강
+ 녹색
+ 파랑

- 빨강
- 녹색
- 파랑
  • 빨강
    • 녹색
      • 파랑
  • 빨강
    • 녹색
      • 파랑
  • 빨강
    • 녹색
      • 파랑

혼합해서 사용하는 것도 가능하다(내가 선호하는 방식)

  • 1단계
    • 2단계
      • 3단계
        = 4단계

2.4. 코드<pre><code></code></pre>

4개의 공백 또는 하나의 탭으로 들여쓰기를 만나면 변환되기 시작하여 들여쓰지 않은 행을 만날때까지 변환이 계속된다.

This is a normal paragraph:

    This is a code block.
end code block.

실제로 적용해보면,
This is a normal paragraph:

This is a code block.

end code block.

2.5. 수평선<hr/>

아래 줄은 모두 수평선을 만든다. 마크다운 문서를 미리보기로 출력할 때 페이지 나누기 용도로 많이 사용한다.

* * *

***

*****

- - -

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

2.6. 링크

  • 참조링크
[link keyword][id]
[id]: URL "Optional Title here"

Link: [Google][googlelink]
[googlelink]: https://google.com "Go google"

Link: Google

  • 인라인 링크

    syntax: [Title](link)
    

    Link: Google

  • 자동연결

    <http://example.com/>
    <address@example.com>
    

http://example.com/
address@example.com

2.7. 강조

*single asterisks*
_single underscores_
**double asterisks**
__double underscores__
++underline++
~~cancelline~~

single asterisks
single underscores
double asterisks
double underscores
underline
cancelline

2.8. 이미지

![Alt text](/path/to/img.jpg)
![Alt text](/path/to/img.jpg "Optional title")

석촌호수 러버덕
석촌호수 러버덕

사이즈 조절 기능은 없기 때문에 <img width="" height=""></img>를 이용한다.


3. 마크다운 사용기

3.1. 이지윅(WSYWIG) 에디터

우리가 흔하게 접하는 웹에서 사용되는 에디터(네이버, 다음, 구글 등)이 대부분 이지웍 에디터에 속하며 기본적으로 HTML을 이용하여 스타일을 적용하여 문장을 꾸미는 형태를 취하게 된다. 그래서 하루패드와 같은 마크다운 에디터의 View 영역의 내용을 복사하여 붙여넣기를 하면 대체적으로 View영역에서 보이는 그대로 복사되는 편이다. 다만, 붙여넣기 이후에 문장들을 수정하려고 할 떄 문제가 되는데, 이는 스타일이 포함된 태그가 수정과정에서 변형되면서 전체적인 영향을 끼치는 탓이다. 티스토리 블로그에서는 쉽지 않고… 워드프레스의 경우에는 마크다운으로 작성된 포스트를 HTML로 변환해주는 기능을 활용하는 것이 좋다.
결론은, 복사해서 붙여넣기하면 가급적이면 본문은 수정하지 않는 것이 좋다.

3.2. 깃헙Github, 비트버킷Bitbucket과 요비Yobi 등

최근 유행하는 협업개발플랫폼의 경우에는 마크다운을 변환하는 컨버터 기능을 기본탑재하고 있기 때문에 마크다운 문법으로 작성한 텍스트를 그대로 복사해서 붙여넣거나 업로드하는 것만으로 마크다운의 적용이 가능하다.

3.3. MS워드 적용

View 영역의 항목을 그대로 붙여넣거나 HTML 내보내기 등으로 생성한 파일을 불러오는 형태로 사용가능하다. 적용한 헤더를 워드가 읽어드리면서 목차에 적용하기 때문에 이를 활용하면 목차까지도 손쉽게 적용이 가능해진다.


4. 정리

마크다운은 기본문법만 알고 있다면 일반 텍스트편집기에서도 손쉽게 작성이 가능한 마크업언어다. 현재 다양한 도구와 플랫폼에서 지원하고 있기 때문에 더욱 손쉽게 스타일적용된 문서를 작성할 수 있기 때문에 점점 널리 사용되고 있다. 마크다운을 이해하고 사용하면서 쉽고 빠르게 스타일문서를 작성해보세요.
저는 Dropbox 프로를 구매해서 집-랩탑-스마트폰이 각각 연동을 시켜서 사용하고 있습니다. 드랍박스에 저장된 마크다운 문서는 Dropbox 웹서비스 상에서 제공하기 때문에 웹상에서 바로 열람할 수도 있어 링크를 걸어서 다른 사람과 공유하는 형식으로 사용하고 있다.

○ 참고문서


허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

지난 2월 22일 토요일, 세종대학교 광개토관에서 열린 ‘제 14회 한국자바개발자 컨퍼런스(http://www.jcoconference.co.kr/)’가 열렸다.


이 컨퍼런스의 커뮤니티 세션에서 ‘REST API 설계와 구현(A부터 I까지)’이라는 제목으로 발표를 진행했다.

이 바닥에 개발자로 뛰어든지 5년만에 이룬 쾌거다. 개발자로서 30대 중반에는 한번 해봐야지 하고 계획했던 일 중에 하나.


시작하게 된 계기는 의외로 단촐했다.
JCO 커뮤니티 트랙에서 스프링 4.0에 대한 발표와 관련한 회의를 하다가 불쑥 결정되었을 뿐이다.
지난 해부터 꾸준하게 REST API에 대한 내용으로 누군가가 발표를 해주었으면 좋겠다고 이야기를 하고 있었는데

그럼 네가 하면 되겠네.

라는 이야기와 함께 순식간에 결정되어버렸다. 하아…

하기로 결정된 것, 번복하기에는 이미 늦어버린 상황이라, 한 달정도의 기간이 남은 상황에서 준비를 시작한다.
SLiPP.net 에서 발표했던 내용을 조금 더 다듬어서 준비하면 되겠지 하는 안.일.한. 생각으로 준비를 했다.

처음에 계획했을 때는,





REST API 에 대한 이야기(A부터 I까지). 모바일 시대에 들어서면서 다시한번 개발자들의 관심을 받기 시작한 REST API. 그 근간이 되는 리소스에 대한 이야기부터 REST API 설계, 스프링을 이용한 구현, 테스트와 문서화에 대해 이야기한다.

라는 주제를 잡고 이야기를 시작했는데, 정작 발표하겠다고 준비하는 내용은 REST API의 이론적인 설명에 대한 이야기들로 가득했다. 나도 모르게 ‘45분 이라는 발표시간만 채우면 되지.’ 라는 안일한 생각을 품고 있었을 것이다. 사실… 하기 싫… 주변에서는 ‘좋은 기회’라고 하는데 그게 막상 내가 하게 되니까 꼭 그렇지는 않더라. 배부른 소리하고 있는거지…. 누군가에게는 간절히 바라는 것일텐데.

발표를 몇일 앞두고, 커뮤니티의 리뷰가 있었다. 한창 발표자료와 발표예제(Rocking the REST API - github)를 작성하고 있는 상황이었다(지금도 작성하고 있지만… 추가적으로 사용하는 예로 AngularJS를 이용한 프론트 프로젝트(Rocking the REST API View)도 조금씩 만들고 있고). 내 발표내용을 들으신 분들의 이야기는 무엇을 말하고 싶은 것인지 정확히 모르겠다 였다. 여기서 덜컥하는 마음이 들었다. 이대로하면 안되겠구나….
집으로 가는 길에 어떻게 해야하나 궁리를 한다. 그리고는 ‘하나의 이야기를 만들어 그 이야기를 따라서 발표를 하자.’라고 기본 가닥을 다시 잡고 발표내용을 싸그리 뒤집었다. 이야기의 흐름은 ‘사용자가 커뮤니티(처음에는 그룹이었는데 Group 이라는 이름이 DB의 예약어와 충돌하면서 테이블이 생성되지 않는 문제가 있어서 커뮤니티로 교체했다. 마음이 조급하니까 이 문제를 파악하는데 상당한 시간이 소요되었다. 하아… )를 만들고 회원으로 가입하여 글을 쓰는 서비스를 만든다.’ 라는 가닥을 잡았다.



그리고 발표내용을 싸사삭 바꾸고, 발표예제도 싸악 바뀌었다. 발표내용과 발표예제를 맞추는 작업이 생각보다 많은 수고스러움을 야기한다. 발표를 할 때는 발표에 사용할 PPT와 발표와 관련된 내을 전달하는 문서(Word or Markdown)와 발표내용으로 구성된 예제를 보여주는 것이 좋겠다는 생각을 가지고 있는 나였기에 좀 무리를 했다. ㅡ_-);;; 어쨌든, 스프링 프레임워크를 기반으로 해서 동작하는 REST API 프로젝트를 만들어 제공하고 싶었다.

을 사용한 예제를 만들었다. 발표용 PPT는 발표날 새벽에 만들어졌고, 발표예제는 발표전까지도 계속 개발되었다…. 하아.
벼락치는 삶의 일부로구나. 커피와 포션으로 점철된 발표날이었다.

그리고 발표가 시작되었다.





45분의 발표시간이 어떻게 지나갔는지 잘 모르겠다. 그래도 사람들 앞에서 하는 두번째 발표라고 나름 여유가 생겼는지 사람들을 살펴보기도 하고 시간 조절(생각해보면 발표내용은 실제로 35분 정도 밖에 안되었다… 급 내용변경을 하면서 충분하게 채워넣질 못했어)도 하면서 무사히 발표를 마쳤다. 너무 많은 분들이 오셔서 오히려 내가 미안할 지경이다.

발표내용에 어느정도 공감을 해주셨을까?
발표를 마치고 난 후에는 긴장감이 풀려서는 아무 것도 하기가 싫었다. 그래서 지인들과 근처의 카페에 자리를 잡고 수다를 떨다가 어린이대공원을 산책하며 긴장했던 몸과 마음을 이완시켰다. 뒷풀이도 잘 끝나고 무사히 잘 마쳤다.


발표를 끝내고 난 뒤, 여러가지 아쉬움이 많이 남아있었다.
‘내가 좀 더 많은 경험과 지식을 가지고 있었다면 더 좋은 내용들을 전달할 수 있었을텐데’하는 아쉬움이 제일 컸고 이 아쉬움은 지금까지도 남아있다. 나보다 더 많은 경험과 노하우를 가지고 계신 분들이 이 바닥에 많으실텐데… 그 분들의 이야기를 듣고 싶은데 그 분들은 잘 드러나지 않는다. 내가 제대로 모르는 것인지도 모르지만…

다른 사람들의 발표를 듣고서 이런저런 이야기만 하던 입장에서 사람들 앞에서 발표하는 입장을 겪고 보니, 다른 사람들 앞에서 발표를 하는 게 결코 쉬운 일이 아니라는 것을 알게 되었다. 발표를 듣기 위해 오는 사람들이 어떨지 예측하기도 쉽지 않다. 그래서 ‘REST API에 대해 호기심을 가지고 있는 초보자’라고 청중을 특정짓고 이야기를 꾸려갔다.

난 지금도, 기술관련 발표라면 그 기술을 이해할 수 있도록 다각적인 발표자료가 준비되어야 한다고 본다.

  • 발표내용을 훑어볼 수 있는 ppt
  • 발표내용에 대한 상세한 설명된 문서
  • 실행가능한 예제

… 이거 준비하려면 발표하기 오래전부터 준비를 해둬야한다는 게 흠이고… 효율성은 많이 떨어진다. 그래야 조금이라도 도움이 된다고 생각한다. 실제로 보면 하찮거나 별거아닌 쉬운 기술일지도 모르지만, 그것을 어떻게 구성하고 어떻게 동작하는지 살펴볼 수 있으면 더욱 이해하는데 도움이 된다고 생각하니까.

발표를 끝내고 나니,

이제 발표 안할거야.

라는 생각이 절로 든다.
발표가 끝나고… 난 강릉으로 떠났다.


2014/03/02 - [허니몬의 취미생활/여행객!] - 20140224 바우길 1코스 - 선자령 풍차길



허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

우리나라에서 일반인들이 가지고 있는 일반적인 잘못된 편견이 하나있다.

손님은 왕이다.

1, 2차 산업에서 3차 서비스 산업이 확산되고 서비스와 관련된 일에 종사하고 있는 사람들이 늘어나기 시작한다.
이런 서비스에 종사하고 있는 사람들은, ‘자신이 서비스 제공자이고 자신이 서비스 사용자’이기도 하다.
그런데 그런 그들 사이에서 공유하고 있는 공통된 명제가 하나있다.

손님은 왕이다.


Lifesize Religious King Statue with Spear
Lifesize Religious King Statue with Spear by epSos.de 저작자 표시


이것은 비단 서비스업이 아니라, 고객을 대상으로 하는 IT산업도 마찬가지다. SW산업 중 컨텐츠를 생산하고
서비스를 제공한다. 그리고 그 서비스를 개발하기 위해 수많은 기획자-디자이너-개발자가 얽혀있다.

이런 글을 쓰게된 발단이 되는 일은, 최근에 있었던 네이버 웹툰의 ‘스마트뷰(그리드 컴퓨팅)’ 기술도입에 관련된 일화다.

네이버 웹툰 스마트뷰

로 검색해보면 관련된 내용들을 찾아보면 된다. 간단히 설명하자면,

  • 네이버웹툰은 자정(00시)을 기점으로 그날의 웹툰이 업데이트가 된다.
  • 이 웹툰을 보려고 사람들이 자정부터 엄청나게 접속한다.
  • 이게 웹툰서비스가 동작하고 있는 서버에 엄청난 부하(트래픽)가 집중된다.
  • 이 부하를 견디려면 그만큼의 자원(서버)를 준비하고 있어야 한다.
  • 이 부하를 견디고나면 트래픽은 ‘미미’하다고 할 수 있을만큼 줄어든다.
  • 이 최고치와 최저치 사용의 갭이 매우 크다. 이걸 유지하기 위한 비용이 만만찮다.
  • ‘스마트뷰’라는 서비스로 둘러쳐진 것을 사용자의 컴퓨터에 설치해서 이 부하를 분산하려고 한다.

이 부분 정도가 대략적인 ‘스마트뷰’ 도입의 계기라고 짐작을 한다. 나는 실제 서비스 관련자가 아니니까 짐작이다.
이에 대해서 네이버에서는 ‘스마트뷰’라는 해결책을 내놓는다. 스마트뷰는 ‘그리드 컴퓨팅’이다.

그리드 컴퓨팅(grid computing)은 최근 활발히 연구가 진행되고 있는 분산 병렬 컴퓨팅의 한 분야로서, 원거리 통신망(WAN, Wide Area Network)으로 연결된 서로 다른 기종의(heterogeneous) 컴퓨터들을 묶어 가상의 대용량 고성능 컴퓨터를 구성하여 고도의 연산 작업(computation intensive jobs) 혹은 대용량 처리(data intensive jobs)를 수행하는 것을 일컫는다.

‘그리드 컴퓨팅’ 기술에 ‘자정 이전에 다음날 나올 웹툰을 볼 수 있다.’ 라는 기획이 곁들여졌다. 웹툰 소비자들은 그러게
‘스마트뷰’를 위해 프로그램들을 설치한다. 이 과정에서 네이버측은 스마트뷰가 사용하고 있는 기술에 대한 이야기와 그 기술을
사용하기 위한 공지를 하지 않았다.
 이게 스마트뷰에 대한 오해를 일으키는 요인이 되었다.

  • 웹툰 소비자들은 조금이라도 빨리 웹툰을 보고 싶어했다.
  • 네이버는 ‘스마트뷰’를 설치하면 그게 가능하다고 했다.
  • 이 ‘스마트뷰’가 ‘그리드 컴퓨팅’이라는 기술을 사용했고 이 그리드 컴퓨팅은 사용자의 컴퓨터에 설치되어 일부 사양(CPU, 메모리, 저장소)을 사용할 수 있다.
  • 네이버는 이런 ‘스마트뷰’의 동작원리나 기능에 대한 설명을 ‘웹툰 소비자’들에게 공지하지 않았다.
  • 이 ‘스마트뷰’의 기술에 대해 알게된 사람들이 ‘그리드 컴퓨팅’에 대해 설명하면서 이에 열폭한 ‘스마트뷰’ 설치자와 웹툰 소비자들이 열폭한다.

조삼모사_빈칸
조삼모사_빈칸 by Jinho.Jung 저작자 표시동일조건 변경허락

뭐… 그렇다.

이 문제에 대한 내 생각은 이렇다.

뭐 이런 걸… 극성스럽게 난리를 떨지…? ‘꼭’ 12시에 봐야해? 자고 담날 출근시간 등교시간에 보면 되는거 아냐? 사람들이 살아가는 게 각박하니 ‘만만’한 것에서 극성을 떨며 난리를 치지. 우리네 삶은 왜 이리 각박하냐?

자기들이 사용자(소비자)라고 하면서 유난을 떠는데, 실제로 그 서비스를 이용하는데 얼마나 도움이 될까? 무료라는 것은 결국은 ‘유료’ 사용자들을 낚기 위한 밑밥이다. 이 밑밥이 이상하다고 난리를 치고 있…
그 속에 거들먹거리는 무리가 하나 있는데, 프로그래머나 관련업자들. 아는 놈들이 더 해. 해봤던 놈들은 좀 더 해. 자기들도 이런 상황이 되면 비슷한 해결책을 내놓을 수 밖에 없을건데.

개인적인 생각으로는 이렇게 소란스럽게 구는 이유를 모르겠다. 물론..

  • 스마트뷰에 사용된 기술
  • ‘그리드 컴퓨팅’에 동작방식
  • 돌아가는 방식에 대한 공지를 제대로 하지 않음

결국은…

00시 이후 나오는 웹툰을 조금 더 빠르게 보기 위해 ‘스마트뷰’를 설치하고 몇십분이라도 일찍 보겠다.

여기에 해주고 싶은 이야기는,

땅을 파봐라. 돈이 나오나.

이 이야기는 얼마 전에 나온,

라는 기사를 보면 딱히 드러맞지 않는 이야기지만… ㅎㅎ

내 결론을 정리하자면,

  • ‘스마트뷰’에 대한 공지를 제대로 하지 않아서 이런 난리를 일으킨 너그도 문제고…
  • 자기들의 ‘웹툰을 몇십분이라도 일찍 보겠다.’라는 욕심으로 설치한 프로그램에 열폭하는 사람들.

둘 다 좀 그래…

프로그래머와 같은 SW엔지니어들은 기술에만 집중하는 ‘중독’된 자들이다. 다른 말로는 ‘몰입’이라고 한다. 내가 작성한 코드, 내가 구성한 아키텍처들이 동작하는 모습을 보면서 ‘즐거움(혹은 쾌락?)’을 즐기는 어린애들이라고 생각한다.

프로그래머로서 살아가고 있는 나로서는, ‘타산지석’ 삼아야겠다.

조금 더 시야를 넓혀서 ‘서비스’에 대해서 관심을 가져야한다. 자신이 사용한 기술들과 마법이 어울어져서 만들어가는 ‘서비스’와 그 서비스를 사용하는 ‘사용자(…고객이라고 하기 싫다… 고객은 지랄맞다.)’를 고려해야 하고, ‘법法’적인 테두리 안에서 ‘합법’적인 활동을 하는 것이 중요하다. 그걸 쓰는 사용자들의 움직임을 조정하는 것도 재미있… 중요한 건, ‘사람’에 대해서 이해하고 관심을 가져야 한다는 거다. 결국 우리가 만드는 것들을 사용하고 그에 반응하는 것은 ‘사람’이니까.

프로그래머여, 사람에게도 관심을 가지자.

난, 평범한 ‘일반인’이다. 그렇다. 암만…

1 2 3 4 ··· 20
블로그 이미지

Email : ihoneymon@gmail.com 안녕하세요, 꿀괴물 입니다. ^^ 멋진 비행을 준비 하는 블로그 입니다. 만능형 인간이 되어 많은 이들에게 인정받고, 즐겁고 행복하게 살기를 간절히 원합니다!! 달콤살벌한 꿀괴물의 좌충우돌 파란만장한 여정을 지켜봐주세요!! ^^

허니몬