12 Factor APP을 하는 이유 최근 소프트웨어 서비스가 클라우드 서비스로 많이 바뀌게 되면서, 12 Factor는 확장성 좋은 SaaS 앱을 만들기 위한 방법론이다. 설정을 자동화 할수 있다. OS 따라 달라지는 부분이 명확하고, 이식성이 좋다. 클라우드 환경에 적합하다 CI / DI 에 용이하다. 툴, 아키텍쳐, 개발방식을 바꾸지 않아도 Scale up이 용이하다. 12 Factor 1. 코드 베이스 (Code Base) 애플리케이션(이하 앱)은 한 개의 코드 베이스 (Git, SVN)를 통해 관리하며, 동일한 코드로 운영/개발에 배포하여야 한다. - 앱은 1개의 코드 베이스로 1:1 관계다. - 앱은 1개의 코드 베이스로 운영/개발 등등에 배포된다. - 코드베이스 전략은 다른 11가지 전략의 ..
nGrinder 사용후기 nGrinder 사용하게 된 이유 ? 회사를 이직한지 어느덧 3주가 되었습니다. 첫 번째 임무(?)로 nGrinder 스크립트 작업이 들어왔습니다. ( 으응 ? 나는 php 개발자인데 ㅎㅎ groovy 라뇻!? ) 뭐죠 ? 이름만 들어서는 생소한데.. 사실 ngrinder 는 우리가 흔히 사용하는 부하테스트용 툴이다. 보통 아파치에 기본 포함되어있는 툴로 서버의 스트레스를 주어서 얼마나 많은 트래픽을 견디는지 산출할 때 쓰입니다. ngrinder의 경우는 단순히 경로 하나를 스트레스를 주는 것이 아니라 ngrinder 가 지원하는 언어 ( 그루비, 자이썬 ) 으로 시나리오를 작성하여 부하를 줄수 있는 장점이 있다. 결정적으로 ngrinder 는 grinder 의 사용하기 힘든 부..
.zshrc # If you come from bash you might have to change your $PATH. export PATH=$HOME/bin:/usr/local/bin:$PATH export PATH="$PATH:$HOME/.composer/vendor/bin" export PATH="$PATH:`pwd`/flutter/bin" # Path to your oh-my-zsh installation. export ZSH="/Users/lovizu/.oh-my-zsh" export NVM_DIR="$HOME/.nvm" export JAVA_HOME="/Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home/" export AND..
코딩, 어떤 언어로 시작하지? ( 현직 개발자가 추천하는 개발 언어 ) 서론 개발언어추천, 코딩 뭘로 시작하지? 등등 많은 글들이 인터넷에 돌아다닌다. 대부분의 글들은 어디서 순위 차트 기준, 혹은 잡 사이트에서 필요 순위 등을 참고로 한다. 필자는 솔직히 언어는 도구다라는 생각이 강하다. 사실 다양한 언어를 할 수 있는데, 모든 종류의 프로젝트를 한 언어로 작성하는 것은 어리석은 짓이다. 이 말은 어떤 언어를 배워도 먹고 사는 길은 있다는 뜻이다. 하지만 현실은 가장 인기 있는 언어가 당연히 개발자 pool 이 많고, 채용도 거기서 많이 이뤄진다. 그러다보니 취업을 위해서 자신에게 맞지 않은 언어로 고생하는 개발자들도 많다. 물론 모든 언어를 다양하게 배워야 경험하고, 그중 몇개의 언어를 특화하는 것이..
golang 시리즈 1 ( 언어 특징 ) 정적 타입, 강타입 컴파일 언어 가비지 컬렉션 병행성 * 멀티코어 환경 지원 모듈화 및 패키지 시스템 빠른 컴파일 나의 평가 아직 배우기전에 golang은 python 의 대항마라고 들었다. 하지만 막상 배우려고 여러가지 정보를 수집하고, 배우는 첫단계를 보자말자 얘는 파이썬의 대항마가 아니라 좀 다른 포지션인 것 같다는 생각이든다. 뭔가 작정하고 요즘 트렌드에 맞는 백엔드 언어가 아닌가 싶다. 추천하는 이유 한국은 자바왕국이다. 하지만 자바의 단점은 분명함에도 그 프로덕션으로서의 안전성과 오랜 기간 사용함에 따른 신뢰가 자바왕국을 더 단단하게 할것이다. 하지만 golang 을 처음본 순간 좀 희열을 느꼇다. 지금까지 자바의 대체 언어로는 많은 언어들이 존재했다...
목록 화면을 만들 때 가장 먼저 손이 가는 게 LIMIT ... OFFSET ... 이다. 프레임워크가 다 해주니까 신경 쓸 일도 없다. Laravel이면 paginate() 한 줄이고, 페이지 번호는 알아서 붙는다.문제는 데이터가 쌓이고 나서 터진다. 개발 초기에 1,000건으로 테스트할 때는 멀쩡하던 목록이, 운영 6개월 차에 수십만 건이 되면 뒤쪽 페이지에서 눈에 띄게 느려진다. 그리고 느려지는 것보다 더 골치 아픈 문제가 하나 더 있다.문제 1. 뒤로 갈수록 느려진다OFFSET 100000 LIMIT 20 을 DB가 어떻게 처리하는지 생각해보면 답이 나온다. DB는 100,000건을 건너뛰는 게 아니라, 100,020건을 실제로 읽은 다음 앞의 100,000건을 버린다. 건너뛴다는 표현이 주는 인..