분류 전체보기

    Canva 애니메이션

    칸바 애니메이션 순서가 자기 멋대로일때 이렇게 하세요. 칸바는 제 경험상 위쪽에 있는 것 먼저, 그리고 위쪽에 있는 것들 중 왼쪽에 있는 것 먼저 애니메이션이 적용됩니다. 그러니 위쪽 정렬을 하면 대부분은 왼쪽 먼저 애니메이션이 동작해요.

    Raw Query 작성시 Alias 가 중복되는 이슈 해결법

    Alias 를 잘 만드는 유틸리티성 함수를 만들어 Raw Query 의 alias 로 사용하면 된다.

    Gitflow 사용시 PR 에 merge 로그 남도록 하는 방법

    gitflow 에도 옵션이 있다. push 옵션을 켜주면 된다.

    Jira 에서 Due date 이 있는 Task 알림설정

    회사들은 종종 Jira 로 Task 를 관리한다. 나는 PM 에서 넘어온 Due date Task 를 모두들 놓치고 있다가 웹팀에서 서버 작업이 언제쯤 끝나는지 문의가 들어와 인지하게된 적이 있다. 이렇듯 사람이 여럿 있어도 일이 많으면 놓쳐선 안되는 것들을 놓치게 된다. Jira 는 Automation 기능을 제공하는데 이를 통해 Due Date 이 있는 Task 뿐만 아니라 각종 조건들에 대해 특정 Action 을 수행하게 할 수 있다. 그리고 JQL 이란걸 사용하면 각종 attribute 들을 사용해서 필터링할 수 있다. 그래서 due date 이 앞으로 21일 안이고, 에픽 태스크가 아니고, 담당자가 없다면 평일 아침 9시에 팀 채널로 슬랙 메시지를 보내도록 작성하여 앞으로 같은 실수가 없도록 개..

    Ruby 2.7.7 과 Charlock Holmes 의 버전 호환 이슈

    들어가며 나는 Ruby 최신버전(3.2.2) 대신 2.5.9 를 사용하고 있었다. 그러다가 서버 성능 향상, 보안강화 등을 위하여 Ruby 2.7.8 로 업그레이드를 했다. 그 과정에서 몇몇 이슈들이 있었는데 그 중에 인코딩 변환 이슈를 다루려고 한다. 인코딩 파일들은 모두 바이트 코드로 저장된다. 이런 바이트 코드들은 유니코드와 매핑되는데 그 매핑 방법이 인코딩이다. 가장 대표적인 인코딩인 ASCII 는 7비트 인코딩으로 총 127개의 문자를 나타낼 수 있다. 여기서 한글을 표현하기위해 EUC-KR 이 나왔고, EUC-KR 과 호환되면서 더 많은 한글을 표현하기위해 CP949 가 나왔다. 그리고 이런 인코딩들이 각 국가별로 중구난방 생성되자 모든 문자를 표현할 수 있는 UTF-8, UTF-16 이 나왔..

    Rails 에서 테스트코드 병렬 실행

    parallel_test 적용하여 로컬 환경에서 풀 테스트 기준 22분->14분, Travis CI 에서 25분 -> 20분으로 성능 향상. 단일 Spec 파일이 지나치게 커서 10분 이상 소요되는 경우가 몇 있어 해당 Spec 을 하위 spec 으로 분리하면 개선될 여지가 보임.

    Sidekiq 메모리 Leaking 임시 대응과 Generous Auto Scaling

    비동기 서버 Generous Auto Scaling & replacement 로직 작성 재배포시 ECS Task가 종료되면서 비동기 Job이 Redis로 돌아가서 처음부터 다시 실행되는 이슈 해결 Memory Leak 이슈 대응을 위한 ECS Task 교체 로직 작성

    백준 / python / 1562. 계단 수

    https://www.acmicpc.net/problem/1562 문제 요약 길이가 N이고 0~9 이 모두 나오는 수 중에 인접한 숫자의 차이가 1인 수의 가짓수를 구하라. 주의사항 절대로 나올 수 없는 bitmask 가 있다. 예를 들면 1010101010. 하지만 이를 피하기 위해 dictionary 를 사용하면 더 느려진다. 이 풀이는 약 700ms 의 시간이 걸리는데 최고 30ms 대의 시간이 걸리도록 짤 수 있는 것 같다. 대칭성을 사용하여 풀이하는 것 같은데 추후 더 연구해보자. 풀이 요약 이전 상태의 마지막 숫자에서 1차이나는 수를 붙이고, 이전 상태의 경우의 수를 다음 상태의 경우에수에 더하면 된다. dp 2개를 사용하여 직전 상태와 현재 상태만을 가지고 있도록 만들었다. 이를 실행하며 b..

    백준 / Python / 1509. 팰린드롬 분할

    https://www.acmicpc.net/problem/1509 문제 요약 주어진 문자열을 팰린드롬으로 나눌때 나누어진 팰린드롬 갯수의 최솟값을 구하라 풀이 요약 각 팰린드롬의 시작점과 끝점을 일단 구해야한다. dp 를 사용하여 특정 idx 에서 팰린드롬을 적용시킨게 나은지, 빼는게 나은지 dp 에 기록한다. 마지막 dp 값을 출력한다. 더 나은 방법으로는 팰린드롬을 구하자마자 dp 를 갱신하는 것이다. 이렇게 하면 겹치는 로직이 생겨서 더 빨리 풀 수 있다. 아래는 팰린드롬 구하기와 dp 갱신을 나눈 로직이다. from sys import stdin from collections import defaultdict, deque input = stdin.readline _MAX = 2500 ipt = i..

    23년 3월 18일 FCC Meet up

    FCC (Free Code Camp) 의 "How to structure your backend" Meet up 제목 : How to structure your backend 일시 : 2023-03-18 14:00 주제 : 백엔드 발표자 : Lee Sungwoo Questions Waht is a backend server, how it works? What stacks are available? How can I organize the code? Common patterns? What is "Backend" client-web server-app(backend)-DB Needs Computer Networks DB Patterns How does it work? Computer Network Basic..