본문 바로가기

Programing/JVM(Java, Kotlin)

(96)
이클립스의 자바빈 getter/setter 생성 버그 Foo라는 클래스의 String타입의 name이름의 프로퍼티가 있다고 할 때,JavaBean 규약에 의하면 getter와 setter의 이름은 각각,String getName()과 void setName()이 된다. 이클립스에서 POJO형태의 클래스를 만들때 보통 메소드 자동생성기능을 이용한다. Source > Generate Getters and Setters... 문제는 두번째 글자가 대문자일 경우에 이클립스는 첫 번째 문자를 대문자로 바꾸지 않고 소문자로 놔둔다는 것이다.nName이라는 프로퍼티는 아래처럼 바뀐다. 별로 상관없을지 모르나 리플렉션(reflection)을 통해 메소드를 가져오는 경우 아래와 같은 메세지가 나오면서 예외가 발생한다.java.beans.IntrospectionExcepti..
스프링(Spring)-pom.xml Maven 정리 (pom.xml)org.json Group Id: org.json Artifact Id: json Version: 20090211ref) http://mvnrepository.com/artifact/org.json/json/20090211org.json.simple Group Id: com.googlecode.json-simple Artifact Id: json-simple Version: 1.1 c3p0 Group Id: c3p0 Artifact Id: c3p0 Version: 0.9.1.2commons-dbcp Group Id: commons-dbcp Artifact Id: commons-dbcp Version: 1.4 mybatis-spring Group Id: org.mybatis..
[Spring] 의존성관리(dependency management) 스프링의 템플릿으로 기본 프로젝트를 생성했는데, 빨간색으로 글씨가 난리도 아니다. 그리고 Run As > Run on Server 를 수행했더니 에러가 뜬다. 찾아보니 스프링이 돌아가기 위한 jar 라이브러리들이 없어서 그런 것이란다.이클립스에는 pom.xml에 의해 자동으로 의존성을 처리해주는 기능이 있는데 기본으로 꺼져있다고 한다.최신의 플러그인이라면프로젝트 Properies > Spring > Dependency Management 에서 "Automatically update dependencies from Maven pom.xml"에 체크를 해주면 된다고 한다. 좀 오래된 버전을 사용한다면 위치는 조금 달라진다고 한다.프로젝트 Properies > Java EE Module Dependencies..
숫자로 된 문자열 0으로 패딩하기... 개인정보보호를 위해 비밀번호를 DB에 직접 넣기 보다는 해싱을 해서 넣는 것을 사용하고 있었다.MD5로 해싱을 했는데, 이상하게 DB상에 들어가 있는 길이는 제 각각이었다.MD5 해싱은 42자리로 고정된 길이인데 말이다.알고보았더니 해싱하는 것은 자바의 java.security.MessageDigest를 이용해서 하고 있었는데,digest()라는 메소드가 byte[]로 반환을 해주었기에 문자열로 바꾸어야 했던 것..public byte[] java.security.MessageDigest.digest() StringBuffer에 append로 byte를 문자로 바꾸었는데 Integer.toHexString은 0으로 패딩을 해주지 않았다.buf.append(Integer.toHexString((int)di..
스트림(Stream) 스트림은 자바에서 입출력에 관계된 추상화된 개념이다.또한 입출력이란 컴퓨터 장치와 다른 어떤것(사람, 다른 컴퓨터 등)과의 인터페이스를 담당하고 엄청 자주 사용된다. 하지만 자바를 배우는 사람은 의외로 스트림에 대한 개념이 약하다는 것을 느낀다. (예. 김xx, 장xx)System.out.println이 PrintStream의 일종이라는 것을 아는 사람이 몇명이나 될까 느낀다. 입출력 클래스는 다루는 데이터의 종류에 따라 계층(level)을 가지고 있다.추상화가 덜된 바이너리 데이터부터 구체화가 된 데이터 타입까지 말이다. (특히 데이터는 문자열이 되면서 다룰 수 있고 없는 데이터가 생기게 된다.) 모든 데이터를 다룰 수 있다 : InputStream / OutputStream이 InputStream과 ..
자바 가상 머신(JVM) JVM에 대한 글들. Inside the Java Virtual Machine - Bill Venners1장 - 자바 아키텍처 소개2장 - 플랫폼 독립3장 - 보안4장 - 네트워크 가동5장 - 자바 가상 머신6장 - 자바 클래스 파일7장 - 생명주기의 타입8장 - 링킹 모델9장 - 가비지 컬렉션10장 - 스택과 지역변수 연산들11장 - 타입 변환12장 - 정수 연산13장 - 로직14장 - 부동 소수 연산15장 - 객체와 배열들16장 - 제어 흐름17장 - 예외18장 - 메소드 인보케이션과 리턴20장 - 스레드 동기화
[Spring] Spring 3.0 시작 - Hello World 동작원리 지난 시간에 소스코드를 만들어보았다. MVC 패턴에 대해서는 따로 언급을 하지 않을 예정이니 처음 듣는다면 인터넷에서 검색해서 공부하자. (위키백과 - 한글 / 영문) 브라우저 관점철처하게 스프링프레임워크를 떠나서 브라우저 관점에서 보자. 지난 시간에 봤던 아래 페이지는 웹브라우저의 주소로 부터 시작한다. HTTP GET ( 호스트 - localhost / 포트 - 8080 / 경로 - /HelloWorld/ )- 클라이언트(브라우저) 요청GET /HelloWorld/ HTTP/1.1Accept: text/html, application/xhtml+xml, */*Accept-Language: koUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0..
[Spring] Spring 3.0 시작 - Hello World 만들기 전에 회사에서 스프링프레임워크를 도입한다고 해서 템플릿을 만든 적이 있다.그 당시 2.5버전이었는데, 지금은 3.0.0이 최신 버전으로 보인다. 메이저 버전이 바뀌었고 새로운 버전을 사용코자 사용해보았다. 다운로드 페이지http://www.springsource.org/downloads/sts-ggts 스프링스위트 3.0.0을 받았다. 인스톨러로 패키지 되어 있는 것도 있지만 zip으로 받는 것을 선호안에 sts-3.0.0.RELEASE 폴더안에 STS.exe를 실행시켰다. 왠지 폴더 구조가 이클립스랑 비슷했다.아니라 다를까 비슷한 Welcome 화면이 떴다. X를 눌러 Welcome 탭을 닫고, [File]-[New]메뉴를 먼저 본다.앞에 Spring이 들어간 것이 다섯 개 보인다. Spring Tem..