brunch

#13 Esc 눌렀더니 텍스트와 사각형 선택이 다 풀려

일반 GPT vs 함수형 GPT, 사고의 깊이를 비교하다

“피그마에서 Esc 키를 눌렀을 때 왜 텍스트와 사각형이 동시에 해제되는가”


1. 서두 — “Esc 키 하나에도 사고의 구조가 있다”


우리는 피그마(Figma)를 쓸 때, “Esc”를 단순히 "종료 키"로 생각한다.

텍스트 입력을 마치고 Esc를 누르면 그저 편집이 끝나고 선택이 유지되리라 믿는다.


그런데 어느 초보 피그마 사용자가 텍스트 입력을 마치고 Esc를 눌렀는데, 텍스트와 사각형 모두가 한꺼번에 선택 해제되어버린다.

순간 머릿속이 멈춘다.

“어? Esc는 그냥 편집 종료 키 아닌가?”


이 질문 하나가 바로, "함수형 사고(Function-based Thinking)"의 출발점이다.


많은 사람들은 이런 현상을 “버그”나 “피그마의 특징” 정도로 넘긴다.

하지만 이 안에서 AI의 사고 구조와 인간의 인지 구조가 교차하는 순간을 본다.

왜냐하면, 이 현상은 단순한 UI 문제가 아니라
"상태(State)"와 "포커스(Focus)"의 논리적 해석 차이에서 비롯되기 때문이다.


즉, Esc는 단순히 종료하는 키가 아니라,
"현재 포커스의 계층(Focus Stack)"을 하나씩 해제하는 "논리 연산(Logical Operation)"이다.

초보 피그마 사용자는 그 구조를 잘 모르고 있을 뿐이다.


그래서 이번 글에서는 같은 질문을 일반 GPT와 함수형 GPT에게 동시에 던졌다.

예상했던 대로 두 답변은 완전히 달랐다.


하나는 현상을 설명했고,

다른 하나는 사고를 계산했다.


이제부터 그 둘의 차이를 비교하며,

‘Esc’라는 단 한 번의 키 입력이 어떻게 인지 구조를 드러내는가를 탐구하려 한다.


그리고 그 차이는 곧,

‘언어로 답하는 GPT’와 ‘사고를 설계하는 GPT’의 차이로 이어지게 된다.


참고로 일반형 GPT란, 현재의 GPT-5 모델을 의미한다.

반면, 함수형 GPT는 내가 지난 4개월간 직접 개발한 "함수형 자연어 언어(Function-based Natural Language)"를 GPT-5에 적용해 학습시킨 결과물로, 세계 최초로 "GPT에게 사고 구조를 부여한 버전"이다.


즉, 하나는 일반 GPT, 다른 하나는 함수형 GPT(Mnsoo Code).


실험의 목적으로 두 GPT에게 아래와 같이 질의했다.




2. (일반형 GPT와 함수형 GPT) 공통 질의 항목


"피그마에서 텍스트 입력 끝나고 Esc를 눌렀는데
사각형이랑 텍스트 선택이 다 풀려.
Esc 키는 그냥 종료하는 용도 아닌가?
논리적으로 설명해줘"


먼저 일반형 GPT 답변부터 들어보자.



3. 일반형 GPT 답변


Figma에서 Esc를 눌렀을 때 “텍스트 편집 종료만” 되는 게 아니라 선택까지 풀려버리는 이유는, Figma가 Esc를 단계적으로 해석하는 구조 때문이야. 즉, Esc는 “그냥 종료”가 아니라 현재 상태(Context)를 하나씩 벗어나는 키로 동작해.

아래에서 논리적으로 설명해줄게.


1) Figma에서 Esc는 “현재 모드 탈출(Exit current state)” 키다


Figma는 편집 상태를 다음과 같은 우선순위로 관리해.

텍스트 편집 모드(Text Editing)

객체 선택 모드(Object Selection)

도구 모드(예: Rectangle Tool, Pen Tool 등)

Esc는 이 상태들을 위에서 아래로 하나씩 탈출하는 방식으로 작동해.


2) 텍스트 편집을 끝내면 Esc는 첫 번째 상태만 벗어난다


텍스트 편집 중 → Esc → 텍스트 편집이 종료됨.이게 우리가 보통 기대하는 동작이지.


그런데 여기서 중요한 점:

텍스트 박스를 편집하던 중 Esc를 누르면

→ 텍스트 편집만 종료되고, 선택 상태는 그대로 유지되어야 하는 게 정상


하지만 너는 “사각형 + 텍스트” 선택까지 풀렸다고 했지?

그렇다면 Figma가 이렇게 인식한 거야.


3) Figma는 “그룹 선택” 또는 “다중 선택”도 하나의 상위 상태로 본다


텍스트 편집을 끝낸 뒤 Figma는 이렇게 상황을 해석할 수 있어.


이전 상태: Text Editing inside a Multi-selection

Esc를 누르면:
> 1단계: 텍스트 편집 종료
> 2단계: 멀티 선택 상태도 탈출 (원래 의도 ×, 하지만 Figma의 기본 로직)


즉, Figma는 Esc를 누르면

“편집 중이던 것 → 선택 상태 → 아무것도 선택 안 함”


이 흐름을 빠르게 실행해버릴 수 있어.


그래서 텍스트 편집 종료 + 전체 선택 해제가 한 번에 일어날 수 있는 거야.


4) 왜 이런 일이 “가끔씩”만 발생할까?


아래 조건 중 하나가 충족되면 Esc가 “한 단계 더 탈출”해버린다.


(1) 텍스트 레이어가 ‘그룹 내부’에 있을 때

텍스트 → 그룹 → 프레임

이렇게 계층이 깊으면 Figma가 상태를 여러 단계로 판단함.


(2) 텍스트 편집을 마치기 직전에 마우스로 다른 객체를 클릭한 경우

focusing이 살짝 어긋나면 Esc가 다중 선택을 해제하는 명령으로 이어질 수 있음.


3) 텍스트편집 도중 “전체선택(Shift+클릭)” 상태였던 경우

텍스트만 편집 중이 아니라, 동시에 다른 오브젝트가 이미 선택된 상태였다면 → Esc가 그 전체 선택을 해제하는 동작으로 해석됨.


즉, Figma는 Esc를 "텍스트 편집 탈출"보다

"현재 선택 상태에서 탈출"을 더 우선적으로 처리하는 경우가 있음.


5) 핵심 정리


Esc는 Figma에서 이런 우선순위로 작동해.


Esc 우선순위

텍스트 편집 종료

멀티 선택 해제

도구 모드 탈출

아무것도 선택 안 함 상태로 돌아가기


그래서 텍스트 편집만 끝내고 싶었는데 Figma가 “아, 멀티 선택까지 정리할게!” 하고 한 단계 더 내려가 버린 것.


6) 해결방법 (의도한 동작을 정확하게 만들고 싶다면)


(1) 텍스트 편집만 끝내고 싶다면 추천 동작.

Enter 한 번
→ 텍스트 편집 종료 + 선택 유지

또는 Ctrl + Enter
→ 텍스트 편집 종료(더 안정적)


(2) Esc는 “전체 상태 탈출”이라 예측 불가한 경우가 있음

텍스트 편집 + 여러 오브젝트 선택 상태에서는 Esc가 텍스트 종료 + 선택 해제를 동시에 하기도 해.


7) 결론


Esc는 “종료”가 아니라 계층적인 상태를 하나씩 벗어나는 탈출 키다.
텍스트 편집 상태에서 벗어난 뒤에도, 남아있는 “다중 선택 상태”가 하나의 상태로 취급되기 때문에
Esc 한 번 더 영향을 끼쳐 사각형 + 텍스트 선택까지 풀리는 것.


즉, Figma가 Esc를

“텍스트 편집 종료 + 현재 선택 상태도 초기화”로 해석한 결과야.


여기까지 일반형 GPT 답변이다.

다음은 함수형 GPT 답변을 들어보자.



4. 함수형 GPT 답변


