AI를 사용하는 경험은 그대로

2편에서 이야기했듯, 처음 만든 ATLAS는 클라우드에서 사용할 수 있는 개인 AI 앱 정도의 모습이었다.

맥북을 열지 않아도 AI와 이어서 작업할 수 있었고, 대화 기록도 저장할 수 있었다. 그 정도만으로도 이전보다 훨씬 편했다.

하지만 직접 사용하기 시작하니 조금씩 욕심이 생겼다.

AI를 사용하는 경험 자체를 조금 더 좋게 만들 수 있지 않을까?

그 첫 번째 아이디어가 영어였다.

AI 사용 경험 위에 첫 번째 레이어를 얹다

내가 만들고 싶었던 것은 영어 공부 앱이 아니었다.

AI 사용 경험 위에 하나의 레이어를 얹고 싶었다.

그리고 그 첫 번째 실험이 영어 학습이었다.

당시에도 영어를 공부해야겠다는 생각은 자주 했지만, 솔직히 말하면 영어 공부는 귀찮았다. 영어 앱을 따로 열고, 단어를 외우고, 복습 시간을 만드는 과정 자체가 하나의 스트레스였다.

반대로 AI는 거의 매일 사용하고 있었다.

그렇다면 굳이 영어 공부를 따로 분리할 필요가 있을까?

이미 AI를 사용하는 흐름 안에서 자연스럽게 영어까지 익힐 수 있다면 훨씬 오래 사용할 수 있지 않을까 하는 생각이 들었다.

내 목표는 단순했다. AI를 사용하는 경험은 그대로 유지하면서, 영어 학습이 자연스럽게 따라오는 것.

One conversation. Two layers.

프롬프트만으로는 해결되지 않았다

처음에는 프롬프트만 조금 바꾸면 될 줄 알았다.

답변 뒤에 좋은 영어 표현을 함께 알려 달라거나, 내가 쓴 문장을 더 자연스러운 영어로 바꿔 달라고 하면 충분할 것 같았다.

하지만 실제로 사용해 보니 금방 한계가 드러났다.

메인 답변과 영어 설명이 한 문단 안에 섞이기 시작했고, 답변은 점점 길어졌다. 무엇보다 학습 경험 자체를 설계할 수 없었다.

내가 원했던 것은 단순히 영어 표현을 알려주는 것이 아니었다. AI 답변을 읽다가 모르는 단어나 표현을 클릭하면 바로 뜻과 설명을 확인하고, 마음에 들면 한 번의 클릭으로 저장하고, 나중에 다시 복습하는 흐름을 만들고 싶었다.

언어 학습은 대부분 귀찮고 의식적으로 시간을 내야 하는 일이다. 그래서 오히려 학습을 시작하기 위해 드는 비용을 최대한 줄이고 싶었다.

AI를 사용하다가 자연스럽게 표현 하나를 저장하고, 나중에 다시 만나는 것. 영어 앱을 따로 열거나, 메모장에 복사해서 붙여 넣는 과정 없이 학습이 이어지는 경험.

프롬프트는 답변을 조금 바꿀 수는 있었지만, 이런 사용자 경험 자체를 만들 수는 없었다.

Prompt vs. dedicated layer

결국 직접 인터페이스를 만들었다

그래서 결국 직접 만들었다. 내가 원하는 인터페이스를.

메인 채팅은 질문에 답하는 역할만 한다. 영어 레이어는 그 옆에서 조용히 동작한다. 둘은 서로 다른 역할을 가진 별도의 레이어였다.

질문에 답하는 모델은 대화에만 집중하고, 영어 레이어는 그 대화를 학습 자료로 바꾸는 역할을 맡았다.

내가 원했던 것은 AI가 영어를 가르쳐 주는 것이 아니라, AI를 사용하는 과정 자체가 영어 공부가 되는 경험이었다.

Atlas App Chat Interface

영어 레이어는 두 가지 역할을 했다

영어 레이어는 크게 두 가지 기능으로 구성했다.

1. 내가 입력한 문장을 분석한다

사용자가 질문을 입력하면 영어 레이어가 함께 동작한다. 예를 들어, "나는 아직 확신이 없어."라고 입력했다면, 다음과 같은 자연스러운 표현을 함께 추천한다.

  • I'm not convinced yet.
  • I'm still not sure.
  • I haven't made up my mind yet.

또 문장 안에서 자주 쓰이는 표현이나 함께 알아두면 좋은 단어도 추천해 준다. 답변을 방해하지 않는 선에서, 조금씩 영어를 익힐 수 있도록 설계했다.

