오늘의 포스팅 내용은 ActiveRecord 를 사용하면서 scope 를 이용했을 때 first, last 를 포함하면 안 되는 이유에 대해서 알아볼 예정이다. 우선 scopes 에 대한 정의는 여기에서 확인할 수 있다. 간단하게 설명하자면 scope 는 ActiveRecord 에서 일반적으로 사용하는 Query 들을 지정할 수 있어서 필요시마다 함수 호출처럼 사용할 수 있게 도와준다. scopes 에서는 where, joins, includes 등이 사용 가능하고 실행결과로 ActiveRecord::Relation 혹은 nil 을 반환한다. scope 의 활용 예시는 다음과 같다. module Accounts class User < ApplicationRecord scope :today_sign_up_..
오늘의 포스팅 내용은 "ActiveRecord의 length, count, size 의 차이를 간략히 알아보자" 이다. Rails 로 기능 개발을 하면서 ActiveRecord Relation 의 Element 의 개수를 확인하기 위해 ActiveRecord 의 length, count, size 를 사용할 때가 있다. 우리는 다양한 방법으로 개수를 확인할 수 있지만 length, count, size 에는 조금씩 차이가 있으니 알고 사용하면 더 도움이 된다. count count 는 ActiveRecord Relation 의 Element 의 수를 확인하기 위해서 SQL query 를 실행한다. 호출 시점에 Database 의 정확한 수를 확인할 수 있다는 점이 장점이지만 상황에 따라서 불필요하게 조회..
나름 바쁘다는 핑계로 안 쓰다가 오랜만에 포스팅이다. 오늘의 포스팅 내용은 ActiveRecord의 구조를 간략히 알아보자 이다. 포스팅의 내용은 아래의 책을 읽고 내용들을 정리한 것이다. https://books.google.co.kr/books/about/Metaprogramming_Ruby_2.html?id=V0iToAEACAAJ&source=kp_cover&redir_esc=y ActiveRecord 란? ActiveRecord는 Ruby의 객체와 Database를 맵핑해주는 라이브러리이다. 이는 ORM 이라 불리며 이를 이용해 RDB 와 OOP 간의 변화를 자연스럽게 사용할 수 있다. 오늘은 ActiveRecord의 소스코드 구조에 대해서 확인하고, 이들이 어떻게 조합되는지에 대해서 알아볼 예정..
오늘의 포스팅 내용은 Rails에서 Autoloading 이 어떤 규칙으로 동작하는지에 대해 알아볼 예정이다. 포스팅의 내용은 사내에서 Ruby와 Rails 의 상수참조에 대한 공유자료를 만들기 위해서 관련 포스팅들을 읽고 내용을 정리한것이다. 내용이 많기때문에 Ruby의 상수참조와 Rails 의 Autoloading 에 대해서 나눠서 소개할 예정이다. 지난번 포스팅에서 Ruby의 상수참조 규칙을 알아봤다면(https://idea-sketch.tistory.com/56) 이번에는 Rails의 Autoloading 에 대해서 알아볼 예정이다. Ruby on Rails 에서는 별도의 load 혹은 require 없이도 외부의 클래스나 모듈에 접근이 가능하다. 이렇게 별도의 작업 없이도 접근이 가능한 이유는 ..
오늘의 포스팅 내용은 Ruby에서 상수(Constants) 참조시 어떤 규칙으로 동작하는지에 대해 알아볼 예정이다.포스팅의 내용은 사내에서 Ruby와 Rails 의 상수참조에 대한 공유자료를 만들기 위해서 관련 포스팅들을 읽고 내용을 정리한것이다.내용이 많기때문에 Ruby의 상수참조와 Rails 의 Autoloading 에 대해서 나눠서 소개할 예정이다. 이번에는 Ruby에서 상수참조시 어떠한 규칙으로 상수를 참조하게 되는지 알아볼 예정이다. 왜 상수참조 원리에 대해 알아야 할까?상수참조 규칙에 대해서 알아두면 어플리케이션 개발시 동일한 상수를 여러번 정의하거나 의도치 않은 상수참조 실패를 방지 할 수 있고 디버깅 할때 도움이 된다. 루비에서의 상수관리 우선은 루비에서 상수를 정의했을때 우리가 정의한 상..
오늘의 포스팅 내용은 Ruby Metaprogramming 이다. 포스팅의 내용은 사내에서 Ruby Metaprogramming 에 대한 발표를 위해서 아래의 책을 읽고 내용들을 정리한것이다.https://books.google.co.kr/books/about/Metaprogramming_Ruby_2.html?id=V0iToAEACAAJ&source=kp_cover&redir_esc=y 내용이 많기때문에 시리즈로 소개할 예정이다. 저번 포스팅(Callable Object - http://idea-sketch.tistory.com/40 )에 이어서 다음편이다. Current Class우리는 Ruby 프로그래밍을 하면서 self 를 이용해서 항상 Current Object 를 알 수 있다.그리고 이미 알고 ..
오늘의 포스팅 내용은 Ruby Metaprogramming 이다. 포스팅의 내용은 사내에서 Ruby Metaprogramming 에 대한 발표를 위해서 아래의 책을 읽고 내용들을 정리한것이다.https://books.google.co.kr/books/about/Metaprogramming_Ruby_2.html?id=V0iToAEACAAJ&source=kp_cover&redir_esc=y 내용이 많기때문에 시리즈로 소개할 예정이다. 저번 포스팅(Block, Scope - http://idea-sketch.tistory.com/39 )에 이어서 다음편이다. 오늘은 Callable Object에 대해서 알아볼 예정이다. Callable Object 저번 포스팅을 다시한번 생각해보면 block 은 2단계로 동작..
오늘의 포스팅 내용은 Ruby Metaprogramming 이다. 포스팅의 내용은 사내에서 Ruby Metaprogramming 에 대한 발표를 위해서 아래의 책을 읽고 내용들을 정리한것이다.https://books.google.co.kr/books/about/Metaprogramming_Ruby_2.html?id=V0iToAEACAAJ&source=kp_cover&redir_esc=y 내용이 많기때문에 시리즈로 소개할 예정이다. 저번 포스팅(Method - http://idea-sketch.tistory.com/38 )에 이어서 다음편이다. 오늘은 Blocks 과 Scopes 에 대해서 알아볼 차례이다. Blocks 은 proc 과 lambda 등을 포함해서 callable objects 라고 불리는 ..
오늘의 포스팅 내용은 Ruby Metaprogramming 이다. 포스팅의 내용은 사내에서 Ruby Metaprogramming 에 대한 발표를 위해서 아래의 책을 읽고 내용들을 정리한것이다.https://books.google.co.kr/books/about/Metaprogramming_Ruby_2.html?id=V0iToAEACAAJ&source=kp_cover&redir_esc=y 내용이 많기때문에 시리즈로 소개할 예정이다. 저번 포스팅(Ancestors chain - http://idea-sketch.tistory.com/37 )에 이어서 다음편이다. 오늘은 예제를 기반으로 어떻게 하면 Ruby에서 Metaprogramming 을 사용하여 중복함수를 효율적으로 제거 할 수 있을지에 대해 알아본다...
오늘의 포스팅 내용은 Ruby Metaprogramming 이다. 포스팅의 내용은 사내에서 Ruby Metaprogramming 에 대한 발표를 위해서 아래의 책을 읽고 내용들을 정리한것이다.https://books.google.co.kr/books/about/Metaprogramming_Ruby_2.html?id=V0iToAEACAAJ&source=kp_cover&redir_esc=y 내용이 많기때문에 시리즈로 소개할 예정이다. 저번 포스팅(Object Model - http://idea-sketch.tistory.com/36 )에 이어서 다음편이다. 함수를 사용하면 무슨일이 생길까? Ruby에서는 함수를 사용할때 아래의 2가지 작업을 한다.해당 함수를 찾는다. 이 과정을 Method Lookup 이라..
- Total
- Today
- Yesterday
- Autoloading
- db
- Elasticsearch Cluster
- 되추적
- Pair-programming
- innoDB lock
- 메타프로그래밍
- 페어 프로그래밍
- 루비
- 루비 상수
- gap lock
- mysql lock
- ruby
- dead lock
- MySQL 인덱스
- InnoDB
- MySQL
- ruby meta programming
- MySQL 족보
- 엘라스틱서치 기초
- metaprogramming
- 갭 락
- 페어프로그래밍
- 트랜잭션
- 넥스트 키 락
- 루비 메타프로그래밍
- lock
- autoload_paths
- 인덱스
- next key lock
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |