구문과 표현식 2부 — 구문(Statement) 알아보기

2026. 2. 18.컴퓨터/간단지식

지난 글인 1부에서는 표현식을 알아봤으니, 이번 글에선 구문(statement)에 대해 자세히 알아보자.

 

구문

'구문' 또는 '문'은 실행할 수 있는 코드 단위로, 실행할 하나의 명령을 나타낸다. 문장이 마침표로 끝나듯이 구문은 세미콜론(;)으로 끝난다. 다만, 언어에 따라 ;을 생략하고 적절히 개행으로 각 구문을 구별하는 경우도 있다.

 

다양한 구문의 종류와 특징을 간단히 알아보자.

 

표현식문

표현식문은 말 그대로 표현식으로 만든 구문이다. 표현식을 구문으로 쓸 때는 표현식 ; 형식으로 표현식 뒤에 ;을 붙이면 바로 구문이 되며, ;이 생략되는 언어에선 보통 표현식 이후 개행을 하면 된다. 표현식문으로 사용된 표현식의 값은 그 값이 쓰일 곳이 없기에 그대로 버려진다는 특징이 있다.

 

참고로, 값으로 평가 가능한 코드 조각이라던 표현식이 어떻게 구문이 될 수 있었는지 생각해 보자. 표현식은 값으로 평가되기 위해 평가될 값을 만들어내야 한다. 그런 의미에서 표현식은 단순히 값이 아니라 그 값을 만들어내는 과정을 표현하고 있는 것이다. 표현식을 구문으로 사용할 수 있는 것은 표현식의 값을 만드는 과정을 실행할 수 있기 때문이다. 대표적으로 x = 27;이나 foo(); 같이 표현식으로 만들어진 구문은 표현식의 값이 버려지지만, 대입과 함수 호출이라는 과정을 실행할 수 있다. 다만, 0;나 1 + 2; 같이 값을 만드는 과정이 없거나 무의미한 표현식문은 언어 문법에 따라 제한되는 경우도 있다.

 

복합 구문

블록(Block)이라고 불리는 복합 구문은 여러 구문을 중괄호({, })로 감싼 하나의 구문이다. 복합 구문은 하나의 구문만 허용되는 위치에서 여러 구문을 실행시킬 수 있기에 굉장히 유용하다. 또한 복합 구문 안에서의 선언은 해당 블록 밖에서 접근할 수 없다.

 

제어문

제어문은 기본적으로 위에서 아래로 흐르는 프로그램의 실행 흐름을 제어하는 구문이다. 대표적으로 조건문, 반복문이 있으며 후술할 점프문도 제어문의 일부로 볼 수 있다. 조건문이나 반복문은 조건에 따라 실행할 하나의 구문을 요구하는 데 이 자리에 복합 구문을 많이 사용하게 된다.

 

점프문

점프문은 프로그램의 실행 흐름을 깨고 다른 구문으로 실행 위치를 변경(점프)할 때 사용된다. 반복문이나 switch 문에서 탈출하는 break 문, 현재 반복을 건너뛰는 continue 문, 함수를 종료시키는 return 문, 지정한 레이블로 실행 흐름을 옮기는 goto 문 등이 있다.

 

빈 구문

구문은 기본적으로 무언가를 실행하는 코드이지만 특이하게 아무것도 하지 않고 단지 세미콜론 하나(;)로 표현되는 구문이 있다. 무언가를 실행할 필요가 없는데 구문이 요구되는 위치에 주로 사용되며, 이러한 목적으로는 빈 블록({})이 사용되기도 한다. C언어에선 매크로에 빈 구문을 활용하기도 한다.

 

선언 및 정의

변수, 함수 같은 프로그램의 구성 요소들은 기본적으로 선언(declaration)을 통해 이름을 지정해 주어야 하며 정의(definition)를 통해 이들의 구체적인 내용을 구현할 수 있다. 선언과 정의는 보통 동시에 하는 편이나, 일부 언어에서 필요할 경우 전방 선언으로 선언을 따로 하기도 한다. 아래는 C언어 기준 선언과 정의의 간단한 예이다.

int i; // 변수 선언

int main(); // 함수 전방 선언

// 함수 정의
int main() {
    return 0;
}

// 함수 선언이자 정의
void swap(int *x, int *y) {
    *x = *x ^ *y;
    *y = *x ^ *y;
    *x = *x ^ *y;
}

struct user; // 구조체 전방 선언

// 구조체 정의
struct user {
    char *name;
    char *email;
    int age;
};

// 구조체 선언이자 정의
struct point {
    double x;
    double y;
};

 

선언은 대체로 구문으로 보아도 무방하나 드물게 선언과 구문을 구별하여 취급하기도 한다.

 

전처리 지시문

참고로 일부 언어에 있는 #define 같은 전처리 지시문(preprocessor directives)은 한국어 명칭에 '문'이 있긴 하지만 구문이 아니다. 일단 구조부터 일반적인 구문과는 눈에 띄게 다르게 생겼으며 구문과 달리 전처리기에 의해 컴파일 이전에 처리된다. 때문에 전처리 지시자나 전처리 지시어 등으로 부르기도 한다.

 

마무리

놓치기 쉽고 헷갈릴 수 있는 표현식과 구문에 대해 알아보았다. 이번 글이 표현식과 구문을 이해하는 데 도움이 되었기를 바란다.

 

'컴퓨터 > 간단지식' 카테고리의 다른 글

구문과 표현식 1부 — 표현식(Expression) 알아보기  (0) 2026.02.05
최상위 도메인 — TLD 알아보기  (0) 2026.01.20
연산자 주변 띄어쓰기  (0) 2026.01.10
아스키 코드표 — ASCII Table  (0) 2026.01.08
'컴퓨터/간단지식' 카테고리의 다른 글
  • 구문과 표현식 1부 — 표현식(Expression) 알아보기
  • 최상위 도메인 — TLD 알아보기
  • 연산자 주변 띄어쓰기
  • 아스키 코드표 — ASCII Table
우들 WODEUL
우들 WODEUL
wodeul is wonderful!
  • 우들 WODEUL
    우들의 메모 — wodeul's notes
    우들 WODEUL
  • 전체
    오늘
    어제
    • 분류 전체보기 (6)
      • 컴퓨터 (6)
        • 문제해결 (1)
        • 간단지식 (5)
      • 수과학 (0)
      • 일상 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    statement
    Ascii Table
    연산자 앞뒤 공백
    Top-Level Domain
    아스키 코드표 벡터
    연산자 주변 공백
    연산자 앞뒤 띄어쓰기
    SvelteKit SSG
    tld
    구문
    아스키 코드표
    표현식
    SvelteKit 빌드
    Expression
    아스키 코드표 PDF
    ccTLD
    ASCII Table Vector
    SvelteKit 정적 사이트
    gTLD
    최상위 도메인
    ASCII Table PDF
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
우들 WODEUL
구문과 표현식 2부 — 구문(Statement) 알아보기
상단으로

티스토리툴바