이번 포스팅은 조금의 페어 프로그래밍 경험과 여러 포스팅 내용을 읽고 이해하고 공감한 것들을 잊지 않기 위해 정리한 글입니다. 정리할 내용이 많기 때문에 시리즈로 작성될 예정입니다. 이전 포스팅에서는 코드작성 외의 페어링을 할 수 있는 부분들에 대해서 알아봤습니다. 이번에는 페어프로그래밍을 통해서 얻을수 있는 이점과 실무에 적용할때 경험할 수 있는 문제상황들에 대해 알아보고, 이를 잘 해결하기 위한 팁에 대해 알아보겠습니다. 페어 프로그래밍을 통해 얻을수 있는 이점 지식공유 팀내의 두사람이 같은 코드에 대해 페어링 작업을 한다면 이것만으로도 팀내에 도메인지식과 기술이 전파되고 있다는 것이고, 이는 knowledge silos 를 방지할 수 있다는 뜻입니다. 또한 두 사람이 문제를 이해하고 토론한다는것은 ..
이번 포스팅은 조금의 페어 프로그래밍 경험과 여러 포스팅 내용을 읽고 이해하고 공감한 것들을 잊지 않기 위해 정리한 글입니다. 정리할 내용이 많기 때문에 시리즈로 작성될 예정입니다. 이전 포스팅을 통해 페어 프로그래밍의 방식과 주의할 점들에 대해 알아봤습니다. 이번에는 코드 작성을 제외한 페어 프로그래밍 활동들에 대해 알아보겠습니다. 우리는 요구사항을 구현하기 위해 코드를 작성하는 것 외에도 많은 작업들을 수행하고 있고, 이때도 페어링을 통해 여러 가지 이점을 얻을 수 있습니다. 계획 세우기 - 목표는 무엇인가? 처음에 무엇인가 작업을 할 때는 즉시 코드를 작성하지 마시고 목표를 달성하기 위한 계획을 세우세요. 이 단계는 오해나 누락된 전제조건들을 사전에 파악해서 이후의 시간낭비를 피할 수 있는 좋은 기..
오랜만에 포스팅입니다. 이번 포스팅은 조금의 페어 프로그래밍 경험과 여러 포스팅 내용을 읽고 이해하고 공감한 것들을 잊지 않기 위해 정리한 글입니다. 정리할 내용이 많기 때문에 시리즈로 작성될 예정입니다. 페어 프로그래밍이란? 여러분은 현업에서 일하면서 페어 프로그래밍(Pair Programming)이라는 것을 한 번쯤 들어봤을 것입니다. 그렇다면 여러분은 페어 프로그래밍을 직접 경험해보신 적이 있나요? 많은 소프트웨어 개발자들이 페어 프로그래밍에 대해 들어봤지만 아직 현업에서 적용하는 곳은 많지 않습니다. 그 이유를 간단히 요약해보자면 다음과 같습니다. 효과가 즉시 나타나지 않습니다. 한대의 컴퓨터에 두 명의 개발자가 함께 하는 것이 말처럼 간단하지 않아서 많은 개발자들이 불편함을 느낍니다. 위와 같은..
오늘의 포스팅 내용은 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 의 정확한 수를 확인할 수 있다는 점이 장점이지만 상황에 따라서 불필요하게 조회..
이번 포스팅은 사내에서 Elasticsearch 관련 내용 발표를 위해 "시작하세요! 엘라스틱서치"서적을 기반으로 학습하고 이해한 내용을 정리하는 포스팅이다. Elasticsearch 역시 내용이 많기 때문에 시리즈로 나눠서 정리할 예정이다. 모든 내용은 Elasticsearch 7.6 버전 기준이다. 오늘은 Elasticsearch 의 Analyzer 에 대해서 알아볼 예정이다. 분석(Analyzer) Elasticsearch 는 색인(Indexing) 할 때 입력된 데이터는 텀(term) 으로 추출하기 위한 과정을 거치는데 이 과정을 Analyzer 라고 한다. Analyzer 는 하나의 Tokenizer 와 0 개 이상의 Token Filter 로 구성되어 있다. Tokenizer 는 입력된 데이터..
이번 포스팅은 사내에서 Elasticsearch 관련 내용 발표를 위해 "시작하세요! 엘라스틱서치"서적을 기반으로 학습하고 이해한 내용을 정리하는 포스팅이다. Elasticsearch 역시 내용이 많기 때문에 시리즈로 나눠서 정리할 예정이다. 모든 내용은 Elasticsearch 7.6 버전 기준이다. 오늘은 Elasticsearch 의 Mapping 에 대해서 알아볼 예정이다. 매핑(Mapping) Mapping 은 Elasticsearch 에서 데이터의 저장 형태와 검색을 위해 해당 데이터를 어떻게 접근하고 처리하는지에 대한 명세이다. Elasticsearch 에서 Mapping 을 설정하는 방법은 크게 2가지가 있다. 첫 번째는 Index 를 생성하면서 Mapping 을 설정하는 방법이고, 두 번째..
이번 포스팅은 사내에서 Elasticsearch 관련 내용 발표를 위해 "시작하세요! 엘라스틱서치"서적을 기반으로 학습하고 이해한 내용을 정리하는 포스팅이다. Elasticsearch 역시 내용이 많기 때문에 시리즈로 나눠서 정리할 예정이다. 모든 내용은 Elasticsearch 7.6 버전 기준이다. 오늘은 Elasticsearch 의 Aggregation 을 알아볼 예정이다. 어그리게이션(Aggregation) Aggregation 은 검색결과에 다양한 연산을 적용해서 출력하는 기능을 지원하기 위해 개발된 모듈이며 크게 버킷(bucket) 과 메트릭(metric) 어그리게이션으로 구분된다. 버킷 어그리게이션(bucket aggregation) bucket aggregation 은 주어진 조건에 해당하..
이번 포스팅은 사내에서 Elasticsearch 관련 내용 발표를 위해 "시작하세요! 엘라스틱서치"서적을 기반으로 학습하고 이해한 내용을 정리하는 포스팅이다. Elasticsearch 역시 내용이 많기 때문에 시리즈로 나눠서 정리할 예정이다. 모든 내용은 Elasticsearch 7.6 버전 기준이다. 오늘은 Elasticsearch 의 검색방법중 QueryDSL(Domain Specific Language) 을 알아볼 예정이다. QueryDSL Elasticsearch 에서 Query DSL을 이용해서 데이터를 찾는 기능은 크게 Query 와 Filter 를 이용한 방법으로 나뉜다. Query 와 Filter 모두 JSON 형식이며 둘의 차이점은 다음과 같다. 자세한 내용은 여기에서 확인 할 수 있다...
이번 포스팅은 사내에서 Elasticsearch 관련 내용 발표를 위해 "시작하세요! 엘라스틱서치"서적을 기반으로 학습하고 이해한 내용을 정리하는 포스팅이다. Elasticsearch 역시 내용이 많기 때문에 시리즈로 나눠서 정리할 예정이다. 모든 내용은 Elasticsearch 7.6 버전 기준이다. 오늘은 Elasticsearch 를 이용한 데이터 처리방법에 대해서 알아볼 예정이다. Elasticsearch 환경구축 본격적으로 Elasticsearch 를 사용해보기 전에 우선은 Docker 를 이용해서 간단하게 환경을 구축해보자. 다음과 같은 명령어로 Elasticsearch Image 를 Pull 받는다. docker pull elasticsearch:7.6.2 그 후, 이미지 기반으로 컨테이너를 ..
- Total
- Today
- Yesterday
- metaprogramming
- Autoloading
- 엘라스틱서치 기초
- InnoDB
- next key lock
- MySQL 인덱스
- Elasticsearch Cluster
- MySQL
- 루비
- Pair-programming
- 넥스트 키 락
- ruby
- 메타프로그래밍
- 트랜잭션
- 갭 락
- 루비 상수
- autoload_paths
- 되추적
- lock
- db
- 루비 메타프로그래밍
- 인덱스
- ruby meta programming
- gap lock
- 페어 프로그래밍
- 페어프로그래밍
- innoDB lock
- mysql lock
- MySQL 족보
- dead 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 |