본문 바로가기

[pt-online-schema-change] 아주 큰 테이블(1billion rows) ALTER troubleshoot 및 후기 데이터로 먹고 사는 회사답게(?) 약 10억건이 넘는 rows 를 가진 테이블이 하나 존재한다. (그냥 샤딩, 파티셔닝 같은 걸 안 한거에요 ㅋㅋ)서비스가 시간이 지나갈수록 초기 설계 당시에는 고려가 되지 않은 사항들로 인해 변화된 요구사항에 의해 테이블도 그에 맞게 ALTER 가 필요했다.사실, 작년에도 on-premise (IDC)에 있던 데이터베이스를 클라우드 환경으로 이전할 때만 해도 이 테이블의 rows 는 약 5억~6억건 사이였던 것으로 기억한다.여튼, 그 때도 pt-online-schema-change 의 도움으로 무사히 ALTER 는 성공을 했었고, 별 이슈가 없었기에 사내에만 간단히 문서화한 게 전부였는데, 이번에는 뭔가 잘 안 되서 5번만에 성공을 하였는데 사실 정확하게 5번째에도 왜 ..
[Centos7] Paths 가 만들어 내는 임시 파일은 내가 지우지 않아도 될까? 요즘 스프링 부트로 파일 업/다운로드 시스템을 구현하고 있다.여러 프로젝트에 흩어져 있고 제각각인 구현 방법과 어느 시스템에서 이 파일을 만들고 업로드했는지 찾는데 드는 비용이 만만치 않아서, 시스템을 일원화 하기로 했다. 그렇게 java.nio.file.* 패키지를 이용하여 개발하는 중, Files.createTempFile() 라는 메소드를 봤는데 이 API 가 생성하는 파일이 계속 쌓이는 건 아닐까 하는 노파심/걱정이 생겼다. 그래서 조금 찾아봤다.서버의 운영체제 배포판은 Centos 7 이고`java.io.tmpdir` 에 대해서 별다른 설정을 하지 않은 Spring Boot 앱은 `/tmp` 디렉토리를 임시 파일 공간으로 사용하고 있다.그렇다면, /tmp 디렉토리는 자바 뿐만이 아니라 리눅스도 ..
리눅스 zsh 설정 간략 명령어 정리 # yum install -y zsh# echo $(which zsh) >> /etc/shells# sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"# cd ~# git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting# git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestion..
pt-online-schema-change 사용하기 pt-online-schema-changepercona tools 설치# curl -O https://www.percona.com/downloads/percona-toolkit/3.0.8/binary/redhat/7/x86_64/percona-toolkit-3.0.8-1.el7.x86_64.rpm# yum install percona-toolkit-3.0.8-1.el7.x86_64.rpm확인# pt-online-schema-change --alter "CHANGE COLUMN STRINGANSWER STRINGANSWER TEXT CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'" D=ovey,t=SURVEY_ANSWER --dry-run --ask-pass실..
리눅스에서 파일 확장자 일괄 변경 명령어 find . -name "*.jsx" -exec rename 's/.jsx$/.js/' {} \;
[React] 리액트로 백오피스 개발하며 경험한 추천 npm 라이브러리 (블로그를 starrybleu.github.io 로 옮겼었는데, 생각보다 markdown 방식으로 글을 쓰기가 그다지 편하지 않았고 이미지 첨부하면서 작성하는게 영 귀찮아서 다시 티스토리에 글을 써보려고 한다. JPA specification 관련 글 몇개는 저기 있다. 언제 옮겨오지?) 약 지난 11개월동안, 사내 백오피스 웹 앱을 전면 개편하기 위한 개발을 하고 출시를 하고나서 얻은 경험을 바탕으로 리액트로 UI/UX 개발을 하면서 알게된 좋은 라이브러리를 정리하고자 글을 쓰게 되었다. 전반적인 의견으로는 npm 라이브러리의 다운로드 수가 많은 게 가장 좋다. 1. UI framework- reactstrap : 현재 최신버전 bootstrap 4 기준의 CSS 프레임워크. 구 버전의 IE 에 적용하..
달려라 래시, 러프 콜리 입양 희망자 찾습니다. 2018년 6월 4일생 저와 아내가 구조하여 임시 보호하고 있는 러프 콜리 가족을 소개합니다. 만 2개월 반이 지나 입양을 보내고 있습니다. 입양 희망자 중 책임감 있고 데려간 아이를 잘 돌보실 수 있는 분 계시다면 연락 주세요! 지금 6마리 중 여아 1마리, 남아 3마리 남았습니다. 제가 개인적으로 동물 구조/보호 활동을 하는 사람이다 보니, 조건이 조금 까다롭고 입양 책임비를 받고 있습니다. 조건은 아래와 같습니다. 1. 동물등록증 발급 및 칩 삽입 2. 중성화 3. 학대/방치/묶어 키우기 금지 (다 크면 평균 체중 30kg 전후가 될 것입니다 :: 대형견) 4. 1일 1산책 (산책만 잘 해줘도 문제 행동이 생길 확률은 급격히 낮아집니다.) 5. 하절기(5-9월) 매월 1회 심장사상충 약 투여(콜리는 밀베마이신을 급여해야 ..
커피와 코딩 나는 19살 수능을 치자마자 당시 동갑내기 여자친구의 집 근처에 있어서 자주 가던 카페에서 커피를 배우게 되었다. 그 땐, 아직까지 카페가 요즘 정도로까진 성행하진 않았고, 막 뜨기 시작하던 때였던 것으로 기억한다. 우연히 배우기 시작한 그 곳에서의 커피는 지금의 나를 있게 하도록 큰 영향을 주었다. 커피를 배운 첫 날, 난 내심 바로 커피를 뽑아보는 것인가 기대를 했던 것 같다. 그러나 그 때 배운 건 커피에 대한 이론적인 내용 몇 가지와 1잔의 에스프레소 시음, 그리고 한가지 질문이 전부였다. 그 질문은 “커피란 무엇인가” 라는 약간은 철학적으로도 해석되는 질문이었다. 스승님은 바로 답을 하지 않아도 되고, 나중에 한달이 지나서 다시 물어볼테니 그 때 대답해보라고 하셨다. 난생 처음 에스프레소를 마신..