나만의 블로그 서비스, 30분 만에 완성되는 기적 같은 경험
— 웹을 만든다는 건 이렇게나 아름답고, 이렇게나 빠르게 시작될 수 있다
프로그래밍을 처음 배우는 사람들은
늘 막연한 꿈을 갖는다.
“언젠가 나만의 웹사이트를 만들고 싶다.”
“내가 만든 글을 남들이 접속해서 볼 수 있었으면…”
“나도 블로그 하나쯤 만들 수 있지 않을까?”
그런데 대부분은 이렇게 생각하며 멈춘다.
어디서부터 시작해야 하지?
HTML부터 해야 하나?
DB는 어떻게 연결하는데?
서버는 또 어떻게 띄우지?
백엔드는 뭐고 프론트엔드는 뭐야?
웹은 거대한 산처럼 보이고,
정상까지 올라가려면 몇 년이 걸릴 것처럼 느껴진다.
그런데 Rails는
이 모든 난관을 단 하나의 메시지로 대신한다.
“일단 만들어보자.
어려운 건 내가 다 처리해줄게.”
1단계: rails new — ‘서비스의 심장’이 태어난다
당신은 터미널에서 이렇게 적는다.
rails new blog
엔터를 누르는 순간,
컴퓨터는 마치 오래 기다렸다는 듯
수많은 파일을 쏟아낸다.
model, view, controller, config, routes…
지금까지 책에서만 보던 단어들이
한 번에 생성된다.
불과 2초 전까지는 빈 폴더였는데,
이제는 웹서비스의 뼈대가 눈앞에 생겨 있다.
Rails는 말한다.
“웹은 이렇게 시작되는 거야.
이제 너만의 세계를 채워 넣어봐.”
2단계: rails server — 화면이 살아난다
다음 명령은 단 한 줄.
rails server
그리고 브라우저에서
http://localhost:3000
이라고 입력해본다.
그 화면은 정말 소박하지만,
그 소박함 때문에 더 짜릿하다.
당신이 만든 서비스가 살아 있다.
URL이 생겼고,
브라우저가 그것을 렌더링하며,
웹이라는 공간이 처음으로 “당신의 것”이 되었다.
이 경험은
코드를 아무리 오래 친 사람이라도
절대 잊지 못한다.
처음 서버가 돌아가는 그 순간은,
진짜로 자신이 세상을 바꾸는 기술을 손에 넣은 것처럼 느껴진다.
3단계: scaffold — 단 30초 만에 블로그 기능이 완성된다
모든 웹서비스가 갖고 있는 가장 기본적인 기능.
바로 CRUD —
Create(생성), Read(읽기), Update(수정), Delete(삭제).
우리는 이것을
블로그 글(Post) 기능으로 만들어보자.
Rails에서는 이렇게 한 줄이면 된다.
rails generate scaffold Post title:string body:text
rails db:migrate
그리고 주소창에 이렇게 입력한다.
http://localhost:3000/posts
그 순간, 당신은 놀라게 된다.
글 목록 페이지
글 작성 페이지
글 읽기 페이지
글 수정 페이지
글 삭제 버튼
DB와 자동 연결된 폼
URL 라우팅까지 전부 셋업
이 모든 것이
코드 한 줄도 손대지 않고 만들어진다.
당신은 거의 믿지 못하는 표정으로 말하게 된다.
“잠깐만…
방금 내가
블로그 서비스를 만든 거야?”
그렇다.
맞다.
그리고 Rails는 조용히 말한다.
“이제부터는 네가 원하는 대로
색칠하듯 커스터마이즈하면 돼.”
4단계: 글을 하나 작성해본다 — 웹의 심장이 뛴다
이제 Posts 페이지에서
“New Post”를 눌러보자.
제목을 입력하고
본문을 쓰고
“Create Post”를 클릭한다.
그러면,
세상 어딘가에는 존재하지 않던 글이
당신의 웹서비스 안으로 들어온다.
그 글은 DB에 저장되고,
화면에 표시되고,
URL을 가지며,
당신이 만든 서비스의 일부가 된다.
그 순간,
당신은 깊게 숨을 들이쉰다.
“아…
내가 만든 서비스에
내가 쓴 글이 실제로 저장되고, 렌더링되고 있구나.”
이건 단순히 페이지가 생긴 것이 아니다.
창조 행위다.
5단계: 이 모든 구조가 지금까지 배운 루비로 연결된다
이건 기적이 아니다.
Rails가 특별해서만 일어나는 일도 아니다.
당신이 지금까지 배운
반복
조건
메소드
클래스
모듈
순서화
대칭구조
데이터 패턴
이 모든 것이
Rails 안에서 웹의 구조로 변환될 뿐이다.
URL → 컨트롤러 메소드(액션)
액션 → 모델 메소드 호출
모델 → DB 데이터(클래스 인스턴스)
뷰 → 출력(puts 대신 HTML)
라우팅 → 순서화된 데이터 흐름
scaffold → 대칭적 CRUD 구조
즉,
지금까지 배운 루비는
단순히 콘솔 예제를 위한 기술이 아니라,
웹이라는 거대한 구조를 만들기 위한 언어였다.
이 사실을 깨달으면
독자의 가슴은 떨릴 수밖에 없다.
6단계: 이제 당신은 “웹을 사용하는 사람”에서 “웹을 만드는 사람”이 되었다
30분이라는 짧은 시간 동안
당신은 실제로
웹서비스 하나를 만들었고
그 서비스를 실행했고
DB를 생성했고
전체 CRUD 기능을 구현했고
화면을 렌더링하고
URL을 통해 서비스에 접근했다.
당신은 방금
아마도 인생에서 처음으로
웹을 창조한 사람이 되었다.
이것은 단순한 성취가 아니라
평생 잊지 않는 감정이다.
프로그래밍을 시작하는 수많은 사람이
이 첫 감격 때문에
십 년, 이십 년 동안 개발자로 살아간다.
그리고 이제
그 감격이 당신에게도 찾아왔다.
마지막으로: 당신은 이미 웹서비스를 만들 수 있는 사람이다
Rails는 당신에게
이렇게 말하고 있는 것처럼 느껴질 것이다.
“이제 네가 원하는 걸 만들자.
블로그든, 쇼핑몰이든, SNS든,
원리는 다 똑같아.
첫 페이지를 만든 사람은
어떤 페이지라도 만들 수 있다.”
그리고 그것은 진실이다.
당신은 오늘 단 30분 만에
웹이라는 구조물을 직접 만들었다.
이제 무엇이든 만들 수 있다.
다음 단계는 단지
상상력이 어디까지 가느냐에 달려 있을 뿐이다.