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

Ruby

  1. Rails 개발자를 위한 최고의 Ruby IDE 7선: 생산성을 높이는 개발 도구 선택 가이드

    프로그래머라면 언젠가 반드시 통합 개발 환경(IDE)에 대해 고민하게 됩니다. 어떤 도구를 사용하느냐에 따라 코딩 속도와 편의성이 크게 달라지기 때문입니다. 이 글에서는 Ruby on Rails 개발자에게 가장 적합한 텍스트 에디터와 Ruby IDE를 소개합니다. Ruby IDE vs 텍스트 에디터: 무엇이 다를까? 텍스트 에디터 전통적으로 텍스트 에디터는 일반 텍스트 파일을 생성하고 편집하는 도구였으며, 작성된 코드는 터미널의 명령줄 인터페이스(CLI)를 통해 컴파일하고 실행했습니다. 아직도 이런 방식으로 동작하는 에디터가 있지만

  2. Ruby on Rails 완벽 가이드: 웹 프레임워크 학습의 모든 것

    Hulu, GitHub, Fiverr처럼 우리가 매일 접하는 주요 웹사이트 상당수가 Ruby on Rails로 만들어졌습니다. Ruby on Rails는 Ruby 프로그래밍 언어 기반의 서버 사이드(server-side) 프레임워크로, 웹 애플리케이션을 구동하고 프론트엔드 코드를 데이터베이스와 연결하는 역할을 합니다. Facebook이나 Instagram처럼 사용자 정보를 데이터베이스에 저장하는 사이트들이 대표적인 예입니다.웹사이트가 정보를 저장하려면 데이터베이스가 반드시 필요한데, Ruby on Rails는 바로 이 데이터를 웹사

  3. 루비(Ruby) 완전 정복: 실력 향상과 인상적인 포트폴리오를 만드는 최고의 프로젝트 아이디어

    루비(Ruby)는 간결하고 직관적인 문법 덕분에 전 세계 개발자들에게 사랑받는 프로그래밍 언어입니다. 특히 웹 개발 분야에서 활용도가 높아, 트위터(Twitter), 훌루(Hulu), 에어비앤비(Airbnb) 같은 대형 서비스가 모두 루비 기반으로 구축되었습니다. 다양한 프로젝트를 직접 만들어 보는 것은 루비 실력을 탄탄하게 다지고 커리어 목표에 한 발짝 더 가까워지는 가장 확실한 방법입니다.이 글에서는 초급부터 고급까지, 수준별로 도전할 수 있는 루비 프로젝트 아이디어를 소개합니다. 부트캠프나 온라인 강의를 수강 중이라면, 배운

  4. Rails Devise 튜토리얼 2부: DeviseInvitable로 이메일 초대 기능 구현하기

    소개 이 튜토리얼의 첫 번째 파트에서는 Devise를 설치하고 Rails 애플리케이션에 설정하는 방법을 배웠습니다. 이번 두 번째 파트에서는 DeviseInvitable을 통합하는 방법을 살펴보겠습니다. DeviseInvitable은 Devise와 함께 작동하는 확장 젬(gem)입니다. 애플리케이션에 DeviseInvitable을 적용하면 사용자가 이메일을 통해 친구를 초대할 수 있습니다. 협업형 애플리케이션을 개발하고 있다면 반드시 도입하면 좋은 강력한 기능입니다. DeviseInvitable 설정하기 Gemfile을 열고 다음

  5. phpPress, goPress, rubyPress, nodePress에서 폼(양식) 처리하기

    플랫 파일 시스템 기반의 웹 사이트를 운영하고 있다면, 사용자들로부터 피드백을 받고 싶어질 것입니다. Disqus를 추가하는 방법도 있지만, 이는 페이지에 JavaScript 코드만 추가하면 되는 간편한 방식일 뿐 여러분이 원하는 바는 아닐 겁니다. 사용자가 직접 이메일을 보낼 수 있고, 관리자가 해당 사용자에게만 답장을 보낼 수 있는 시스템이 필요합니다. JavaScript만으로 사용자 컴퓨터에서 직접 이메일을 발송하는 시스템을 만들 수도 있습니다. 하지만 그렇게 하면 코드에 노출된 이메일 주소를 스패머들이 쉽게 가져가 다른 스패

  6. 첫 번째 웹 스크래퍼 만들기, 2부: Mechanize로 링크 클릭부터 폼 제출까지

    이번 튜토리얼에서는 Mechanize를 사용해 링크를 클릭하고, 폼을 작성하고, 파일을 업로드하는 방법을 배웁니다. 또한 Mechanize의 페이지 객체를 원하는 대로 다루는 법과 Google 검색을 자동화해서 결과를 저장하는 방법까지 함께 살펴봅니다. 다룰 주제 단일 페이지 vs. 페이지네이션 Mechanize Agent(에이전트) Page(페이지) Nokogiri 메서드 링크 클릭 폼 단일 페이지 vs. 페이지네이션 지금까지 우리는 Nokogiri를 활용해 단일 페이지 화면에서 데이터를 스크래핑하는 방법에 대해 알아보았습니다

  7. 나의 첫 번째 웹 스크래퍼 만들기, 2부: Mechanize로 페이지 탐색과 폼 자동화하기

    이 튜토리얼에서는 Mechanize를 사용해 링크를 클릭하고, 폼을 작성하며, 파일을 업로드하는 방법을 배웁니다. 또한 Mechanize의 페이지 객체를 원하는 대로 다루는 방법과 구글 검색을 자동화하여 결과를 저장하는 방법까지 살펴봅니다. 주요 내용 단일 페이지 vs. 페이지네이션 Mechanize Agent Page Nokogiri 메서드 링크 클릭 폼 단일 페이지 vs. 페이지네이션 지금까지 우리는 Nokogiri를 사용해 단일 페이지의 화면을 어떻게 스크랩하는지 알아보았습니다. 이것은 한 단계 더 나아가 여러 페이지에서

  8. Rails에서 Shrine 젬으로 파일 업로드 구현하기: 설치부터 S3 연동까지

    Ruby on Rails에는 CarrierWave, Paperclip, Dragonfly 등 다양한 파일 업로드 젬이 존재합니다. 각각 고유한 특징을 지니고 있으며, 여러분도 이미 그중 하나 이상을 사용해 보셨을 가능성이 큽니다.하지만 오늘은 Janko Marohnić가 만든 비교적 새롭지만 매우 훌륭한 솔루션인 Shrine을 소개하려 합니다. 다른 유사한 젬들과 달리 Shrine은 모듈 방식(modular approach)을 채택하고 있어, 모든 기능이 개별 모듈(Shrine 용어로는 플러그인)로 패키징됩니다. 유효성 검증이 필요

  9. Rails에서 Clearance로 간편하게 인증 기능 구현하기

    Clearance는 Thoughtbot 팀이 만든 이메일과 비밀번호 기반의 간단한 인증 시스템입니다. 독단적인 기본 설정을 가지고 있지만, 필요에 따라 쉽게 재정의(오버라이드)할 수 있도록 설계되었습니다. 현재도 꾸준히 유지보수가 이루어지고 있으며, GitHub에서 관련 소식을 확인할 수 있습니다.이 튜토리얼에서는 Rails 애플리케이션에 Clearance를 통합하는 방법을 알아보겠습니다. 설명을 위해 작은 규모의 애플리케이션을 활용할 예정입니다. 그럼 시작해 보겠습니다!시작하기먼저 Rails 애플리케이션을 생성합니다. 이 튜토리얼

  10. Rails 애플리케이션에서 OmniAuth-Twitter로 트위터 소셜 로그인 구현하기

    이 튜토리얼에서는 사용자가 자신의 트위터 계정으로 애플리케이션에 로그인할 수 있도록 하는 방법을 알아봅니다. OAuth와 같은 도구 덕분에 이러한 기능 구현이 한결 쉬워졌습니다.여기서는 OmniAuth의 트위터 전략(Twitter Strategy)을 담고 있는 OmniAuth-Twitter 젬(gem)을 활용하겠습니다.그럼 바로 시작해 보겠습니다!시작하기먼저 Rails 애플리케이션을 생성합니다. 터미널에서 다음 명령어를 실행하세요.rails new Tuts-Social -TGemfile을 열어 bootstrap 젬을 추가합니다.#G

  11. Rails와 Carrierwave로 파일 업로드 기능 구현하기: 완벽 가이드

    이 글은 Rails로 업로드하기 시리즈의 또 다른 편입니다. 오늘은 Rails에서 가장 인기 있는 파일 업로드 솔루션 중 하나인 Carrierwave를 소개하려고 합니다. 제가 Carrierwave를 좋아하는 이유는 시작하기 쉽고, 기본적으로 제공되는 기능이 풍부하며, 커뮤니티 회원들이 작성한 수많은 How to 문서가 있어서 길을 잃을 걱정이 없기 때문입니다. 이 글에서 배울 내용은 다음과 같습니다: Rails 앱에 Carrierwave 통합하기 유효성 검사(Validation) 추가하기 요청 간 파일 상태 유지하기 파일 삭제하

  12. Docker로 나만의 프리미엄 URL 단축 서비스 구축하기: 완벽 가이드

    인터넷을 사용하다 보면 아주 긴 URL(Uniform Resource Locator)을 자주 접하게 됩니다. 많은 사이트는 언어, 지역 정보, 식별자, 프로모션 참조 코드 등 다양한 정보를 URL에 담아 전달하기 때문에 URL이 비정상적으로 길어지곤 합니다. CodeCanyon의 Premium URL Shortener CodeCanyon에서 판매 중인 Premium URL Shortener는 이렇게 긴 URL을 짧게 줄여주는 솔루션입니다. 이 튜토리얼에서는 자신의 시스템에 직접 URL 단축 서비스를 구축하고 활용하는 방법까지 단

  13. 모바일 앱 개발 언어 총정리: 프로젝트에 맞는 최적의 언어 선택 가이드

    모바일 앱을 개발하려면 모바일 개발용 프로그래밍 언어를 알아야 합니다. 하지만 수많은 선택지 중에서 프로젝트에 가장 적합한 언어를 고르는 일은 결코 쉽지 않습니다. 이 글에서는 다양한 모바일 개발 언어를 살펴보고, 여러분이 최선의 결정을 내릴 수 있도록 도와드리겠습니다. 프로그래밍 언어의 선택은 무엇을 만들고자 하는지에 따라 달라집니다. 어떤 앱에서는 특정 언어가 제공하는 모든 기능이 필요 없을 수도 있고, 반대로 하나의 앱을 만드는 데 두 개 이상의 언어가 필요한 경우도 있습니다. 지금부터 주요 모바일 개발 언어들을 하나씩 짚어보

  14. 소프트웨어 개발 견적은 목표가 아니라 커뮤니케이션 도구입니다

    이 작업은 얼마나 걸릴까요? 이 변경 사항을 적용하기가 얼마나 어려운가요? 이런 질문에 화가 나고 답답함을 느낀다면, 아마 소프트웨어 개발자일 가능성이 높습니다. 견적(estimate)은 참으로 고통스러운 작업입니다. 특히 견적을 요청하는 사람(여기서는 편의상 밥이라고 부르겠습니다)이 자신이 요청하는 작업에 대해 막연한 윤곽만 가지고 있을 때 더욱 그렇습니다. 이러한 고통의 상당 부분은 밥이 실제로 원하는 것과 내가 생각하는 밥이 원하는 것 사이의 차이에서 비롯됩니다. 견적은 목표가 아니다 개발자 입장에서 견적이란 평균적으로

  15. Ruby 2.1로 업그레이드해야 할까요?

    이 질문에 대한 답은 스크린샷 한 장으로 대신하겠습니다. {% img img-responsive /images/posts/ruby-2-1-improvement.png 645 259 이건 확실한 예스라고 불러야겠죠 %} 약 일주일 전 프로덕션 환경에서 Ruby 1.9를 2.1로 업그레이드했고, 그 결과가 바로 위 그래프입니다. 하단의 회색 영역은 가비지 컬렉션(GC) 시간이 거의 0에 수렴한 모습을 보여줍니다. 전체적으로 업그레이드만으로 서버 응답 시간이 15~20% 개선되었습니다. 별도의 GC 튜닝 없이도 말이죠! 업그레이드를

  16. Ruby에서 외부 서비스 테스트하기, 생각보다 쉽습니다

    새 프로젝트를 시작했고, 이제 코드가 서드파티 서비스에 의존할 차례입니다. ElasticSearch나 Resque 같은 도구일 수도 있고, 결제 제공업체 또는 임의의 HTTP API일 수도 있습니다. 좋은 개발자라면 이런 코드도 철저히 테스트하고 싶어질 겁니다. 하지만 내가 전혀 통제할 수 없는 서비스로 요청을 보내는 코드는 대체 어떻게 테스트해야 할까요? 테스트를 건너뛸 수도 있지만, 그렇게 되면 곧 불안한 기반 위에 더 많은 코드를 쌓게 됩니다. 테스트되지 않은 코드는 더 복잡한 코드를 계속 끌어들이기 마련이고, 결국에는 필요

  17. 내 테스트 커버리지는 어떻게 이 지경이 됐을까?

    코드를 작성하는 것은 그에 대한 테스트를 작성하는 것보다 훨씬 쉽게 느껴집니다. 게다가 한 줄짜리 메서드에 정말로 테스트가 필요할까요? 너무 사소하잖아요. 테스트를 추가하면 개발 시간이 두세 배로 늘어나고, 다음에 코드를 수정할 때마다 테스트도 함께 고쳐야 합니다. 특히 예상 시간이 얼마 남지 않았다면 그런 작업은 완전한 낭비처럼 보입니다. 그러나 어느새 코드의 테스트 커버리지는 20%밖에 되지 않고, 코드를 조금이라도 수정하는 일이 카드 탑의 중간층을 무너뜨리지 않고 교체하는 것처럼 두려운 일이 되어 버립니다. 어딘가에서 문제가

  18. Rails 앱은 Redis와 어떻게 소통해야 할까?

    Rails 앱을 개발하다 보면 다른 데이터 저장소를 활용하면 훨씬 쉽게 해결할 수 있는 문제를 만나곤 합니다. 예를 들어, 사이트에서 질문에 답변한 사용자에게 부여된 포인트를 기준으로 순위를 매기는 리더보드(leaderboard)가 있다고 생각해 봅시다. Redis의 Sorted Set을 사용하면 구현의 상당 부분이 이미 준비되어 있어 매우 편리합니다. 그런데 여기서 한 가지 고민이 남습니다. Redis와 통신하는 코드는 대체 어디에 두어야 할까요? 1. User 모델이 직접 Redis와 통신하는 방식 가장 먼저 떠오르는 방법은

  19. Rails 파셜(Partial) 렌더링, 실제로 얼마나 시간이 걸릴까?

    대형 Rails 뷰를 작은 파셜(partial)로 분리하는 것을 주저하는 분들에게서 종종 이런 질문을 받습니다. 파셜 렌더링에는 실제로 얼마나 시간이 걸릴까? 파셜 호출이 성능에 미치는 영향이 코드 가독성의 이점보다 커지지는 않을까? 이 질문에 답하기 위해 간단한 파셜 렌더링과 인라인 렌더링의 성능을 비교하는 벤치마크를 직접 돌려봤습니다. 결과를 바탕으로 두 방식 사이의 트레이드오프를 함께 살펴보겠습니다. 아래는 새로 생성한 Rails 앱(config.cache_classes = true 설정)에서 사용한 벤치마크 코드입니다. ap

  20. 컨트롤러를 비대하게 만들지 않고 Rails 모델 검색·필터링 구현하기

    Rails 컨트롤러에서 검색, 정렬, 필터링 기능을 구현하는 일은 생각보다 번거로운 작업입니다. ElasticSearch나 Solr 같은 도구는 강력한 솔루션이지만, 규모가 작은 애플리케이션에는 지나치게 무거운 의존성이 될 수 있습니다.다행히 Rails에는 스코프(scope)가 내장되어 있어, 간단한 검색·필터링·정렬에 필요한 대부분의 기능을 이것만으로 해결할 수 있습니다. 스코프 체이닝(scope chaining)을 활용하면 거대한 외부 라이브러리를 추가하거나 반복적인 검색 코드를 일일이 작성하지 않고도 원하는 기능을 만들 수 있

Total 598 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:5/30  20-컴퓨터/Page Goto:1 2 3 4 5 6 7 8 9 10 11