2021년 4월 17일 - 상추 스티로폼 화분 만들기 웃자란 상추모들을 모판에서 픽픽 쓰러지도록 놔둘 수 없어서 화분에 옮겨 심기로 했습니다. 화분이라고 했지만 진짜 화분은 아니고 택배를 품고온 스티로폼 박스를 화분으로 만들어 쓰기로 했습니다. 냉동식품이나 신선식품을 배송시키면 보온, 보냉을 위해서 이런 스티로폼 박스에 담겨옵니다. 내용물은 냉장고로 향하고 스티로폼 박스는 새로운 생명을 품기위해서 개조해줍니다. 우선 화분의 생명은 배수입니다. 상추 역시 물을 좋아하지만 과습될 경우 병에 걸릴 수 있으므로 배수가 잘 되도록 바닥에 구멍을 뚫어주도록 합니다. 구멍을 일정 간격으로 뚫어줘야하지만 나중에는 점점 조밀하게 뚫어버렸네요. 제가 미술을 못 합니다. ㅋㅋ 화분 바닥에 구멍이 있으면 배수도 잘 되지만 상..
베란다 텃밭을 가꾸기 위해 어떤 작물을 심을지 고민하다가 가장 쉬운 작물로 손꼽히는 상추를 심기로 했습니다. 화분에다가 씨를 뿌려두고 적당히 물만 잘 줘도 무럭무럭 자란다는 말을 듣고 씨앗을 구입했습니다. 2021. 4. 1 - 발아준비 상추씨를 구입해서 바로 화분에 심어도 됩니다. 대충 상토위에 뿌려놔도 잘 자라는 상추이지만 발아율이 얼마나 될지 잘 모르고, 잘 자라는 녀석들을 골라서 재식거리 지켜가며 심어 주기 위해 발아를 시키기로 했습니다. 따로 발아기는 없습니다. 그냥 안주로 먹고 남은 '바사칸 꾸이' 통을 이용하기로 했습니다. 플라스틱 통에다가 키친타월을 깔아두고 상추 씨앗을 흩뿌려놓습니다. 그리고 물을 충분히 뿌려 키친타월이 젖을 수 있도록 해준다음 키친타월을 한번 더 덮습니다. 그리고 뚜껑을..
파이썬으로 개발한 소프트웨어를 'PyInstaller'를 통해 실행가능한 바이너리(Executable Binary)로 만들 수 있다. 파이썬 코드를 실행하는데 필요한 다양한 의존성 패키지들을 한번에 묶어서 배포하고 싶은 경우와 보안관련 코드가 있을 때, 코드를 열어보기 힘들게 만들고 싶은 경우 PyInstaller의 사용을 고려해볼 수 있다. 자세한 내용과 매뉴얼 페이지는 PyInstaller 홈페이지에서 확인할 수 있다. (링크 : PyInstaller 홈페이지) 1. PyInstaller 설치와 사용법 PyInstaller를 pip를 통해서 쉽게 설치할 수 있다. pip install pyinstaller 설치가 완료되면 바이너리로 만들고 싶은 파이썬 스크립트를 pyinstaller의 인자로 넘겨주면..
클러스터를 모니터링하는 서버에서 간혹 ssh 접속이 안되는 문제가 발생할 때가 있다. 모니터링 서버는 주기적으로 클러스터 서버에 접속해서 돌고 있어야하는 프로세스가 잘 돌고 있는지, 커널 로그에 에러 메시지가 남아있는지를 확인하는 동작을 하는데, 간혹 ssh 접속이 실패하면서 서버에 문제가 있다고 리포팅을 하고 있었다. 특이한 점은 특정 호스트만 접속오류를 보이는게 아니라 랜덤하게 ssh connection timed out 메시지를 보이는 호스트 주소가 바뀌는 것이었다. 에러 리포팅 이후 문제를 확인하기 위해 직접 문제의 서버로 ssh 접속을 하면 또 문제없이 접속이 잘 되었다. 귀신을 잡는 느낌으로 문제의 원인을 분석해봤다. 1. nf_conntrack: table full dropping packe..
파이썬을 이용해서 알고리즘 문제를 풀다보면 언어 자체에서 지원하는 내장 메소드들을 사용하는 경우가 대부분이다. 이 때, 각 메소드들의 시간 복잡도를 정확하게 알고 사용해야 제대로된 알고리즘을 작성할 수 있다. 따라서 파이썬의 기본 타입들이 제공하는 메소드들과 그것들의 시간 복잡도를 정리하는 시간이 필요하다고 생각했다. 우선 변수 할당(바인딩, Binding)의 시간 복잡도는 O(1)이다. 즉, 'a = 1'이라는 할당문은 O(1)라는 시간복잡도를 갖는다. 여기에 산술연산, 값에 대한 비교 연산들 역시 모두 O(1)의 시간복잡도를 갖는다. list 타입의 메소드와 Big-O 리스트 타입의 내장 메소드들의 리스트와 그것들의 시간 복잡도에 대해서 알아보겠다. 소문자 L은 리스트 객체를 나타냈고 대문자 N은 리..
파이썬의 데이터 타입 중에 집합(set) 타입이 있다. 집합 타입의 메소드 중에 특정 엘리먼트를 삭제하는 메소드가 두 개 있는데, 'discard()'와 'remove()'가 그것들이다. 이 두 메소드 모두 엘리먼트를 삭제하는 동작이 있는데 정확하게 어떤 차이점이 있는 것일까? 우선 remove() 메소드를 테스트해보자. 다음 코드를 보자. s = set() s.add(10) s.remove(10) s.remove(10) remove() 메소드를 이용해서 '10'이라는 엘리먼트를 두번 제거했다. 첫번째 remove()는 예상대로 정상동작했지만 두 번째 remove()를 수행할 때 다음과 같은 에러가 발생한다. Traceback (most recent call last): File "test.py", li..
lsof는 list open files의 약자로 시스템에서 열려있는 파일에 대한 정보를 출력해주는 명령어다. (대략 '엘에스오브'라고 발음하는 것 같다) 리눅스와 유닉스는 일반 파일과 디렉토리, 소켓, 파이프, 블록 디바이스, 캐릭터 디바이스에 대한 관리를 파일 시스템을 통해서 할 수 있다. 따라서 특정 프로세스가 열고 있는 파일 디스크립터(fd)를 조회해보는 행위는 시스템을 모니터링하는데 굉장한 도움이 된다. 유닉스 계열의 운영체제에서는 프로세스가 열고 있는 파일을 지웠을 때, 파일 시스템에서 ls로 보이지는 않지만 reference count가 0이 아니기 때문에 실제로 지워지지 않고 남아있는 경우가 더러 있다. 이 때, 프로세스가 열고 있는 파일이 위치한 디스크를 정상적으로 언마운트할 수 없기 때문..
C언어 혹은 자바에서는 정수 자료형(int)의 오버플로우(Overflow) 문제를 생각해야 한다. 충분히 큰 값의 정수형 데이터를 다룰 때에는 long 타입을 사용해야한다는 점은 C언어와 자바를 이용해 프로그래밍하는 개발자에게는 상식과도 같다. 하지만 파이썬에서는 약간 다를 수 있다. 우선 정수형 데이터의 한계값과 타입을 검사해볼 수 있는 코드를 준비하자. import sys print sys.maxint type(sys.maxint) type(sys.maxint + 1) 이 코드를 파이썬2.x 인터프리터에서 실행해보면 다음 결과를 얻게 된다. 9223372036854775807 파이썬2에는 maxint라는 값이 존재한다. 정수형 변수가 표현할 수 있는 최대값이 지정되어 있으며 이 값보다 큰 값은 lon..
개발자뿐만 아니라 책상에 앉아서 장시간 일하는 사무직들에게 구부정한 자세, 거북목, 허리 통증은 흔한 일이다. 하지만 이런 잘못된 자세들을 그대로 두다보면 디스크가 오거나 체형이 변형되는 결과를 초래한다. 일하다가 한시간에 한번 정도, 화장실에 오가면서 스트레칭을 해주면 어느정도 통증완화는 될 것 같다. 커뮤니티에서 공유된 자료인데 원출처를 못찾겠다. (아시는분이 있면 댓글로 달아주세요..) 의자에 앉아서 잠깐씩 할 수 있는 스트레칭도 있다. 브릿지 자세 같은건 집에서 자기전이나 아침에 일어나서 잠깐씩하면 좋을 것 같다. 추가로 세계적인 척추 전문가인 캐나다 워털루 대학의 Stuart Mcgill 교수가 제안하는 척추운동 방법도 따라해보면 좋을 것 같다. (관련 유튜브 채널 - https://www.yo..
파이썬의 장점 중 하나는 다양한 패키지들의 지원이다. numpy, beautifulsoup 같은 다양한 라이브러리 패키지들이 제공되어 머신러닝 프로젝트들의 실제 계산 과정을 쉽게 이용할 수 있다. 이런 패키지들의 제공은 파이썬 프로젝트의 개발 생산성을 매우 올려준다. PIP란 무엇인가? 파이썬 개발 환경에 패키지들을 설치하기 위해서 pip 명령을 자주 사용한다. pip는 파이썬으로 작성된 패키지 라이브러리들을 관리해주는 시스템이다. 우분투의 apt-get, CentOS의 yum 명령을 생각해보면 비슷하다. pip는 파이썬 3.4 이후 버전에는 기본적으로 포함되어 있어 별도로 설치할 필요가 없다. pip 명령 - list 현재 내 컴퓨터에 설치된 파이썬 패키지 라이브러리 목록을 볼 수 있는 명령은 다음과 ..
- Total
- Today
- Yesterday
- 화분
- 텃밭
- docker
- 자바
- 청양고추
- GitHub
- 상추
- 파이참
- 하둡
- pycharm
- 파이썬
- Jekyll
- 베란다 텃밭
- 깃허브
- 베란타 텃밭
- 도커
- MacOS
- 지킬
- java
- 화분 버리기
- 고추
- Python
- 상추 재배기
- linux
- monitoring
- hadoop
- 리눅스
- okhttp
- nf_conntrack
- InterlliJ
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |