디렉토리에 지정된 특정 파일의 파일명을 일괄로 변경해야 하는 경우 다음의 소스를 활용하면 된다. 아래는 현재 디렉토리의 zip 파일을 가져와서 파일명의 공백과 꺽쇠를 없애는 소스코드이다. def rename_file(): for filename in os.listdir("."): if filename.endswith("zip"): os.rename(filename, filename.replace(" ", "_").replace("", ""))
좋은 글을 발견해서 소개한다. 더 나은 개발자가 되는 8가지 방법 1. 배울 것이 얼마나 많은지 상기하세요. - 무언가를 배우는 첫 걸음은 그것을 모른다는 것을 깨닫는 것입니다. - 무언가를 가장 잘 안다고 생각할 때는 방금 그것을 배웠을 때 입니다. 2. 당신이 맞다는 것을 증명하려고 하지 마세요. - 훌륭해 지기 위해서는 경험에서 배워야 합니다. - 어떻게 하면 이것을 더 잘할 수 있을지 항상 고민하세요. 3. "동작하는 코드"는 끝이 아니라 시작입니다. - 동작하는 코드를 만들었다면, 더 낫게 만드는데 노력하세요. - 더 빠르게 or 더 문서화하기 쉽게 or 더 사용하기 편하게 4. 세 번 다시 작성하세요. - 문제점을 해결 가능하게 작성하고, 동작하게 작성하고, 올바르게 작성하세요. - 문제에 대..
[jade] - node.js 를 위한 템플릿 엔진 - express 의 기본 템플릿 엔진 - ejs에 비해 4배정도의 다운로드수(2016.03.10 기준) - jade 의 형식으로 된 문법을 이용하여 html 구성 - 들여쓰기가 중요함 -- 탭과 띄어쓰기중 한가지만 사용해야 함 - 첫번째로 쓰여진 문자가 태그가 되고, 공백 다음에 쓰여진 문자가 태그의 내용이 됨 -- title hahaha --> hahaha 로 변환됨 - 태그의 속성은 괄호를 이용하여 입력 -- a(href="www.target.url") --> 로 변환됨 -- 여러개의 속성은 콤마(,)로 구분하여 입력함 - jade 로 파싱된 결과물은 집핑(ziping)되어 나옴 -- 줄바꿈없이 나오게 됨 -- 전송용량을 줄이기 위함 var jad..
[알파고] - AlphaGo, Go는 일본어로 바둑을 뜻함 - 딥러닝(Deep Learning) 기술을 이용하여 바둑을 학습, 현재는 프로 5단의 실력을 가지고 있다고 함 - 구글에 인수된 인공지는 연구 업체 딥마인드가 개발 알파고 (바둑 인공지능)의 작동 원리 from Shane (Seungwhan) Moon [머신러닝(기계학습)] - 컴퓨터가 스스로 학습해 패턴을 찾고, 최적을 판단을 하는 알고리즘 - 알고리즘을 3가지 분류로 구분할 수 있음 -- 확률기반 -- 기하기반 -- 인공 신경망 --- 딥러닝 머신러닝의 한가지 임 새로운 개념은 아님 인공신경망 개념에 발달한 H/W 성능으로 최근 대두되기 시작 [텐서플로우]- 구글에서 공개한 머신러닝을 위한 오픈소스- giHub 에 공개되어 있음- 파이썬 A..
ejs 모듈은 html 템플릿 생성을 위한 모듈이다. jsp 와 비슷한 형태를 하고 있으며, jsp 의 스크립틀릿 형태로 작성하면 자체 렌더러를 이용하여 html 형식으로 변환해 준다. var ejs = require('ejs'); var fs = require('fs'); // file read html_str = fs.readFileSync(__dirname + '/sample.ejs', 'utf-8'); // compile template = ejs.compile(html_str); console.log(template({ 'title' : 'compile' })); // render console.log(ejs.render(html_str, { 'title' : 'render' })); compi..
웹상에서 파일을 다운로드 하기 위해서는 urllib 모듈을 이용하면 된다. 다음과 같이 2가지 방법이 있다. * urlretrieve 를 이용하는 것이 더 편할듯 import urllib urllib.urlretrieve(file_url, file_name) import urllib resource = urllib.urlopen("http://www.digimouth.com/news/media/2011/09/google-logo.jpg") output = open("file01.jpg","wb") output.write(resource.read()) output.close() http://stackoverflow.com/questions/8286352/how-to-save-an-image-locally-..
스타트업 얼라이언스 주최로 네이버 D2 스타트업 팩토리에서 열린 박종천 넥슨 플랫폼본부 부본부장의 "개발자가 갖추어야 할 9가지 기술" 강연 동영상입니다. 좋은 내용이니까 한번 들어보면 좋을 것 같다. 바쁜분은 55분 경부터 Q&A 부터 들어도 된다. "공부를 계속 해야 한다. 닥치는 대로 공부한다. 기술은 계속 나오고, 발전한다.""호기심이 있어야 한다. 세상에 대한 호기심이 있어야 한다. 호기심을 잃는 순간 끝난다." "믿을 건 내 실력뿐. 실력을 키워야 한다." "기회가 왔을 때 잡을 수 있는 능력을 키워야 한다." "처음에는 시킨 대로만 한다. 신뢰가 쌓이면 더 좋은 결과물을 낸다. 더 신뢰가 쌓이면 좀 더 좋은 능력을 내본다. 처음부터 잘하려고 하면 안된다. 신뢰가 더 중요하다."
회사에서 사용하는 충전기의 충전 속도가 너무 느려서 충전기의 정격전압, 정격입력(Input), 정격출력(Output)에 대해서 알아 보았다. 우선 관련된 공식은 다음과 같다. 학교에서 과학시간에 배우는 기본적인 공식이다. 전류: I or A 전력(W) = 전압(V) X 전류(A) 전압(V) = 전류(I) X 저항(R) 전압은 수도관의 크기 또는 굵기 라고 할 수 있고, 전류는 수도관에 흐르는 물의 속도 라고 할 수 있다. 저항은 물이 흐르는 것을 방해하는 돌 같은 것이라고 할 수 있겠다. 즉, 충전기의 정격출력의 전압이 맞으면 같은 충전기를 사용할 수 있는 것이다. 전류가 높으면 높을 수록 충전 속도가 빨라진다. 현재 내가 가지고 있는 어댑터를 보면 아래와 같이 적혀 있다. INPUT: 100-240V ..
nodejs의 이벤트 리스너는 기본적으로 10개 까지 연결이 가능하다. 11개 이상을 등록하면 다음의 에러가 발생한다. (node) warning: possible EventEmitter memory leak detected. 11 exit listeners added. Use emitter.setMaxListeners() to increase limit. 11개 이상을 등록하기 위해서는 다음과 같이 사용한다. // 리스너 제한 수정 process.setMaxListeners(15); 위와 같이 process의 EventEmitter 객체를 이용해도 되고,EventEmitter 객체를 직접 사용해서 수정해도 된다. https://nodejs.org/api/events.html#events_emitter_..
node.js 에서 mysql과 연동하기 위해서는 우선 npm을 이용하여 mysql 모듈을 설치한다. npm install mysql 설치후 다음과 같이 사용한다. DB 커넥션을 이용한 기본적인 쿼리 실행방법은 다음과 같다. // 모듈을 추출합니다. var mysql = require('mysql'); // 데이터베이스와 연결합니다. var client = mysql.createConnection({ user: 'root', password: 'p@ssw0rd', host: 'localhost', port: 3306 }); // DB와 묵시적으로 연결하여 쿼리를 사용 client.query('use sample;'); client.query('select * from company;'); // 배열을 이..
컴퓨터 데이터의 단위는 bit 이다. 보통 컴퓨터의 용량을 표기할 때 아래와 같이 표기한다. 8bit = 1Byte 1024Byte = 1KByte 1024KByte = 1MByte 1024MByte = 1GByte 1024GByte = 1TByte 이를 이진법 표기라고 한다. 일반적 인터넷 다운로드 속도를 100Mbps 라고 표기하는 데 이는 십진법 표기를 따른다. 1K = 1,0001M = 1,000,0001G = 1,000,000,000 과 같이 표기가 된다. 즉 이진법 표기와 십진법 표기에 따라서 생각하는 다운로드 속도가 다를 수 있다는 것이다. 100Mbps = 1,000,000 bps --(이진법 변환)--> 1,000,000/8/1024/1024 = 11.92MBps 가 된다. 1byte는 ..
파이썬에서 xml 을 파싱할때는 xml.etree.ElementTree 를 이용하여 진행한다. 주오 프로퍼티는 tag, attrib, text 가 있고, 주요 메소드는 iter(), findall() 이 있다. 활용 방법은 다음과 같다. # -*- coding:utf-8 -*- import xml.etree.ElementTree as ET country_data_as_string = ''' 1 2008 141100 4 2011 59900 68 2011 13600 1 2015 4 2015 ''' tree = ET.parse('test.xml')#파일을 이용한 파싱 root = tree.getroot() root = ET.fromstring(country_data_as_string)# xml 문자를 이용한 ..
다음의 오류가 발생하면 해결방법은 2개가 있는 것 같다. 우선 하나는 mapreduce.tasktracker.http.threads 를 수정하는 것이고, 다른하나는 slave 파일에 호스트 정보를 추가하는 것이다. 또는 작업을 다시한번 돌려도 될 것 같다. Caused by: java.io.IOException: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out. 1번 mapred-site.xml 의 mapreduce.tasktracker.http.threads 값을 기본 40에서 더 큰수로 설정 하고 하둡을 재시작한다. mapreduce.tasktracker.http.threads: 맵의 출력 데이터를 리듀스 태스크에게 제공하기 위한 태스크 트래커의 워커 스레드개수 ..
맵, 리듀스 태스크는 처리될 때 JVM를 새로 생성한다. 따라서 짧은 작업이 여러개 생성될 경우 JVM을 신규로 생성하는 오버헤드가 클 수도 있다. 이때 JVM을 재사용하여 작업을 처리하는 시간은 줄일 수 있다. 아래의 설정은 JVM에서 처리할 수 있는 작업의 개수를 설정한다. 기본 설정은 1이지만, -1로 설정하면 제한없이 사용할 수 있다. hadoop v1mapred.job.reuse.jvm.num.tasks=-1hadoop v2 mapreduce.job.jvm.numtasks=-1 http://www.nexr.co.kr/upload/mapli_deux.pdfhttps://hadooptips.wordpress.com/2013/03/19/improving-performance-with-jvm-reuse..
시스템 보안 1 운영체제 1.1 운영체제 개요 1.1.1 운영체제의 주요기능 1.1.2 운영체제의 구조 1.1.3 운영체제의 기술발전 흐름 1.2 운영체제의 주요 구성 기술 1.2.1 프로세스 관리 1.2.2 기억장치 관리 1.2.3 파일 시스템 관리 1.2.4 분산 시스템 1.3 운영체제 사례별 특징과 주요 기능 1.3.1 유닉스 1.3.2 윈도우 1.3.3 리눅스 1.3.4 보안운영체제 특징 2 클라이언트 보안 2.1 윈도우 보안 2.1.1 설치 및 관리 2.1.2 공유자료 관리 2.1.3 바이러스와 백신 2.1.4 레지스트리 활용 2.2 인터넷 활용 보안 2.2.1 웹브라우저 보안 2.2.2 메일 클라이언트 보안 2.3 공개 해킹도구에 대한 이해와 대응 2.3.1 트로이 목마 SW 2.3.2 크래킹..
http://mmemories.tistory.com/296 어도비 리더가 설치된 아래의 위치에 가서 C:\Program Files\Adobe\Reader 10.0\Reader\plug_ins 아래의 API를 삭제 한다. Accessibility.apiMakeAccessible.apiReadOutLoud.api 그리고 실행하면 '화면 판독기를 지원하지 않습니다.' 라고 팝업이 뜨는데,'다시 알리지 않음' 체크후 확인을 클릭하면 된다.
[LTS(Long Term Supported) 버전] - LTS 버전은 서버환경에서 장기적으로 안정적인 지원을 제공하는 버전 - 짝수 버전이 LTS 버전(현재 4.X) - 안정성과 보안성에 초점을 두어 개발 [Stable 버전] - Stable 버전은 잦은 업데이트를 진행 - 홀수 버전(현재 5.X) - 추가기능 개발과 기존 API의 기능 개선에 우선한다. * 서버운영을 위해서는 LTS 버전을 설치하고, 개발및 테스트를 위해서는 Stable 버전을 설치해서 처리하면 될 것 같다.
넷플릭스가 우리나라에서 서비스가 되면서, LG 스마트 TV에 앱이 올라오는지 확인해 봤는데 아직 등록되지 않았다. 하지만 LG 스마트 월드의 공지사항에는 2016.01.15일자 기준으로 등록이 되었다. http://kr.lgappstv.com/appspc/main/main/main.lge 서비스 센터1588-7777)에 확인해 보니 3월 초에 서비스 예정이라고 한다. LG 스마트 TV를 사용하고 계신 분들중 아직 LG 컨텐츠 스토어에 넷플릭스가 등록되지 않으신 분들은 등록될때까지 기다리고 있어야 할 것 같다. 작년 5월 모델인데... 너무 늦게 등록되는 듯...
배쉬 스크립트를 사용할 때 set -e 옵션을 이용하여 스크립트 실행 중 오류가 발생하면 종료하게 설정이 가능하다. #!/bin/bash set -e 위와 같이 설정하여 사용한다. 에러가 나면 종료된다고 해서 잘쓰고 있었는데 사용에 주의해야 할 점이 하나있다. * 그리고 외국사이트를 검색해보니 사용을 추천하지 않더라. set -e의 경우 명령어를 실행한 리턴코드가 0이 아니면 프로그램을 종료하게 된다. 따라서 grep 같은 경우에 반환하는 값이 없으면 오류가 발생한 것이 되서 프로그램이 종료된다. 프로그램이 어떻게 실행되었는지 확인하기 위해서 grep 을 사용하여 단순 로그를 출력하는 프로그램을 작성했는데grep의 반환결과가 없어서 프로그램이 종료되어 버렸다. set -e 옵션을 이용하여 프로그램의 에러..
하둡에서 자주 사용하는 명령어는 다음과 같다. * 폴더의 용량을 확인할 때 count 를 사용* 파일의 내용을 확인할 때는 cat 보다는 text를 사용하면 더 좋다. 파일 타입을 알아서 판단하기 때문 hadoop fs -cat [경로] - 경로의 파일을 읽어서 보여줌 - 리눅스 cat 명령과 동리함 hadoop fs -count [경로] - 경로상의 폴더, 파일, 파일사이즈를 보여줌 hadoop fs -cp [소스 경로] [복사 경로] - hdfs 상에서 파일 복사 hadoop fs -df /user/hadoop - 디스크 공간 확인 hadoop fs -du /user/hadoop - 파일별 사이즈 확인 hadoop fs -dus /user/hadoop - 폴더의 사이즈 확인 hadoop fs -get..
C10K는 다수의 클라이언트를 동시에 처리할 수 있는가에 대한 의문이다. (1만개의 소켓을 열게 된다면 하드웨어가 충분한데도 불구하고 I/O 처리방식의 문제때문에 프로세스가 제대로 처리하지 못한다는 것) 소켓을 처음 설계할 당시에는 10K의 클라이언트를 처리할 하드웨어 여력이 되지 않았기 때문에 생기는 의문이었다. 현재는 이를 해결하는 방법으로 Unix 계열에서는 select(), opll(), kqueue(), 윈도우 계열에서는 ICP 등을 이용하여 처리한다. 이를 해결하기 위해, NGINX, node.js 에서는 이벤트 드리븐방식의 비동기 처리를 통해 해결한다. 참고 http://openwiki.kr/tech/c10k_problemhttps://en.wikipedia.org/wiki/C10k_prob..
[장점]- 싱글스레드, 비동기 IO 처리에 기반한 빠른 속도- 파일 I/O나 네트워크 처리를 이벤트 드리븐 방식으로 처리하기 때문에 빠른 처리가 가능함- CPU의 대기시간을 최소화 할 수 있음- CPU 부하가 적고, 많은 커넥션을 동시에 처리해야 하는 구조에 적합- 자바스크립트를 이용해서 개발할 수 있기 때문에 프론트엔드 개발자의 진입장벽이 낮음- 기존 Java 서버에 비해 생산성이 높음 [단점]- 싱글스레드 모델이기 때문에 하나의 작업에 시간이 오래걸리면 시스템 전체의 성능이 급격하게 떨어짐- 이벤트 콜백 중심으로 코드가 중첩될 경우 가독성이 떨어짐- 에러가 발생할 경우 프로세스 자체가 죽어버리므로 주의해야 함(watch dog 등으로 처리 가능)- 멀티코어 활용을 위해서 cluster 모듈을 이용해야..
파이썬에서 엑셀 문서를 생성하기 위해서는 xlsxwriter를 이용한다. * 수정은 안됨 바로가기 -> http://xlsxwriter.readthedocs.org/contents.htmlworkbook 옵션 -> http://xlsxwriter.readthedocs.org/workbook.html Workbook 생성시 사용할 수 있는 옵션 중 다음은 중요하다. constant_memory - xlsxwriter는 파일의 내용을 다음 프로세스에 자유롭게 사용하기 위해 메모리에 저장한다. - 파일 사이즈가 커지면 사용하는 메모리양도 점점 커지기 때문에 메모리 오류가 발생할 수 있다. - 이를 위해 파일 사이즈가 크다면 해당 옵션을 True 로 설정하여 메모리를 고정한다. tmpdir- xlsxwriter..
- Total
- Today
- Yesterday
- Python
- error
- S3
- build
- java
- 파이썬
- Linux
- 하이브
- mysql
- HIVE
- 오류
- AWS
- emr
- Hadoop
- 하둡
- oozie
- HDFS
- 다이나믹
- 백준
- Tez
- ubuntu
- nodejs
- SQL
- SPARK
- yarn
- airflow
- 알고리즘
- bash
- hbase
- 정올
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |