All Posts

  • Published on
    오랜전부터 운영해오던 블로그가 한번씩 죽을때마다 백업을 신경쓰지 않아서 이미지들을 죄다 날리곤 했었다. 이 문제 때문에 검색을 좀 해봤더니 Docker 볼륨과 Git 을 통해 손쉽게 백업 문제를 해결하고 있었다. 왜 이 생각을 못했지? ㅎㅎㅎ 머리가 굳었어! 일단 옆지기 블로그(janeisyoung.com)를 깃헙 페이지에서 해방 시켜주기로 했다. 서버 구성 AWS EC2 인스턴스 2개를 이용해 하나는 Docker 호스트로 쓰고 있고 다른 하나는 데이터베이스 전용으로 쓰고 있다. 따라서 지금부터 쓰는 글은 데이터베이스가 원격지에 있다는 가정하에 쓰는 글이다. 데이터베이스 설정 원격 서버에 SSH 접근한 후 블로그용 데이터베이스를 생성하고 이 데이터 베이스만 접근 가능한 유저를 만들어준다. // 루트 권한으로 MySQL 로그인 > mysql -u root -p // DB 생성 mysql> create database janeisyoung; // 유저 생성 > create user ja
  • Published on
    랜더링 최적화는 어떻게 하나? 1차적으로 불필요한 랜더링을 먼저 막습니다. 불필요한 랜더링이란 화면에 반영되는 데이터가 동일하거나 다른 화면에 가려져 랜더링이 아예 필요 없는 경우를 말합니다. Props로 넘겨지는 데이터가 동일 할때 React.memo 를 사용하는 방법은 두 가지가 있습니다. 1. 기본 탑재된 비교 알고리즘을 쓰는 경우 React.memo(컴포넌트) 기본 알고리즘을 쓰는 경우는 Props로 넘어오는 값들이 이뮤터블임을 전제로 합니다. 뮤터뷸 객체가 넘어오면 당연히 이 전략은 통하지 않습니다. 여기서 신경써야하는 것들이 바로 핸들러나 콜백 함수들인데, JS에서 함수는 뮤터뷸한 객체라서 useCallback 으로 일일이 감싸서 캐시(메모이제이)하지 않으면 효과가 없습니다. 그렇다고 항상 useCallback 쓸 필요도 없습니다. 캐시 비용도 비용이지만 매번 콜백 함수를 감싸는 귀차니즘도 만만치 않기 때문에 그 비용이 오히려 비효율일 경우가 많습니다. 이럴때는 비교 로직
  • Published on
    회고 시즌이다. 최근 전전 회사 송년회를 갔다가 현재의 나를 되돌아보는 개기가 됐다. 도무지 나는 개발 외에 다른 대화 주제에 끼가 어려웠다. 나와 같은 공간에서 일 하는 사람들이 절반인 이 그룹에서 도대체 이들은 어떻게 이런 관심사를 유지하고 있는거지? 되돌아가는 길에 생각이 많아졌다. 바쁘다는 핑계로 나를 놓아 버린건 아닌지 덜컥 겁이났다. 어제도 옆지기와 한해를 마무리하며 물었다. 나는 변한거 같니? "응! 좀 더 나은 방향으로 변했어!" 그랬다. 나는 변했고 성장했다. 돌이켜보면 "바빴음"은 핑계가 아니라 나의 선택이었다. 일 올 한해는 일에 파묻혀 살았다. 그간 자잤던 이직탓에 이번엔 오래 다닐수 있을까 싶었는데 순식간에 1년 3개월이 지났다. 그동안 심어 놓은 잔디가 나를 증명한다. 10월에는 그동안 달려온 나를 위해 긴 휴식을 줬다. 휴가 기간엔 사실 회사일만 놓았지 코드는 여전히 놓지 못했다. 스쿼시 머지 정책에 내 커밋들이 하나로 퉁쳐진게 이 정도지 사실 코드를 놓은
  • Published on
    몇달 전 기존에 쓰고 있던 AWS EC2(t2.micro) 인스턴스 2개를 비용 문제로 예약 인스턴스로 바꿨다. 그런데 비용을 좀 아끼자고 결정한 일이 오히려 비용을 몇배로 키웠다. 예약 인스턴스를 구매하고 ELB 사용하면서 비용이 더 증가했다. 처음엔 예약 인스턴스 기간이 제대로 설정이 안됐나 싶었지만 상세 내역을 보니 문제는 바로 ELB 였다. AWS에서 이녀석을 어떻게 구현했는지 모르겠지만 ELB 한대당 t2.micro 서버 한대와 맞먹는 요금이 나오는걸로 봐서는 ELB를 EC2 위에 올려서 서비스하는건가? 하는 생각도 든다. ELB는 왜 썼나? 비용 문제를 제외하면 라우터(Route53)와 도커 컨테이너 사이에 로드발란서(ELB)를 두고 포트를 맵핑하는 방법은 정말 간편하다. 특히 SSL 인증서를 ELB에 넣는 것도 클릭 몇번이면 다 해결되지 이걸 안써야할 이유를 못찾을 정도 였는데... 이제서야 그 이유를 찾은것 같다. 쉬운 만큼 비싸다! 그럼 각설하고 ELB 대신에 ngi
  • Published on
    도커로 워드프레스를 옮겼다... 정리가 필요하다... 일단 오늘은 여기까지.. 자자.