본문 바로가기

전체 글28

dynamoid gem으로 LSI 사용하기 dynamoid는 dynamodb의 table을 ruby on rails의 active record와 비슷한 문법으로 쿼리할 수 있게 해주는 gem입니다. 그런데 rails 프로젝트에서 dynamoid gem을 사용하려고 보니 아무리 찾아도 LSI로 쿼리를 하는법을 찾을 수가 없었습니다. 공식문서에도 정확한 방법이 나와있지 않았는데요, 수일간의 삽질을 통해 발견한 LSI의 사용법을 남기려고 합니다. initializers/dynamoid.rb Dynamoid.configure do |config| config.access_key = Rails.application.credentials.dig(:aws_account, :access_key_id) config.secret_key = Rails.applica.. 2021. 6. 20.
IT 엔지니어를 위한 네트워크 입문 chap 1 네트워크 쪽 기본지식이 약한 것 같아서 회사 사람들과 스터디를 하고 있습니다. 책을 읽으면서 중요 내용들을 톺아보려고 합니다. 1. 네트워크 시작하기 1.1 네트워크 구성도 살펴보기 1.1.1 홈 네트워크 홈 네트워크 연결에는 모뎀.공유기.단말기 간의 물리적 연결이 필요함 무선연결: 무선 랜카드 + 매체 (공기) 유선연결: 유선 랜카드(이더넷 랜 카드) + 랜선 1.1.2 데이터 센터 네트워크 많은서버, 서비스가 연결되어 있어 높은 사용량 수용 -> 10g, 25g, 40g, 100g, 400g(더 높은 대역폭)같은 고속 이더넷 사용 구조: 기존 3계층 -> 현재 2계층(spine leaf 구조) 1.2 프로토콜 - 프로토콜이란? 통신의 규약 여러가지 산재해있던 프로토콜들이 이더넷 - tcp/ip 기반 .. 2021. 5. 23.
Dynamodb Secondary Index 1. 서론 dynamodb는 사용한 만큼 비용을 지불합니다. 때문에 가능한 적은 양의 데이터를 쿼리하는 것이 유리한데요, dynamodb도 RDB처럼 테이블을 생성할때 설정한 primary key를 이용해 빠르게 item에 접근할 수 있습니다. 하지만 하나의 key만으로는 다양한 어플리케이션의 요구사항을 만족시키기 어렵기 때문에 dynamodb를 이용할때는 대부분 secondary index를 생성하여 사용합니다. 2.secondary index secondary index란 대체(altanative) key와 테이블의 다른 attribute들의 subset을 포함하는 데이터 구조입니다. 테이블과 마찬가지로 index에 쿼리를 해서 데이터를 가져올 수 있습니다. secondary index는 primar.. 2021. 5. 9.
Docker image 빌드시 bundle install 오류 로컬에서 rails 프로젝트 docker image를 빌드하는데 이런 오류가 났습니다. > [ 7/11] RUN BUNDLE_FORCE_RUBY_PLATFORM=1 bundle install --retry 5: ... #11 98.05 Fetching google-protobuf 3.15.6 #11 98.80 Installing google-protobuf 3.15.6 with native extensions #11 103.2 Fetching googleapis-common-protos-types 1.0.6 #11 103.6 Installing googleapis-common-protos-types 1.0.6 #11 103.7 Fetching grpc 1.36.0 #11 109.7 Installing g.. 2021. 5. 4.
Go 기본문법 1 0. 서론 go언어는 그 속도와 간단함 (그리고 구글) 덕분에 빠르게 성장하고 있는 언어 중 하나로 꼽히는데요, 최근에 go 언어 스터디를 시작하게 되어 책을 읽으면서 학습한 내용을 간단하게 정리해보려고합니다. 간단한 내용이므로 큰 구조 없이 의식의 흐름대로 정리를 하겠습니다. 1. go 파일 구조 package main # 코드를 직접 실행하기 위해 필요한 특수 패키지(main) import "fmt" # 다른 패키지의 코드를 사용하기 위해 가져옴 func main(){ # 프로그램을 시작하면 가장 먼저 실행됨 fmt.Println("Hello") } Go언어의 특징은 일관성입니다. 따라서 모든 Go 파일은 일관적인 구조를 가지는데요, 모든 Go 파일은 package절로 시작하게 됩니다. 현재 코드가 .. 2021. 4. 25.
ruby의 반복문은 왜 이렇게 생겼을까 1. 서론 저는 rails 개발을 할때 이런식의 반복문을 주로 사용합니다. [1,2,3].each do |v] puts v end 사실 지금까지는 이 문법이 왜 이런모양새일까 아무런 의심 없이 뇌를 안거치고 사용하고있었는데요 이번에 ruby의 기본 문법을 공부하면서 이 신비로운 모양새의 비밀을 알게되었습니다. 오늘 이 문법이 왜 이렇게 생겼는지 포스팅 해보려고합니다. 2. ruby의 반복문 먼저 ruby의 일반적인 반복문 문법부터 살펴보겠습니다,. ruby에서도 다른 언어들과 마찬가지로 while과 for문의 사용이 가능합니다. while true puts 'using while statement' end 개인적으로 for문의 사용법은 python과 비슷하게 느껴지네요. for i in 0..4 puts.. 2021. 4. 11.