요새 50여대의 서버에 소스를 배포하는 것이 너무 오래 걸려서 배포 방법에 대해서 알아보는 중이다.처음 개발을 시작하면서는 이런 배포에 대해서 잘 알지 못했다. 프로그래밍만 배웠지 서버에 배포하는건 학교에서 가르쳐주지 않는다. 심지어 선배들도... (요새는 다를 수도 있겠다) 그래서 회사에 와서 접해본 것이 아는 것의 전부인데 오래된 서비스를 하다보니 배포 방법도 오래된 방법만 배웠다.처음 본 배포스트립트는 perl로 만들어져 있었다. rsync로 파일을 복사하고 서버를 재시작했다. 그 다음은 webistrano를 사용한 것인데 webistrano는 파일을 tar로 묶어서 전달한다. rails를 이렇게 배포했었는데 이후 서비스에서는 java를 webistrano로 배포하고 있었다.이제와서 생각하는 거지만..
작업 중인 php 서비스의 서버는 php 5.3을 사용한다. 그리고 나는 5.6을 사용한다. 이로 인해서 개발 과정에서는 겪지 못한 문제를 배포 후에 겪었고 이를 몇가지 정리하려고 한다. constructor namespace를 사용할 경우 constructor를 class명으로 사용할 수 없다. 다음의 코드는 둘 다 같은 결과를 얻을 것이라 기대하지만 test1쪽은 아무것도 출력하지 않는다. // Test/App.php namespace Test; class App { function App() { echo "hello\n"; } } // class_test1.php use Test; new App(); // class_test2.php class Test { function Test() { echo ..
webpack-dev-server는 webpack 빌드를 테스트할때 유용한 http 서버다. 문서에도 간단히 설명되어 있지만 Express의 심플버전이라고 보면 된다. 결과물을 file로 쓰지 않고 메모리에서 빌드해서 테스트해 볼 수 있다. 사용법 먼저 webpack 설정을 다음과 같이 만든다. output.publicPath는 클라이언트가 빌드된 파일에 접근할 수 있도록 서버가 제공할 path이다. // webpack.config.js var path = require("path"); module.exports = { entry: { app: ["./app/main.js"] }, output: { path: path.resolve(__dirname, "build"), publicPath: "/asset..
아이폰을 쓰기 시작하면서 내 생활에서 많은 것이 바뀌었는데 가장 많이 바뀐 것 중 하나가 종이 성경책을 더이상 가지고 다니지 않게 된 것이다. 20대를 거의 교회에서 보내서 그런지 가방엔 늘 성경책이 있었다. 전공책이 너무 무거워서 어떻게든 무게를 줄이고자 했을때는 포켓 성경책을 가지고 다녔었다. 그런 내게 아이폰은 혁명과도 같은 것이었다. 책을 아이폰안에 넣고 읽을 수 있다니! 물론 처음부터 그렇게 된 것은 아니다. 아이폰에 뭔가를 넣으려면 앱을 만들어야 하는데 난 아이폰 개발을 할 줄 모른다. (지금도...) 어쩔 수 없이 내가 할 수 있는 유일한 방법인 웹으로 이걸 해결하고자 했다. 당시엔 웹사이트를 모바일에 최적화하는 것이 겨우 시작되고 있었는데 나도 이렇게 하나 만들고 싶었다.구글 앱엔진, Ap..
codemirror에 한참 빠져있을때 간단히 만든 markdown to html 에디터가 있다. 여기에 tistory api로 글 보내기도 붙이고 글 가져오기, 로컬에 임시 저장하기 등등을 붙여보고 싶었는데 솔직히 말해서 엄두가 나지 않았다. 아무래도 코드가 길어질테니 파일을 분리하는 것이 관리하기 편할텐데 분리한 모듈을 관리하고 merge해서 테스트하고 하는 과정이 굉장히 번거롭게 느껴졌다. 그러다가 react 공부하게 되었고, 부끄럽게도 아직 몰랐던 CommonJS도 알게 되었다. react에 webpack을 적용하면서는 눈이 번쩍 뜨이는 것 같았다. 이런 방법이 있는데 왜 그동안 그렇게 고생했던 것일까 싶다. (사실 CommonJS만 알았어도 더 속도가 붙었을 것 같다.) 지금부터 이전에 만들었던 ..