일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- InvocationHandler
- Java
- Session
- chunked
- Reference
- Proxy
- unmodifiableList
- object
- http/1.1
- clone
- singleton
- reflection
- Keep-Alive
- Content-Length
- Transfer-Encoding
- toString
- http
- cookie
- urlclassloader
- getRequestURI
- Today
- Total
목록뭘까 뭘까 (19)
pungjoo
’Foo.class’에 상수를 정의하고 'Bar.class’에서 ‘Foo.class’에서 정의한 상수를 사용하고 있다. ‘Foo.class’에 정의된 상수를 변경 및 컴파일 했을 때 'B.class’는 재컴파일하지 않고 ‘Foo.class’에서 변경한 상수에 대한 영향을 받아야 한다. 1. 들어 가며.. 변하지 않는 값을 '상수(constant)'라고 합니다. 말 그대로 변할 수 없는 값입니다. 예를 들어 long type의 값인 100L이라는 상수를 선언하고자 한다면 통상 다음과 같이 선언 합니다. final static public long = 100L; 그리고 통상적으로 상수들은 집합체인 상수 class에 모아둡니다. 이렇게 하는 이유는 크게 두가지 사유가 있습니다. 1. 여기 저기 흩어져 있을 경..
0. 들어 가면서 꽤나 오래전부터 한글 깨짐에 대한 질문을 1년에 서너 차례 받곤 합니다. 한글이 깨져 보이는데 영향을 주는 요인으로는 'font'와 언어적인 'encoding type' 또는 'protocol'에 대한 이해 부족에서 비롯합니다. web page의 경우 x. code에 기술된 한글은 깨지지 않는 것 같으나 database에서 얻은 값은 깨지는 것 같다. x. code에 기술된 한글과 database에서 얻어 값은 잘 보이나 사용자가 입력한 값은 깨지는 것 같다. x. code에 기술된 한글은 깨지고 datatbase에 얻은 값은 깨지지 않는다 x. 등등... 1. 준비운동 우리는 한국 사람이고 한국어를 모국어 사용합니다. 해서 주변에 있는 분들과 대화를 할때 '자 이제 부터 내가 하는 말..
0. 들어가면서 통상 객체의 필드의 내용을 확인 하는 용도로 System.out.println( someClass.toString() ); 을 많이 이용합니다. 그러나 toString을 Override를 하지 않으면 'className@hashcode' 값이됩니다. 1. 준비 운동 package info.yeonwoo.edu; public class User { private Stringname; private intage; private Stringaddress; public String getName() { return name; } public void setName( String name ) { this.name = name; } public int getAge() { return age; } p..
0. 들어가면서 Collections class에는 unmodifiable류의 method가 존재합니다. 즉, 특정상황에 return되는 객체의 특정 method는 사용하지 못 하도록 강제하고 싶을 때 사용합니다. 1. 준비 운동 package info.yeonwoo.edu; import java.util.ArrayList; import java.util.List; public class WarmingUp { private static List getData() { ArrayList data = new ArrayList(); data.add("pungjoo"); data.add("siyeon"); data.add("siwoo"); return data; } public static void main(St..
0. 들어가면서 일반적으로 singleton에 대해 설명하는 글을 보면 JVM상에 유일하게 인스턴화된 객체라고 표현합니다. 그러나 이는 엄밀히 말하면 JVM상에 classloader에 따른 유일하게 인스턴화된 객체가 맞는 표현입니다. 주의 : 싱글 인스턴를 만드는 방법을 설명하는 글이 아닙니다. 1. 경험 tomcat기준으로 1개의 process(jvm)에는 기본적으로 1개의 context를 정의해 사용하나 여러개의 context를 등록해 uri path로 구분해 서비스할 수 있습니다. 이런 경우에 과연 각각 context마다 WEB-INF/classes에 놓여 있는 singleton class가 jvm하에서 유일할까요? 어쩌구 저쩌구 2. 프로젝트 만들기 ( 편의상 이클립스 사용 ) 다음과 같이 2개의..
0. 들어 가면서. 흔히들 유연성을 갖기 위해서 요즘은 interface를 작성하고 해당 interface를 implement한 본연의 class를 작성을 많이 합니다. 어쩌구 저저구 - 작성중... 1. 준비 운동 다음과 같은 Foo interface가 있을 경우 개발을 할 당시 초기화를 어떻게 할까? package info.yeonwoo.edu.proxy; public interface Foo { public void setName( String name ); public String getName(); public void setAddress( String address); public String getAddress(); } 일반적으로 다음과 같이 Foo interface를 상속해 class를 생..
0. 들어가면서 Network에서는 전송하고자 하는 콘텐츠(content, 또는 data) 길이를 헤더에 기술하던가 콘텐츠의 끝이라고 서로간에 약속한 데이터를 마지막에 기술하던가 이도 저도 아니면 open된 stream(socket 포함)을 close를 할때 전송의 끝이라고 인식하게 됩니다. 영화를 보면 무전기를 들어 자신이 할 말이 끝났을 때 항상 끝에 '오바(over)'라고 해 자신이 할 말이 끝났음을 상대방에게 알려 줍니다. 이는 통신 규칙입니다. 1. Content-Length Content-Length는 응답(response)의 header에 정의 되는 것으로 요청한 내용에 대한 실제적인 결과인 body의 길이가 몇 bytes인가를 의미합니다. 클라이언트(통상 브라우져)는 헤더(header)에 ..
0. 들어 가면서 http는 비연결 지향적인 protocol인 관계로 client와 server가 서로를 인지할 수 없는 구조입니다. 이런 비연결 상태에서 client와 server간에 "너가 너냐"라는 것을 알수 있게 다음과 같은 방법이 생겼습니다. parameter로 항상 들고 다니기 예) http:// localhost/view.jsp?id=pungjoo cookie를 설정해 항상 들고 다니기 예) set-cookie: id=pungjoo / cookie: id=pungjoo; 사용자 정보는 server에 저장하고 client에는 cookie하나만 들고 다니기 예) set-cookie: JSESSIONID=GI4DEMBYGU2DAMRQ; 설명드리려 하는 부분은 2~3번에 해당 하는 항목이며, 이는 ..
들어가면서 Clone이란 무엇일까요? 단일세포 또는 개체로부터 무성적인 증식에 의하여 생긴 유전적으로 동일한 세포군 또는 개체군을 말한다.중요합니다. 유전적.. 뜻은 명확히 모르겠지만 어떤 형태적인 느낌이 듭니다.. Java에서 clone(복제)이 의미하는 것은 무엇일까요? Copy Vs Clone(Shadow Copy) 이런 저런 정보(객체/field)를 소유하고 있는 객체를 어느 시점에 세포 분열(clone)을 통해서 2개의 객체로 만들어 서로 다른 길을 걷게 할때 clone을 일반적으로 사용하려고들 합니다. 이때 조건은 2개로 분열된 객체가 소유하고 있는 정보(객체)에 대한 변경을 가했을때 다른 한 객체에게 영향을 주지 않아야 합니다. 만약 영향을 받을 것이라면 애초에 복제 할 필요가 없겠지요. (..
들어가면서 final의 용도는 큰 줄기에서는 '한번 정의된 레퍼런스를 변경 할 수 없다.'입니다. 이 final은 아래와 같이 3가지 case로 볼 수 있습니다. class 확장(extend) 및 mehotd override를 제한 package com.pungjoo.edu; final public class SomeClass { public static void main(String[] args) { new SomeClass(){ //-> A }; } } 위와 같이 final public( 또는 public final )으로 class를 선언하면 extend를 할 수 없게 됩니다. 즉, 해당 class에 대한 변경(?)을 허용하지 않습니다. 컴파일시에 'A' 라인에서 'cannot inherit fro..