본문 바로가기

IT

TCP의 이해 어제 세미나에서 배운 TCP의 개념에 대해 적어둔다. PHP에서 소켓통신을 할때 fWrite, fRead를 사용하곤 하는데.이 보내고 받는 행위들이 어플리케이션단에서 직접 일어난다고 착각하기 쉬운데, 그렇지 않다. 내가 어플리케이션에서 fWrite를 실행하면 OS는 TCP Stack에 그 내용을 복사하고, 실제로 통신은 TCP스택에서 이루어진다고 한다. 음.. 그림을 그리면서 설명해야겠는데 콤퓨타로 그림그리는게 좀 어렵다대충 이런그림을 그리고싶은데... 말로 설명하도록 한다. 요점은 이거다.fWrite를 통해 한번에 두개의 패킷을 보내면이게 전송하고 이어서 곧바로 전송되는게 아니라, 서버가 ACK를 보낼때까지 대기한 후 그게 도착하면 두번째 패킷을 보내게 된다.만약 서버가 ACK를 안보내면 Timeout.. 더보기
면접을 준비하며 면접에 쓸 질문들을 모아보았다. 1. Override / Overload의 차이점.Override는 재정의 / Overload는 인자의 수가 다를경우 처리Overriding은 상속 관계에서 같은기능을 사용하지만 함수 내용이 다른경우 자식클래스에서 함수를 재 정의 하는것.Overloading 은 리턴타입, 인자개수, 인자타입이 다를경우 함수를 재정의하는것. + Overriding이 가능하려면 함수이름, 리턴타입, 매개변수가 모두 동일해야한다. 2. Struct와 Class의 차이점.언어적으로 Struct는 Public / Class는 Private관습적으로 Struct는 자료형만 는 의미로 사용된다.Class는 내부 자료보다는 메소드가 중시되는 객체의 의미로 사용된다. 3. OSI 7 Layer 어플리케이.. 더보기
UTIL_DEBUG.NWZ 현재 사용하고있는 프레임웍에서는 DEBUG()함수를 제공해서아무데서나 쓰면 JS단이던 PHP단이던 브라우저 콘솔을 통해 디버깅할수 있다. 하지만 그 둘 사이에 뭔가 문제가 있다고 느껴질 경우 다른 Debug 수단이 필요하다. debug($r['j'] ); $fp = fopen('/mplog/t_log', 'a'); fputs($fp, (String)$r['j']); fclose($fp); tail -f /mplog/t_log 이래보면 된다 더보기
HeadFirstXHTML / CSS기초 노트 HeadFirst HTML with CSS & XHTML10장 박스모델, 11장 Div와 Span 엘리먼트, 12장 레이아웃과 포지셔닝 우선 xHTML은 eXtensible HTML의 약자이고, HTML의 진화된 차세대 산물이라고 한다.확장 가능한 HTML. 아.. XML은 걍 메타랭기지HTML은 마크업 랭기지두개를 합쳐서 일반적인 HTML 태그 외에 여러가지것들을 붙여쓰고이를 xHTML이라고 부르는 것 같다.----------------------------------------------------------------------------- * Border, Margin, Padding, Content Area보더는 경계, 마진은 경계 바깥쪽, 패딩은 경계 안쪽부터 콘텐츠에어리어 밖까지* width.. 더보기
MSSQL SP내용 쿼리로 보기 sp_helptext @objname='USP_BL_NW_CASH'; 요래요래하면된다. 더보기
JS Object / Array add Item When I try to add item into array or object (javascript)I can use these functions. 1. Array.push()(ex)var myArray = [];myArray.push( 1 ); 2.(jQuery) $.extend( a, b)var myObject = {};var internalObject1 = {};var internalObject2 = {};internalObject["a"] = 'a';internalObject.b = 'B'; $.extend( myObject, internalObject1 );$.extend( myObject, internalObject2 ); Let rock 더보기
MSSQL 바이너리 -> 가져와서 파싱하기 보통 게임서버는 값을 편리하게 저장하기위해 바이너리값들을 쓰는 경향이 있다. 그런데 웹에서는 바이너리값은 궂이 처리 하지 않는 편인데 지금까지는 핸들링하지 않다가, 누군가의 요구로 인해 바이너리값을 씹고 뜯고 맛보고 즐기게 되었다. 가져오는 쿼리는 아래와 같다. DECLARE @stat nvarchar(max); DECLARE @legend int; SELECT @stat = CONVERT(nvarchar(max), stat_data_list, 2), @legend = legend_opt_cid FROM * WHERE db_id =:dbid; SELECT stat = @stat, legend = @legend; 이렇게 가져온건 nvarchar가 된다. $binary = base_convert( $this.. 더보기
RequireJS ADM4는 기본 아키텍쳐가 클로져 스타일이다. 그와 필연적으로 엮어있는게 RequireJS인데 지금까지 별생각없이 쓰다가 생각해볼 일이 생겨서 정리해본다. RequireJS에서 모듈을 Define하는 방법은 세가지가 있다. 출처 : http://requirejs.org/docs/api.html#define 세가지인줄 알고 다시 저페이지에 들어가봤는데 방법이 무지하게 많다. 일단 내가 사용하는 RequireJS Define 방식은 아래와 같다. define(['beans/Bless/BlessDesc','beans/Bless/BlessGameData'], function(Desc, GameData){ 위 JS들을 로드하고, 그것들을 Function에 인자에 담아서 사용한다. 근데 GameData JS에는 모.. 더보기

반응형