발생일: 2018.10.29 키워드: jenkins, 젠킨스, manage jenkins, reload configuration in command line, 설정 업데이트 문제: 젠킨스의 설정 파일인 config.xml 을 직접 변경하고 나면, Manager Jenkin (Jenkins 관리) 메뉴에 들어가서 Reload Configuration from Disk 버튼을 눌러야 실행 중인 젠킨스에 반영된다. CLI로 바로 업데이트 할 수 없을까? 해결책: 터미널에서 아래와 같이 호출하면 된다. $ java -jar jenkins-cli.jar -s [JENKINS_URL] -auth [ID:PW] reload-configuration 난 젠킨스가 실행되고 있는 환경에서 바로 실행해서 아래와 같이 loc..
발생일: 2018.04.08 키워드: AWS Security Group, 보안 그룹, 시큐리티 그룹, nested security group 문제: AWS 보안 그룹에 다른 보안 그룹을 추가했는데, 하위 보안 그룹의 룰셋이 상위 보안 그룹에 추가되는 것 같지 않다. 왜 그런 걸까? 해결책: 보안 그룹 내에 다른 보안 그룹을 추가하는 경우, - 하위 보안 그룹의 룰셋이 상위 보안 그룹의 룰셋에 추가되는 것이 아니라, - 하위 보안 그룹을 가진 인스턴스들이 상위 보안 그룹에 액세스할 수 있게 된다. 오해하기 쉬워 보인다. @_@ 참고: https://stackoverflow.com/questions/42871841/can-you-configure-aws-security-groups-to-have-sub-gr..
발생일: 2018.10.20 키워드: alfred workflow, 알프레드 워크플로우 문제: 파이썬으로 알프레드 워크플로우 만들기 :) 해결책: 파이썬으로 워크플로우를 쉽게 만들 수 있게 부트스트랩 라이브러리를 만들어둔 저장소가 있다. https://github.com/deanishe/alfred-workflow 아래는 간단 튜토리얼. http://www.deanishe.net/alfred-workflow/tutorial_1.html 논의: # 부트스트랩 라이브러리 설치 알프레드 워크플로우를 생성한 후에, 해당 디렉토리에서 아래처럼 설치할 수 있다. (설치 가이드 참고) $ pip install --target ./workflow Alfred-Workflow ---- # 한글 이슈 알프레드는 맥의 기본..
발생일: 2017.11.17 키워드: MySQL, LOAD DATA INFILE, insert large amount of dataset into mysql database, 대용량 데이터 추가 문제: 대용량 데이터를 MySQL 디비에 인서트하려고 한다. 가장 효율적인 방법이 뭘까? 해결책: 텍스트 파일을 읽어 테이블에 인서트하는 LOAD DATA INFILE 구문이 있다. 기본 INSERT 구문을 쓰는 것보다 20배 정도 빠르다고 한다. 대략 아래와 같은 포맷으로 실행할 수 있다. LOAD DATA LOCAL INFILE '{file_name}' INTO TABLE {table_name} CHARACTER SET utf8 FIELDS TERMINATED BY '{field_terminator}' # 각..
발생일: 2018.10.19 키워드: pands, 판다스, groupby, nlargest, nsmallest, sort_values, get n largest value in group 문제: 그룹 내에서 값이 큰 순으로 상위 n개만 가져오려고 한다. 해결책: 이 용도의 nlargest 와 nsmallest API를 제공하고 있다. 하지만, 가장 빠른 방법은 데이터프레임을 원하는 값으로 정렬한 후에 groupby 하고, head 로 가져오는 것이다. id, name, total 로 구성된 데이터프레임이 있고, 각 name의 값을 total 로 정렬해 상위 3개만 가져오고 싶다면 아래와 같이 처리하는 것이 빠르다. df.sort_values(by='total', ascending=False).groupb..
발생일: 2017.01.14 키워드: Matchbox recommender 문제: 지금도 잘 모르지만, 지금보다 더 잘 몰랐을 때의 메모 ㅎㅎ. MS 의 Mathbox recommender 모델을 사용해 추천을 적용하려고 했다가 실패했다. 점수를 내는 기준을 제대로 잡지 못했기 때문이다. 지금 보면 워낙 기초가 없던 때라 그런 거였는데, 나중에 같은 실수를 하지 않게 기록해둔다. 해결책: 매치박스 레코멘더 모듈은 각 아이템 간에 점수(rating)를 부여하고 이를 조합해 추천하는 방식이다. 우린 아파트 정보 서비스여서, - 사용자에게 아파트를 추천 - 아파트와 비슷한 아파트 추천 하는 것을 목표로 했다. 점수는 조회수와 알림 구독 여부, 우리집 선택 여부로 아래와 같이 조합했다. - rating이 0부터..
발생일: 2018.10.18 키워드: conda env update, pip install --upgrade, environment.yml, 콘다 환경, 아나콘다, 미니콘다, anaconda, miniconda 문제: 서비스에서는 conda 패키지를 envrionment.yml 파일로 관리하고 있다. 이런 식이다. [environment.yml] name: foo channels: - conda-forge - defaults dependencies: - python=3.7 - ipython - jupyter - pandas - numpy - pip: - konlpy - ... 헌데, conda env update 를 실행해도, 환경 파일에 정의해둔 pip 패키지는 업데이트되지 않는다. 어떻게 해야할까? ..
발생일: 2018.09.03 키워드: euc-kr, euckr, node.js, iconv, 인코딩, encoding, escape, encodeURIComponent 문제: 노드에서 euc-kr 로 인코딩 된 페이지로 GET 요청을 보내려고 한다. 한글이 포함된 값을 파라미터로 전송하려고 하는데, 어떻게 인코딩하면 될까? 해결책: iconv 라이브러리를 활용하면 된다. const buffer = iconv.encode('한글이 포함된 파라미터', 'euckr'); // 파라미터를 euc-kr 로 인코딩 해 버퍼에 담은 후, const param = encode(buffer.toString('binary')); // 바이너리로 변환해 이스케이프하면 된다. 논의: encodeURI() 와 encodeURI..
발생일: 2018.09.29 키워드: Jupyter notebook, nbconvert to HTML 문제: 작성한 주피터 노트북을 팀내에 공유하거나 배치로 메일 등으로 발송하게 하려고 한다. nbconvert 모듈로 HTML이나 PDF 포맷으로 export 할 수 있다는 건 알고 있다. $ jupyter nbconvert --to html sample.ipynb --output output.html 이렇게 처리했는데, 생성된 HTML이 정말 못생겼다. 좀 예쁘게 바꾸고 싶은데, 어떻게 하면 될까? 해결책: nbconvert 모듈로 export 할 때, --template 옵션으로 별도의 템플릿을 적용해 출력 형태를 바꿀 수 있다. $ jupyter nbconvert --to html sample.ipy..
발생일: 2019.09.27 키워드: node, npm install, n, asyncWrite 문제: npm install 로 모듈을 설치할 때 아래와 같은 오류가 발생한다. npm ERR! asyncWrite is not a function npm ERR! pna.nextTick is not a function 해결책: npm 을 재설치하는 방법으로 해결했다. $ curl -0 -L https://npmjs.com/install.sh | sudo sh 논의: npm 모듈의 캐시도 날려보고 $ sudo npm cache clean -f node 관리 모듈인 n을 재설치하기도 하고, node 를 stable 버전으로 새로 갱신하기도 했는데 해결되지 않았다. 다른 사람들은 이런 방법으로도 해결된 것 같으니..