참고:이것은 Ruby로 다양한 정렬 알고리즘을 구현하는 방법을 살펴보는 시리즈의 4부입니다. 1부에서는 버블 정렬, 2부에서는 선택 정렬, 3부에서는 병합 정렬을 살펴보았습니다. 데이터 정렬을 위한 다양한 방법론을 계속 탐색하면서 삽입 정렬로 전환합니다. 삽입 정렬을 좋아하는 데에는 여러 가지 이유가 있습니다! 첫째, 삽입 정렬이 안정적입니다. , 이는 동일한 키를 가진 요소의 상대적 순서를 변경하지 않음을 의미합니다. 또한 현재 위치 알고리즘입니다. , 이는 정렬된 요소를 저장할 새 배열을 생성하지 않음을 의미합니다. 마지막으
애플리케이션의 전체 프론트엔드 측면을 구축하는 회사는 종종 Rails와 같은 동일한 프레임워크를 선택하여 백엔드를 구축합니다. 수년 동안 이것이 가장 훌륭하고 신뢰할 수 있는 옵션이었습니다. 오늘날 끊임없이 진화하는 프런트 엔드 세계에서 수많은 라이브러리와 프레임워크를 통해 개발자는 백 엔드와 프런트 엔드 모두에 대해 서로 다른 플랫폼을 선택하고 쉽게 통합할 수 있습니다. React는 프론트엔드 Pangea의 거물이 되었습니다. Ruby on Rails로 작업하는 경우 기본 Rails 페이지를 React 코드(또는 다른 전면 프
사용자 데이터를 다루는 경우 안전한지 확인해야 합니다. 하지만 보안이 처음이라면 까다롭고 지루하고 복잡해 보일 수 있습니다. 이 기사는 일반적인 유형의 보안 취약점과 이것이 Rails 개발에 미치는 영향에 대해 설명하는 시리즈의 첫 번째 기사입니다. 우리는 OWASP Top 10 Web Application Security Risks를 이 지형에 대한 지도로 사용할 것입니다. OWASP는 Open Web Application Security Project의 약자입니다. 웹의 중요한 보안 문제에 대해 전 세계에 알리기 위해 일하는
메소드를 호출하면 어떻게 됩니까? 같은 이름을 가진 다른 메서드가 있을 때 Ruby는 어떤 메서드를 호출할지 어떻게 결정합니까? 분석법이 어디에 보관되거나 출처가 어디인지 궁금하신가요? Ruby는 정의된 way 또는 pattern을 사용하여 호출할 올바른 메서드와 no method error를 반환할 적절한 시간을 결정하며 이 way를 Ruby 메서드 조회 경로 .이 튜토리얼에서는 Ruby의 메소드 조회에 대해 알아보겠습니다. 마지막에는 Ruby가 개체의 계층 구조를 통해 참조하는 메서드를 결정하는 방법을 잘 이해하게 될 것입니다
RBS는 Ruby의 새로운 유형 구문 형식 언어의 이름입니다. RBS를 사용하면 .rbs라는 새 확장자를 가진 파일의 Ruby 코드에 유형 주석을 추가할 수 있습니다. . 다음과 같이 생겼습니다. class MyClass def my_method : (my_param: String) -> String end RBS와 함께 유형 주석을 제공하면 다음과 같은 이점을 얻을 수 있습니다. 코드베이스의 구조를 정의하는 깔끔하고 간결한 방법 클래스를 직접 변경하는 대신 파일을 통해 레거시 코드에 유형을 추가하는 더 안전한 방법입
Github의 전체 소스 Stoffle 프로그래밍 언어의 완전한 구현은 GitHub에서 사용할 수 있습니다. 버그를 발견하거나 질문이 있는 경우 언제든지 문제를 열어주세요. 이 블로그 게시물에서 우리는 완전히 Ruby로 구축된 장난감 프로그래밍 언어인 Stoffle용 인터프리터 구현을 시작할 것입니다. 이 시리즈의 첫 번째 부분에서 이 프로젝트에 대한 자세한 내용을 읽을 수 있습니다. 우리가 만들 인터프리터는 일반적으로 tree-walk 인터프리터라고 합니다. 이 시리즈의 이전 게시물에서는 토큰의 평면 시퀀스를 트리 데이터
이 시리즈의 1부, 주입 공격을 다룹니다. OWASP 상위 10가지 웹 애플리케이션 보안 위험에 대한 시리즈의 두 번째 기사에서는 깨진 인증 및 데이터 노출 위협에 대해 자세히 알아보겠습니다. 더 구체적으로 설명하자면 해커가 여러분이 만든 코드를 속이고 사용자 데이터를 얻기 위해 공격을 수행하는 것이 얼마나 쉬운지에 대해 설명합니다. 사용자 열거 :데이터베이스에 존재하는지 확인하기 위해 가능한 사용자 목록을 무차별 대입 테스트하여 로그인 페이지를 악용하는 경우. 약한 비밀번호 :시스템에서 약한 암호를 허용하면 해커가 사용자의
Ruby/Rails 개발자로서 우리는 테스트 작성을 좋아합니다. 테스트는 소프트웨어 개발의 필수적인 부분입니다. 좋은 테스트는 고품질 코드를 작성하는 데 도움이 됩니다. 그들은 전체 개발 프로세스에 가치를 더하지만 테스트를 잘 관리하지 않으면 속도가 느려질 수 있습니다. 다음은 부적절하게 관리되는 테스트의 일부 증상입니다. 테스트를 실행하는 데 시간이 오래 걸립니다. 테스트는 신뢰할 수 없으며 무작위로 실패합니다. 테스트는 시스템마다 다르게 작동합니다. 모든 테스트 모음을 실행하면 CI가 느려집니다. 이 블로그 게시물에서는 컨
Ruby에서 종속성을 관리하려면 일반적으로 프로젝트가 의존하는 Ruby 및 gem 버전을 지정해야 합니다. Ruby로 작업한 경험에 따르면 종속성을 디버깅하는 것이 가장 큰 문제 중 하나였습니다. 많은 것들이 그냥 작동하기 때문에 실패는 일반적이지 않습니다. 그러나 일이 잘못되면 일반적으로 디버그하고 수정하기가 불필요하게 어렵습니다. 이 기사에서는 Ruby에서 종속성 관리와 관련된 부분을 배치합니다. 이렇게 하면 이러한 이상한 문제가 발생할 때 디버깅하는 데 도움이 됩니다. 루비 코드 로딩 기본적으로 Ruby 언어는 다른 곳에
서비스 객체는 단일 작업을 수행하는 Ruby 객체입니다. 도메인 또는 비즈니스 로직의 프로세스를 캡슐화합니다. 상상의 도서관 애플리케이션에서 책 인스턴스를 생성해야 한다고 상상해보십시오. 일반 Rails 앱에서는 다음을 수행합니다. class BookController < ApplicationController def create Book.new(*args) end end 이것은 간단한 일에 좋습니다. 그러나 앱이 성장함에 따라 앱을 둘러싼 많은 상용구로 끝날 수 있습니다. class BookControlle
최신 문서 워크플로는 소프트웨어 개발 워크플로와 점점 더 얽혀 있습니다. GitHub 또는 Jira에서 문서 문제를 추적하거나 코드 주석 또는 Markdown 파일에 문서를 작성할 수 있습니다. 팀의 개발자는 기술 작성자와 직접 작업하거나 독립적으로 문서를 작성할 수 있습니다. 문서는 종종 코드 리포지토리에 저장되고, 린터를 사용하여 품질을 테스트하고, 정적 사이트에 지속적으로 게시됩니다. 기술 작성자는 최근에 문서와 유사한 코드라는 용어를 만들어냈습니다. 또는 코드로 문서 이러한 유형의 워크플로를 설명합니다. 코드로서의 문서는
Honeybadger의 분기별 브리핑은 프로그래밍 커뮤니티에서 가장 중요한 발전에 대한 최신 정보를 제공합니다. 뉴스를 선별하여 정말 중요한 것에 더 많은 시간을 할애할 수 있습니다. 이벤트:회의 및 모임. 예정되어 있으며 최근에 완료되었습니다. 보안:최근 취약점 보고서 프로젝트:주요 커뮤니티 프로젝트에 대한 뉴스 트렌딩 주제:모두가 이야기하는 주요 주제 요약 눈에 띄는 콘텐츠:다른 섹션에는 맞지 않지만 빼기에는 너무 멋진 콘텐츠입니다. 이벤트 4월 12일 - 15일에 열리는 RailsConf 2021 RailsConf는 Ru
서버리스 컴퓨팅은 서버 관리 및 프로비저닝 작업을 클라우드 공급자에게 오프로드하는 데 도움이 되며 대부분의 기술 팀에 빠르게 적용되고 있습니다. AWS Lambda는 많은 기술 팀에서 사용하는 일종의 서버리스 기술입니다. AWS Lambda는 NodeJS, Java, Python 및 Ruby를 포함한 대부분의 핵심 프로그래밍 언어를 지원합니다. 핵심 프로그래밍 언어가 지원되지만 이러한 언어로 구축된 프레임워크의 일부인 기능에 따라 서버리스 기능을 실행하려는 경우가 있습니다. 이 게시물에서는 AWS Lambda에서 Rails 애플리케
Rails는 특정 상황을 위해 내장된 편리한 도구가 많이 포함된 대규모 프레임워크입니다. 이 시리즈에서는 Rails의 대규모 코드베이스에 숨겨져 있는 잘 알려지지 않은 도구를 살펴보겠습니다. 이 시리즈의 기사에서는 ActiveRecord의 update_counters를 살펴보겠습니다. 방법. 이 과정에서 우리는 다중 스레드 프로그램에서 경합 조건의 일반적인 함정과 이 방법이 이를 방지할 수 있는 방법을 살펴볼 것입니다. 스레드 프로그래밍할 때 프로세스, 스레드, 그리고 최근에는(Ruby에서) 파이버 및 리액터를 포함하여 코드를
Github의 전체 소스 Stoffle 프로그래밍 언어의 완전한 구현은 GitHub에서 사용할 수 있습니다. 버그를 발견하거나 질문이 있는 경우 언제든지 문제를 열어주세요. 이 블로그 게시물에서 우리는 완전히 Ruby로 구축된 장난감 프로그래밍 언어인 Stoffle용 인터프리터를 계속 구현할 것입니다. 우리는 이전 게시물에서 인터프리터를 시작했습니다. 이 시리즈의 첫 번째 부분에서 이 프로젝트에 대한 자세한 내용을 읽을 수 있습니다. 지난 포스트에서 변수, 조건부, 단항 및 이진 연산자, 데이터 유형, 콘솔로 인쇄 등 Sto
확장성을 염두에 두고 전체 스택 응용 프로그램을 빌드하는 것은 특히 전체 유형 스크립트를 지원하는 최신 버전의 Vue 및 Vuex로 빌드할 때 두려울 수 있습니다. 이 기사는 건강에 해로운 가축에 대한 치료 처방을 관리하는 CRUD 애플리케이션을 탐색하여 API 요청 및 데이터베이스 상호 작용을 처리하기 위해 Vuex 4.0을 사용한 상태 관리에서 확장 가능한 풀 스택 애플리케이션을 구축하는 데 필요한 모든 것을 독자들에게 가르칠 것입니다. 백엔드는 Rails로 구축되어 프론트엔드 통합을 위한 기본 CRUD API를 제공합니다.
CSS는 마술적이지만 시간이 많이 걸립니다. 아름답고 기능적이며 접근 가능한 사이트는 사용하는 것이 즐겁지만 자체 CSS를 작성하는 것은 피곤합니다. Bootstrap과 같은 많은 CSS 라이브러리는 최근 몇 년 동안 폭발적으로 증가했으며 Tailwind는 2021년에 이 팩을 주도하고 있습니다. Rails에 Tailwind가 기본 제공되지는 않지만 이 기사에서는 Tailwind CSS를 새로운 Ruby on Rails 프로젝트에 추가하는 방법을 보여줌으로써 디자인 구현 시간을 절약할 수 있습니다. 또한 Tailwind의 유틸리티
우리가 하는 많은 선택은 숫자 관계를 중심으로 이루어집니다. 과학에 따르면 콜레스테롤을 낮추는 특정 음식을 먹습니다. 우리는 급여가 인상될 가능성이 높기 때문에 교육을 계속합니다. 우리는 가치가 가장 높을 것으로 생각되는 동네에서 집을 구입합니다. 우리는 어떻게 이러한 결론에 도달합니까? 아마도 누군가가 많은 양의 데이터를 수집하여 결론을 내리는 데 사용했을 것입니다. 한 가지 일반적인 기술은 지도 학습의 한 형태인 선형 회귀입니다. 지도 학습에 대한 자세한 내용과 자주 사용되는 사례는 이 시리즈의 1부에서 확인하세요. 선
프로그래밍 용어에서 캐싱은 향후 빠른 검색을 위해 값(또는 값)을 저장하는 것을 의미합니다. 일반적으로 어떤 이유로 계산 속도가 느린 값으로 이 작업을 수행합니다. 예를 들어 검색을 위해 외부 API를 입력해야 하거나 생성을 위해 많은 숫자를 처리해야 합니다. 캐시된 값은 종종 memcached 또는 Redis와 같은 별도의 서버에 저장됩니다. 디스크나 RAM에 저장할 수 있습니다. 코드에서 값비싼 함수를 여러 번 호출하는 것을 피하기 위해 변수 내부에 데이터를 캐시하는 경우가 많습니다. data = some_calculatio
프로그래밍 언어가 놀랍지만 신비로운 도구라고 생각하십니까? 그들의 내부를 들여다보고 무엇이 작동하는지 이해할 수 있는 기회가 주어진다면 어떨까요? 손을 더럽히고 처음부터 프로그래밍 언어를 개발하는 것에 관심이 있다면 이 블로그 게시물과 이 시리즈의 다음 게시물이 도움이 될 것입니다. 일련의 기사에서 우리는 매우 간단하게 해석되고 동적으로 유형이 지정된 프로그래밍 언어를 단계별로 구축할 것입니다. 그러나 지금은 이러한 용어의 정확한 의미에 대해 확신이 서지 않거나 당면한 작업이 약간 두렵더라도 걱정하지 마십시오. 우리는 멋진 Rub