이전것/개발 49

참 좋은 글... 신입부터 2~3년차까지 꼭 알아야 할것!!!

사수가 없어서 혼자 한다는 신입분들 글이나 진로문제 글들을 읽다보니 저 신입때 만났던 사수분이 생각나네요. 그때는 진짜 힘들었지만 신입분들이 스스로 공부할 때 참고하면 좋겠다 싶어서 써봅니다. 입사 첫주에 다짜고짜 스트럿츠로 로그인되는 게시판 만들어 학원에서 배운거라 여차저차 만들었더니 둘째 주에 스프링 대충 교육시켜주고 디비테이블 긁어서 리스트로 뿌려주는 스프링소스 던져주고 스프링 으로 바꿔 바꾸고 나니 셋째 주에는 AJAX이용해서 DB에서 가져와서 동적으로 변하는 셀렉트박스 대분류,중분류,소분류 만들어. 넷째주에는 제이쿼리로 바꾸고 데이터 형식도 JSON으로 바꿔. 5주차되니까 마이플랫폼 가져와서 교육자료 던저주고는 리스트 2개뿌리고 각 리스트 데이터끼리 교환가능하해. 사실 마이플랫폼은 그때 이후로는..

이전것/개발 2017.06.02

5.2. TCP의 이론적인 이야기

TCP 소켓에 존재하는 입출력 버퍼- 입출력 버퍼는 TCP 소켓 각각에 대해 별도로 존재한다.- 입출력 버퍼는 소켓 생성시 자동으로 생성된다.- 소켓을 닫아도 출력버퍼에 남아 있는 데이터는 계속해서 전송이 이뤄진다.- 소켓을 닫으면 입력버퍼에 남아 있는 데이터는 소멸되어 버린다. 이와 같은 버퍼가 존재하기 때문에 데이터의 슬라이딩 윈도우 프로토콜의 적용가능하고, 이로 인해서 버퍼가 차고 넘치는 상황은 발생하지 않는다. 소켓 A : 야 50바이트까지는 보내도 괜찮아!소켓 B : OK! 소켓 A : 내가 20 바이트 비었으니까 70바이트까지 괜찮아.!!소켓 B : OK! -> 슬라이딩 윈도우 프로토콜의 데이터 송수신 유형 TCP의 내부동작 원리 1: 상대 소켓과의 연결- [Shake 1] 소켓 A : Hi!..

이전것/개발 2016.12.05

5.1. 에코 클라이언트의 완벽 구현

에코클라이언트의 문제점 확인하기 에코 서버의 코드while((str_len=read(clnt_sock, message, BUF_SIZE)) != 0) write(clnt_sock, message, str_len); 서버는 데이터의 경계를 구분하지 않고 수신된 데이터를 그대로 전송할 의무만 갖는다. TCP가 본디 데이터의 경계가 없는 프로토콜이므로, 두 번의 write 함수 호출을 통해서 데이터를 전송하건, 세 번의 write 함수 호출을 통해서 데이터를 전송하건, 문제 되지 않는다. 에코 클라이언트의 코드write(sock, message, strlen(message));str_len = read(sock, message, BUF_SIZE - 1); 반면, 클라이언트는 문장 단위로 데이터를 송수신(BUF..

이전것/개발 2016.12.05

해피해킹 딥스위치 설정

설명서 보고 자세히 설명드립니다.딥스위치 1번부터 6번까지 있으실텐데요,스위치가 숫자 쪽으로 가까이 붙어있는 상태면 off, 숫자에서 멀리 떨어져서 올라가 있으면 on입니다. 딥스위치 1번과 2번은 해피해킹 키보드의 모드를 설정하는 스위치입니다. 1번과 2번을 전부 off 하시면 HHK모드이며, 이 모드에서는 리눅스에서 프로그래밍해서 쓸 수 있는 ◇(메타)키가 사용 가능합니다.Fn 키와 오른쪽 메타키를 누르시면 Stop 키의 기능을 하지만, 윈도우에서는 아무 기능도 하지 않는 키입니다.게다가 메타키 자체도 윈도우에서 쓸일이 거의 없으므로 윈도우를 사용한다면 추천드리지 않는 모드입니다. 1번을 on, 2번을 off 하시면 해피해킹 Lite 모드가 되며, H, J, N, M에 매핑되어있는 숫자패드의 *, /..

이전것/개발 2016.12.05

vim 단축키 일람

출처 https://blog.outsider.ne.kr/540h, j, k, l - 좌,하,상,우 커서이동 i - 현재 커서 위치에 Insert 하기 I - 현재 줄 맨앞에 Insert 하기 a - 현재 커서 다음칸에 Insert 하기 A - 현재 줄 맨뒤에 Insert 하기 o - 윗줄에 Insert 하기 O - 아랫줄에 Insert 하기 w - 단어 첫글자로 이동하기 W - 화이트스페이스 단위로 다음 글자로 이동하기 b - 백워드 방향으로 단어의 첫글자로 이동하기 B- 백워드 방향으로 화이트스페이스 단위로 다음 글자로 이동하기 e - 단어의 마지막 글자로 이동하기 ge - 백워드 방향으로 단어의 마지막 글자로 이동하기 gg - 문서 맨 앞으로 이동 G - 문서 맨끝으로 이동 ^ - 문장 맨 앞으로 이..

이전것/개발 2016.12.02

리눅스 - 파일 폴더 권한 바꾸기

출처 http://ngee.tistory.com/298 1. 파일의 소유권 바꾸기 먼저 소유권을 확인하기 위해서는 ls -al 이라는 명령어와 옵션을 통해서 가능하죠. 먼저 파일이 위치한 곳으로 이동해서 (저 같은 경우 테스트로 /home/bbb/dev/test 로 이동해서) ls -al을 딱 치면. -rw------- 1 bbb bbb 0 Mar 23 04:30 a1.py 위와 같이 나오고 있습니다. 소유권자가 bbb 이구요. 그룹 식별자가 bbb이죠. 이것을 소유권자 ccc, 그룹 식별자 ccc로 변경하기 위해서는 아래와 같이 작성하시면 됩니다. root 권한에서 chown ccc:ccc a1.py chown 소유권자:그룹식별자 바꾸고 싶은 파일 이름 결과는요. -rw------- 1 ccc ccc ..

이전것/개발 2016.12.02

4.2. TCP기반 서버, 클라이언트의 구현

TCP서버의 기본적임 함수호출 순서 socket() -> bind() -> listen() -> accept() -> read() / write() -> close() 연결요청 대기 상태로의 진입#include int listen(int sock, int backlog); // 성공 시 생성된 소켓의 파일 디스크립터, 실패 시 -1 반환 // sock : 연결요청 대기상태에 두고자하는 소켓의 파일 디스크립터 전달, 이 함수의 인자로 전달된 디스크립터의 소켓이 서버 소켓(리스닝 소켓)이 된다.// backlog 연결요청 대기 큐(Queue)의 크기정보 전달, 5가 전달되면 큐의 크기가 5가 되어 클라이언트의 연결요청을 5개까지 대기 시킬 수 있다. 연결요청도 일종의 데이터 전송이다. 따라서 연결 요청을 받..

이전것/개발 2016.12.01