본문 바로가기

전체 글1111

[python] subprocess 모듈을 이용한 명령어 실행 파이선으로 외부 명령어 실행 파이선으로 외부 명령어를 실행하는 방법은 subprocess 모듈을 사용한다. subprocess 모듈은 2.4 버전부터 추가 되었으며 기존에 사용하던 다른 모듈을 대체한다. os.system os.spawn* os.popen* popen2.* command.* subprocess.Popen() subprocess 의 Popen() 메소드를 이용하여 로컬 프로그램, 명령어를 사용한다. Popen()의 shell 파라미터는 기본이 False이고, 명령어를 문자열로 쉘에 전달하려면 True로 설정해야 한다. #!/usr/bin/python # -*- coding: utf-8 -*- import subprocess import shlex # 문자열 명령어 실행 def subproc.. 2015. 6. 11.
[스크랩] 리눅스와 유닉스 유닉스 AT&T 벨 실험실에서 개발된 운영체제이다. 간결하면서도 우연한 명령어 구성으로 이루어졌으며, 이식성이 강한 개방형 시스템이다. 시분할 시스템에서 멀티유저의 접근을 허용하며, 멀티 태스킹 시스템으로 동시에 여러프로세스를 처리할 수 있다. 리눅스 리눅스는 유닉스와 거의 닮은 운영체제 이지만, 유닉스의 장점을 포함하면서 새로운 여러기능들이 적용되어 현존하는 어느 운영체제보다도 강력하고 뛰어난 운영체제이다. 핀란드 헬싱키 대학의 리누스 토발즈가 대형 컴퓨터에서 사용하는 유닉스 소스 코드를 수정하여 개인 PC 에서도 사용할 수 있는 공개 운영체제로 개발하고 자신의 이름을 따서 리눅스로 정했다. 즉, 유닉스를 개인 컴퓨터에서 사용할 수 있도록 한 것이 리눅스이다. 유닉스는 하드웨어와 함께 제공되는 경우가 .. 2015. 6. 11.
[JDK8] Date, Calendar, LocaDateTime 날자 관련 객체들 사용법 Date, Calendar 자바에서는 날짜 관련 처리를 지원하기 위해서 Date, Calendar 객체를 제공한다. Date는 JDK 1.0, Calendar는 JDK 1.1 버전에서 지원되었다. Date 가 좀더 간단하고, 이전 버전과의 호환성을 위해 계속 제공하고 있다. Calendar는 Date 객체의 추상화 버전이라고 할 수 있고, Calendar객체를 이용하는 것을 권장한다. 특정 날짜를 지정하거나, 날짜 연산을 할 경우 Calendar를 사용한다. 또한 Calendar를 사용하여 지역화 처리를 할 수 있다. * JDK8 이전의 Date 객체에는 몇가지 문제점이 존재한다. (http://d2.naver.com/helloworld/645609) - 불변 객체가 아니기 때문에 스레드에서 문제가 발생.. 2015. 6. 9.
[자료구조] 힙과 힙소트 힙 힙은 자료구조의 하나로 최대값, 최소값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로한다. l 최대힙 : 부모노드의 값이 자식노드보다 크다. l 최소힙 : 자식노드의 값이 부모노드보다 크다. 부모와 자식 노드간의 대소관계만 정해지고, 자식 노드간의 대소관계는 정해지지 않는다. 힙정렬 힙을 구성하여 정렬을 수행하는 것을 힙정렬이라 한다. 최대힙을 이용하여 정렬을 수행하는 방법은 다음과 같다. 1. 최대힙을 구성한다. 2. 최대힙의 루트값을 배열의 맨뒤로 보내고 배열의 사이즈를 하나 줄인다. 3. 변경된 배열에 대해서 최대힙을 다시 구성한다. 4. 2 ~ 3의 과정을 배열의 길이가 1이 될때까지 반복한다. 소스코드[Java] public class MaxHeapSort { public.. 2015. 6. 8.
[어노테이션] 어노테이션과 리플렉션을 이용한 메소드 실행시간 출력하기 어노테이션과 리플렉션을 이용한 메소드 실행시간 출력 클래스에 PrintTime 어노테이션이 설정된 메소드를 찾아서 실행 시간을 출력한다. 어노테이션 @Target 은 어노테이션이 적용될 타입을 설정한다. Method, Filed 등을 설정할 수 있다. 한번에 여러 개를 적용하는 것도 가능하다. @Retention 은 어노테이션이 적용될 시점을 설정한다. Source, Runtime 등을 적용할 수 있다. 적용 시점에 따라 어노테이션 정보가 안 보일 수도 있다. 리플렉션 Class.forName() 메소드를 이용하여 데이터를 생성한다. 메소드와 메소드의 어노테이션 정보를 확인하여 @PrintTime 어노테이션이 적용된 메소드를 실행하고 실행시간을 출력한다. 테스트로 스트림을 이용한 버전과 for 문을 이용.. 2015. 6. 4.
[자료구조] 배열과 링크드 리스트 배열과 링크드 리스트 배열 - 데이터를 논리적 순서에 따라 순차적으로 데이터를 입력하며, 물리적 주소 또한 순차적이다. - 인덱스를 가지고 있어서 원하는 데이터를 한번에 접근이 가능하기 때문에 접근 속도가 매우 빠르다. - 그러나 배열은 데이터의 삽입/삭제에는 취약하다. n 배열의 특성상 데이터 삽입/삭제가 이루어지면, 다음 위치의 모든 데이터의 위치를 변경해야 하기 때문이다. 링크드 리스트 - 데이터를 논리적 순서에 따라 데이터를 입력한다. 하지만 물리적 주소는 순차적이지 않다. - 현재 위치 이전 및 다음 위치를 기억하고 있다. n 따라서 한번에 데이터에 접근할 수 없고, 순차적으로 링크를 따라가야만 접근이 가능하다. - 링크드 리스트의 종류 n 링크드 리스트(Simple Linked List) u .. 2015. 6. 4.
[스크랩] 경력 개발자 역량 평가 경력 개발자 역량 평가 EBvi 원본 위치 - https://github.com/EBvi/dev-matrix Programmer-competency-matrix - http://sijinjoseph.com/programmer-competency-matrix/ EBvi 에 정리 되어 있는 것을 다시 정리 해 보았다. 경력 개발자라면 이정도는 알아야 다음 면접에 나갈 수 있지 않을까? 전산학의 이해 1. 자료구조 2. 알고리즘 3. 시스템 프로그래밍 소프트웨어 엔지니어링 1. 소스코드 버전 관리 2. 빌드 자동화 3. 테스트 자동화 프로그래밍 1. 프로그램 분해 2. 시스템 분해 3. 의사소통 4. 파일 내의 코드 구성 5. 파일 간의 코드 구성 6. 코드 가독성 7. 방어적 코딩 8. 에러 핸들링 9. I.. 2015. 6. 4.
[영화] [조선명탐정2 - 사라진 놉의 딸] 조선 레오나르도 다빈치 김명민, 오달수의 호흡만 보고 보는 영화 이야기의 흐름에 너무 허점이 많고, 뻔한 클리쉐의 남발 거기에 과하게 웃음을 유도하려고 하는데 별로 안 웃김 OTL 조관우씨는 그렇게 등장할 줄 몰랐는데 오호 괜찮았음 [김석윤 감독] KBS를 대표하는 스타PD인 김윤석 감독은 ‘캠퍼스 영상가요’, ‘공포의 쿵쿵따’, ‘윤도현의 러브레터’, ‘개그콘서트’, ‘달려라 울엄마’, ‘올드 미스 다이어리’등 손대는 것마다 ‘대박’을 터뜨렸다. 2006년, 동명의 시트콤을 영화화 한 의 감독으로 충무로에 데뷔하여 언론과 평단의 호평을 받으며 방송과 영화를 넘나드는 탁월한 재능을 증명했다. 조선명탐정 : 사라진 놉의 딸 (2015) 6.9 감독 김석윤 출연 김명민, 오달수, 이연희, 최무성, 조관우 정보 코미디, 어드벤처 |.. 2015. 6. 4.
[알고리즘] 퀵정렬 퀵 소트 퀵소트는 비교정렬의 한 종류이다. 찰스 앤터니 리처드 호어가 개발한 정렬 알고리즘이다. 데이터 양이 크고 섞여 있을 경우 가장 빠른 속도를 낼 수 있다. 알고리즘 1. 리스트 가운데서 하나의 원소를 고른다. (이 원소를 피벗이라 한다.) 2. 피벗 앞에는 피벗보다 작은 원소들이 오고, 피벗 뒤에는 큰 원소들이 오도록 피벗을 기준으로 리스트를 둘로 나눈다. 이렇게 피벗의 위치가 정해진다. 3. 피벗의 앞쪽 리스트와 피벗의 뒤쪽 리스트에 대하여 1, 2 를 반복한다. 소스코드[Java] package sdk.java.example.sort; import java.util.Random; public class QuickSort { /** * 퀵 소트 처리 * * @param array * @param.. 2015. 6. 1.
[영화] [어바웃 타임] 오늘에 충실하자 감독이 러브 액츄얼리, 노팅힐 감독이라 달달함 연인 사이에 보기에 좋은 영화임. 실제 크리스마스 시즌에 개봉해서 우리나라에서는 흥행도 했고. 시간여행이라는 소재로 복잡하지 않게 잘 풀어나간다. 보통 시간여행이라 하면 타임 패러독스로 인한 혼란이 주된 소재가 되는데 이 영화는 그렇지 않음 결론은 오늘에 충실하자.^^ PS. 레이첼 맥아담스가 매력적오로 나오네^^ 어바웃 타임 (2013) About Time 8.7 감독 리차드 커티스 출연 레이첼 맥아담스, 빌 나이, 돔놀 글리슨, 톰 홀랜더, 마고 로비 정보 로맨스/멜로, 코미디 | 영국 | 123 분 | 2013-12-05 글쓴이 평점 2015. 5. 31.
[하둡] 기본명령어 사용 팁 하둡의 기본 명령어 사용 팁 mkdir 지정한 디렉토리를 만들어 주는 mkdir 명령에는 –p 옵션이 있다. -p 옵션을 사용하면 주어진 경로의 디렉토리를 만들 때 상위 디렉토리부터 하위 디렉토리까지 모두 만들어 준다. mkdir 의 옵션 hadoop fs [generic options] -mkdir [-p] ... Hadoop fs –mkdir –p /dir1/dir2/dir3 명령어 사용시 mkdir: `/dir1/dir2/dir3: No such file or directory 오류가 발생하면 –p 옵션을 사용하여 디렉토리를 생성하도록 하자. 2015. 5. 27.
[문법강조] 온라인 소스코드 문법 강조처리기(Syntax Highlighter) 블로그나 카페에 소스코드를 올릴 때 그냥 플레인 텍스트를 올리는 것 보다 에디터에서 제공하는 것 처럼 문법을 강조해서 올리면 보기가 더 편하다. 이때 문법 강조를 도와주는 방식이 여러가지가 있는데, 하나는 자바스크립트를 이용해서 올려진 코드를 후처리해서 보는 방법이 있고, 다른 하나는 코드를 HTML 로 변환하여 적용하는 방법이 있다. 자바스크립트를 이용한 처리는 , 등의 태그로 코드를 감싼후 코드가 로딩되는 시점에 사용자 단에서 처리해서 보여주는 방식이다. 가장 많이 사용되는 코드가 다음 링크의 코드이다. Alex Gorbatchev - http://alexgorbatchev.com/SyntaxHighlighter/manual/installation.html installation 의 코드를 따라가면 .. 2015. 5. 26.
[알고리즘] 시간 복잡도 - 프로그램을 실행시켜 완료하는데 걸리는 시간 - 알고리즘의 일반적인 시간 복잡도는 명령어의 실행 횟수를 고려한다. n for 문을 반복한 횟수, 일반 연산을 처리한 횟수 등의 합에서 상수는 제외하고 최고차항만 생각 시간 이름 bit 별 처리 시간 1 상수형 1, 1, 1, 1, 1, 1 log n 로그형 0, 1, 2, 3, 4, 5 n 선형 1, 2, 4, 8, 16, 32 n log n 선형 로그형 0, 2, 8, 24, 64, 160 n^2 평방형 1, 4, 16, 64, 256, 1024 2^n 지수형 2, 4, 16, 256 n! 계승형 1, 2, 24, 40326 - 로그형 < 선형 < 선형 로그형 < 평방형 순으로 갈수록 복잡해진다. - 빅오[O(N)]: 알고리즘 실행시간의 상한을 나타내는.. 2015. 5. 26.
파이썬의 중요 특징(클로저함수, 장식자, 생성기, 코루틴) @클로저함수 함수안에 또다른 함수가 선언되어 반환되는 것을 클로저 함수라고 한다. - 전역변수를 사용하지 않음 - 내부 데이터의 은닉에 활용 http://jonnung.blogspot.kr/2014/09/python-easy-closure.html http://nbviewer.ipython.org/github/jonnung/book-review/blob/master/core_python_study/closure/python_closure.ipynb @장식자 - 데코레이터 데코레이터의 개념은 일종의 래핑(wrapping) 함수 실행되는 함수를 파라미터로 받아서 실행되는 함수 #!/usr/bin/python # -*- coding: utf-8 -*- import time def elapsed_time(fun.. 2015. 2. 9.
[python][xlswriter] xlsxwriter 의 메모리 점유해제를 위한 constant_memory 모드 설정 @xlsxwriter 사용시 대용량 데이터를 이용할 경우 주의할 점 xlsxwrite 는 파일을 생성할 때 worksheet 을 이용하여 write 한 데이터를 메모리에 저장한다. 입력한 데이터를 이용하여 데이터를 조작할 때 유용하게 이용하기 위해 사용하고 있는데 이렇게 되면 모든 데이터가 메모리에 저장되기 때문에 대용량 데이터를 쓸때 메모리가 급격하게 늘어나는 것을 확인할 수 있다. 8만 라인을 쓰는데 500G 정도의 메모리를 이용하는 것을 확인하였다. 이로 인해 파이선이 메모리 오류로 죽어 버리는 경우가 발생하였다. OSError: [Errno 12] Cannot allocate memory 이를 방지하기 위해서 다음과 같이 선언하면 된다. workbook = xlsxwriter.Workbook(fi.. 2015. 2. 4.
[리눅스 환경설정] 리눅스 명령어의 PATH 에 설정된 우선순위 @리눅스 명령어의 PATH 에 설정된 우선순위 동일한 이름의 명령어가 패스에 명시 되어 있을때, 앞에 위치한 명령어를 먼저 사용한다. * PATH 의 명령어 사용 export PATH=$PATH:[커맨드 패스] * 커맨드 패스의 명령어 사용 export PATH=[커맨드 패스]:$PATH 2015. 2. 2.
[AWS] 아마존 EC2 인스턴스의 메타정보 확인 CLI 환경에서 EC2 인스턴스의 메타 정보를 확인하는 방법은 다음과 같다. * 해당 정보는 암호화 되지 않으므로 확인할 때 주의해야 한다. 확인가능한 리스트 curl http://169.254.169.254/latest/meta-data/ 정보 확인 curl http://169.254.169.254/latest/meta-data/[리스트 목록의 정보] [인스턴스 자격증명 문서및 서명 확인 curl http://169.254.169.254/latest/dynamic/instance-identity/document ex) curl http://169.254.169.254/latest/meta-data/ami-id curl http://169.254.169.254/latest/meta-data/hostnam.. 2015. 1. 28.
[하둡 2.x] 커패시티 스케줄러(capacity-scheduler.xml) 설정하기 hadoop 2.x 버전 capacity-scheduler.xml 설정방법 하둡은 커패시티 스케줄러를 이용하여, 자원을 효율적으로 분산하여 사용하게 할 수 있다. 계층형 큐를 이용하여 작업을 분산하여 처리할 수 있도록 설정할 수 있다. 큐는 트리구조로 생성되며 최상위 계층은 root 이다. root 아래에 기본적으로 default 큐가 생성되어 있고, 사용자가 큐를 추가할 수 있다. yarn.scheduler.capacity.root.queues queue_name1,queue_name2,default 아래와 같이 설정하여 큐에 할당 할 수 있는 최대의 자원을 % 로 설정한다. 그 외 나머지 설정을 [큐이름]을 지정하여 할당 하면 된다. yarn.scheduler.capacity.root.[큐이름].ca.. 2015. 1. 27.
[파이선2] 파이선2의 한글 인코딩 비교하기 > 한글 >> 한글 # 서로다른 타입에 대한 확인 print type(h1) print type(h2) >> >> # 리스트에 추가후 출력 str_list = [] str_list.append(h1) str_list.append(h2) print str_list >> ['\xed\x95\x9c\xea\xb8\x80', u'\ud55c\uae00'] ''' # UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal 오류 발생 if h1 == h2: print True ''' ''' # UnicodeDecodeError: 'ascii' codec .. 2015. 1. 12.
[뮤지컬] 스페이스 번개맨3 위치 : 양재 한전아트센터 일시 : 2015.01.11 아들의 방학을 맞이 하여 스페이스 번개맨3을 관람하였다. 딩동댕 유치원에 등장하던 사람들이 그대로 출연하여 아이들이 쉽게 몰입할 수 있있고, 1시간의 공연시간으로 딱 집중력이 끝날쯤에 공연이 종료되었다. * 주연배우(번개맨, 마리오, 나잘난, 더잘난 등)들이 따로 관객들과 만나는 시간이 없어서 아쉬웠음 ** 공연중에 2번 무대를 내려오는데 이때는 통로쪽 관객들이 인사하기에 유리함.... 앞으로는 통로쪽으로 앉아야 겠음 *** 나잘난이 무대매너가 좋았음 2015. 1. 12.
Python 에 한글 입력하기 파이선 코딩시에 한글을 입력하기 위해서는 파일의 처음에 utf-8로 인코딩이 됨을 알려주어야 한다. #!/usr/bin/python # -*- coding:utf-8 -*- 추가적으로 입력시에 coding: 는 coding : 처럼 띄어서 쓰면 안된다. 콤마(:)를 띄어쓰면 아래와 같이 인코딩 설정을 인식하지 못한다. 주의하자. SyntaxError: Non-ASCII character '\xec' in file 2015. 1. 9.
우지 4.0 의 특징 Oozie 4.0 특징 1. HCatalog Integration - HCatalog 데이터셋 지원, 파티션 생성에 대한 알림 지원 - 데이터 존재여부를 HCatalog 를 이용하여 확인 가능 2. Job Notifications - JMS 를 통한 상태 변경알림 지원 - 사용자가 지정한 메시지를 알림 지원 3. SLA 모니터링 - SLA 수준 모니터링 정보 제공 - 웹콘솔, REST Api, JMS, Email 을 이용한 정보 제공 - coord, workflow, workflow action 단위로 시작시간, 종료시간에 따른 처리 상황 모니터링, 이메일 알림 기능 참고 우지4 특징 - http://www.slideshare.net/ydn/hadoop-meetup-hug-october-2013-oozi.. 2015. 1. 6.
[OS] 윈도우8 PIN/사진 로그인시 지연 현상 수정 윈도우8 로그인시 PIN 암호를 사용하고 있었는데 PC를 샀을때 무료로 설치되어 있던 노턴을 삭제하고 나니 대략 1분 정도 지연후에 로그인이 진행되었다. 그래서 검색을 해보니 아래의 사이트에서 해결책을 찾았다. 원인은 노턴이 삭제 되면서 PIN 로그인에 필요한 서비스를 죽이고 가는 모양이다. -_-; 윈도우 서비스의 "Credential Manager" 의 상태를 확인해서 '수동' 으로 되어 있다면 '자동' 으로 변경해주면 된다. http://www.sysnet.pe.kr/2/0/1686 2015. 1. 4.
[용어] 서비스 수준 협약 - SLA(Service Level Agreement) 서비스 수준 협약 - SLA(Service Level Agreement) 서비스를 제공함에 있어서 제공 서비스에 대한 측정지표와 목표에 대한 협약서이다. 서비스될 수 있는 시간 비율, 동시 사용자수, 사용량 통계 등의 정보를 정의한다. 협의한 지표에 대한 수행결과로 계약의 수행여부를 판단한다. 참고 - 아마존 AWS EC2의 SLA 계약 (월별 가동시간 비율에 따라 금액 산정) http://aws.amazon.com/ko/ec2/sla/ 2014. 12. 29.
[여행] 여행지 추천 사이트 여행지 추천 대한민국 구석구석 - 한국관광공사 http://korean.visitkorea.or.kr/kor/inut/addOn/main/publish/index.jsp 경기관광포털 - https://ggtour.or.kr/blog/category/ggi-recommend-travel/ 2014. 12. 29.
[여행] 캐러비안베이 팁 캐러비안베이 2014.12.28 크리스마스 연휴의 끝에 다녀온 캐러비안 베이 아침 9시 30분쯤에 도착했는데 입장하니 비치체어는 이미 만석이었음 * 입장하자마자 락커로 가지말고 4층으로 이동하여 옷을 입은 상태로 비치체어부터 빌리는 것이 좋을 듯 도착했을때가 -6도 였고, 낮에는 4도 정도 였는데 물온도가 따뜻해서 놀기에는 나쁘지 않았다. 유수풀도 온도가 따뜻해서 밖에서 놀아도 춥게 느껴지지 않았다. 한여름보다 사람이 작아서 아이들은 신이 나서 더 좋았던것 같다. 점심은 11시 쯤에 미리 먹는것이 좋다. 12시에 가면 사람들이 줄을 너무 많이 서있다. 식당이 2개밖에 없어서 사람들이 너무 많았다. * 홈페이지에 예약 기능이 생겼다. 비치 체어를 예약해 놓고 가면 더 편하다. 2014. 12. 29.
[영화][애니메이션] 일곱난장이 일곱난장이 일곱난장이가 마법에 걸려 잠에 빠진 공주와 백성들을 구하기 위하여 마녀에게 잡힌 왕자(?)를 구해오는 이야기 독일 애니메이션이다. 독일애니메이션은 처음보는 것 같은데 퀄리티가 나쁘진 않았다. 백설공주와 숲속의 잠자는 미녀를 적당히 섞어 놓은 모험물 연말에 아이들을 데리고 극장에서 보여주기에 적당한 것 같다. '바로'가 연기한 주인공 목소리는 평이한 수준 3/5 2014. 12. 29.
[hive] 조회 조건에 정규식 이용하기 하이브 데이터 조회 조건을 정규식을 이용하여 분리하는 방법은 다음과 같다. select 칼럼명 from 테이블명 where 칼럼명 rlike '^[a-zA-Z0-9]*$'; 조회 쿼리에 rlike 를 이용하면 된다. regexp 로 대체하여도 동일한 결과를 출력한다. 정규식은 java 에서 사용하는 정규식과 동일하다. 위의 조회에 사용된 표현식은 처음[^] 부터 끝[$] 까지 영문 대소문자와 숫자 의 반복[*]으로 표현된 문자열만 찾는 쿼리이다. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 2014. 12. 26.
[스크랩] 프로그래머는 치킨집을 차릴 수 있는가? 프로그래머는 치킨집을 차릴 수 있는가 from Hypersix MonaC 최근 프로그래머의 최종 테크트리는 닭집 이라는 이야기를 많이 한다. 과연 우리는 닭집을 차리면 성공할 수 있을까? 이글을 읽고 다시 한번 해보자!! 2014. 12. 24.
문자열 포맷팅 [string 포맷팅] python 의 문자열 포맷팅은 두가지 방법을 사용한다. - .format() - % 두가지 방법중 어떤 방법을 사용해도 상관없다. % 를 이용하는 것이 권장되고 있는 것 같다. #!/usr/bin/python # -*- coding : utf-8 -*- # format 이용 sentence1 = 'I am a {}' print sentence1.format("boy") # format 에 리스트와 dict 를 이용한 방법 sentence3 = "I am a {0} and {x}" print sentence3.format("boy", x="girl") # % 와 dict 를 이용한 방법 sentence2 = "I am a boy %(x)s" print sentence2 % { "x.. 2014. 12. 24.