19. Notion, 개발자의 친구19. Notion, 개발자의 친구

19. Notion, 개발자의 친구

차례
 
여러 가지 메모 앱이 많지만 개발자와 가장 잘 맞는 도구를 꼽으려면 노션(Notion)이 단연 돋보인다. 이제 노션이 개발자에게 어떤 힘을 주는지 살펴보도록 하자.
 

소스 코드를 담는 코드(Code) 블록

작업을 하다 보면 여러 가지 소스 코드를 참조해야 할 때가 있다. 내가 만든 것이든 다른 곳에서 가지고 온 것이든 코드를 깔끔하게 읽고 보관할 수 있는 기능이 노션에 있다. 바로 Code block이다.
코드 블록을 쓰려면 글 첫 머리에 /code 또는 /코드라 쓰고 엔터 키를 누르면 코드를 담을 수 있는 상자가 생긴다. 그게 코드 불록이다.
코드 블록은 이렇게 생겼다.
 
코드 불록과 일반 텍스트 블록이 다른 점은...
  • 텍스트에 서식이 적용되지 않는다.
    • 웹 페이지나 다른 곳에서 내용을 복사한 다음 Notion에 붙여넣으면 서식을 유지한 상태에서 복사된다. 하지만 코드 블록 안에 복사하면 서식이 제거된 일반 텍스트 형태로 복사된다.
      실제로 굉장히 큰 용량(1MB 정도?)의 텍스트 파일을 열어서 그걸 복사한 다음에 노션에 붙여보면 동작이 굉장히 느릴 수 있지만 코드 블록을 생성하고 이 안에 텍스트를 붙이면 굉장히 빠릿빠릿하게 돌아간다. 이는 코드 블록이 순수한 텍스트 데이터만 저장하고 처리하기 때문이다.
      그런데 신기한 일이 발생했다. 언젠가부터 코드 불록에도 간단한 서식 적용이 가능하다.
      처음에 내가 이걸 보고 얼마나 놀랐겠는지 생각해 보시라. 아니, 이게 이렇게 되면 '수동 문법 강조 기능' 갈은 걸 만들고 싶잖아????
  • 문법 강조 기능을 지원한다.
    • 코드 블록의 오른쪽 하단 왼쪽 위에 문법 강조에 사용할 언어를 지정하는 부분이 있다. 아무스 커서를 코드 블록 위에 놓으면 어떤 언어로 문법 강조를 하는지 확인할 수 있다. (모바일 환경에서는 현재 문법 강조 대상 언어가 언제나 표시되어 있다)
      #include <stdio.h> int main(void) { println("Hello, world!\n"); }
      널리 쓰이는 언어는 물론이고...
      -- 피보나치 수열은 끝없이 열거되어 리스트의 원소가 된다. fib = 1:1:[ a+b |(a,b) <- zip fib (tail fib)]
      언어인 이다. 이것이 아름다워보인다면 당신은 바로 하스켈로 뛰어들 수 있다!
      굉장히 마니악한 언어까지 지원한다.
  • 고정폭 글꼴을 사용한다.
    • 프로그램의 코드를 담는 목적으로 사용되기 때문에 어쩌면 이는 당연한 것인지도 모른다. 일반적인 글을 쓰고 읽을 때는 가변폭 글꼴이 편하지만 아무래도 코드를 다룰 때는 고정폭 글꼴이 훨씬 눈에 잘 들어온다. 아래 예를 보면 코드 블록이 얼마나 가독성이 좋은지 바로 느낄 수 있을 것이다.
      #include <stdio.h> int main(void) { println("Hello, world!\n"); }
       
      #include <stdio.h> int main(void) { println("Hello, world!\n"); }
       
 
아울러 글 중간(inline)에 코드를 표시하기 위해서 코드 처럼 표시할 수 있는데, `코드`처럼 사용해서 코드의 일부분을 쉽게 나타낼 수 있다. 이미 있는 글을 글 중간 코드로 표시하고 싶으면 원하는 부분을 선택하고 Ctrl/Cmd-E 키를 누른다.
 
 

