코딩을 하다가 막히는 부분이 있어서 질문을 하고 싶거나,
혹은 내가 작성한 코드를 다른 사람들에게 보여 주어야 할 때가 있습니다.
그런데 코드를 공유한다는 것이 말처럼 쉽지만은 않죠.
파일 자체로 공유를 하려면 상대에게 메일을 보내거나 메신저로 전송하는 방법이 떠오르지만,
한 명 혹은 소수의 사람들에게 전달하는 거면 몰라도 온라인 커뮤니티 같은 곳에 공개하긴 어렵습니다.
파일을 별도의 서버에 업로드한 다음 그 링크를 따서 보내 주는 건 텍스트를 공유하기 위한 작업 치곤 거창합니다.
그렇다고 그냥 게시판에 Ctrl+C & Ctrl+V 신공을 쓰기엔 Syntax Highlighting 같은 게 안 되는 건 둘째 치고
들여쓰기 같은 것들이 무시되고 폰트 역시 고정폭 폰트가 적용되지 않는 등 보기가 상당히 불편합니다.
게다가 HTML 관련 문자가 섞여 있을 경우 표시가 안 될 수도 있고, 코드를 다른 사람이 복사해 가기도 어렵습니다.
아래 이미지는 게시판에 붙여넣기한 코드와 텍스트 에디터에서 보이는 코드의 '가독성' 차이를 극명하게 보여 줍니다.
(이미지들은 모두 클릭하면 크게 보입니다 ^^)
그래서 해외 네티즌들은 오래 전부터 소스 코드 공유 서비스들을 사용하고 있습니다.
소스 코드 전체를 게시판 글이나 답글 박스에 붙여넣기하는 것이 아니라, 공유 서비스에 소스를 올린 후
embed 형태로 삽입하거나 혹은 '그 글의 링크' 만 복사해서 공유하는 것이죠. 아래처럼요 ^^
실제 소스 코드 링크로 들어가 보면 아래와 같은 화면을 볼 수 있습니다.
그냥 게시판에 소스 코드 전체를 붙여넣기하는 것보다 훨씬 알아보기도 쉽고 공유하기도 편합니다 ^^
이런 서비스들을 흔히 ‘Pastebin‘ 이라고 지칭하는데, 클립보드의 내용을 다른 사람들과 공유하기 위한
임시 저장 및 공개 장소, 즉 인터넷 클립보드로서의 역할을 수행한다는 의미로 이해하면 되겠습니다.
이러한 서비스들은 자체적으로 Syntax Highlighting 을 지원함은 물론, 코드를 텍스트 형태 그대로 보여 주어
복사하기 쉽도록 하거나 아예 파일 형태로 다운로드할 수 있도록 해 주기 때문에 활용 가치가 상당합니다.
상당히 많은 서비스들이 존재하며 개중엔 codepad 나 jsFiddle 과 같이 단순한 인터넷 클립보드 이상의
기능들을 지닌 것들도 많이 있습니다. 하지만 이 글에서는 ‘소스 코드 공유’ 라는 기본에 가장 충실한,
그렇기에 간편하게 사용할 수 있는 서비스 '딱 두 가지' 만 소개하고자 합니다.
1. Pastebin (http://pastebin.com)
2002년에 만들어진, 가장 초창기의 소스 코드 공유 서비스 중 하나입니다.
회원 가입이 가능하며 Pro 회원은 유료이지만, 딱히 가입을 안 해도 기능상 큰 제한 없이 사용 가능합니다.
Public List 가 존재하며 공개 설정을 바꾸지 않을 경우 전체 공개로 등록, 노출됩니다.
─ 장점:
등록자, 코드의 용량, 조회수, 등록된 시간 등을 확인 가능
자신이 올린 코드 수정 및 삭제 가능 (단, 로그인 후 작성했던 것들만)
자신이 지금까지 올렸던 코드들을 조회 및 관리할 수 있음 (단, 로그인 후 작성했던 것들만)
Wrap Lines 기능이 있음
다른 HTML 페이지에 Embed 가능
Raw File (서식 등이 전혀 없는 원본 그대로의 텍스트) 보기 및 다운로드 기능
클립보드 복사 기능 제공됨
글의 만료 시간을 설정할 수 있음 (해당 시간이 지나면 글이 자동 삭제되도록 하거나, 혹은 영구 보존할 수 있음)
애플리케이션 및 API 지원이 아주 좋음. 특히 애플리케이션의 경우 다양한 플랫폼 (심지어 WebOS 도) 지원
Layout width 버튼을 클릭하면 고정폭 · 유동폭 전환 가능
Fork (라기보단 해당 소스 코드를 별도 글로 복사) 기능 있음
─ 단점:
코드 안에 링크가 있을 경우, 등록할 때 스팸 방지용 Captcha 를 입력해야 함
등록 가능한 소스 코드의 용량이나 비공개 가능한 코드의 개수 등에도 제약이 있음
광고 배너가 많이 있는데, 크기도 큰 데다 중요한 위치들에 딱딱 박혀 있어 Adblock 같은 게 없다면 많이 거슬림
Syntax Highlighting 테마를 지원하지 않음
2. Pastie (http://www.pastie.org)
Pastebin 에 비해 훨씬 심플하고 광고가 많이 박혀 있지도 않아서 개인적으론 더 선호하는 서비스입니다
이런 류의 서비스들이 으레 그렇듯 별도의 회원제는 없으며, 서비스 자체도 엄청나게 단순합니다.
Ruby on Rails 로 만들어진 서비스인데다 freenode IRC 의 #rubyonrails 에서 주로 쓰이기 때문에
등록되는 코드 중 많은 수가 Rails 관련 코드들입니다만, 기본적으로 주요 언어들은 모두 지원합니다.
─ 장점:
극도로 심플하며 사용하기 편함
Captcha 같은 게 없음. 배너는 있긴 한데 전혀 신경쓰이지 않음
Syntax Highlighting 테마 지원. 테마의 다양성이 넓은 편
Ruby on Rails 관련 키워드들에 대한 Syntax Highlighting 지원이 특히 좋음
다른 HTML 페이지에 Embed 가능
Raw File 보기 및 다운로드 기능
역시나 Fork (라고 할 만큼 거창하진 않지만) 기능 있음
─ 단점:
Wrap Lines 기능이 없으며, 코드가 화면 폭을 넘어가는지의 여부를 바로 알기 힘듬
별도의 부가 기능이라고 할 만한 게 없음. 딱 코드를 올려서 공유하는 정도에 그침
등록자, 코드의 용량, 조회수, 등록된 시간 등의 정보 확인 불가능
해당 글의 Permalink 를 모르거나 잊었을 경우 찾기가 어려움 (검색을 통해 찾는 수밖에 없음)
등록한 코드는 수정 및 삭제 불가 (단, 올린 직후의 글에 한해 수정만 가능)
클립보드 복사 기능이 없음. Raw File 을 연 다음 직접 코드를 선택해 복사해야 함
API 지원을 하긴 하지만, 그 정도가 너무 부실함. 설명 페이지조차 하나 없음
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
공지 | Tool/etc | Programming 게시판 관련 2 | MoA | 2014.11.01 | 2558 |
167 | Python |
[첫게임 만들기] 9. 사운드
![]() |
MoA | 2013.11.21 | 515 |
166 | Python |
[첫게임 만들기] 8. Win or Lose
![]() |
MoA | 2013.11.21 | 483 |
165 | Python |
[첫게임 만들기] 7. 게임 정보 표시
![]() |
MoA | 2013.11.21 | 1135 |
164 | Python |
[첫게임 만들기] 6. 적을 해치우자
1 ![]() |
MoA | 2013.11.21 | 554 |
163 | Python |
[첫게임 만들기] 5. 적을 생성하자
![]() |
MoA | 2013.11.21 | 470 |
162 | API/MFC | Simple Add-On Wait Dialog in MFC | MoA | 2013.11.21 | 469 |
161 | Python |
[첫게임 만들기] 4. 화살을 발사해보자
![]() |
MoA | 2013.11.21 | 765 |
160 | Python |
[첫게임 만들기] 3. Bunny를 회전시키자
![]() |
MoA | 2013.11.21 | 1057 |
159 | Python |
[첫게임 만들기] 2. 배경 그리기, Bunny 움직이게 하기
![]() |
MoA | 2013.11.21 | 525 |
158 | Python |
[첫게임 만들기] 1. 게임 소개 및 실습 준비
1 ![]() |
MoA | 2013.11.20 | 951 |
157 | Python |
고양이 밖으로 못나가게 하기
![]() |
MoA | 2013.11.10 | 675 |
156 | Python |
고양이 움직이기
1 ![]() |
MoA | 2013.11.08 | 909 |
155 | Site | CSS, 자바스크립트 강좌 | MoA | 2013.11.05 | 437 |
154 | API/MFC | 슬라이더 컨트롤에 툴팁 삽입 (동적 툴팁) | MoA | 2013.10.28 | 668 |
153 | API/MFC | 태스크 대화상자 (Task Dialog) | MoA | 2013.10.22 | 480 |
152 | API/MFC | 프린터 출력하기 | MoA | 2013.10.16 | 3503 |
151 | Tool/etc | Flash CS5 and Version Control | MoA | 2013.10.11 | 381 |
150 | Library | AS3 Code Library | MoA | 2013.10.11 | 5121 |
149 | Site | 영상 처리 관련 블로그 | MoA | 2013.09.29 | 395 |
148 | Tool/etc | [S/W 공학] 월-인원(man-month), LOC | MoA | 2013.09.23 | 577 |