본문 바로가기

분류 전체보기

(200)
[링크] eclipse에 RMI 플러그인 설치하고 테스트환경 만들기. RMI(Remote Method Invocation)는 로컬에 있는 JVM이 아닌 외부의 JVM에서 관리하고 있는 heap 메모리의 객체에 접근하고 메소드를 호출할 수 있는 기능입니다. 아래 링크는 이클립스에 RMI 환경을 갖추는 것에 대해 잘 설명되어있습니다. (실제 플러그인 설치까지는 아래 링크에서 링크걸어놓은 사이트로 접속해야하지만 ^^;) http://blog.bagesoft.com/646
java : Generic - 와일드카드 public void takeAnimals(ArrayList animals) { for(Animal animal : animals){ animal.eat(); } } 메소드에서 인자값으로 Generic (유형매개변수) 을 사용시에는 다형성이 허용되지 않습니다. 즉, 위에서 보는 것과 같은 메소드는 인자로 반드시 ArrayList 타입만 허용됩니다. 만약 Animal 을 상속받는 Human, Lion, Tiger 같은 클래스들만 모아두고 generic 을 각개로 선언했다면 저 메소드를 호출하면서 사용할 수 있는 파라미터가 되지 못합니다. (ArrayList, ArrayList, ArrayList 등을 파라미터로 쓰질 못한다는 것입니다. 세 클래스 모두 Animal을 extends 하고 있다 하더라도 말이죠..
java : 강력한 형 안정성 기술. generic 우선 generic 이란 개념을 사용할 때 저같은 초보자들을 대상으로 설명하자면. 자료구조의 컬렉션을 사용할 때 쓰이는 type 강제성 기술입니다. ArrayList al = new ArrayList(); 위와 같이 말이죠. 위처럼 선언한 ArrayList 자료구조는 String type의 객체만 배열의 멤버들로 사용할 수 있습니다. (멤버라는 표현이 옳은지는 모르겠네요. 요소, element가 더 정확한 표현이겠지만 편의상 멤버라고 할게요 ㅎㅎ;) 변수 al은 generic을 통해 String으로만 이루어진 자료구조라고 선언되어졌습니다. 이렇게 된다면 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable,..
java : 프로그래머들의 너저분한 코딩을 막아주기 위한 센스. package JDK 1.4부터 권고사항에서 강제사항으로 바뀐 것들 중 하나가 default package의 class 들을 더이상 다른 package에서 import할 수 없는 것입니다. 웹서핑하다 보게된 건데요, 이유는 클래스들의 같은 이름의 충돌을 방지하기 위한거라네요. 패키지와 클래스, 메소드들. 이름만으로 각 기능들과 역할에 대해 이해하기 쉽도록 코딩하라고 마련된 배려일까요 ㅎㅎ
[링크] eclipse에서 F3 키 혹은 ctrl+마우스 좌클릭하여 jre 클래스파일이 아닌 java소스로 접근하기. java 프로그래밍을 하다보면 원천 소스자체가 궁금할 적도, 알아야할 필요가 있을적도 있습니다. 이클립스 설치시 별다른 설정을 안잡아주셨다면 아마 해당 클래스(자바) 파일을 쫓아가는 키들을 사용하였을 때 attach source라는 버튼과 함께 인터페이스같은 것만 보여주는 화면을 보게되실 것입니다. 이것은 이클립스 설치시 자동으로 jar파일 위치를 잡으면서 jre의 class 파일들만 물고 있기 때문입니다. 따라서 java 소스를 보기 위해서는 별도의 설정작업이 필요합니다. JDK를 설치하셨다면 JDK 설치폴더 내에 src.zip 파일이 보일 것입니다. 이 zip파일이 java 소스들이 압축되어있는 파일입니다. attach source란 이 zip파일 내에 압축되어있는 java 파일들을 attach하라는..
java : 상속을 통해 리턴타입을 보다 유연하면서도 강제할 수 있어요! (다형성) 제목이 좀 이상하네요. 한국 토박 스물여덟해를 지냈음에도 한국말이 서툰것 같습니다 -_-; 상속을 이용하면 좋은 점은 여러가지가 있습니다. 그 중 한가지를 소개해드리겠습니다. (저와 같은 초보를 대상으로 하니~ 고수분들께서는 피식 웃어주시며 격려해주세요 ㅎㅎ) 메소드의 4대 요소 중 하나인 리턴값 타입은 무척 중요합니다. 이 리턴이 무엇이 되느냐만으로도 어느 정도 그 메소드를 직접 열어보지 않고도 메소드네이밍과 리턴타입으로 메소드의 기능을 추측할 수 있지요. (물론 내공이 쌓여야겠지요... 전 아직 헤롱헤롱~) 이 리턴 타입에 대해서 다형성을 이용한다는 것은 보다 클라이언트 코드에게 명확한 코드를 작성할 수 있게 신뢰를(?) 심어줄 수 있습니다. 그럼 소스를 볼까요~ 이하는 abstract 클래스로 ke..
java : JRE와 JDK의 구분을 정확히 해주는 그림 아래 그림에 보면 JRE에는 여러 플랫폼을 지원하기 위한 컴파일러(JVM)이 자리하고 있음을 알 수 있습니다. 결국 JRE가 있어야만 java 프로그램들이 실행되어진다는 것을 알 수 있죠. 위로는 라이브러리들과 플러그인 툴킷같은게 있는데, 모두 작성하기엔 지금 시간이 좀 그래서 후에 수정하겠습니다~ 그리고 JDK가 JRE를 포함하고 있는 모습인데요, 여기에서 보면 javac가 눈에 띄네요. 결국 java파일을 컴파일하는데에 필요한 것은 JRE에는 없고 JDK에 있네요. 처음 자바를 배울 때 JDK를 설치하라는 것은. 이 이유입니다. ㅎㅎ;; 집에 컴퓨터에 java가 설치되어있어도 javac 명령어를 아무리 타이핑해도 이상한 문구 그만 날리라는 메시지밖에 못받았던 이유는 요기에 있네요~ (물론;;; 환경설..
jsp : <%! %> tag instance 레벨의 java code를 뜻합니다. 메소드선언시에 사용하라고 여러 책들이 뜻하고 있으나 실제 jsp의 태그 내에 작성된 소스들은 변환된 java파일의 상단에 기술됩니다. 메소드 선언 뿐만이 아니라 인스턴스레벨에서 다루어져야하는 변수들 역시도 이곳에 기술하면 되겠습니다. (로컬변수와 인스턴스변수의 차이점에 대해 먼저 이해를 해야하겠어요~) ※ jsp 파일은 java파일로 변환시에 Servlet 파일처럼 변환됩니다. 따라서 jsp파일은 Service 메소드내에 차곡차곡 들어가게되죠. 위에서 말하는 태그는 그것과는 달리 인스턴스 레벨로 Service 메소드에 들어가지 않습니다.