본문 바로가기

전체 글1111

[개념] 스톰 vs 스파크 - 2011년 트위터가 인수한 백타이프가 처음 시작한 프로젝트 - 트위터에서 오픈소스화 -> 아파치 프로젝트로 이동 - 클로저(Clojure)를 주언어로 사용 - 클로저에 기반을 두고 있지만 JVM에서 실행되며, 볼트는 다양한 언어로 개발이 가능 - 확장성이 크고, 내결함성이 강한, 스트림 프로세싱에 최적화된 이벤트 스트림 프로세싱 중심 - UC 버클리 산하 AMPLap에서 시작하여 아파치 프로젝트로 이동 - 범용 분산형 컴퓨팅 플랫폼 - 하둡을 기반으로 처리(불편하지만 하둡 없이도 가능함) - 스칼라, 파이썬을 이용한 인터랙티브 쉘 제공 - 확장성이 높은 실시간 분석과 BI 시스템을 위한 우수한 플랫폼 http://www.itworld.co.kr/news/91022 https://storm.apache.. 2015. 7. 21.
[개념] REPL REPL - Read-eval-print loop - Read-Evaluate-Print loop - 하나의 입력을 받아서(Read single input), 처리하고(Evaluate), 결과를 반환하는(Print result) 환경으로 구현된 프로그램을 REPL 이라고 한다. - 즉, 커맨드라인 인터페이스를 가지는 프로그램이다. - 보통 js, python 같은 스크립트 언어를 말한다. https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop 2015. 7. 20.
[서브라임 텍스트] 서브라임 텍스트 한글 입력시 IME 창 없애기 윈도우의 서브라임 텍스트에서 한글을 입력하려고 하면 상단에 IME 창이 나타나고 거기서 한글이 입력되게 된다. 입력이 안되는 건 아니지만 사용상에 불편하므로 IMESupport 를 설치해주면 된다. * 다른 에디터처럼 완벽하게 지원되는건 아님, 글자가 완성되고 나서 입력됨, 1. 서브라임 테스트 Package Control 설치 - https://packagecontrol.io/installation - Ctrl + ` or View -> Show Console 입력하여 콘솔창을 열고 - 아래의 코드를 입력 후 엔터 - 설치가 성공하면 아래의 콘솔창에 성공 여부가 나타남, 따로 알림 같은것이 뜨지는 않음 import urllib2,os,hashlib; h = 'eb2297e1a458f27d836c04bb.. 2015. 7. 20.
제부도, 대부도 당일치기 여행 주말을 맞아 다음의 일정으로 여행을 했다. 시화방조제(티라이트 전망대) -> 대부도 유리섬박물관 -> 물레방아(점심식사) -> 제부도 선착장 우선 전망대는 티라이트 휴게소에 가면 있음무료, 엘리베이터를 타고 올라가는 시간이 있기 때문에 대기시간이 좀 있음전망대에서 보는 경치는 아주 좋음, 날이 맑으면 딱 좋을 듯 다음 대부도로 진입해서 유리섬박물관비싸다. 성인 만원, 청소년 9천원, 유아 8천원유리 공예품을 제작하는 시연이 있음, 신기함하지만 비싸다... 한번은 볼만 한듯 그리고 고픈배를 부여잡고 물레방아(경기도 화성시 서신면 송교리 35-1)로 이동일단 손님이 많아서 대기시간이 좀 있음주차장은 넓어서 꽤 여유가 있는 편그리고 식사는 맛있음, 양도 많음'해물파전'은 거의 피자 수준으로 양이 많음, 시킬거.. 2015. 7. 19.
[AngularJS] AngularJS의 사용자 정의 필터 사용자 정의 필터 AngularJS의 필터를 정의하여 입력값을 필터링 하거나 다른 형태로 변환할 수 있다. 다음의 소스코드를 보고 확인해 보자. 소스코드 Input 필터 리피터 필터(checknumber 적용) {{player}} {{player.name}} {{player.number}} 리피터 필터 종합(checknumber, search 적용) {{player}} {{player.name}} {{player.number}} 리피터 필터 종합(checksearch 적용) {{player}} {{player.name}} {{player.number}} 예제 Input 필터 리피터 필터(checknumber 적용) {{player}} {{player.name}} {{player.number}} 리피터 필.. 2015. 7. 15.
[Angular JS] 한글 입력시 바인딩 오류 수정하기 Angular JS 한글 입력 바인딩 오류 수정 Angular JS를 input에 사용할 때 숫자, 영문은 모델에 바로 값이 바인딩 되는데, 한글은 입력 후 엔터키 or 스페이스키 등을 눌러야 모델에 값이 반영이 된다. 이를 수정하기 위해서 application에 새로운 지시자(directive)를 생성하고 적용해주면 된다. 소스코드 {{input_text}} {{input_text2}} {{input_text}} {{input_text2}} 참조 http://qiita.com/koh110/items/4c5d22339ef2117e226a http://erith.blog.me/220185166416 http://erith.blog.me/220185166416 2015. 7. 13.
[SH피규어] [갖고싶다] 슈퍼마리오 슈퍼마리오 피규어 정말 이쁜거 갖다 http://www.clien.net/cs2/bbs/board.php?bo_table=image&wr_id=4212604&page=12 2015. 7. 13.
[영화] 인사이드 아웃 인사이드 아웃 (2015) Inside Out 8.7 감독 피트 닥터 출연 다이안 레인, 에이미 포엘러, 카일 맥라클란, 민디 캘링, 빌 하더 정보 애니메이션 | 미국 | 102 분 | 2015-07-09 글쓴이 평점 죽전 CGV 2관에서 관람함 재미 있음 상상력이 대단함 울고 싶을땐 울어야 한다. 감정은 복합적일 수 있다. 완전 추천 ㅎ 사람의 감정을 의인화 해서, 사람의 행동이 감정에 따라 어떻게 변화되는지를 보여주는 영화 슬픔도 인간에게 필요한 감정이란걸 보여주는 영화 피트 닥터 감독 감독 피트 닥터는 , 의 오리지널 스토리 작가였고, 첫 장편 애니메이션 연출작은 였다. 의 오리지널 스토리 또한 피트 닥터가 썼으며, 두 번째 장편 애니메이션 연출작 으로 아카데미 최우수 장편 애니메이션상을 받았다. .. 2015. 7. 13.
[syntaxhighlighter] 웹사이트용 소스문법 하이라이터(syntax highlighter) 꺽쇠 오류 수정 하이라이터를 이용하면서 한가지 문제점은 꺽쇠( 2015. 7. 6.
[스크랩] 완전 초짜 개발자에게 주는 조언 1. 무언가를 만들어 보려고 봤는데 이미 있다. 그래도 만들어 본다. 이미 있는 것을 내가 다시 만들어 보는 것으로 공부가 된다. 스타트업을 하려고 하는 것이 아니니까. 2. 새로운 것을 배워볼 생각을 하지 않는 것 백견이 불여일타 다양한 언어를 접하다 보면 시각이 넓어지고 언어에 대한 제약이 사라짐 3. 내가 만든 것을 부끄러워하는 것 처음부터 잘 할 수 없음 배포 및 공개를 해서 피드백을 받고 수정을 하게 되면 더 좋아질 것 링크 http://okky.kr/article/282595 2015. 7. 6.
[패턴] 전략 패턴(Strategy Pattern) 전략 패턴, 스트래티지 패턴(Strategy Pattern) 전략 패턴에서는 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 클래스안에서 동작하는 것들을 멤버함수로 설정하지 않고, 클래스로 별도로 생성하여 처리하는 것 * 알고리즘(메소드) 부분만 변경하여 하나의 클래스가 여러가지 행동을 할 수 있도록 설정하는 것 예제코드import java.util.ArrayList; import java.util.List; public class StrategyPatternWiki { public static void main(String[] args) { Customer a = new Customer(new Norma.. 2015. 7. 6.
[클린코드] 시스템, 창발성 시스템 시스템은 역시 깨끗해야 한다. 깨끗하지 못한 아키텍처는 도메인 논리를 흐리며 기민성을 떨어뜨린다. 도메인 논리가 흐려지면 제품 품질이 떨어진다. 버그가 숨어들기 쉬워지고, 스토리를 구현하기 어려워지는 탓이다. 기민성이 떨어지면 생산성이 낮아져 TDD가 제공하는 장점이 사라진다. 모든 추상화 단계에서 의도는 명확히 표현해야 한다. 그러려면 POJO를 작성하고 관점 혹은 관점과 유사한 메커니즘을 사용해 각 구현 관심사를 분리해야 한다. 시스템을 설계하든 개별 모듈을 설계하든, 실제로 돌아가는 가장 단순한 수단을 사용해야 한다는 사실을 명심하자. 창발성 켄트 벡이 제시한 단순한 설계 규칙 네가지 - 모든 테스트를 실행하라 - 중복을 없애라 - 프로그래머의 의도를 표현하라 - 클래스와 메서드 수를 최소로.. 2015. 7. 2.
[클린코드] 경계, 단위 테스트, 클래스 경계 외부 코드 사용하기 - 외부 코드 사용시에 클래스 변경에 대하여 주의하자 경계 살피고 익히기 - 외부 API 사용시 충분한 테스트를 거친다. 단위 테스트 TDD를 이용한 개발 테스트 코드는 실제 코드만큼 중요하다. 클래스 클래스는 작아야 한다. - 단일 책임 원칙(SRP) - 높은 응집도 변경이 쉬운 클래스 SRP (Single Responsibility Principle) - 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함 - 하나의 서브시스템, 모듈, 클래스, 함수에 대해서도 한 가지 이상의 변경 이유가 있어서는 안 된다는 것 - https://arload.wordpress.com/2012/01/30/single-responsibility-princinple/ OC.. 2015. 7. 2.
[클린코드] 오류처리 오류처리 오류 코드보다 예외를 사용하라. - 논리와 오류 코드가 뒤섞이지 않게 하라. Try-Catch-Finally 문부터 작성하라. 미확인 예외를 사용하라(런타임 익셉션을 사용하라.) - checked 익셉션이 제공하는 장점보다는 단점이 더 많다. 예외에 의미를 제공하라. 호출자를 고려해 예외 클래스를 정의하라. - 외부 API를 이용할 때 래퍼(Wrapper) 클래스를 이용하여 의존성을 줄여준다. 정상 흐름을 정의하라. - 특수 사례 패턴을 이용하여 예외적인 상황을 캡슐화해서 처리하도록 한다. n 반환할 값이 없을 때 익셉션을 던지지 않고, 기본값을 가진 객체를 반환하도록 한다. null을 반환하지 마라. - null 을 반환하기 보다는 예외를 던지거나 특수 사례 객체를 반환한다. null을 전달하.. 2015. 7. 2.
[클린코드] 객체와 자료 구조 객체와 자료 구조 자료 추상화 - 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. - 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. - 아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다. God Bad public interface Point { double getX(); double getY(); void setCartesian(double x, double y) double getR(); double getTheta(); void setPolar(double r, double theta ) public class Point { public double x; public double y; } public interface Veichl.. 2015. 7. 2.
[클린코드] 형식 맞추기 형식 맞추기 형식을 맞추는 목적 - 코드는 의사소통의 일환이다. 적절한 행 길이를 유지하라. 신문 기사처럼 작성하라. - 제목(함수명)만 보고 내용을 상상할 수 있도록 개념은 빈 행으로 분리하라. 팀규칙에 따르라. 어쩌면 돌아가는 코드'가 전문 개발자의 일차적인 의무라 여길지도 모르겠다. 오늘 구현한 기능이 다음 버전에서 바뀔 확률은 아주 높다. 그런데 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. 오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다. 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 2015. 7. 2.
[클린코드] 주석 주석 주석은 나쁜 코드를 보완하지 못한다. 코드로 의도를 표현하라! 좋은 주석 - 법적인 주석 - 정보를 제공하는 주석 - 의도를 설명하는 주석 - 의미를 명료하게 밝히는 주석 - 결과를 경고하는 주석 - 중요성을 강조하는 주석 나쁜주석 - 주절거리는 주석 - 같은 이야기를 반복하는 주석 - 오해할 여지가 있는 주석 - 의무적으로 다는 주석(javadoc의 모든 변수에 다는 주석) - 이력을 기록하는 주석 - 있으나 마나 한 주석 - … 2015. 7. 1.
[클린코드] 함수 함수 작게 만들어라. 한 가지만 해라. - 함수는 한 가지를 해야 한다. 그 한가지를 잘 해야 한다. 그 한가지 만을 해야 한다. 함수당 추상화 수준은 하나로!(추상화 수준이 동일하여야 한다.) - getHtml() 은 추상화 수준이 높다. - String pagePathName = PathParser.render(pagepath); 는 추상화 수준이 중간 - str.append(“\n”) 는 추상화 수준이 낮다. 위에서 아래로 코드 읽기 - 코드는 위에서 아래로 이야기처럼 읽혀야 한다. switch 문은 추상화해서 사용 - 길어진 switch 문은 추상 팩토리 패턴으로 대체하는 방법을 연구 서술적인 이름을 사용하라. 함수 인수는 작을수록 좋다. 부수 효과를 일으키지 마라. - 한가지 작업만 하라. 명령.. 2015. 7. 1.
[개념] NPAPI 크롬의 NPAPI 지원종료 구글에서 아래와 같이 NPAPI를 지원하지 않는다고 한다. Chrome 버전 42 이상에서 NPAPI 플러그인이 작동하지 않음 플러그인을 사용하면 추가적인 기능을 브라우저에 추가할 수 있습니다. 예를 들어 특정한 유형의 동영상을 시청하거나 웹페이지에 있는 게임을 즐길 수 있습니다. NPAPI 지원 종료 예전에는 NPAPI라는 오래된 시스템을 사용하여 많은 플러그인이 개발되었습니다. 오늘날 NPAPI 플러그인을 사용하는 사이트는 점차 줄어들고 있으며 이러한 플러그인은 웹사이트에 보안 위험을 일으킬 수도 있습니다. Chrome 검색의 안전성, 속도, 안정성을 개선하기 위해 Google은 Chrome 버전 42에서 NPAPI 플러그인에 대한 지원을 종료합니다. 지원되는 플러그인 Ad.. 2015. 7. 1.
[linux] gzip, gunzip 명령어 gzip gzip 은 파일의 압축을 위한 명령이다. gzip 은 하나의 파일만 압축을 할 수 있다. 여러 개의 파일이나 디렉토리를 압축하기 위해서는 tar 로 먼저 묶어주어야 한다. tar –zcf test.tar.gz file1 file2 … 옵션 설명 v 압축 관련 정보를 출력 d 압축을 해제, gunzip 과 동일, decompress 명령어 # 파일 압축 gzip target gzip -v target # 압축 해제 gzip -d target.gz gzip -dv target.gz gunzip target.gz 2015. 7. 1.
[클린코드] 의미 있는 이름 클린코드(로버트 C.마틴) 요약 의미 있는 이름 의도를 분명하게 밝혀라 Bad Good int d; int elapsedTimeInDays; int daysSinceCreation; 그릇된 정보를 피하라 의미 있게 구분하라 - sourceFile, destinationFile 등 발음하기 쉬운 이름을 사용하라. 검색하기 쉬운 이름을 사용하라. - i, j, k 등과 같이 search 힘든 이름은 피하라. 자신의 기억력을 자랑하지 마라. 클래스 이름은 명사, 명사구로 메소드 이름은 동사, 동사구로 기발한 이름은 피하라. 한 개념에 한 단어를 사용하라. - fetch, retrieve, get 등 제각각 부르면 혼란스러움 2015. 6. 30.
[linux] tar 명령어 tar tar 명령어는 여러 개의 파일을 하나의 파일로 묶기 위한 명령어 이다. 자주 사용하는 옵션은 다음과 같다. 옵션 설명 c tar 파일 압축 생성 x tar 파일 압축 해제 t tar 로 압축된 파일의 리스트 확인 v 처리과정을 출력(t 옵션과 사용하면 파일의 상세정보 확인) f 압축 파일명, 압축 해제 파일명을 지정 z gzip 압축을 tar 압축과 동시에 처리 명령어 # tar -cvf [생성할 tar 파일명] [압축대상 파일1] [압축대상 파일2] tar -cvf file.tar 1.txt 2.txt # tar -tvf [목록을 확인할 tar 파일명] tar -tvf file.tar # tar -xvf [해제할 tar 파일명] tar -xvf file.tar # tar 과 동시에 gzip 압.. 2015. 6. 30.
[스크랩] 영화 연평해전 - 김대중 대통령에 대한 오해와 진실 알아야 반박을 할 수 있다. 연평 해전의 진실 (디시 주갤) -링크 연평 해전의 진실 (루리웹)-링크 그만 거짓된 선동에서 벗어나길 바랍니다 1. 김대중은 연평해전을 무시하고 축구에나 참석했다 - 김대중은 사건 발생 직후 긴급 nsc 소집, 당연히 참석 예정이던 대한민국 VS 터키 4강전 불참 - 다음에 참석한 월드컵 폐막식도, 일본총리와의 정상회담을 위한 것. 오히려 이를 통해 사건과 아무런 상관이 없는 일본과의 공조를 이끌어냄 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 일본을 방문중인 김대중(金大中) 대통령은 1일 오후 도쿄 총리공관에서 고이즈미 준이치로(小泉純一郞) 일본총리와 정상회담을 갖고 `포스트 월드컵' 대책과 북한의 서해 무력도발 사태에 대한 대처방안.. 2015. 6. 30.
[영화] 인셉션 인셉션 (2010)Inception 8.7감독크리스토퍼 놀란출연레오나르도 디카프리오, 와타나베 켄, 조셉 고든-레빗, 마리옹 꼬띠아르, 엘렌 페이지정보SF, 액션 | 미국, 영국 | 147 분 | 2010-07-21 꿈을 이용하여 사람의 감정을 움직인다는 독특한 설징이 아주 좋음.. 완전 재미있어씀놀란 감독의 영화는 기본 이상은 해주는 것 같음 나무위키 --> https://namu.wiki/w/인셉션 영화를 보고 나서 위키를 한번 읽어보면 내용이 새롭게 다가 온다. 그리고 엔딩...이걸 보면 엔딩을 보고 궁굼했던 것이 해결됨엔딩을 보지 않았다면 실행하지 말것 ㅎㅎ 2015. 6. 28.
[spark] 아파치 스파크 아파치 스파크 실시간 분산형 컴퓨팅 프로젝트이다. 스트림 지향형 프로세스를 지원한다. 기존 하둡 클러스터에서 실행시킬 수 있다. 스칼라로 작성이 되어 있지만, 스칼라, 자바, 파이선 API를 지원한다. In-Memory 방식으로 처리를 하기 때문에 하둡에 비해 처리속도가 빠르다. 하둡에 비해 100배정도 빠르다고 한다. 예제 코드 # /spark/bin/pyspark 를 실행후 콘솔에서 입력 # README.md 파일은 hdfs 상에 업로드 되어 있어야 함 # hdfs://user/name/README.md 에 위치 # README.md 파일을 입력하여 라인 카운트 확인 lines = sc.textFile("README.md") print lines.count() # README.md 파일의 문장을 공백.. 2015. 6. 24.
[linux] crontab 사용방법 crontab 크론탭은 리눅스에서 주기적으로 반복되는 작업 처리를 위해 제공하는 서비스이다. 크론탭으로 실행되는 프로그램은 환경변수(JAVA_HOME, PATH 등의 정보)를 설정해주어야 한다. 스케줄러 설정 # 크론탭에 걸려 있는 스케줄 정보 확인 crontab -l # 크론탭에 신규 스케줄 추가 # 스케줄 추가후 저장하고 종료하면(vi 편집기 종료) 자동으로 스케줄에 추가된다. crontab -e # 크론탭에 스케줄 걸기 예제 분 시 일 월 요일(0:일요일, 1: 월요일) 명령어 # 5분 마다 program.sh 실행 */5 * * * * /home/user/program.sh # 4-10 시 사이에 1시간마다 program.sh 실행 0 4-10/1 * * * /home/user/program.sh.. 2015. 6. 24.
[Python] http 리퀘스트 처리하기 HTTP 리퀘스트 처리하기 파이선에서 http 리퀘스트를 처리하는 방법에는 urllib, urllib2 모듈을 이용하는 방법이 있다. urllib 모듈은 http, ftp, file 등의 처리도 동시에 가능하다. urllib2 모듈은 리퀘스트 시점에 헤더 정보를 입력하는 것이 가능하다. requests 모듈은 파이선의 기본 모듈이 아니라 추가적으로 설치하여 사용하는 모듈이다. 예제 #!/usr/bin/python # -*- coding: utf-8 -*- import urllib import urllib2 import requests # urllib - Open arbitrary resources by URL # urllib2 - extensible library for opening URLs -> 파이.. 2015. 6. 23.
[python] time, datetime, timedelta time, datetime, timedelta datetime – basic date and time types time : time access and conversions 파이선에서 날짜 관련 객체는 datetime, time 가 있다. 둘다 날짜를 처리하는 객체이지만 사용 가능한 메소드들을 확인해 보면 time은 지역화 설정 등의 메소드들을 제공하고, datetime 객체는 날짜, 시간을 조작하는 기능을 제공한다. 그리고 날짜간의 연산을 위해 timedelta 객체를 제공한다. 현재부터 하루전, 한시간후 등의 시간을 구하거나, 시작시간과 종료시간 사이에 걸린 시간 등을 구하는데 사용한다. 예제코드 #!/usr/bin/python # -*- coding: utf-8 -*- import time fro.. 2015. 6. 19.
[스크랩] GMT, UTC, KST GMT, UTC, KST AWS를 이용하여 서버 개발을 진행하다 보면 지역별로 시간이 달라서 GMT를 기준으로 이야기를 많이 한다. 그러다 보니 KST는 한국시간인 것을 알겠는데, GMT, UTC 가 헷갈리는 경우가 있었다. 그래서 확인해 보니 GMT = UTC 이다. KST는 GMT +9 시간 이다. 협정 세계시(Coordinated Universal Time, UTC) 1972년 1월 1일부터 시행된 국제 표준시이다. UTC는 그리니치 평균시(Greenich Mean Time, GMT)로 불리기도 하는데, UTC와 GMT는 초의 소수점 단위에서만 치이가 나기 때문에 일상에서 혼용되어 사용한다. 즉 GMT = UTC 이다. 참고 https://ko.wikipedia.org/wiki/%ED%98%91%E.. 2015. 6. 18.
[python] 문자열 치환 방법 파이선의 문자열 치환법 파이선의 문자열 치환은 format() 메소드를 이용하거나, % 를 이용하여 딕셔너리나 튜플을 이용하여 치환하는 방법이 있다. #!/usr/bin/python # -*- coding: utf-8 -*- # format 이용(3.x 버전에서는 사용 안됨) sentence1 = 'I am a {}' print sentence1.format("boy") # format 및 번호 이용 sentence2 = 'I am a {0}' print sentence2.format("boy") # format 에 리스트와 dict 를 이용한 방법 sentence3 = "I am a {0} and {x}" print sentence3.format("boy", x="girl") # % 와 dict 를 이.. 2015. 6. 12.