여러 가지 메모 앱이 많지만 개발자와 가장 잘 맞는 도구를 꼽으려면 노션(Notion)이 단연 돋보인다. 이제 노션이 개발자에게 어떤 힘을 주는지 살펴보도록 하자.
작업을 하다 보면 여러 가지 소스 코드를 참조해야 할 때가 있다. 내가 만든 것이든 다른 곳에서 가지고 온 것이든 코드를 깔끔하게 읽고 보관할 수 있는 기능이 노션에 있다. 바로 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
키를 누른다.
노션에서는 개발자들의 사랑을 받는 Gist와 CodePen이라는 코드 저장소의 내용을 노션 페이지에 포함(embed)할 수 있다.