스택은 자료구조에서 LIFO(Last In First Out) 구조를 가지는 자료구조이다. 구현하는 방식에 따라 종류가 많이 있다. 자바의 util 에 기본적으로 스택을 제공해주기 때문에 따로 구현하지 않고 이 클래스를 사용하면 된다. import java.util.Stack; public class StackExample { public static void main(String[] args) { Stack stack = new Stack(); // 데이터 입력 stack.push(5); stack.push(4); stack.push(3); stack.push(2); stack.push(1); // 데이터 출력 System.out.println("마지막에 넣은 데이터부터 출력.."); System.ou..
버블정렬(거품정렬) 시간복잡도가 n의 제곱으로 늘어나기 때문에 시간이 굉장히 오래 걸린다. 정렬에 걸리는 시간은 오래 걸리지만 알고리즘이 단순하기 때문에 자주 사용된다. 알고리즘은 다음과 같다. 배열의 n번과 n+1번을 비교하여 n번이 더 크면 둘을 바꾼다. 즉 더 큰값을 뒤로 돌린다. 이를 반복하여 가장 큰값을 맨뒤로 보내고 이를 처음부터 마지막의 앞까지 반복하여 정렬을 진행한다. https://namu.wiki/w/%EC%A0%95%EB%A0%AC%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98#s-2.1.1 https://ko.wikipedia.org/wiki/%EA%B1%B0%ED%92%88_%EC%A0%95%EB%A0%AC
네 Python은 느립니다. 하지만 저는 신경쓰지 않습니다. 파이썬이 느린가에 대한 좋은 내용이 있어서 읽어보고 스크랩합니다. ^^ 요약하자면... 파이썬은 인터프리터 언어이기 때문에 C, C++ 보다 느릴수 밖에 없다. 하지만 파이썬의 강점은 생산성에 있다. Java, C++ 대비 2배 이상의 생산성을 가질 수 있다. 파이썬의 동작이 느려서 문제가 생긴다면, 병목현상이 발생하는 부분을 확인하여 코드를 최적화하고,그래도 안된다면 다른 아키텍처를 찾는다. 가장 비싼 자원을 최적화 하세요. 그것은 컴퓨터가 아닌 당신입니다.
제가 중국에 살다보니, 부모님이 "너 있는 동안 중국 여행가겠다"고 자꾸 그럽니다. 볼 것도 갈 데도 없는데... 제 주관적인 관점이긴 하지만 부모님의 중국 관광을 말리는 이유 세 가지만 들어볼께요... 1. 입장료 바가지가 장난 아닙니다. 관광지 바가지야 전세계 공통이죠. 근데 중국은 정부까지 나서서 심각합니다. 무슨 수향 이런데(운하 있는 전통 마을을 말합니다)는 입장료가 기본 200위안- 약 4만원- 이고, 유명한 산들도 기본 200입니다. 제가 내본 최고의 입장료는 샹그릴라 보타춰 국립공원이었는데 진짜 아~~무 볼것도 없는 풀밭과 숲이었는데 1인당 538위안 내고 들어갔습니다. 인당 10만원이 넘죠? 부들부들... 이렇게 입장료 바가지가 엄청난 이유는 여러가지 있겠지만 대체로 현지인(소수민족)에게..
트리구조
마세라티 문제는 내가 마세라티를 살때 쯤 발생할 것 같은 문제를 고민한다는 것이다. 현재 일어나지 않은 언젠가 발생할 문제를 미리 걱정해서 동시접속자 만명이 가능한 서버를 구축하거나, 예외처리를 진행하는데 집중하여 시간을 보내는 문제이다. 내가 만든 서비스가 잘된다면 충분히 발생할 수 있는 문제이지만, 현재는 발생할 가능성이 낮다는 문제가 있겠다. 어떻게 보면 미리 걱정하는 것도 나쁘지 않을 것 같은데...처음 설계부터 이런것을 염두해 두고 진행하면 좋겠지만 잘 안되니까 문제겠다. https://www.quora.com/Whats-a-Maserati-Problem
Cleaner Master / Clean Master by Cheetah Mobile : Does NOTHING, manifests ads.QuickPic by Cheetah Mobile : Uploads data.ES App Locker and ES File Explorer Pro : Ads on lock screen.Xender : Ads on lock screen.Touchpal : Ads on lock screen.Amber Weather : Ads on lock screen.GO Weather Forecast & Widgets / (infact most Apps related to GO) : Ads everywhere.Z Camera : Ads on lock screen.Kitty Pla..
파이썬은 인터프리터를 구현한 종류에 따라 아래와 같이 구분될 수 있다. 보통 CPython을 Python 이라고 부른다. IronPython.Net 으로 구현CPythonJPythonPyPy [장점]읽고 사용하기가 쉽다. IOT 에 강점을 가진다. 비동기식 코딩자바보다 뛰어난 멀티패러다음 [단점]속도Java, C에 비하여 느리다. 속도 향상을 위한 방법으로 C Binding 방법이 존재한다. 자바의 JNI 처럼 원시 코드를 직접 호출하여 속도를 높인다. 모바일 컴퓨팅과 브라우저의 부재설계의 제약 JIT가 없는 동적 인터프리터 언어와, 컴파일언어의 성능을 비교하면 컴파일러가 압도적으로 유리하다. 파이썬의 강점은 속도에 있지 않다. 파이썬의 최대 강점은 생산성에 있다. http://www.itworld.co..
[컴파일러]고급언어로 쓰여진 프로그램이 컴퓨터에서 실행되기 위해서는 컴퓨터가 직접 이해할 수 있는 언어로 바꾸어 주어야 한다. 이런 역활을 하는 프로그램이 컴파일러 이다. 고급언어는 인간이 이해할 수 있는 표현으로 사용할 수 있는 언어이고, 저급언어는 컴퓨터가 이해할 수 있는 표현으로 사용하는 언어이다. 컴파일러는 소스코드를 컴파일하여 목적코드(Object Code)를 생성하고,목적코드는 링커가 라이브러리와 연결하여 실행가능한 코드를 생성하여 실행한다. * 자바 컴파일러와 JIT 컴파일러는 다른 것이다. 자바 컴파일러는 .java 파일을 해석해서 .class파일(자바 바이트 코드)로 변환한다. JIT 컴파일러는 .class파일을 해석해서 기계어로 번역하여 JVM이 실행할 수 있는 형태로 번역한다. [AR..
네이버 공채에 지원하여 면접을 보고 왔다. 질문들이 대체적으로 자세하게 물어본다. 모르는 문제에 대한 질문이 들어와서 한번 당황하니까 계속 말려 들어서 멘붕이 왔다. ㅠㅠ 여기 면접은 난이도가 높은 것 같다. 담당하는 프로젝트는 물론이고 기초 지식에 대해서 많은 준비가 필요할 것 같다. 전반적으로 나의 실력이 아직 많이 부족함을 많이 느꼈다. -- 면접 질문 -- - 파이썬의 Gil- 파이썬은 성능이 느린 이유는?- 전략 패턴- 담당하는 프로젝트의 아키텍처에 대한 설명- 스프링빈과 포조빈의 차이- 담당하는 프로젝트의 성능에 대한 고민- 데브 옵스- 더불어 손코딩 질문도 나온다.
아마존 AWS 에서 사용하는 파일 시스템에는 S3 블록파일 시스템과 S3 네이티브 파일 시스템이 존재한다. 하둡을 지원하기 위해 처음 등장한 블록파일 시스템은 "s3://" 스키마를 사용한다. HDFS와 유사하게 동작하며, 파일을 블록형태로 저장한다. 이 블록파일 시스템은 다른 파일 관리도구로 읽을 수 없고, 블록 형태로 저장되어 일반적인 파일 시스템과 달라서네이티브 파일 시스템이 등장하였다. 네이티브 파일 시스템은 's3n://' 스키마를 사용한다. 이 네이티브 파일 시스템은 다른 파일 관리 도구로도 읽을 수 있다. 처음 등장하였을 때는 5GB의 파일당 제한이 있었지만, 나중에 5TB로 수정되었다. * 블록과 네이티브 파일 시스템의 차이는 우선 URI 스키마의 차이, 저장 방식의 차이, 접근 도구의 차..
extendNodeEncodings() doesn't work with Node v4+. You'll need to update your code to use encode anddecode functions directly. nodejs 버전에 따라 iconv-lite 를 이용하여 한글을 인코딩 할때 extendNodeEncodings() 를 사용하는 방법이 위와 같은 오류 메시지와 함께 동작하지 않을 때가 있다. 이는 노드의 버전에 따라 기존에 사용하는 방법이 동작하지 않기 때문이다. 이럴 때는 아래와 같이 하면 된다. https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility
안드로이드에서 레이아웃을 구성할 때 사용하는 fill_parent, match_parent, wrap_content 의 차이는 아래와 같다. fill_parent = match_parent 이다. api8에서 부터 match_parent가 fill_parent로 이름이 변경되었다. fill_parent는 현재 객체의 크기를 부모 객체의 크기와 동일하게 설정한다. 즉 부모의 width, height가 상속된다. wrap_content는 자식 컴포넌트의 사이즈에 우선하여 길이가 설정된다 http://griper.tistory.com/entry/fillparent-%EC%99%80-wrapcontent-%EC%9D%98-%EC%B0%A8%EC%9D%B4http://stackoverflow.com/questio..
웹상의 이미지를 다운로드 하기 위해서는 request 모듈을 이용한다. 예제는 아래와 같다. var fs = require('fs'); // 네이버에 있는 신문의 이미지를 다운로드 // 헤더를 지정하지 않고 바로 사용해도 됨 var requestOptions = { method: "GET" ,uri: "http://imgnews.naver.net/image/003/2016/04/11/NISI20160411_0011572229_web_99_20160411103315.jpg" ,headers: { "User-Agent": "Mozilla/5.0" } ,encoding: null }; // 파일명을 지정한다. request(requestOptions).pipe(fs.createWriteStream('sampl..
nodejs 에서 zip 파일을 만들때 사용한 모듈은 node-zip 이다. * 어느게 좋은지 몰라서 구글검색에서 첫번째에 나오고, 다운로드 수를 보니 괜찮은 것 같아서 사용함 zip 파일을 생성하는 예제는 다음과 같다. file 메소드를 이용하여 압축할 파일을 지정하고,generate 메소드로 zip 파일의 byte string 을 생성하여,fs의 writeFileSync 로 파일을 생성한다. 자세한 옵션은 아래의 링크를 참조하면된다. var fs = require("fs"); var zip = new require('node-zip')(); // 파일을 생성하여 zip 파일 생성 // 1.txt의 내용이 a, 2.txt의 내용이 b 로 파일 생성 zip.file('1.txt', 'a'); zip.fi..
nodejs 의 cheerio 모듈을 이용하여 네이버의 IT 뉴스 홈페이지를 파싱하는 소스이다. 한글파싱을 위하여 iconv-list 모듈을 이용하였다. var request = require("request"); var cheerio = require('cheerio'); var iconv = require('iconv-lite'); var requestOptions = { method: "GET" ,uri: "http://news.naver.com/main/list.nhn?mode=LS2D&mid=shm&sid1=105&sid2=731" ,headers: { "User-Agent": "Mozilla/5.0" } ,encoding: null }; request(requestOptions, functio..
마이크로소프트가 Build2016컨퍼런스를 통해 윈도우10 1607업데이트로 Bash Shell을 제공할 예정이라고 밝혔습니다. Bash Shell은 리눅스와 OS X에 사용중인 것으로 지금까지 MS는 자체 PowerShell을 사용하고 있었습니다. 또한 가상화가 아닌 네이티브로 우분투의 모든 환경을 사용할수 있다고 하였습니다. 오 이제 윈도우에서 리눅스용 명령어를 바로 사용할 수 있게 된다.hadoop, spark 테스트시에 더 편해지겠다. http://techcrunch.com/2016/03/30/be-very-afraid-hell-has-frozen-over-bash-is-coming-to-windows-10/http://www.clien.net/cs2/bbs/board.php?bo_table=ne..
난공불락이던 애플 아이폰 잠금장치가 해제됐다. 애플이 자랑하던 보안에 구멍이 뚫린 셈이다. 28일(현지시각) 월스트리트저널 등 주요 외신에 따르면 미국 FBI가 애플 도움 없이 총기 테러범이 쓰던 아이폰5C 잠금을 해제하는 데 성공했다. 미국 법무부가 제3자 도움을 받아 아이폰5C 암호를 해제할 수 있다고 발표한 지 7일 만이다. 미 법무부는 이날 애플과의 소송도 취하했다. 애플 도움으로 아이폰 보안장치에 접근할 필요가 없기 때문이다. - FBI에서는 외부 전문가의 도움을 받았다고 함 - 이스라엘의 보안업체 셀레브라이트에서 도움을 준 것으로 추측- 낸드 미러링은 아니라고 함 - 부르트포스로 뚫은 것 같은데 자세한 방법은 알 수 없음 기사 - http://news.naver.com/main/read.nhn..
클라이언트 보안 윈도우 보안 - 설치 및 관리 -- 라이센스 모드[1] --- Per Server: 서버에 동접하는 클라이언트 숫자에 따라 라이센스를 구매하는 방식 사용자는 동시에 서버로 연결할 최대 클라이언트 수만큼 그 서버에 대한라이센스를 구입해야 합니다. --- Per Seat: 클라이언트 숫자에 따라 라이센스를 구매하는 방식(어느 서버에나 접속 가능) 컴퓨터나 워크 스테이션이 각기 적절한 클라이언트 접속 라이센스로 계약된 것이라면 클라이언트가 이 라이센스를 가지면 서버의 수에는 상관없이 접속할 수 있습니다. - 공유자료 관리 -- 공유폴더 --- NTFS는 사용자계정이나 그룹에 대해서, 파일과 폴더에 권한을 줄 수 있음 -- 숨은 공유 --- 공유폴더의 이름 마지막에 $를 붙인 폴더 네트워크 공유..
nodejs에서 한글이 깨지는 현상은 iconv 나 iconv-lite 모듈을 이용하여 처리 가능하다. iconv-lite는 iconv를 보고 자바스크립트로만 만들어진 모듈이다. 아래는 request 모듈을 이용하여 네이버 뉴스 페이지를 파싱하던중 한글깨짐이 발생하여 확인한 것이다. 둘중 편한 방법을 사용하면 될 것 같다. var request = require("request"); var cheerio = require('cheerio'); var iconv = require('iconv-lite'); //var Iconv1 = require('iconv').Iconv; var requestOptions = { method: "GET" ,uri: "http://news.naver.com/main/lis..
express 모듈 설치 우선 express 를 사용하기 위해서는 npm을 이용하여 express 모듈을 설치해야 한다. npm install express # 전역으로 설치 npm install express --save # 로컬에 설치 express-generator 툴을 이용하여 express 프로젝트 생성express-generator 를 이용하여 프로젝트의 기본 뼈대를 간단하게 생성할 수 있다. 우선 express-generator 를 설치한다. npm install express-generator 설치후 아래의 명령으로 프로젝트를 생성한다. express [프로젝트명(폴더명)] 사용가능한 옵션은 다음과 같다. 상세한 옵션은 아래의 링크를 참조하면 된다. -e, --ejs : 템플릿 엔진을 ej..
완전 멋짐
python 에서 http 를 처리하는 방벙에는 기본적으로 제공하는 urllib, urllib2 모듈을 이용하는 방법도 있지만 request 모듈을 이용하면 좀더 편리하게 처리할 수 있다. pip install requests pip를 이용하여 설치후 사용한다. #! -*- coding:utf-8 -*- import requests r = requests.get('http://comic.naver.com/webtoon/detail.nhn?titleId=22027&no=1&weekday=wed') print(r.text) print(r.headers) print(r.encoding) print(r.cookies) print('-------------------') # header 를 이용 headers =..
디렉토리에 지정된 특정 파일의 파일명을 일괄로 변경해야 하는 경우 다음의 소스를 활용하면 된다. 아래는 현재 디렉토리의 zip 파일을 가져와서 파일명의 공백과 꺽쇠를 없애는 소스코드이다. def rename_file(): for filename in os.listdir("."): if filename.endswith("zip"): os.rename(filename, filename.replace(" ", "_").replace("", ""))
- Total
- Today
- Yesterday
- AWS
- 정올
- 하이브
- ubuntu
- yarn
- 하둡
- airflow
- hbase
- java
- Python
- Tez
- 알고리즘
- 백준
- build
- Linux
- HIVE
- bash
- 파이썬
- SPARK
- 오류
- emr
- mysql
- 다이나믹
- nodejs
- S3
- oozie
- SQL
- error
- HDFS
- Hadoop
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |