전체 글 270

IO(input/output) model

IO 모델 전통적인 IO 모델(Blocking I/O)blocking io를 사용하는 방법으로, Multi-Threaded Request-Response 형태이다. concurrent 요청을 처리하기 위해서, 쓰레드를 관리해 사용한다. IO가 시작되었을때, 어플리케이션이 blocked, IO가 끝날 때까지 대기 프로세스 단계클라이언트가 서버로 요청서버는 내부적으로 한정된 스레드 풀을 유지 관리하여 클라이언트 요청에 서비스를 제공서버는 무한루프에 있으며, 클라이언트 요청을 기다림서버가 다수의 요청을 받음서버가 하나의 요청을 선택(SELECT)쓰레드풀로 부터 하나의 쓰레드를 선택요청을 쓰레드에 할당쓰레드에서 bloking io를 처리(ACCEPT, RECV) 및 응답준비쓰레드는 응답을 서버로 보냄서버는 다시..

dev 2017.04.03

Modern Data Binding

데이터 바인딩 그러니까, 보이지 않는 Data를 보이는 View에 할당 시키는 과정 이런 개념은 사용자 인터페이스가 존재하는 모든 곳에서 사용되어지고 있다. 하고싶은 포스팅은 이것들의 기초적인 방법과 개념에 대한 것이다. 단순 참조가장 심플한 방법으로써, View가 계속해서 Data를 참조하고 있는 구조이다.이는 View가 Render가 될 때, 해당 데이터를 직접 표시한다. View - Data Pros데이터 변경되면, 즉시 반영된다.(Auto Refresh)Cons데이터는 무조건 메모리에 있어야 한다. 풀링(데이터 요청)View에서 Data가 필요할 때, Request을 통해서, 데이터를 가져오는 방법 View - Request/Response - Data 요청/응답에 대한 오버헤드는 없다고 가정 P..

dev 2017.03.14

[JAVA] AOP 용어 정리

AOP(Aspect Oriented Programming) 말 그대로 관점 지향 프로그래밍이다. 예로 스프링에서 @Transactional 어노테이션이 AOP로 구현된다.코드가 많은 트랜잭션 처리를 쉽게 할 수 있다는 장점이 AOP를 잘 설명 해주는 것 같다. 기본적인 용어crosscutting concerns(횡단 관심): OOP로 모듈화 시키기 어려운, 특정 처리구문(?) 예로 로깅, 보안, 트랜잭션, 예외처리, 등등advice(어드바이스): 실행할 부가적인 기능(실제 코드)target(타겟): 어드바이스를 적용할 대상 객체joinpoint(조인포인트): 어드바이스를 삽입할 특정 지점pointcut(포인트컷): 조인포인트를 선별하기 위한 정의weaving(위빙): 포인트컷으로 선별된 조인포인트에 어드..

dev/java 2017.03.05

stateless and stateful

무상태 프로토콜(stateless)은 대표적으로 HTTP가 있다.상태 프로토콜(stateful)은 TCP Sock 커스텀 프로토콜 등이다. StatelessPros서버의 수평확장 용이로드밸런싱 용이적은 메모리 사용량연결 지속성이 없음Cons요청 헤더가 큼느리다(DB관련 오버헤드)단방향 통신 StatefulPros요청 헤더가 작음빠르다(메모리에 데이터로 대부분 처리가능)양방향 통신Cons서버의 수평확장이 어려움로드밸런싱이 어려움많은 메모리 사용량(상대적)연결에 지속성이 필요하며, 재접속에 대한 오버헤드가 큼 대략 이런 장단점을 가지고 있다고 볼 수 있다. 구글링을 하면 더 자세한 정보가 있을 것이다. 전통적으로 게임서버는 stateful로, 구현되었으나, 모바일 게임에서는 연결을 유지하는게 어렵기 때문에 ..

dev/etc 2017.03.02

Ajax 크로스 도메인 세션유지

세션(HTTP Session)웹 프로토콜 HTTP는 무상태(stateless)이다.전통적으로 로그인 인증처리를 위해, 웹서버는 프로토콜과 무관하게 세션이라는 것을 제공한다.이는 웹 어플리케이션에게 필요한 state를 서버에 전달하기 위한 목적으로 session이나 cookie를 이용하는 대체수단정도로 볼 수 있다.세션이 생기면서 웹서버는 상태 프로토콜(stateful)처럼 동작하고 있다. XMLHttpRequest 과 CORSAJAX 통신시 크로스 도메인 이슈가 있으며,이에 대한 해결책으로 CORS라는 게 있다.사전요청(preflight)으로 서버에 질의한뒤, 실제 요청을 보내는 형태로 되어있다.참고: https://developer.mozilla.org/ko/docs/Web/HTTP/Access_con..

dev/web 2017.03.02