Antoine Grondin
글소개rss···
← writing
September 20, 2026english·한국어·français

자유도§

Antoine Grondin

고집이 세서, 원래 하려던 걸 그냥 하고 싶다고 해 보자. 하지만 상황과 문제에는 제약과 요구사항이 있다. 무엇이 제약이 아닌지, 무엇이 요구사항이 아닌지 생각해 보는 것이 중요하다. 예를 들어 어떤 제약이 지금 이렇다고 하자:

X는 하면 안 된다

이 제약을 이렇게 바꿀 수 있다면:

X는 하면 안 되지만, X를 완화한 이런 버전은 해도 된다

그러면 결국 원래 하고 싶던 걸 하게 되니, 인생을 해킹해서 이긴 셈이다.

자유도§

삶에서 자유도란, 제약이 없어서 해도 되는 일들이라고 할 수 있다. 이론상 우리는 거의 무엇이든 해도 되니까 당연한 말처럼 들린다. 그런데 우리는 주어진 제약을 하고 싶은 일을 가로막는 걸림돌로 보고 거기에만 신경을 쓰곤 한다. 제약을 피해 가면서 제약 바로 옆에 있는 자유도를 활용할 때는 특별한 만족감이 든다. 제약은 지키면서 하고 싶은 것도 다 하는, "약 오르지?" 하는 묘한 쾌감이다.

물리학에서 자유도는 어떤 물체가 자유롭게 움직일 수 있는 축을 나타낸다. 문손잡이에는 자유도가 하나 있다. 바로 회전이다. 문손잡이는 문에서 앞뒤로 움직이지 못하도록 제약을 받지만, 문에 박힌 채로 돌 수는 있다.

어떤 문제 영역을 다룰 때는 보통 도메인 모델에 대한 설명을 듣게 된다. 이건 저걸로 이루어져 있고, 이런 일을 주기적으로 하고, 겨울에는 이런 먹이를 줘야 하고, 안 그러면 굶어 죽는다. 그리고 이건 하면 안 되고, 저건 아주 중요하다.

우리는 제약에 집중하는 경향이 있다. 시스템을 설계할 때도 기능 요구사항과 비기능 요구사항을 이야기하며 제약부터 따진다. 하지만 문제 안에는 자유도도 숨어 있다. 자유도는 이미 우리 손에 있고, 해법을 찾아가는 데 얼마든지 써먹을 수 있다. 그런데 정작 여기에는 눈을 돌리지 않을 때가 너무 많다.

나는 어떤 문제를 다루든, 그 문제에서 쓸 수 있는 자유도를 짚어 두는 것이 중요하다고 생각한다. 할 수 없는 것을 짚어 두는 것도 중요하지만, 할 수 있는 것도 짚어 두어야 한다. 특히 그게 잘 보이지 않을 때, 그리고 그걸 건드리기만 해도 해법이 여러 갈래로 열릴 때는 더욱 그렇다.

창의적인 해법과 꼼수가 쏟아지는 곳§

내 경험상, 그때그때 쓸 수 있는 자유도를 떠올려 보면 창의적인 아이디어가 정말 많이 나온다. 특히 겉으로는 제약처럼 보이는 것 뒤에 숨은 자유도를 찾아냈을 때는 훨씬 더 짜릿하다.

다음에 어떤 문제의 해법을 설계할 때는, 지금 쓸 수 있는 자유도를 꼭 적어 두라. 그리고 제약처럼 보이는 것을 완화하면 생기는 숨은 자유도도 함께 적어 두라.

스스로 이런 질문을 던져 보라:

  • 이 시스템이 미래를 전부 안다면?
  • 이건 X 형태로는 안 되지만, X' 형태로는 될까?
  • 내가 평행 우주에서 왔고 이 세계의 규칙 따위 개무시한다면, 상식을 정면으로 거스르는 무슨 미친 짓을 할까?
  • 이건 언제나 성립할까, 아니면 다른 어떤 입력에 비례해서 점점 덜 들어맞게 될까?

기술과 무관한 분야에서 이게 통했던 예:

  • 배달 기사에게 차 뒷좌석에 태워 달라고 부탁할 수 있다는 걸 깨달으면, 피자 배달은 택시나 다름없다.
  • 보병 장교도 Excel에 VBA가 있고 그걸로 뭐든 해 버려도 아무도 못 막는다는 걸 깨달으면, 소프트웨어 엔지니어나 다름없다.
타무닝 - 서울