post-thumbnail

루비 3.x 버전업 및 BMT

루비 2.7.x 버전의 EOL 기간이 2023년 5월 말까지였고 더이상 유지보수를 하지 않는다. 루비 온 레일즈로 서비스를 운영중이기에 해당 소식을 접한 작년 말부터 루비 버전을 3.x 로 업그레이드 하는 준비를 하였고, 2월 말부터 작업착수하여 5월 초-중 안정적으로

2023년 5월 28일
·
0개의 댓글
·
post-thumbnail

Teamcity -> GHA 로 이전?

내가 일하는 조직에서는 Teamcity 를 통해 CI 환경을 구성하여 사용하고 있다. 그리고 깃허브와 연동하여 작업 브랜치에 push 할 때마다 큐에 enqueue 되도록 설정하여 자동으로 테스트가 돌아가게끔 하였다. 그러던 어느날 팀시티에 보고되는 CI 빌드의 결과를

2023년 5월 3일
·
0개의 댓글
·

프로그래밍 3대 원칙

five lines of code 책을 읽으며 리팩토링을 공부하던 중 과거 공부했던 프로그래밍 3대 원칙을 되새김질하며 다시 한번 체득하고자 한다.코드를 중복해서 작성하지 말자가끔 프로젝트를 수행할 때 시간에 쫓겨 기존에 있던 코드를 활용하지 않고 작성하는 경우, 레거

2023년 4월 23일
·
0개의 댓글
·

N+1 검출 라이브러리 비교

백엔드 개발자로서 서버와 데이터베이스 간 요청하는 횟수 및 데이터를 최대한 적게 하는 것이 기본 소양이다. 레일즈에서 N+1 쿼리를 잡기위하여 개발환경에 Bullet 과 Prosopite 젬을 설치하였고 실험을 통해 어느 젬이 좋은지(?) 비교해보려고 한다.Bullet

2023년 4월 20일
·
0개의 댓글
·

mutable string

java 와 python 을 공부했던 나는 현재 ruby on rails 로 어플리케이션을 관리하고 있다. python 과 비슷하면서도 다른 ruby 언어의 자유도와 패턴 매칭 기법은 매우 놀라웠다. 그러나 모듈 및 singleton 구조 등을 이해하기는 어려웠다. 지

2023년 4월 17일
·
0개의 댓글
·

Sidekiq Graceful Terminate

사이드킥은 루비 언어로 이루어진 비동기 프레임워크로서 많이 사용되고 있다. 특히 레일즈 어플리케이션에서 비동기 처리할 때 많이 쓰이며, 사용 방법도 간단하여 다루기 쉽다. 그러나 사이드킥을 온전히 믿을 수 있을까? 잡을 처리하다가 비정상적인 종료로 작업이 끝나면 어떻게

2023년 4월 13일
·
0개의 댓글
·
post-thumbnail

supervisord

도커에서는 한 컨테이너에 하나의 프로세스(서비스)를 띄우는 것을 권장하고 있다. 그러나 때때로 비용절감, 프로세스 모니터링 등의 이유로 한 컨테이너에 다수의 프로세스를 띄워야하는 경우가 있다. 이때 어떻게 띄워야 안정적으로 컨테이너를 운용할 수 있을까?entrypoin

2023년 4월 8일
·
0개의 댓글
·
post-thumbnail

pg stat statement

서버를 운영하면서 쿼리 최적화는 백엔드 개발자의 필수 능력이다. 레일즈와 장고와 같은 프레임워크에서는 lazy loading 을 하기 때문에 N+1 query 가 발생할 수 있고, 한 SELECT statement 에서 너무 많은 records 를 갖고 올 경우 성능

2023년 4월 6일
·
0개의 댓글
·

도커 레이어 캐시

배경 최근 GHA 를 통하여 CI CD 환경을 구성하였는데 빌드 시간을 단축시키기 위하여 캐시를 적용하려고 시도하였다. 패키지 설치 또는 빌드 등 캐시를 적용하여 시간을 단축시켜왔는데 그 중 도커 이미지 빌드 시간을 단축시켰던 경험을 글로 적어 되새김질하고자 한다.

2023년 4월 4일
·
0개의 댓글
·
post-thumbnail

scalable self-hosted runner

깃헙을 사용할 때 public 레포라면 상관 없으나 private 레포의 경우 깃헙 액션 워크플로 총합 시간이 일정 시간을 초과할 경우 비용을 지출하게 된다. 만약 GHA 로 CI CD 환경을 구성하고 비즈니스 조직에서 private 으로 코드를 관리한다면 많은 비용을

