RESTful API(이하 rest)는 client, server 구조로 client가 서버의 자원을 HTTP를 사용하여 손쉽게 접근할 수 있게 해준다.URL : Resource HTTP Method : 자원을 어떻게 사용할 것인가(행동) Response : 응답Resource - 자원은 상위에서 하위로 표현하며 명사형과 하위를 포함하는 자원일 경우 복수형을 사용한다.- 새로운 버전을 위한 Controller로 Response 분리 또는 Reverse Proxy를 이용하여 서버를 물리적으로 분리 sub domain을 쓸 수 있다면 => GET http://api.fakehost/v1/things sub domain을 쓸 수 없다면 => GET http://fakehost/api/v1/things- Met..
WAS사용 시 Scouter에서는 자동으로 서비스를 감지하여 XLog를 확인해 볼 수 있으니 그 외의 일반적인 어플리케이션의 경우에는 별도의 설정을 해야한다.hook 적용 방법 경로https://github.com/scouter-project/scouter/blob/master/scouter.document/use-case/NON-HTTP-Service-Trace_kr.md단계 1, 2를 진행한 상태에서 모니터링을 해보면 Scouter가 호출되는 모든 메소드를 XLog에 남겨준다. _trace_auto_service_enabled=false 이 설정은 재기동과 상관없이 Scouter의 Configuration을 클릭하면 나오는 창에서 설정을 변경하면 바로 반영된다.원하는 메소드가 private, prot..
TCP_NODELAY : 데이터 송수신에 Nagle알고리즘(가능하면 데이터를 나누어 보내지 말고 한꺼번에 보내라)의 비활성화 여부를 지정한다. (TCP/IP의 헤더 크기는 약 50바이트)SO_KEEPALIVE : 운영제체에서 지정된 시간에 한번씩 keepalive 패킷을 상대방에게 전송한다.SO_SNDBUF : 송신할 커널 송신버퍼 크기SO_RCVBUF : 수신할 커널 수신버퍼 크기SO_REUSEADDR : TIME_WAIT상태의 포트를 서버 소켓이 바인딩 할 수 있게 한다.SO_LINGER : 소켓을 닫을 때 커널의 송신 버퍼에 전송되지 않은 데이터의 전송 대기시간을 지정SO_BACKLOG : 동시에 수용 가능한 소켓 연결 요청 수. TCP 핸드 셰이크 중 SYN를 전송하고 SYN-ACK 패킷을 전송하..
자바에서는 IO와 NIO라는 두 종류의 입/출력을 제공하고 있다. IO는 Blocking 입출력이며 NIO는 Non Blocking 입출력이다. 참고로 여기서 입력과 출력을 구분 짓는 것은 자신의 메모리의 외부(파일, 네트워크)에서 메모리로 가져오는 것을 입력, 자신의 메모리에서 외부로 내보내는 것을 출력이라 한다. * IOIO에서 Blocking이 되는 부분은 ServerSocket의 accept()와 Socket의 read()가 있다. Blocking이 된다는 것은 이 작업을 수행하는 Thread가 다른 일을 하지 못 하고 호출한 Method가 종료될 때까지 기다려야 한다는 것을 뜻한다. ServerSocket의 accept에서의 Blocking을 극복하기 위해서 보통 IO는 accept의 반환값인 ..
java의 상호 연관된 기술로는 아래와 같이 네 가지있다. - The Java Programming Language기술 : 객체 지향, Multi-Threading, 구조화된 에러 핸들러, Garbage Collection, Dynamic Linking, Dynamic Extension - The Java Class File Format특징 : Compact한 형태, Bytecode로의 변경, Platform 독립적, Network Byte Order의 사용Class 파일에는 실제로 참조하는 라이브러리를 포함하지 않고 Symbolic Reference만을 가지고 있다. Symbolic Reference는 참조하고자 하는 대상의 이름만으로 참조관계를 구성하는 것으로 객체의 특정 메모리 번지로 참조관계를 구..