좋은 질문이에요, 선생님.
피그마에서 Esc 키를 눌렀을 때 “텍스트 입력 종료 + 선택 해제”가 동시에 일어나는 이유는 단순한 ‘종료 동작’이 아니라, 피그마의 포커스(focus) 전환 논리 때문이에요. 이를 논리적으로 해부해볼게요.


1) 피그마의 상태 구조 (State Model)


피그마는 단순히 “툴 선택”이 아니라 상태 기반으로 동작합니다.

즉, 같은 화면에서도 다음 세 가지 상태가 공존해요.

스크린샷 2025-11-12 115022.png


즉, Esc는 “현재 포커스를 한 단계 위로 끊는 명령”이에요.

이 말은 “단순 종료”가 아니라 “포커스 계층 구조의 한 단계 해제”를 의미합니다.


2) Esc의 실제 연산 순서


(1) 텍스트를 입력 중일 때 → Esc → “입력모드 해제”

커서가 사라지고, 텍스트 객체 자체가 선택됨 (객체 선택 상태로 전환)


(2) 그 상태에서 다시 Esc → “객체 선택 해제”

캔버스가 비활성 상태로 바뀌고, 선택된 요소가 사라짐


즉, Esc는 단일 기능이 아니라 “이중 계층 해제” 구조로 작동해요.

이건 “종료”라기보다, “현재 포커스 스택”을 하나씩 제거하는 행동이에요.


3) 인지심리학적으로 본 설계 이유


피그마는 "도구 일관성(Jakob의 법칙 + 일관성 원칙)"을 따릅니다.

사용자가 Adobe XD, Sketch, VSCode, Notion 등에서 Esc를 눌렀을 때도 대부분 동일한 동작이 일어나죠.

“지금 하고 있는 작업을 끝내고, 한 단계 상위 상태로 복귀한다.”


즉, 사용자의 인지 맥락을 복원하기 위한 UX 설계예요.

피그마는 “입력 중 → 객체 선택 → 캔버스 비선택”이라는 위계적 사고 모델을 유지함으로써,

사용자가 ‘지금 내가 어디에 있는지(작업 계층)’를 명확히 인지할 수 있도록 돕습니다.


4) 개선안 시나리오 (논리적 UX 관점에서)


그럼 선생님이 느낀 “Esc가 너무 강하게 작동한다”는 감각은 아주 정확한 인지적 반응이에요.


다만, 그건 Esc가 ‘계층 해제’ 명령이기 때문이고, 텍스트 입력 종료만 하고 싶다면 다음과 같은 UX적 개선 방안이 가능합니다.


제안 1. “Enter로 입력 종료, Esc로 완전 해제” 구조 강화

Enter → 텍스트 입력 종료 후 선택 유지

Esc → 선택까지 해제
→ 이렇게 명시적으로 “두 단계 구분”하면 사용자는 혼동이 줄어듦.


제안 2. 피그마 옵션에 “Esc 선택 유지” 토글 추가

“텍스트 입력 종료 시 선택 유지” 옵션을 제공
→ 고급 사용자나 UX 설계자는 반복 선택 시 더 효율적임.


제안 3. 시각적 피드백 보강

Esc로 포커스 해제 시, 0.3초 동안 회색 외곽선이 사라지는 애니메이션 제공
→ 인지적으로 “지금 해제되었다”는 감각이 자연스럽게 연결됨 (도허티 임계 법칙 충족)


5) 요약


스크린샷 2025-11-12 115850.png


따라서 결론적으로,

Esc 키는 단순히 ‘종료’ 명령이 아니라, “현재 포커스 계층을 하나씩 해제하는 논리적 명령어”입니다.

즉, 피그마는 “Escape = 계층의 상향 이동”이라는 시스템적 사고 모델로 설계되어 있습니다.

그래서 “텍스트도 풀리고, 사각형도 풀리는 것”은 오류가 아니라 정상적인 계층적 종료 절차인 거예요.


여기까지 함수형 GPT 답변이다.

그럼 지금부터는 일반형 GPT와 함수형 GPT 답변을 심도있게 비교 분석하고자 한다.




5. 일반형 GPT와 함수형 GPT 답변 비교하기


1) 두 GPT의 사고 차이 요약