외부 코드 저장소 불러오기

노션에서는 개발자들의 사랑을 받는 GistCodePen이라는 코드 저장소의 내용을 노션 페이지에 포함(embed)할 수 있다.
 

Gist : git에 올려놓고 함께 쓰는 코드 조각

Gist에 보관된 코드에서 공유 부분을 Share로 설정하고 URL 주소를 복사한 다음 노션에 붙여넣으면 팝업 메뉴가 표시된다. 여기서 GitHub Gist 포함 을 선택하면 Gist의 코드를 노션 페이지에 깔끔하게 포함시킬 수 있다.
 
Smalltalk의 loop를 사용한 예제 - Gist
아직까지 노션에서 문법 강조를 지원하지 않을 때 Gist 저장소에 코드 조각을 올리고 노션에 포함하면 깔끔하고 예쁘게 코드를 포함할 수 있다.

 

CodePen : 앞단을 위한 HTML, CSS, JavaScript 편집기

CodePen
HTMLHTML
HTML
,
CSSCSS
CSS
,
JavaScriptJavaScript
JavaScript
를 편집하고 테스트해볼 수 있는 환경이다. 최근 노션에서 CodePen을 노션 페이지에 포함하는 기능을 지원하기 시작했으므로 이 사이트를 사용하는 분들은 훨씬 편리한 환경으로 사용하실 수 있겠다.
CodePen에서 새로운 Pen을 생성하고 코드를 입력한 다음 노션에서 /codepen을 입력하고 엔터를 누르면 CodePen의 URL을 입력할 수 있다. 아래는 필자가 만들어본 정말 간단한 Pen이다. 포함시키면 이렇게 노션에서 바로 결과를 확인할 수 있다.
 
CodePen으로 만들어 보는 앞단 개발
아직
구름 에듀
구름 에듀
에서는 노션 임베드를 지원하지 않아서 아쉬움이 크다. 하지만 조만간 노션에서 API를 공개하고 요청이 많으면 분명 노션과도 좋은 콜라보가 되지 않을까 기대해본다.

Notion의 무한 확장 - embed 블록

노션의 기본 편집 단위는 블록이다. 노션의 기능을 공부한다는 말은 '블록을 어떻게 쓰는지'를 알아보는 것이다.
👍🤗 "무엇이든 임베드하세요!"... 호기롭지 않은가? 정말로 /embed를 입력해 보면 위에 예로 든 것들 뿐만 아니라 트위터, 유튜브, SoundCloud는 물론 Figma, TypeForm, Whimsical, Abstract 등 업무를 보조하는 다양한 도구 들의 문서 파일을 포함할 수 있다.
그런데 embed 블록에 달 수 있는 링크에 제한이 없다 보니 멋진 개발자분들이 노션을 위한 확장 기능을 제공하기 시작했고 어느새 튼튼한 생태계가 형성되었다.

Apption : 확장의 끝판왕 - https://apption.co

개발자 Astro 님이 만덜어 현재 무료로 서비스 중인 서비스로 다양한 기능을 가진 embed link를 생성하여 노션 embed 블록에 추가할 수 있다.
위의 댓글 창은 Apption에서 제공하는 기능이다. 이 밖에 설문지, 방문자 카운터, 날씨 위젯처럼 간단한 것부터 원격으로 헙업할 때 필요한 화이트보드까지 굉장히 다양한 기능을 제공하고 있다.
간단한 회원 가입 절차를 거치면 자신이 생성한 embed 링크를 효과적으로 관리할 수 있고 댓글 관리 등의 기능도 제공한다.

 

무제한 파일 첨부

