Computer >> 컴퓨터 >  >> 프로그래밍 >> Ruby

Ruby

  1. Ruby로 RSS 피드 기반 이메일 다이제스트 생성기 만들기

    바로 이런 느낌의 결과물을 원했습니다. 뉴스레터를 만들어야 한다는 할 일은 제 목록에 너무 오랫동안 남아 있었습니다. 그래서 오늘 드디어 실행에 옮기기로 했습니다. 관심 있는 분은 여기에서 구독하실 수 있습니다. 사실 저는 장문형 뉴스레터는 별로 좋아하지 않습니다. 제가 선호하는 형식은 흥미로운 콘텐츠만 골라 담은 큐레이션 다이제스트입니다. RubyWeekly가 대표적인 예이고, Wistia의 블로그 다이제스트도 마찬가지입니다. 그런데 이런 다이제스트를 매번 손으로 직접 만들자니 시간이 너무 많이 들고, 완전 자동화하자니 너무

  2. 루비 해시(Hash)의 숨겨진 고급 기법 완벽 가이드

    루비 개발자들은 해시(Hash)를 워낙 자주 사용하다 보니, 이제 모든 기능을 다 알고 있다고 착각하기 쉽습니다. 하지만 겉보기에 단순해 보이는 루비 해시에는 아직 우리가 모르는 강력한 기능이 숨어 있습니다. 해시는 단순한 키-값 저장소가 아니라, 매우 흥미롭고 정교한 작업을 수행할 수 있게 해주는 강력한 도구입니다. 모든 객체가 해시 키가 될 수 있습니다 본격적으로 살펴보기 전에, 놓치기 쉬운 한 가지 사실을 짚고 넘어가겠습니다. 우리는 주로 문자열과 심볼을 해시 키로 사용하지만, 그렇다고 다른 종류의 객체를 키로 쓸 수 없다는

  3. `items.map(&:name)`을 작동하게 만드는 영리한 해킹

    배열을 순회하다 보면 반복해서 사용하게 되는 축약 문법이 하나 있습니다. 바로 &: 트릭, 일명 앰퍼샌드 콜론(ampersand colon) 또는 프레첼 콜론(pretzel colon)입니다. 익숙하지 않은 분들을 위해 작동 방식부터 살펴보겠습니다. words = [would, you, like, to, play, a, game?] # 이렇게 쓰면... words.map &:length # ...사실상 아래와 동일합니다. words.map { |w| w.length } 저는 한동안 이 &: 문법이 연산자라

  4. Ruby 스크립트의 프로세스 이름 변경하기 — top과 ps에 표시되는 이름 바꾸는 방법

    Linux나 macOS에서 프로그램을 실행하면 항상 하나의 프로세스 안에서 동작합니다. 그리고 모든 프로세스에는 고유한 이름이 있습니다. 이 이름은 ps, top, htop 같은 명령어를 실행했을 때 화면에 표시되는 것입니다. htop은 가장 오른쪽 열에 프로세스 이름을 표시합니다.기본 프로세스 이름의 한계기본적으로 프로세스의 이름은 실행 중인 프로그램이 담긴 실행 파일의 이름에서 따옵니다. 대부분의 경우 이 방식이 잘 작동합니다. less를 실행하면 프로세스 이름도 less가 되는 것이 자연스럽기 때문입니다.하지만 명령줄에서 Ru

  5. Incoming! – 모든 랙(Rack) 애플리케이션에서 인바운드 이메일 처리하기

    고객에게서 전화가 왔습니다... 고객은 자신의 앱에서 수신 이메일(inbound email)을 처리하기를 원합니다. Basecamp처럼요. 문제없지. 이메일을 POST 방식으로 앱에 전달해 주는 서비스가 많으니 금방 하겠네.라고 생각하셨나요? 안타깝게도 그렇지 않습니다. 각 서비스마다 제각각인 독자적 형식을 사용하기 때문입니다. 어떤 서비스는 파싱된 이메일을 보내고, 어떤 서비스는 원본(raw) 데이터를 그대로 전달합니다. 인증 서명(authentication signature)을 함께 보내는 곳도 있는가 하면, 그렇지 않은

  6. 프로덕션 환경에서 RubyGems.org를 쓰면 안 되는 이유와 자체 젬 호스팅 가이드

    결론부터 말하자면, 젬(gem)은 훌륭하고 RubyGems.org 역시 훌륭한 서비스입니다. 하지만 최근 애플리케이션에 새로운 젬을 추가할 때마다 묘하게 불안한 기분이 들었습니다. 생각할수록 우리가 젬을 사용하는 방식은 단순히 결함이 있는 수준이 아니라, 언제 터져도 이상하지 않을 재앙처럼 느껴졌습니다. 소셜 엔지니어링의 실체 며칠 전 RubyNation 컨퍼런스에서 Ben Smith가 Hacking With Gems라는 인상적인 발표를 했습니다. 젬을 개발하는 이야기가 아니라, 젬 자체를 해킹 수단, 즉 공격 벡터로 활용하

  7. Rails에서 Hotwire 활용하기: JavaScript 없이 더 빠른 웹 앱 만들기

    페이지 전환과 폼 제출 속도를 높이고, 단 한 줄의 JavaScript 코드도 작성하지 않으면서 복잡한 페이지를 컴포넌트 단위로 분리하고 싶으신가요? 이 글은 Hotwire를 활용해 Rails 개발을 한 단계 끌어올리는 방법과 서버 사이드 렌더링 도구를 사용하는 법을 알려드립니다. Hotwire란 무엇인가? Hotwire는 JSON 대신 HTML을 전송하는 방식으로 JavaScript를 직접 작성하지 않고도 현대적인 웹 애플리케이션을 구축할 수 있게 해주는 프레임워크입니다. 덕분에 페이지 로딩 속도가 눈에 띄게 빨라지죠. 렌더링

  8. Ruby 뉴스 브리핑: 2021년 3분기 주요 소식 총정리

    Honeybadger의 분기별 브리핑은 프로그래밍 커뮤니티에서 가장 중요한 변화들을 한눈에 파악할 수 있도록 도와드립니다. 핵심 뉴스만 엄선하여 전달하므로, 개발자 여러분은 정말 중요한 일에 더 많은 시간을 집중할 수 있습니다. 이벤트: 다가오거나 최근에 열린 컨퍼런스와 밋업 소식 보안: 최근 보고된 취약점 정보 프로젝트: 주요 커뮤니티 프로젝트 관련 뉴스 주요 화제: 업계에서 가장 큰 관심을 받고 있는 토픽 요약 주목할 만한 콘텐츠: 다른 섹션에 담기 어렵지만 놓치기 아까운 콘텐츠 모음 이벤트 11월 8일~10일, Rub

  9. ActiveSupport #descendants 메서드 심층 분석: Ruby 상속과 모듈 완전 이해

    Rails는 Ruby의 내장 객체에 다양한 기능을 추가합니다. 어떤 사람들은 이를 Ruby의 방언(dialect)이라고 부르기도 하는데, 바로 이 덕분에 Rails 개발자들은 1.day.ago 같은 직관적인 코드를 작성할 수 있습니다. 이렇게 추가된 대부분의 메서드는 ActiveSupport에 속해 있습니다. 오늘은 그중에서도 비교적 잘 알려지지 않은, Class에 직접 추가되는 descendants 메서드를 살펴보겠습니다. 이 메서드는 호출된 클래스의 모든 하위 클래스(subclass)를 반환합니다. 예를 들어 Applicati

  10. Rails 앱에서 DynamoDB 활용하기: NoSQL 데이터베이스의 이해와 Dynamoid 젬 가이드

    DynamoDB는 핵심적으로 키-값(key-value)과 문서(document) 방식의 데이터 구조를 제공하는 NoSQL 데이터베이스입니다. 이 글을 읽는 대부분의 개발자는 전통적인 관계형 데이터베이스(RDBMS)에 익숙할 것입니다. RDBMS는 잘 정의된 스키마를 바탕으로 데이터를 테이블, 행(row), 열(column)로 정규화하고, 외래 키(foreign key)를 통해 테이블 간 관계를 형성합니다. 반면 DynamoDB는 스키마리스(schemaless)입니다. 모든 테이블에는 기본 키(primary key)가 반드시 필요하지

  11. Ruby로 Google Cloud Functions 빌드·테스트·배포하기: 서버리스 OTP 시스템 완벽 가이드

    서버리스 함수(Serverless Function)는 클라우드 서비스를 개발하고 배포하는 새로운 프로그래밍 패러다임입니다. 서버리스 환경에서는 백엔드 서비스의 프로비저닝, 유지 관리, 확장 작업을 모두 클라우드 공급자에게 위임합니다. 덕분에 개발자는 특정 문제 해결에만 집중할 수 있어 개발 생산성이 크게 향상됩니다. 서버리스 함수에는 여러 장단점이 있지만, 구축 시 반드시 고려해야 할 요소 중 하나가 바로 언어 지원입니다. 최근 Google은 Google Cloud Functions에서 Ruby 2.7 지원을 발표했는데, 이 글에서

  12. Rails에서 dry-monads로 구현하는 철도 지향 프로그래밍(Railway Oriented Programming)

    에러 처리는 모든 프로그램에서 필수적인 부분입니다. 코드를 작성할 때 어떤 오류가 발생할 수 있는지 미리 파악하고 능동적으로 대비하는 것이 중요합니다. 또한 발생한 오류가 무엇인지, 애플리케이션의 어느 단계에서 발생했는지 정확히 설명하는 결과를 산출하는 방식으로 처리해야 합니다. 그러면서도 코드의 기능성과 가독성을 해치지 않아야 하죠. 이미 궁금해하셨을 질문부터 시작해 보겠습니다. 철도 지향 프로그래밍(Railway Oriented Programming)이란 무엇일까요? 철도 지향 프로그래밍이란? 특정 목적을 달성하는 하나의 함

  13. Ruby로 AWS Lambda 함수 작성하기: 초보자를 위한 완벽 가이드

    AWS Lambda는 오버헤드를 최소화하면서도 확장성 있는 함수를 구축할 수 있게 해주는 강력한 서비스입니다. Ruby on Rails 앱 전체를 작성하고 호스팅하고 유지보수하는 대신, Lambda 함수를 활용하면 개별 이벤트에 독립적으로 대응하는 코드를 실행할 수 있습니다. 이 글에서는 AWS가 처음인 분도 자신만의 Lambda 함수를 Ruby로 작성할 수 있도록 기초부터 차근차근 안내합니다. Lambda는 서버를 직접 관리할 필요 없이 이벤트에 반응하여 코드를 실행할 수 있게 해줍니다. 이러한 이벤트 기반 아키텍처 덕분에 코드

  14. 터보링크(Turbolinks)에서 터보(Turbo)로 마이그레이션하기

    웹 애플리케이션의 페이지 이동 속도를 크게 높여 주던 훌륭한 도구인 터보링크(Turbolinks)는 더 이상 활발하게 개발되지 않습니다. 그 자리를 이어받은 것은 Hotwire 계열에 속하는 새로운 프레임워크, 바로 터보(Turbo)입니다. 개발팀은 터보링크에서 도출한 개념들이 프레임(frames), 폼 제출(form submissions), 네이티브 앱 같은 다른 영역에도 적용될 수 있음을 인식했고, 이를 바탕으로 더 빠른 웹을 지향하는 확장된 프레임워크를 만들어냈습니다. 이 글에서는 터보링크의 새로운 대체제인 터보 프레임워크

  15. Rails 앱 사용자 권한 관리 완벽 가이드: Policy Object 패턴으로 역할과 권한 구현하기

    웹 애플리케이션에서 특정 역할(role)과 권한(permission)을 부여하는 기능은 매우 흔한 요구 사항입니다. 많은 웹 애플리케이션이 관리자와 일반 사용자를 구분해 접근 권한을 제한합니다. 이는 보통 사용자가 관리자인지 여부를 판단하는 간단한 불리언(boolean) 값으로 처리되곤 하지만, 실제로 역할과 권한 체계는 훨씬 더 복잡해질 수 있습니다. 애플리케이션의 핵심 가치는 특정 데이터와 작업에 대한 접근을 제한하는 데 있습니다. 이 부분은 절대 실수해서는 안 되는 영역입니다. 이 글에서는 기본적인 Ruby on Rails 애

  16. Rails 숨겨진 보석: ActiveSupport 캐시 증가 및 감소

    Rails는 다양한 상황에 유용하게 쓸 수 있는 도구들이 내장된 방대한 프레임워크입니다. 이 시리즈에서는 Rails의 거대한 코드베이스 속에 숨어 있는 잘 알려지지 않은 도구들을 살펴봅니다. 이번 글에서는 Rails.cache의 increment와 decrement 메서드에 대해 알아보겠습니다. Rails.cache 헬퍼 Rails.cache는 애플리케이션의 캐시와 상호작용하기 위한 진입점입니다. 동시에 추상화 계층이기도 하여, 실제로 어떤 캐시 스토어를 사용하든 공통된 API로 호출할 수 있습니다. Rails는 기본적으로 다

  17. RuboCop으로 루비 코드 린팅과 자동 포매팅 한 번에 끝내기

    린팅(linting)이란 소스 코드에서 발생할 수 있는 프로그래밍 오류와 스타일상의 문제를 자동으로 검사하는 작업을 말합니다. 이 검사는 린터(linter)라 불리는 정적 코드 분석 도구가 수행합니다. 반면 코드 포매터(code formatter)는 소스 코드를 사전에 설정된 규칙 집합에 엄격하게 맞추도록 서식을 다듬는 데 특화된 도구입니다. 일반적으로 린터는 위반 사항을 보고하기만 하고 수정은 프로그래머의 몫으로 남기지만, 포매터는 규칙을 코드에 직접 적용해 서식 오류를 자동으로 고쳐 줍니다. 프로젝트에서 일관된 코드 스타일을 만

  18. Rails의 숨겨진 보석: ActiveRecord Store

    Rails는 다양한 상황에서 유용하게 쓸 수 있는 내장 도구를 여럿 갖춘 거대한 프레임워크입니다. 이 시리즈에서는 Rails의 방대한 코드베이스 속에 숨어 있는 잘 알려지지 않은 도구들을 하나씩 살펴봅니다. 이번 글에서는 ActiveRecord의 store와 store_accessor 메서드에 집중해 봅니다. 두 메서드 모두 JSON이나 YAML처럼 구조화된 데이터를 데이터베이스 컬럼에 저장하는 용도로 설계되었습니다. store_accessor는 게터 메서드로 모델을 어수선하게 만들지 않고도 데이터에 담긴 값에 접근할 수 있는 편

  19. Rails와 Elasticsearch로 구현하는 전체 텍스트 검색 완벽 가이드

    Elasticsearch는 현재 가장 인기 있는 검색 엔진 중 하나입니다. Netflix, Medium, GitHub 같은 거대 기업들이 프로덕션 환경에서 적극적으로 사용하며 사랑하고 있는 기술이기도 합니다. Elasticsearch는 매우 강력한 도구로, 대표적인 활용 분야로는 전체 텍스트 검색(full-text search), 실시간 로그 분석, 보안 분석 등이 있습니다. 하지만 아쉽게도 Rails 커뮤니티에서는 Elasticsearch에 대한 관심이 많지 않은 편입니다. 이 글은 이러한 상황을 바꿔보고자 두 가지 목표를 가지고

  20. 루비(Ruby) 프로그래밍이란? 주요 활용 분야와 학습 방법 완벽 가이드

    프로그래밍 언어에 대해 조금만 검색해 보면 루비(Ruby) 프로그래밍과 그 인기 있는 웹 프레임워크인 루비 온 레일스(Ruby on Rails) 이야기를 접하게 됩니다. 인터넷의 상당 부분이 루비 언어로 구축되었으며, 그 외에도 수많은 애플리케이션이 루비로 만들어졌습니다. 그렇다면 루비 프로그래밍 언어란 정확히 무엇이고, 어떤 용도로 사용될까요? 루비 프로그래밍 언어란 무엇인가? 루비는 처음부터 프론트엔드와 백엔드 웹 개발 및 유사한 애플리케이션에서 사용할 목적으로 설계된 스크립팅 언어입니다. 견고하고 동적 타이핑(dynamic

Total 598 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:30/30  20-컴퓨터/Page Goto:1 24 25 26 27 28 29 30