발생일: 2016.08.19 키워드: Docker, 다커, 도커, 몽고디비, mongo db, wait-for-it.sh 문제: Docker로 노드 서버와 몽고 디비 환경을 구성했다. 헌데, 노드 서버에서 몽고 디비를 찾을 수 없다며 오류가 난다. 서버에 접속해서 몽고 디비 서버를 확인해보면 제대로 떠있다. docker-compose 에서 depends_on 으로 설정해도 문제가 발생한다. 왜 그런 걸까? 해결책: 노드 서버가 실행되면서 바로 몽고 디비 서버에 접속하는데, 몽고 디비가 실행되는데 5~6초 정도의 시간이 걸렸기 때문이다. 서버에 접속해서 서버를 확인했을 때는 이미 실행된 상태라 문제가 없었던 것이다. 검색해보니 `dockerize` 와 `wait-for-it.sh` 스크립트로 특정 포트가 ..
발생일: 2016.08.17 키워드: CollectionView, 컬렉션뷰, Bounce, 바운스 문제: 인터페이스 빌더에서 Bounce Vertically 또는 Bounce Horizontaly 를 설정했는데도 바운드가 적용되지 않는다. 해결책: 코드 레벨에서 컬렉션 뷰에 alwaysBounceHorizontal 옵션을 주니 적용된다. self.collectionView.alwaysBounceHorizontal = YES; 참고: http://stackoverflow.com/questions/18390972/uicollectionview-doesnt-bounce-when-datasource-has-only-1-item
발생일: 2016.08.16 키워드: Docker, 다커, 도커, 프록시, proxy, http_proxy 문제: Docker 컨테이너에 프록시를 적용하려고 한다. 해결책: /etc/default/docker 파일에 아래 설정을 추가한다. export http_proxy=[PROXY 주소] export HTTP_PROXY=$http_proxy export https_proxy=$http_proxy export HTTPS_PROXY=$http_proxy export no_proxy="" export NO_PROXY=$no_proxy 설정을 추가한 후엔 재시작한다. $ sudo service docker restart 아래 명령을 실행해보면 추가된 것을 확인할 수 있다. $ docker info
발생일: 2016.09.06 키워드: githook, 깃훅, 이슈 번호, issue number, 이슈 넘버 문제: 우리 프로젝트에선 이슈 관리는 Github에서 하기로 했고, 각 피처 브랜치는 이슈 번호로 시작해 이름 짓기로 했다. 커밋 메세지엔 [이슈번호]를 말머리에 붙이기로 했다. 예를 들어, 담당한 태스트의 이슈 번호가 123이면, `feature/123-do-something`처럼 이름 짓고, 커밋 메시지는 `[123] blah blah`처럼 작성하기로 했다. 근데 커밋 메시지에 매번 이슈 번호를 넣으려니 번거롭다. 깃훅으로 자동화해보자. 해결책: prepare-commit-msg 훅을 사용했다. 아래는 코드 전문이다. #!/bin/bash # 브랜치가 이슈 넘버(123- 나 123_ 형태)로 ..
발생일: 2016.08.29 키워드: 평균, 표준편차, 표준정규분포, 정규분포, 가우시안 분포 문제: 평균과 분산, 표준편차, 정규분포... 학교다닐 때 배웠을 게 분명한데, 세월이 너무 많이 흘렀나보다. 기억이 나지 않는다. ㅠㅠ 기초부터 다시 정리해봤다. 해결책: # 평균, 분산, 표준편차 데이터 분석, 통계는 의사 결정의 보조 자료 평균과 분산: - 얼마나 흩어져있는가? 표준편차 - 평균에서 얼마나 흩어져있는가? - 얼마나 들쭉날쭉한가? 표준정규분포 - 어떻게 분포되어 있나? 정규분포포에서 확률을 구하는 부분이 좀 헷갈린다. http://math7.tistory.com/45 변동계수 상대적으로 얼마나 들쭉날쭉한가? http://blog.naver.com/istech7?Redirect=Log&logN..
발생일: 2016.07.08 키워드: View Controller Life Cycle, 뷰 컨트롤러 라이프싸이클 내용: 뷰 컨트롤러의 라이프싸이클 viewDidLoad - 뷰가 준비된 상태로 뷰컨트롤러에서 사용할 객체들을 초기화할 때 적합한 - 뷰의 바운드가 아직 정의되지 않은 상태 - nib 에서 320으로 했다면, 컨스트레인트가 오토리사이징이 적용되지 않은 상태 - 메모리워닝이 실행되는 경우 중복 호출될 가능성이 있다 viewWillAppear - 뷰가 스크린에 보이기 바로 전 - 뷰의 바운드는 정의됐지만, 오리엔테이션이 설정되진 않은 상태 - 테스트해보았는데 여전히 바운드도 넘어오지 않는다 - 필드를 숨기거나 보여주기에 적합한 시점 - 뷰가 스크린에 보여질 때마다 호출됨 viewWillLayoutS..
발생일: 2016.06.28 키워드: Alfred, 알프레드, 터미널, terminal, iTerm 문제: 알프레드에서 터미널 명령을 커스텀 앱(내 경우엔 iTerm)에서 실행하도록 설정하고 싶다. 해결책: 아래 깃헙의 코드를 알프레드의 터미널 설정에 붙여 넣으면 된다! https://github.com/stuartcryan/custom-iterm-applescripts-for-alfred/blob/master/custom_iterm_script_iterm_2.9.applescript 참고: https://github.com/stuartcryan/custom-iterm-applescripts-for-alfred
발생일: 2016.05.26 키워드: 동시성, 병렬성, concurrency, parallelism 문제: iOS의 GCD(Grand Central Dispatch) 문서를 보다 보니, 동시성은 병렬성과 같지 않다는 문구를 보았다. Concurrency is not Parallelism: https://talks.golang.org/2012/waza.slide 헷갈린다. 해결책: 아래 이미지에서 두 개념의 차이를 한 눈에 이해할 수 있다. (출처: https://www.raywenderlich.com/60749/grand-central-dispatch-in-depth-part-1) 간단하게 정리하면 아래와 같다. Cuncurrency (동시성) - 독립적으로 실행하는 프로세스들을 구성 - 한 번에 여러 ..