전체 글154 RACK 살펴보기6 이번 글에서는 Rack 미들웨어를 직접 만들어 보자. Rack 미들웨어는 최종 애플리케이션 또는 순서상 자신 다음에 오는 미들웨어의 실행 전후에 필요한 작업을 한다. 하나 이상의 미들웨어와 애플리케이션이 서로 순차적으로 실행되기 위해서는, 서로 간에 연결이 필요하고 호출해야 할 메서드와 반환값에 대한 규칙이 필요하다. 호출 대상 메서드와 반환값에 대한 규칙은 이미 알고 있듯이, Rack 애플리케이션의 형식으로 그대로 따르면 된다. 그렇다면, 미들웨어 간의 연결과 미들웨어와 애플리케이션 간의 연결은 어떻게 해야 할까? 가장 간단한 방법은 다음 미들웨어 또는 애플리케이션에 대한 객체를 갖고 있으면 된다. 아래 코드를 D:/blog/ruby/rack 폴더 아래 각각 my_rack.rb와 test_my_rack.. 2025. 10. 31. RACK 살펴보기5 이번 글에서는 Rack 미들웨어에 대해 알아보자. Rack 표준에 따라 애플리케이션을 개발할 때, 애플리케이션의 종류와 무관하게 요청을 처리하기 전과 후에 공통으로 필요한 작업이 있을 수 있다. 예를 들어, 요청 및 응답에 대한 로깅 처리와 예외 발생 시 클라이언트에게 전달할 응답을 생성하는 등의 작업은 모든 애플리케이션에서 공통으로 필요할 수 있는 작업들이다. Rack 미들웨어가 바로 이러한 역할을 한다. Rack 미들웨어는 애플리케이션 앞에서 Rack 서버로부터 요청을 먼저 받아 필요한 작업을 한 후, 해당 요청을 애플리케이션에게 전달한다. 그리고 애플리케이션에게 응답을 받으면 다시 필요한 작업을 한 후에 최종적으로 Rack 서버에게 응답을 반환한다. Rack 미들웨어는 여러 개일 수 있고, 그럴 경.. 2025. 10. 20. RACK 살펴보기4 이번 글에서는 '간단한 웹서버 만들기' 글을 통해 만들었던 moneynfree.com 웹 애플리케이션을 Puma와 WEBrick 서버에서 실행해 볼 것이다. 그런데, moneynfree.com은 HttpHandler를 기반으로 만들었기 때문에 현재로서는 my_web_server에서만 실행이 가능하다. 그렇다면 moneynfree.com의 소스 코드를 수정하지 않고도 Rack 기반의 웹 서버에서 실행할 방법은 없는 걸까? 우리는 가정집 등 대부분이 220V를 사용하는 반면 일본은 100V를 사용하며 콘센트 모양도 우리와 다르다. 그래서 우리나라에서 사용하던 전자제품을 일본에서 사용하려면 플러그에 일명 돼지코라고 부르는 플러그 어댑터를 끼워서 사용해야 한다. 즉, 플러그 어댑터가 서로 모양이 다른 플러그와 .. 2025. 9. 23. RACK 살펴보기3 이번 글에서는 Rack 기반의 웹 서버가 애플리케이션의 call 메서드를 호출할 때 HTTP 요청과 관련하여 어떤 정보들을 전달하는지 살펴보자. D:/blog/ruby/rack 폴더 아래 print_env.rb 파일을 만들고 아래 코드를 작성해 보자. # print_env.rbrequire 'rack/handler/puma'app = lambda do |env| puts "env['REQUEST_METHOD'] = #{env['REQUEST_METHOD']}" puts "env['PATH_INFO'] = #{env['PATH_INFO']}" puts "env['QUERY_STRING'] = #{env['QUERY_STRING']}" puts "env['SERVER_NA.. 2025. 9. 19. 이전 1 2 3 4 ··· 39 다음