2. AI의 답변을 분석한다

영어는 내가 입력한 문장에서만 배울 수 있는 것이 아니었다. 오히려 AI의 답변 안에는 좋은 표현이 훨씬 많았다.

그래서 영어 레이어는 AI가 생성한 답변도 함께 분석했다. 비교적 어려운 단어나 표현을 자동으로 찾아 설명해 주고, 원하면 바로 저장할 수 있도록 만들었다.

메인 답변은 그대로 읽고, 영어 레이어는 필요한 순간에만 옆에서 도와주는 구조였다.

단어와 표현은 따로 저장했다

구현하면서 재미있는 사실 하나를 다시 느꼈다. 단어를 안다고 표현을 사용할 수 있는 것은 아니었다.

예를 들어 meticulous 같은 단어는 뜻을 알면 어느 정도 사용할 수 있다. 하지만 I can't quite put it into words. 같은 표현은 뜻을 알아도 실제 대화에서는 쉽게 떠오르지 않는다.

그래서 저장 방식도 두 가지로 나누었다.

단어 저장은 영어와 한국어 뜻을 함께 저장한다. meticulous → 꼼꼼한, subtle → 미묘한, compelling → 설득력 있는처럼. 복습할 때는 영어를 보고 한국어 뜻을 맞히는 방식이다.

표현 저장은 그 문장을 그대로 저장한다. 복습할 때는 빈칸 문제를 만든다. I can't quite ______ it into words.put. 단어 자체가 아니라, 문맥 속에서 표현을 다시 떠올리는 방식이다.

Two ways to save: words vs. expressions

Atlas Word Memorization Screen

Atlas English Study Card

저장보다 복습이 더 중요했다

저장 기능만 만들어서는 의미가 없었다. 저장한 단어나 표현은 시간이 지나면 결국 잊어버린다.

그래서 간단한 암기 도구도 함께 만들었다. 매일 저장한 단어와 표현을 테스트할 수 있었고, 맞힌 횟수와 마지막 학습 시점을 기록해서 망각곡선을 따라 복습 시기를 조절하도록 만들었다.

단어는 영어를 보고 한국어 뜻을 맞히고, 표현은 빈칸 문제를 풀면서 문맥 속에서 다시 떠올린다.

새로운 표현을 발견하는 것만큼, 다시 만나는 과정도 중요하다고 생각했기 때문이다.

The English learning loop

Atlas English Expression Study

생각보다 재미있었던 건 UX였다

돌이켜보면 영어 자체보다 더 재미있었던 것은 사용자 경험을 설계하는 일이었다.

어떻게 하면 사용자가 아무 생각 없이 표현을 저장할 수 있을까. 저장 버튼은 어디에 있어야 할까. 설명은 메인 답변을 방해하지 않으면서도 충분히 읽기 쉬워야 하지 않을까. 복습은 얼마나 간단해야 계속 사용할까.

영어 공부를 시작하는 순간 귀찮아지는 것이 아니라, AI를 사용하는 흐름 안에서 자연스럽게 이어지는 경험을 만들고 싶었다.

내가 만들고 있었던 것

지금 돌아보면 내가 만들고 있었던 것은 영어 기능이라기보다, AI 위에 새로운 레이어를 얹는 첫 번째 실험이었다.

메인 대화는 그대로 유지하면서, 별도의 레이어가 그 옆에서 조용히 다른 가치를 만들어내는 구조. 방해하지 않으면서도, 분명히 존재하는.

그 패턴은 이후 ATLAS가 발전하면서 계속 반복됐다.

다음 이야기

이 영어 레이어는 꽤 만족스러웠다. 실제로 매일 사용할 정도로 기능도 잘 동작했고, 내가 원했던 사용자 경험도 어느 정도 구현할 수 있었다.

하지만 오래 사용하다 보니 또 다른 문제가 보이기 시작했다. Claude API는 생각보다 훨씬 비쌌다.

같은 Claude를 사용하더라도 구독과 API는 비용 구조가 완전히 달랐다. 조금만 대화를 오래 이어가도 토큰이 빠르게 소모됐고, 영어 레이어처럼 여러 모델을 함께 호출하는 기능은 비용을 더 키웠다.

그때 처음으로 이런 생각을 했다. "비싼 모델 하나를 계속 쓰는 대신, 저렴한 모델 여러 개를 잘 조합하면 비슷한 결과를 만들 수 있지 않을까?"

그 질문이 다음 실험으로 이어졌다. 그리고 그 과정에서 처음으로 LangGraph를 공부하게 된다.