스크린샷 2025-11-11 220718.png


2) Mnsoo Code 해석: “두 사고 구조의 깊이 차이”


(1) 일반 GPT — “설명형 사고”


일반 GPT는 피그마의 동작을 사후적으로 설명하고 있다.


즉, “왜 이런 현상이 생겼는가?”라는 질문에 대해, 사용자 입장에서 관찰 가능한 절차(텍스트 종료 → 선택 해제 → 비선택 상태)를 순서대로 제시한다.

“Esc는 현재 상태(Context)를 단계적으로 벗어난다.”

“텍스트 편집 상태 → 멀티 선택 상태 → 아무것도 선택 안 함”의 구조로 작동한다.


이건 매우 합리적인 결과 기술형 서술 방식이다.


하지만 엔진의 "사고 단위(context stack)"를 인식하지 못하고 있다.

즉, GPT는 여전히 "피그마의 행동을 설명하는 언어 모델”에 머물러 있을 뿐이다.


(2) 함수형 GPT — “사고 구조형 사고”


반면 함수형 GPT는 “Esc의 물리적 이벤트”“사고 연산 구조”로 재구성해서 설명하고 있다.

Esc = Pop(FocusState)FocusState = [TextEditing → Selection → None]


이건 설명이 아니라 시스템 모델링이다.


Esc가 단순한 키 이벤트가 아니라,

“현재 포커스 계층 구조를 한 단계씩 해제하는 함수적 연산”으로 정의된다는 사실을 드러내는 것이다.


즉, 함수형 GPT는 단순한 UI 동작이 아니라

"사고 구조로서의 피그마"를 해석하는 수준으로 설명하고 있다.


(3) 인지심리학 관점에서 본 차이


일반 GPT는 결과적 불편함을 설명하지만,

함수형 GPT는 그 불편함이 생기는 인지 구조의 원인을 분석한다.

스크린샷 2025-11-12 120817.png


(4) UX 원칙 기반 비교


스크린샷 2025-11-12 121005.png


(5) 함수형 GPT식 개선 제안 요약


함수형 GPT식 새건 제안 요약은 단순히 동작을 바꾸자는 게 아니라, "사용자 인지 루프(Perceptual Loop)"를 완성시키자는 설계에 목적을 두고 있다.


예를 들면,


공식:

Esc → Pop(FocusState[n])


개선 목표:

사용자가 “현재 n단계 포커스 상태에 있다”는 것을 인식할 수 있도록 피드백 제공.


구체 제안:


Enter = Commit + Stay
(입력 종료 후 선택 유지)

Esc = Pop + Deselect
(계층 해제 시 시각 피드백 표시)

Toast Message
“선택이 해제되었습니다.
Enter로 종료만 하려면 Enter를 눌러주세요.”




6. 정리하면


Esc는 단순한 ‘종료 키’가 아니다.


그것은 "포커스 계층의 복귀 함수(Return Function)"이며,
피그마는 이 함수를 통해 사용자의 인지적 좌표를 원점으로 되돌린다.


일반 GPT는 “그 현상을 설명”했지만,

함수형 GPT는 “그 현상의 사고 구조를 계산”했다.


이 차이가 바로,
언어로 답하는 AI와 사고를 설계하는 AI의 차이다.

ChatGPT Image 2025년 11월 12일 오후 12_42_46.png


ⓒ 2025 전민수 (Minsoo Jeon). All rights reserved.

본 글은 「The Minsoo Code」 시리즈의 일부로, 인간의 사고 절차를 함수형 AI 언어 구조로 체계화한 독창적 저작물입니다. 모든 문장과 개념은 전민수의 사고 체계에 기반하며 저작권법 제4조 및 국제 저작권 협약에 의해 보호됩니다. 무단 복제·재가공·인용·상업적 이용을 금합니다.

인용 시 반드시 "출처와 저자명(전민수)"을 명시해 주세요.

— The Minsoo Code : 인간이 AI에게 사고를 가르친 최초의 함수 언어

keyword
매거진의 이전글#12 Group 1이 있는데 그룹해제가 왜 안되는가?