Chapter 3
첫 소환
“간단한 계산기 만들어줘.”
그게 내가 처음 던진 명령이었다.
왜 계산기였을까. 지금 생각하면 웃기다. 그 많은 아이디어 중에, 10년간 품어온 서비스 구상들 중에, 하필 계산기.
아마 무의식적으로 가장 안전한 걸 고른 것 같다. 계산기는 단순하다. 실패해도 타격이 적다. 진짜 만들고 싶은 것을 시험대에 올리기엔, 아직 이 용사를 믿을 수 없었다.
기대 반, 의심 반.
엔터를 눌렀다.
화면에 글자가 주르륵 나타났다.
function add(a, b) { return a + b; }
function subtract(a, b) { return a - b; }
// ... 사칙연산 함수 네 개
…이게 끝?
뭔가 허무했다. 코드가 화면에 떠 있었다. 분명 내가 요청한 대로 사칙연산 함수가 있었다. 문법도 맞아 보였다. 아마 동작할 것이다.
하지만 내가 원한 건 이런 게 아니었다.
이건 그냥 함수 네 개다. 콘솔에서 add(2, 3)을 치면 5가 나오겠지. 그게 뭐? 이걸로 뭘 할 수 있는데?
내가 원한 건 ‘진짜 서비스’였다. 사용자가 쓸 수 있는 것. 화면이 있고, 버튼이 있고, 클릭하면 뭔가가 일어나는 것. 사람들이 브라우저에서 열어서, 직접 숫자를 넣고, 결과를 확인할 수 있는 것.
돈이 될 수 있는 것. 아니, 돈은 아직 먼 이야기더라도, 최소한 ‘내가 만든 걸 누군가 쓸 수 있는 것’.
그래서 다시 입력했다.
“아니, 웹페이지로 만들어줘. 사용자가 두 숫자를 입력하면 결과가 나오는.”
용사가 대답했다.
“이렇게 하면 될 것 같아요.”
화면이 달라졌다. 코드가 훨씬 길어졌다. HTML, CSS, JavaScript가 섞여 있었다.
<!DOCTYPE html>
<html>
<head>
<title>Simple Calculator</title>
<style>/* 스타일 코드 */</style>
</head>
<body>
<h1>Calculator</h1>
<input type="number" id="num1" placeholder="First number">
<input type="number" id="num2" placeholder="Second number">
<button onclick="calculate()">Add</button>
<div id="result"></div>
<script>/* 계산 로직 */</script>
</body>
</html>
잠깐, 이게 진짜 되는 거야?
반신반의하며 코드를 복사했다. 메모장을 열었다. 붙여넣기. 파일을 calculator.html로 저장했다.
파일을 더블클릭했다.
브라우저가 열렸다.
화면에 “Calculator”라는 제목이 있었다. 입력창 두 개. 버튼 하나.
첫 번째 칸에 5를 입력했다. 두 번째 칸에 3을 입력했다.
버튼을 눌렀다.
“Result: 8”
동작했다.
진짜로.
나는 화면을 멍하니 바라봤다. 지금 무슨 일이 일어난 거지?
내가 한 건 두 문장이었다. “계산기 만들어줘.” “웹페이지로 만들어줘.”
그랬더니 진짜 동작하는 웹페이지가 나왔다. 내가 코드를 한 줄도 직접 쓰지 않았는데.
물론 보잘것없었다. 디자인은 밋밋했다. 더하기밖에 안 됐다. 숫자를 안 넣고 버튼 누르면 NaN이 떴다.
하지만 ‘됐다’.
10년 동안 “됐다”를 말해본 적이 없었다.