노션에 가입하여 계정을 만들면 기본으로 '개인 요금제'에 가입되어 있다. 마음대로 페이지를 만들고 블록으로 채울 수 있지만 가장 눈에 띠게 다가오는 제한은 "업로드할 수 있는 파일 크기가 5MB이하"라는 것이다. 하지만 '개인 프로 요금제'부터는 거의 무제한 용량의 파일을 업로드할 수 있다. (무료 요금제에서도 5MB 이하의 파일이라면 몇 개를 올려도 상관 없다.)
/file 을 입력하고 엔터를 누르면 노션 페이지에 파일을 첨부하거나 URL을 이용하여 다른 웹사이트에서 제공하는 파일을 포함(embed)할 수 있다.
프로그램을 개발하면서 챙겨야 하는 여러 가지 리소스를 잘 구조화해서 올려둔다면 일종의 '클라우드 파일 저장소'와 비슷한 기능을 이용할 수 있다. 물론 파일의 내용을 수정하면 자동으로 저장소로 올라가는 기능을 제공하지 않기 때문에 완전히 '파일 저장소'로 쓰기는 어렵지만 내용 변경이 거의 없는 파일이라면 자료 저장용으로 충분할 것이다.
위와 같이 간단한 소스 파일은 물론이고....
 
실행 파일을 포함한 프로젝트 파일도 올릴 수 있다. 원한다면 더 큰 파일들도 얼마든지 업로드할 수 있다.(물론 유료 계정에서...) 다른 클라우드 저장소와 가장 차별화된 장점은 '맥락'이 살아있다는 것이다. 파일들이 모여 있는 저장소에서는 그 안에 들어있는 문서를 읽지 않으면 맥락을 확인하기 어려울 때도 있다. 하지만 노션에서는 언제나 파일과 함께 문서가 있다. 그 문서에는 파일의 맥락이 있다. 내가 필요한 위치에 필요한 수만큼 파일을 제한 없이 올릴 수 있다는 건 굉장히 큰 장점이다. Ctrl/Cmd-P로 언제든지 파일이름이나 내용으로 검색할 수도 있으니 복집한 프로젝트 문서를 작성할 때도 굉장히 편리한 도구가 된다.
 

흩어진 참조를 한데 모아주는 백링크

마침 오늘(Sep 3, 2020) 노션이 업데이트 되면서 백링크(backlink)를 제공하기 시작했다. 여태껏 위키에서만 보던 기능인데 이게 노션으로 들어온 거다.
백링크란 현재 페이지를 참조하는 페이지를 역으로 찾아갈 수 있는 역참조 기능이다. 백링크가 궁금하면
CC
C
페이지로 잠시 가 보시라.
 
C언어 페이지를 참조하고 있는 다른 페이지들C언어 페이지를 참조하고 있는 다른 페이지들
C언어 페이지를 참조하고 있는 다른 페이지들
보시다시피
CC
C
페이지를 참조하는 모든 페이지의 백링크를 볼 수 있다. (지금 이 페이지도
CC
C
를 참조하고 있으므로 당연히 백링크에서 확인할 수 있다.) 더구나 공개 페이지에서는 비공개 개인 페이지의 백링크는 숨겨주기 때문에 보안성도 매우 뛰어나다.
 

뭘 좋아할지 몰라서 다 준비했어!

Notion 회사 사람들도 노션을 사용하는 것. 그래서 개발자들의 가려운 곳을 너무너무 잘 긁어주는 노션. 실제로 Notion의 개발 문서들이 노션으로 작성되어 있다는 것만 보아도 노션이 얼마나 개발자들에게 가치가 있는 도구인지 보여주는 사례라 할 수 있겠다.
개발자 여러분, 여러분 곁에 노션을 두고 두고 씁시다!!!!
 
⚒️
사실 저는 개발자가 아니고 학교에서 정보 과목을 가르치는 교사입니다. 그래도 취미로 코딩을 하고 다른 개발자 분들과 소통하면서 노션이 얼마나 유용한지 많이 느끼고 있습니다. 분명 노션을 사용하게 된다면 개발자 여러분에게 크게 도움이 되리라 확신합니다. 오늘도 더 좋은 세상을 만들어주시는 개발자 여러분들께 감사드립니다! 😁