Rails Insights

루비로 나만의 웹 서버 만들기

웹 서버를 구축하는 것은 프로그래밍과 웹 개발에 대한 이해를 높이는 훌륭한 방법입니다. 루비는 그 자체로도 강력한 프로그래밍 언어이며, 웹 서버를 만드는 데 필요한 도구와 라이브러리를 제공합니다. 이 글에서는 루비를 사용하여 간단한 웹 서버를 만드는 방법을 안내하겠습니다.

웹 서버란 무엇인가?

웹 서버는 클라이언트의 요청을 처리하고, 요청된 웹 페이지나 데이터를 반환하는 소프트웨어입니다. 일반적으로 HTTP 프로토콜을 사용하여 클라이언트와 통신합니다. 웹 서버는 웹 애플리케이션의 핵심 구성 요소로, 사용자가 웹 브라우저를 통해 요청한 정보를 제공합니다.

루비 웹 서버의 장점

  • 간결하고 읽기 쉬운 문법
  • 강력한 라이브러리와 프레임워크 지원 (예: Rails, Sinatra)
  • 빠른 프로토타이핑과 개발 속도
  • 커뮤니티의 활발한 지원

루비 웹 서버 구축하기

이제 루비를 사용하여 간단한 웹 서버를 구축해 보겠습니다. 이 예제에서는 루비의 기본 라이브러리인 `WEBrick`을 사용할 것입니다. WEBrick은 루비에 내장된 HTTP 서버로, 간단한 웹 서버를 만드는 데 적합합니다.

1단계: 루비 설치하기

루비가 설치되어 있지 않다면, 먼저 루비를 설치해야 합니다. 루비는 다양한 운영 체제에서 사용할 수 있으며, 아래의 링크를 통해 설치할 수 있습니다:

2단계: WEBrick 서버 코드 작성하기

루비가 설치되었다면, 이제 WEBrick을 사용하여 간단한 웹 서버를 만들어 보겠습니다. 아래의 코드를 `server.rb`라는 파일에 저장하세요:

require 'webrick'

server = WEBrick::HTTPServer.new(:Port => 8000)

server.mount_proc '/' do |req, res|
  res.body = '안녕하세요! 루비 웹 서버에 오신 것을 환영합니다.'
end

trap('INT') { server.shutdown }

server.start

3단계: 서버 실행하기

터미널을 열고, `server.rb` 파일이 있는 디렉토리로 이동한 후, 다음 명령어를 입력하여 서버를 실행합니다:

ruby server.rb

서버가 성공적으로 실행되면, 다음과 같은 메시지가 표시됩니다:

[2019-01-01 12:00:00] INFO WEBrick::HTTPServer#start: pid=12345 port=8000

4단계: 웹 브라우저에서 확인하기

웹 브라우저를 열고 주소창에 http://localhost:8000을 입력합니다. 그러면 "안녕하세요! 루비 웹 서버에 오신 것을 환영합니다."라는 메시지가 표시됩니다.

서버 기능 확장하기

기본적인 웹 서버를 만들었으니, 이제 몇 가지 기능을 추가해 보겠습니다. 예를 들어, 다른 경로에 대한 요청을 처리하도록 서버를 확장할 수 있습니다.

1. 여러 경로 처리하기

아래의 코드를 사용하여 여러 경로를 처리하는 방법을 보여줍니다:

require 'webrick'

server = WEBrick::HTTPServer.new(:Port => 8000)

server.mount_proc '/' do |req, res|
  res.body = '안녕하세요! 루비 웹 서버에 오신 것을 환영합니다.'
end

server.mount_proc '/about' do |req, res|
  res.body = '이 웹 서버는 루비로 만들어졌습니다.'
end

server.mount_proc '/contact' do |req, res|
  res.body = '문의 사항은 이메일로 보내주세요.'
end

trap('INT') { server.shutdown }

server.start

이제 `/about` 및 `/contact` 경로에 대한 요청도 처리할 수 있습니다. 웹 브라우저에서 http://localhost:8000/abouthttp://localhost:8000/contact를 입력하여 확인해 보세요.

2. 정적 파일 제공하기

웹 서버에서 정적 파일(HTML, CSS, 이미지 등)을 제공하는 것도 가능합니다. 아래의 코드를 사용하여 정적 파일을 제공하는 방법을 보여줍니다:

require 'webrick'

server = WEBrick::HTTPServer.new(:Port => 8000)

server.mount '/public', WEBrick::HTTPServlet::FileHandler, 'public'

trap('INT') { server.shutdown }

server.start

위 코드는 `public` 디렉토리 내의 파일을 제공하도록 설정합니다. `public` 디렉토리를 만들고, 그 안에 `index.html` 파일을 추가해 보세요. 예를 들어:




    
    루비 웹 서버


    

루비 웹 서버에 오신 것을 환영합니다!

이 페이지는 정적 HTML 파일입니다.

이제 웹 브라우저에서 http://localhost:8000/public/index.html을 입력하면 정적 HTML 페이지를 확인할 수 있습니다.

마무리

루비를 사용하여 간단한 웹 서버를 구축하는 방법을 알아보았습니다. WEBrick을 사용하면 기본적인 웹 서버를 쉽게 만들 수 있으며, 다양한 기능을 추가하여 확장할 수 있습니다. 이 과정을 통해 웹 서버의 작동 원리를 이해하고, 루비 프로그래밍에 대한 경험을 쌓을 수 있습니다.

이제 여러분도 루비로 나만의 웹 서버를 만들어 보세요! 추가적인 기능을 구현하거나, 다른 라이브러리와 프레임워크를 사용하여 더 복잡한 웹 애플리케이션을 개발해 볼 수 있습니다.

Published: August 13, 2024

© 2024 RailsInsights. All rights reserved.