일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- urlclassloader
- chunked
- getRequestURI
- http
- Session
- Transfer-Encoding
- clone
- toString
- Reference
- Proxy
- InvocationHandler
- http/1.1
- reflection
- unmodifiableList
- Java
- object
- singleton
- Keep-Alive
- Content-Length
- cookie
- Today
- Total
목록뭘까 뭘까 (19)
pungjoo
들어 가면서 일반적으로 스프링을 쓰는 환경에서 VIEW PAGE인 JSP PAGE에서 request.getRequestURI()를 사용하면 원하는 URI를 얻지 못 합니다. 즉, 유입 URI를 돌려 주는 것이 아니라 controller에서 정의한 PAGE를 얻게 되어 결국에는 사용자가 입력한 실제 URI를 얻을 수 없게 됩니다. 그래서 일반적으로 controller에서 getRqeustURI()한 결과를 request.setAttribute(key, value)를 통해서 Value를 설정하고 VIEW PAGE인 JSP PAGE에서 getAttribute( key )를 사용합니다.. 정말 얻을 수 없을까? 자자... servlet spec을 정의하는 양반들이 바보였을까? Case 명세서 springfram..
인지 Failed to invoke last-modified method 발생하며 StackOverFlow 발생. 일반적인 해결 방안 @Override public long getLastModified(HttpServletRequest request) { return -1; } 왜 그럴까? get 위와 같이 get이라는 method로 설정하게되면 내부적으로 'Recurrsive'가 발생하게 되어 종국에는 'Failed to invoke last-modified method'라는 메시지 발생. 분석 우선 org/springframework/web/servlet/mvc/multiaction/MultiActionController.java의 registerLastModifiedMethodIfExists pri..
들어 가면서 HTTP는 아시다 시피 connection less 방식으로 연결을 매번 끊고 새로 생성하는 구조입니다. 이는 network 비용측면에서 많은 비용을 소비하는 구조입니다.( 최초 연결하기 위한 준비과정을 의미함 ) 그래서 HTTP 1.1부터는 Keep-Alive라는 기능을 지원합니다. Keep Alive란? Keep Alive란 연결된 socket에 IN/OUT의 access가 마지막으로 종료된 시점부터 정의된 시간까지 access가 없더라도 대기하는 구조입니다. 즉 정의된 시간내에 access가 이루어진다면 계속 연결된 상태를 유지할 수 있다는 것 이죠. HTTP 下에서 Keep Alive란? HTTP는 앞서 설명드린 것과 같이 connection less방식이라 매번 socket(port..
들어가면서 일반적으로 고가용성(HA : High Availability)을 확보하기 위해서 이중화(복수 서비스를 의미함) 구성을 합니다. 이 이중화라는 것을 다시 분리를 하면 load balance / Cluster 두가지를 고려하게 됩니다. Load Balance는 부하 분산을 의미하며 cluster는 session 유지를 의미하며 일반적으로 Cluster는 Load Balance의 하부 구조에 속하는 것으로 인식되기도 합니다. 이런 일련의 HA를 위해서는 유입되는 창구를 단일화 해야 합니다. ( 단일화된 창구 장애로 인한 문제를 해결하기 위해서는 일반적으로 Stand-by machine을 운용합니다 ) 고찰에 들어 가면서.. 위와 같이 한쪽 Node의 장애를 대비해 즉, HA 확보 차원에서 Node를..
들어가면서 java는 call by value일까요? call by reference일 까요? 책이나 여타 문서를 보면 대부분 call by value라고 쓰여 있고 개중에는 반쪽짜리 call by reference라고 쓰여 있습니다. 어떤 책/문서에는 call by reference라고 쓰여 있기도 하고... 퀴즈 package com.pungjoo.edu; public class ReferenceVSvalue { private String message = null; private int data = 0; public ReferenceVSvalue(String message, int init) { this.message = message; this.data = init; } public static ..
들어가면서 자바에서 call by reference일까요 call by value일까요? 예제 소스 1 public class CBRTest { 2 3 static void change(StringBuffer r) { 4 r.delete(0, 1); 5 r.append("10"); 6 } 7 8 static void change2(StringBuffer r) { 9 r = new StringBuffer("15"); 10 } 11 public static void main(String [] args) { 12 StringBuffer s = new StringBuffer("5"); 13 System.out.println(s); 14 change(s); 15 System.out.println(s); 16 ch..
앞으로 설명할 부분에서는 swap사용, cpu 응답 속도, disk I/O 등등 여러가지 Memory로 인해 파생되는 문제들은 논외로합니다. 우선 이해하기 쉽게 Memory의 내용에만 충실합시다. [자료 1] Linux에서 memory 관련된 정보를 얻는 command 및 방법은 많겠지만 free라는 command로 나온 값을 약간 가공하면 [자료 1]과 같은 모습입니다. 위 Data는 10분에 1번씩 찍은 값입니다. [자료 1]과 같은 data를 놓고 볼때 흔히들 단편적으로 free라는 항목만 보고 total대비 수치가 낮기 때문에 memory가 부족한 것으로 오해를 합니다. 즉, [자료 2] 처럼.. [자료 2] [자료 2]에서 푸른색 부분이 used이며 붉은색 부분이 free부분입니다. [자료 2]..
'크기가 맞으면 이전 메모리를 배정해 줄수도 있을겁니다'라는 의미에서 fragment 의미에 대해서 언급하고자 합니다. 일반적으로 o/s는 page 단위로 memory를 관리(할당/해제) 합니다. o/s가 기동되고 내부 memory 관리는 기본적으로 언급했듯이 page 단위로 할당하며 요청되는 size에 맞는 page는 memory 주소가 일련하게 연속되어야 할당을 받을 수 있습니다. 예를 들어 사용하고 있는 o/s의 page단위가 8k이고 실 memory가 800k라고 할때 (생각하기 쉽게. 잡다한 부분은 제외하고. 아주 적죠) application에서 10byte의 memory를 요구하면 1 page를 할당해 줍니다. 당연히 size는 8k이겠죠. 이런 개념으로 9k가 되는 size를 요구해도 2 p..
들어 가면서 우리들에게 입력과 출력을 담당하는 디바이스가 점점 많아지고 있습니다. 이런 입/출력 디바이스 중에 표준 출력에 대해서 알아 봅시다. 더불어 표준 오류도... 경험 쉘(shell) script를 보면 끝자락에 '> /dev/null 2>&1' 같은 이상 야릇한 기호가 들어 있는 경우가 있습니다. 풀이 '>'의 의미는 좌측에서 행해진 결과를 '>'를 기준으로 우측으로 보낸다는 의미입니다. '> /dev/null' 은 결국 좌측에서 행해진 결과를 우측인 '널 디바이스'에게 보낸다는 것이죠. 즉 허공에 날린다.... 그런데 이때 중요한 표준 오류에 대해서 간과하는 경향이 있습니다. 즉, 표준 출력만 알고 표준 오류는 모른다는 것이죠. 이클립스 같은 IDE를 사용하다 보면 오류 부분이 '붉은색(정의 ..