나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-01-29 18:33:01

구문 강조

문법 강조에서 넘어옴

1. 개요2. 특징3. 종류4. 구현체
4.1. 웹 구현체
5. 관련 문서

1. 개요

#!syntax php
<?php
echo "Hello, world!";
?>
프로그래밍 언어 PHPHello, world! 코드

Syntax highlighting / 構文強調

컴퓨터 언어, 프로그래밍 언어 등을 읽거나 구조를 파악하기 쉽도록 키워드, 식별자, 문장 부호 등의 개별 요소를 색칠해서 보여주는 기능.

syntax coloring, 신택스 하이라이팅, 문법 강조라고도 한다.

2. 특징

가독성을 매우 향상시킨다. 자연어와 다르게 프로그래밍 언어는 특성상 $.map<str>["key"]?.(par); 처럼 띄어쓰기 없이 여러 동작을 하는 코드를 붙여 쓸 때가 많은데, 이 경우 각각의 요소를 시각적으로 구분하기 힘들어진다. 이 때 신택스 하이라이팅을 적용하면 어디부터 어디까지가 문자열인지, 이게 함수 호출인지, 메서드인지, 인덱싱인지, 어떤 게 자식 요소인지, 어디가 문장의 끝인지 등등이 한눈에 파악된다.

이런 짧은 코드에서뿐만 아니라 코드 전체의 구조를 파악하기에도 용이한데, 들여쓰기나 짝이 맞는 괄호를 같은 색으로 칠하거나 코드가 아닌 주석 등은 건너뛰기 쉽도록 옅은 색으로 칠하기도 한다.

에러를 찾기에도 좋다. 에러가 난 부분을 강조해줄 때뿐 아니라 단순한 오타도 색을 보고 본능적으로 오타임을 알아차리기 쉽게 도와준다. 예를 들면 elseeles로 오타를 냈어도 무심코 지나칠 수 있지만, 전자는 키워드, 후자는 식별자로 인식되므로 else가 아닌 eles로 표시되는 셈. 실제로는 이런 단순한 예시뿐만 아니라 닫지 않은 괄호, 빼먹은 콤마, 없는 프로퍼티 참조 등등 수많은 실수를 방지하는 데에도 효과가 있으며, 무엇보다 이런 에러 파악이 익숙해지면 거의 본능에 가까운 감각이 된다. 이는 비단 프로그래밍 언어뿐 아니라 마크업 언어에서도 그대로인데, 위키위키를 편집하다가 위키 문법 에러를 내면 미리보기를 보기 전 깨진 문법을 수정할 수 있다.

케임브리지 대학교의 연구진이 아이 트래커를 사용해 실제로 신택스 하이라이팅의 효과에 대해 조사한 적이 있는데,[1] 결론은 신택스 하이라이팅을 사용한 집단이 프로그래밍 언어를 배우고 이해하는 데 든 시간이 압도적으로 적었고, 키워드와 같이 반복되는 문법 요소들에 시선을 소모하는 일이 훨씬 줄어들었다는 것. 또 다른 특징으로 이런 표본집단간 격차가 프로그래밍 경험이 늘어날수록 줄어들었다는 것이다. 다시 말하면 해당 언어에 익숙할수록 구문 강조의 효과는 다소 약해지고, 바꿔 말하면 구문 강조는 프로그래밍을 처음 접하는 초보자들에게 훨씬 도움이 된다는 것.

3. 종류

4. 구현체

4.1. 웹 구현체

5. 관련 문서


[1] Advait Sarkar, Computer Laboratory, University of Cambridge <The impact of syntax colouring on program comprehension> #