2023년 4월 4일
·
0개의 댓글
·
post-thumbnail

TDD 시작해보기

프로젝트를 받고 기획자 또는 디자이너와 얘기를 한 뒤 개발을 할 때 다음과 같은 순서로 작업하였다.예를 들어, 메인 페이지에서 쇼핑 아이템 목록을 보여주기 위한 API 개발할 때1\. 프론트 개발자와 API 요청 및 응답 인터페이스를 설계한다.2\. MVC 패턴에 맞춰

2023년 4월 3일
·
0개의 댓글
·

8월~9월 7일까지 회고록

글을 작성할 수 없을 정도로 많이 바쁜 한달을 보낸거 같다(중간에 손가락도 다침...)그리고 이번 글을 작성하며 한달동안 무슨일이 있었고 얼마나 성장했는지 작성해보고자 한다.평소 인공지능에 관심이 많았기에 꼭 듣고 싶었던 엘리스 AI 트랙에 고득점자로 최종합격했다. 멘

2021년 9월 7일
·
0개의 댓글
·
post-thumbnail

14442번-벽 부수고 이동하기 2

문제 : https://www.acmicpc.net/problem/14442벽 부수고 이동하기 1 문제와 거의 동일하다. 다만 k번까지 부수고 이동할 수 있다는 점을 고려하여 전 문제와 다르게 풀면 될거같다.3차원 행렬 n x m x k 로 dp를 만들어주고

2021년 8월 19일
·
0개의 댓글
·
post-thumbnail

2842번-집배원 한상덕

문제 : https://www.acmicpc.net/problem/2842P에서 모든 K를 방문할 수 있는 고도들을 구하면 된다.필자는 단순히 binary search를 이용해서 문제를 풀고자 했으나 key값을 뭐로 두어야 될지 몰라 결국 구글링을 해보니 기가

2021년 8월 16일
·
0개의 댓글
·
post-thumbnail

2493번-탑

문제 : https://www.acmicpc.net/problem/2493건물 높이들을 입력받은 후 뒤에서부터 레이저 신호를 보내고, 해당 레이저 신호가 몇번째 건물가지 도달하는지 체크하면 되는 문제이다. 문제 해석은 간단하니 자세한 설명은 생략한다.해당 건물

2021년 8월 13일
·
0개의 댓글
·
post-thumbnail

2533번-사회망 서비스(SNS)

최근 오픈소스 컨트리뷰톤과 연구 진행 때문에 알고리즘 풀 시간이 없었다. 그래도 감 잃으면 안되니 오늘 하나 풀고 작성해보고자 한다문제 : https://www.acmicpc.net/problem/2533문제에서는 사이클이 없고 트리형태의 그래프로만 주어진다고

2021년 8월 11일
·
0개의 댓글
·

9328번-열쇠

문제 : https://www.acmicpc.net/problem/93281층짜리 빌딩의 높이와 너비가 주어진다(필자는 잘못봐서 board의 가장 밑부분이 1층인지 앎).1층의 건물도가 다음줄에 주어짐.: 벽. : 빈 곳$ : 문서소문자 알파벳 : 키대문자 알

2021년 8월 6일
·
0개의 댓글
·

1467번-용액

문제 : https://www.acmicpc.net/problem/2467문제 조건에서 중요한 키워드는 오름차순으로 정렬되어서 주는 점과 혼합용액의 특성값의 최솟값이다. 즉, 우리가 구하고자 하는 값은 리스트(배열)에서 임의로 두 개의 값을 정하고 더하였을때

2021년 8월 5일
·
0개의 댓글
·
post-thumbnail

7578번-공장

문제 : https://www.acmicpc.net/problem/7578A와 B에는 고유 번호들이 있고, 각 번호끼리 잇는 직선들 중에 교차점을 세는 문제이다.문제 해석은 쉬우므로 자세한 설명은 생략한다.문제에서 n을 입력받고 A,B 순서대로 입력받는다. 여

2021년 8월 4일
·
0개의 댓글
·

오픈소스 교육 복습(협업을 위한 git 사용법)

지난 시간 오픈소스 컨트리뷰션 멘티로 합격하고 1차 교육을 받아봤다.협업을 위한 github사용법에 대해 하루에 4시간씩 총 8시간 교육을 진행하였는데 개인프로젝트를 주로하던 나에게 생소한 명령어들이 많았다. 다시 복습할 겸 이번에 글을 작성해보고자 한다.개인프로젝트할

2021년 8월 3일
·
0개의 댓글
·