Docker를 이용한 개발 환경 구축하기

배경 여러 버전의 OS에서 돌아가는 여러 언어로 만든 시스템을 개발하려다 보니 개발 환경을 구축하는 것도 쉬운 일이 아닙니다. Vagrant도 사용을 해봤지만, 그렇게 획기적으로 편리하다는 인상은 못 받았습니다. 개발 환경을 배포하는 측면에서 좋았지만, 소규모 개발팀에서 배포를 위해 이미지를 빌드하는 과정이 오버헤드처럼 느껴졌습니다. ...

10월 19, 2019 · 8 분 · Sangheon Han

윈도우 10에서 넷플릭스 UHD(4K) 화질로 감상하기

넷플릭스를 셋탑 등을 이용해서 4K TV로 보는 경우 대부분 문제가 없지만, PC용 4K 모니터로 보는 경우 UHD(4K)가 제대로 나오지 않는 경우가 있습니다. 이 글에서는 윈도우 10에서 PC용 4K 모니터를 통해 넷플릭스 UHD를 보기 위한 방법을 설명합니다. ...

1월 13, 2019 · 2 분 · Sangheon Han

PHP로 원격 호스트에 CLI 커맨드 실행법

원격 호스트에 명령을 실행하기 위해서는 우선 SSH 키를 통한 연결이 필요합니다. SSH 키를 연결하는 방법은 오픈튜토리얼스의 강좌 참고하시면 됩니다. 우선 SSH 라이브러리를 좀 더 편리하기 쓰기 위해 랩퍼를 하나 설치합니다. 이 라이브러리를 사용하기 위해서는 PHP에 ssh2 익스텐션이 설치되어 있어야 합니다. ...

1월 8, 2019 · 1 분 · Sangheon Han

바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서

프로그래밍을 배우는 방법은 다양합니다. 어떤 사람은 책으로, 또 다른 이는 동영상 강의로, 운이 좋은 사람들은 학교에서 전공으로 배우기도 합니다. 배우는 것 또한 다양합니다. 각종 프로그래밍 언어를 배우기도 하고, 알고리즘과 자료 구조를, 가끔은 수학 이론을 배울 때도 있습니다. ...

3월 1, 2018 · 2 분 · Sangheon Han

PHP 배열 세가지: Array, SplFixedArray, Judy Array

PHP를 사용하면서 배열(Array)를 사용하지 않는 경우란 매우 드물겁니다. 배열(Array)와 사전(Dictionary)로 구별하는 Perl이나 Python과 달리 둘이 합쳐진 모양새를 가진 PHP 배열(이하 Array)은 PHP로 프로그래밍을 할 때 감초처럼 빠지지 않는 자료 구조일겁니다. ...

7월 12, 2017 · 3 분 · Sangheon Han

컴퓨터 업그레이드: i7-7700K와 GeForce 1080Ti

2012년 3월 i5-2500k로 업그레이드 한 뒤에 근 5년이 흘렀습니다. 그 사이에 그래픽 카드만 교체해서 사용 해 왔습니다만, 빅타워 케이스의 부담감 때문에 작은 케이스로 이전하고 싶었습니다. 막상 케이스를 작은 것으로 바꾸려다 보니 표준 ATX인 메인보드가 맞지 않아 결국 대대적인 업그레이드를 하게 되었습니다. 이번에 업그레이드 하면서 어떤 부품을 어떤 이유로 선택하게 되었는지 정리 해 보았습니다. ...

7월 3, 2017 · 5 분 · Sangheon Han

디렉토리 내 특정 패턴의 파일과 디렉토리 모두 찾기

특정 디렉토리 내의 파일과 서브디렉토리 중 특정 패턴을 찾을 경우가 종종 있습니다. 기존의 시스템 함수를 이용하여 처리하려면 코드가 꽤 길어지지만, SPL(Standard PHP Library)를 이용하면 짧으면서 우아하게 처리 할 수 있습니다. ...

6월 16, 2017 · 1 분 · Sangheon Han

Composer에서 GitHub 저장소 이용하기

Composer를 이용 할 때 Packgist에 있는 패키지라면 composer require로 손쉽게 이용 가능하지만, 그렇지 않은 경우 약간의 설정을 해주어야 합니다. GitHub을 예로 들자면, 저장소에 composer.json이 포함되어 있는 경우 간단히 repositories 내용을 추가함으로서 이용 가능합니다. ...

5월 2, 2017 · 1 분 · Sangheon Han

파이썬 문자열에서 기호 없애는 법

1 2 3 4 5 6 7 # coding=utf-8 import re r = re.compile(r'[^\sa-zA-Z0-9ㄱ-ㅣ가-힣]+') s = '대법원장의 임기는 6년으로 하며, 중임할 수 없다. 법관은 탄핵 또는 금고 이상의 형의 선고에 의하지 아니하고는 파면되지 아니하며, 징계처분에 의하지 아니하고는 정직·감봉 기타 불리한 처분을 받지 아니한다.' print r.sub('', s)

4월 18, 2017 · 1 분 · Sangheon Han

많은 양의 작업을 정해진 갯수의 프로세스로 동시에 처리하기

여러 사이트를 동시에 크롤링 하는 등의 작업을 위해서는 동시에 웹페이지 내용을 가져오는 것이 거의 필수적입니다. 하지만, 가져올 페이지가 10000개라고 동시에 10000개를 모두 가져 올 수는 없습니다. 서버 사양이나 네트워크 대역폭을 감안하여, 동시에 수십개 정도 사이트를 수집하는 정도가 일반적입니다. ...

8월 23, 2016 · 2 분 · Sangheon Han