코딩을 하다가 막히는 부분이 있어서 질문을 하고 싶거나,
혹은 내가 작성한 코드를 다른 사람들에게 보여 주어야 할 때가 있습니다.
그런데 코드를 공유한다는 것이 말처럼 쉽지만은 않죠.
파일 자체로 공유를 하려면 상대에게 메일을 보내거나 메신저로 전송하는 방법이 떠오르지만,
한 명 혹은 소수의 사람들에게 전달하는 거면 몰라도 온라인 커뮤니티 같은 곳에 공개하긴 어렵습니다.
파일을 별도의 서버에 업로드한 다음 그 링크를 따서 보내 주는 건 텍스트를 공유하기 위한 작업 치곤 거창합니다.
그렇다고 그냥 게시판에 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 지원을 하긴 하지만, 그 정도가 너무 부실함. 설명 페이지조차 하나 없음
Who's Naya
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
공지 | Tool/etc | Programming 게시판 관련 2 | MoA | 2014.11.01 | 5315 |
48 | Site | 윈도우 8 앱 개발 동영상 강의 | Naya | 2012.09.10 | 756 |
47 | Site | IT 세미나 유튜브 동영상 | Naya | 2012.09.10 | 629 |
46 | API/MFC | 세마포어를 이용한 생산/소비자 | Naya | 2012.08.31 | 1138 |
45 | API/MFC | stdafx.h 사용 (미리 컴파일된 헤더) | Naya | 2012.08.13 | 1598 |
44 | Algorithm | 동적 프로그래밍 | Naya | 2012.08.13 | 1185 |
43 | API/MFC | 윈도우 프로그램의 종료 메시지 순서 | Naya | 2012.08.03 | 1377 |
42 | STL/Boost | boost::shared_ptr 소개 | Naya | 2012.08.02 | 802 |
41 | Site | 프로그래밍 관련 사이트 | MoA | 2012.08.02 | 642 |
40 | Tool/etc | 소스 코드 버전 관리 툴 설치 | Naya | 2012.08.02 | 819 |
» | Site | 소스 공유 사이트 | Naya | 2012.08.02 | 1319 |
38 | API/MFC | Deploying a Visual C++ Application (배포 방법) | Naya | 2012.08.02 | 1613 |
37 | STL/Boost | Boost c++ Libraries (설명, 정리) | Naya | 2012.08.02 | 974 |
36 | Site | 개발자를 위한 각 기업 오픈소스 공유 사이트 (주로 모바일) | Naya | 2012.08.02 | 1408 |
35 | Library | ExcelFormat Library | Naya | 2012.08.02 | 1715 |
34 | C/C++ | C Runtime 환경의 메모리 릭 잡는 방법 (Memory leak) | Naya | 2012.08.02 | 1180 |
33 | API/MFC | MFC 클래스간 통신 | Naya | 2012.08.02 | 2069 |
32 | Algorithm | 구글 검색 알고리즘의 원리 | Naya | 2012.08.02 | 1376 |
31 | API/MFC | 모달리스 대화상자 | Naya | 2012.08.02 | 1524 |
30 | Library | Google의 C++ 라이브러리 | Naya | 2012.08.02 | 1094 |
29 | Algorithm | 큰 수 구하기 알고리즘 | Naya | 2012.08.02 | 1323 |