반응형 전체 글713 Favor composition over inheritance 참조 site : http://uet.vnu.edu.vn/~chauttm/e-books/java/Effective.Java.2nd.Edition.May.2008.3000th.Release.pdf 여기에서 말하는 상속의 범위 - extends!! interface implements는 아니다. 상속은 코드 재사용에 대해서 파워풀하지만 항상 좋은것만은 아니다. : 상속을 적절히 잘 사용하지 못하면 소프트웨어는 깨지기 쉽다. 잘 사용하려면? 같은 프로그래머가 같은 패키지 안에서 사용하면 안전하다(당연한거 아닌가..-_-;;) 여러사람이 사용하더라도 상속을 고려해 설계되고 그에 맞는 문서를 갖춘 클래스에 사용하는 것은 안전! 메서드 호출과 달리, 계승은 캡슐화 원칙을 위반한다. : 하위 클래스는 상위클래스의 구.. 2015. 6. 16. String을 날짜 포맷으로 변환하기! String을 날짜 포맷으로 변환하기! regTime : 20150522141253 reqTime : 20150428234211 위와 같은 String형식을.. 2개의 format을 선언 한 뒤 DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 아래처럼 작업을 해주면 됩니다. try { outputMap.put("작업일", sdf.format(formatter.parse(regTime))); outputMap.put("신청일", sdf.format(formatter.parse(reqTime))); } catch (Parse.. 2015. 6. 15. clone을 재정의할 때는 신중하라! Cloneable : Note that this interface does not contain the clone method Even if the clone method is invoked reflectively, there is no guarantee that it will succeed. 단점 : 기본적인 문제는 clone메소드가 없으며 Object의 clone메소드가 protected로 선언되어 있다는 것이다. 리플렉션(reflection)을 사용하지 않고서는 Cloneable을 구현한 객체라도 clone 메소드를 호출할 방법이 없다. 리플렉션을 사용한 호출도 실패할 가능성이 있다. 해당 객체에 호출 가능한 clone메소드가 구현되어 있으리라는 보장이 없기 때문. 참고내용 접근 제어자 구분 mod.. 2015. 6. 11. hashCode() HashCode란?객체를 구별하기 위해, 고유한 정수값으로 출력시켜주는 메소드가 바로 hashCode()다.객체 참조 변수를 출력할 때, 출력되는 Reference Address는 바로 이 hashCode를 16진수로 출력한 값이다.ex) HashCodeTest@cb788b90(참고 사이트 : http://mwultong.blogspot.com/2008/02/16-2-10-8-hex-calc.html) 모든 클래스는 java.lang.Object의 하나의 기본이 되는 hash scheme를 상속 받는다.클래스는 implementation을할 때(equals 같은 method overriding을 뜻한다) public int hashCode()를 반드시 override해야한다.여기서 일반적인 규약이 있다... 2015. 6. 7. 2. mysql process 상태 리스트 보기 리스트 보기 SHOW PROCESSLIST; 해당 프로세스 죽이기KILL 프로세스 번호(ID) 2015. 5. 26. 1. 테이블 복사하기 몇년만에 db를 만져보는거 같다ㅋㅋㅋ;;작업을 위해 백업 테이블을 만들자! 1. 테이블 복사! gogo~! CREATE TABLE [생성할 테이블] SELECT * FROM [원본테이블] 2. 검증 SELECT * FROM [생성된 테이블] LIMIT 100 - 끝 - 2015. 5. 12. PermGen / java.lang.OutOfMemoryError Java heap 또는 heap의 특정 영역에 객체를 할당할 수 있는 공간이 충분하지 않을 때 발생.참고 글 : 2014/05/15 - [Language/Java] - [Java] JVM 메모리 구조 보통 톰캣 같은 곳에서 설정 때 보면 PermGen이라는 친구가 있다. 이녀석은 permanent generation라는 뜻이고 출처 : http://dic.daum.net/ 클래스와 메소드 객체가 저장되는 heap의 영역이다.어플리케이션이 많은 수의 클래스를 로드하면 -XX:MaxPermSize옵션을 사용하여 PermGen의 크기를 증가 시킬 필요가 있다. 유닉스같은 서버에 톰캣을 셋팅해서 사용하신다면 톰캣의 catalina.sh 파일에 추가 하면 된다. 예) JAVA_OPTS="$JAVA_OPTS -se.. 2015. 3. 25. value too great for base (error token is 08 ) 오류 내용value too great for base (error token is 08 ) 등의 블라블라~ 참고 사이트 :http://stackoverflow.com/questions/12821715/convert-string-into-integer-in-bash-script/12821845#12821845 해결책hour=8 echo $(( ${hour#0} +1 ))위처럼 #0을 붙여주면 된다. - 끝 - 2015. 2. 4. 좋은 링크 모바일 관련http://troy.labs.daum.net/ 아이디어가 필요한가요?http://idea.crevate.com/ my githubhttps://github.com/acetaeha 마튼파울러 횽님 https://martinfowler.com/eaaCatalog/ about mvc patternhttp://www.kiet.edu/KIETIJICI/Vol1issue1/6.pdf 2015. 2. 4. (info) vagrant commands 내역1. 로컬에서 하둡을 간단히 돌려서 프로그래밍을할 수 있는 환경을 만들고 싶음.2. vagrant로 단일 하둡 셋팅 함.3. 우분투 관련 오류 발생 함. 오류recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'. http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/ vagrant 명령어Usage: vagrant [options] [] -v, --version Print the version and exit. -h, --help Print this help. Common commands:.. 2015. 2. 4. [꿀팁] 하둡 inputPath로 다중 File 작업하기 [그림 - 1 : 안구정화용~~] // 참고 소스~~ // 아래처럼 path 들을 list에 넣어준다.List inputPath = new ArrayList(); inputPath.add(otherArgs[0]+"/01_acet.clicklog_mo"); inputPath.add(otherArgs[0]+"/02_acet.clicklog_mo"); // 입출력 데이터 경로 설정 //FileInputFormat.addInputPath(job, new Path(otherArgs[0]));for(String input : inputPath){ // list에 담겨져있는 path들을 하나씩 넣어준다. FileInputFormat.addInputPath(job, new Path(input)); } 나의 의문은 현재.. 2015. 2. 4. [Hadoop] 하둡 맵-리듀스 따라잡기 맵-리듀스! 이녀석을 알아가기 위해 정리를 하나씩 해보려고 한다. 가장 쉬우면서도 어려운 맵-리듀스 소스 짜보기! 1. Maven 설정 org.apache.hadoop hadoop-core 1.2.1 junit junit 4.11 2. runner : runner는 우선 map, reduce, data format등 그리고 run을 통해 시작 시킬수 있는 친구라고 생각하고 넘어가자. 아래의 소스는 가장 단순한 형태 이다. 보통 책에 나오거나 튜토리얼에 나오는 소스 형태! 중요한 것은 runner보다 map과reduce!public class MoClickDistributionChartRunner extends Configured implements Tool { public MoClickDistributi.. 2015. 2. 2. 젠킨스 빌드 오류 빌드 시에 아래와같이 PermGen space오류가 났습니다. ㄷ ㄷ ㄷ 톰캣에서 바꿔줘야하네요! 2015. 1. 16. about svn:externals svn에서 svn:externals라는 것이 있다 svn:merge등 다양하다! svn:externals는 편집하여 체크아웃이나 업데이트 받을 때 외부 모듈을 함께 받는 것이다. IDE마다 다르지만..인텔리J에서는 아래와 깉이 설정 및 확인을할 수 있다. 설정을 바꾼 뒤에는 커밋을 해주어야 반영이 된다. 이클립스만 쓰다가 인텔리J를 사용하니..엄청 어리버리까고 있다..ㅠ_ㅠ 쿨럭~ 커밋도 안치고 반영된줄..ㄷㄷ 암튼 어리버리까지말고 똑똑해지자~~~ 끝. 2015. 1. 15. Jenkins Setting 1) Jenkins 설치Jenkins는 http://jenkins-ci.org/ 에 가서 다운!가장 최신으로 다운로드 함! 톰캣 다운로드 및 jenkins war 넣어주기!톰캣 8은 자동으로 안풀렸다..war가..ㄷㄷ 그래서 7로 다운해서 셋팅!참고 : 83번 게시물 결과는 아래! - 끝 - 2015. 1. 15. 메이븐 install 시에 테스트 건너뛰기 명령어 위처럼 -Dmaven.test.skip=true를 추가해주면 된다.또는 아래처럼 maven에 추가 해주면 된다. true 2015. 1. 14. unicode 문제 해결(\u003d 등) \u003d 의 문제 발생..;; 찾아보니 Gson으로 Json을 가지고 놀다가도 발생할 수 있으며, http로 가져와서 String에 담아줄 때도 발생할 수 있다. 1. http로 가져와서 String에 담았는데 유니코드가 박혀있을 때!jsonData = StringEscapeUtils.unescapeJava(jsonData);2. Gson을 사용했는데 유니코드가 박혀있을 때!// Gson gson = new Gson(); 말고 아래처럼 disableHtmlEscaping() 사용! Gson gson = new GsonBuilder().disableHtmlEscaping().create(); String noEscapeStr = gson.toJson(queryCodeList).toString(); 다른.. 2015. 1. 12. 하둡 configuration으로 객체 넘기기! 음....하둡 MR작업 중...configuration에서 객체를 넘겨주고 싶어서 아래와 같이 인터페이스(QueryCodeList)와 구현체(QueryCodeListImpl)을 만든 뒤setClass를 해주었다..conf.setClass("queryCodeList", QueryCodeListImpl.class, QueryCodeList.class);아래처럼 setClass시에 잘 생성 된 것을 알수가 있다. 그런 뒤 getClass를 통해 해당 객체를 가져오려고 하는데...잘안된다 ㅋㅋㅋㅋㅋ 널포인트 예외..ㄷㄷㄷ new 연산자를 통해 생성한 뒤에는 getClass로 가져올 수가 있었지만 아무 의미 없다~ 내가 하고자하는 것은 객체에 이미 데이터가 들어가 있는 상태이기 때문이다.어떻게 해서 객체를 전달할.. 2015. 1. 12. Hadoop runner수행시 lib 못찾는 현상(IntelliJ 12 사용!) 아...설상가상으로...인텔리제이를 사용하고 있는데...아래처럼 maven에 설정되어있는 녀석을 못찾아오는 현상이 있었다..ㅜ.ㅜ.. 환경 : 인텔리J 12 1) 로컬에서 runner를 수행 하였다. 그런데!!mapper쪽에서 오류가 났다.오류내용 : ERROR="Error: java\.lang\.ClassNotFoundException: org\.json\.simple\.JSONValue ~ 해결은...아래와 같이 빌드 > 빌드 아티팩트즈... 를 통해서 빌드를 한다. 아래와 같이 Artifacts에 json.simple이 있다는 것을 알수가 있다. Add lib 를 통해서 add시킨다. command + ; 를 통해 Project Settings를 open한 뒤 아래와 같이 Moudles에 Artif.. 2015. 1. 4. 사용자 정의 옵션(Tool, ToolRunner) 하둡은맵리듀스 프로그램 개발을 편리하게 할수 있도록 다양한 helper class를 제공.ex) org.apache.hadoop.util package에 구현돼 있음. import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; 맵-리듀스 잡을 실행하면 잡 객체는 사용자가 설정한 Configuration객체를 이용해 org.apache.hadoop.mapred.JobConf 객체를 생성. JobConf는 하둡의 환경설정 파일과 하둡 명령어에서 입력한 파라미터를 참조해 모든 태스크에 이 정보를 제공. 분석 데이터의 종류에 따라 하둡 환경설정 정보와 다른 값을 사용해야 하는 경우가 있을 것입니다. 이런 불편함을 줄이기 위해 Gen.. 2014. 12. 8. What is MapReduce?? [wiki]맵리듀스(MapReduce)는 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 2004년 발표한 소프트웨어 프레임워크다.[1] 이 프레임워크는 페타바이트 이상의 대용량 데이터를 신뢰도가 낮은 컴퓨터로 구성된 클러스터 환경에서 병렬 처리를 지원하기 위해서 개발되었다. 이 프레임워크는 함수형 프로그래밍에서 일반적으로 사용되는 Map과Reduce라는 함수 기반으로 주로 구성된다.[2]현재 MapReduce는 Java와 C++, 그리고 기타 언어에서 적용이 가능하도록 작성되었다. 대표적으로 아파치 하둡에서 오픈 소스 소프트웨어로 적용된다.출처 : http://ko.wikipedia.org/wiki/%EB%A7%B5%EB%A6%AC%EB%93%80%EC%8A%A4 [.. 2014. 12. 2. 이전 1 ··· 14 15 16 17 18 19 20 ··· 34 다음 반응형