Computer Science


프로세스의 이해와 활용 다중 접속 서버의 구현 방법들 다중접속 서버 : 둘 이상의 클라이언트에게 동시 접속을 허용하여 동시에 둘 이상의 클라이언트에 서비스를 제공하는 서버를 의미한다. 멀티프로세스 기반 서버 : 다수의 프로세스를 생성하는 방식 멀티플렉싱 기반 서버 : 입출력 대상을 묶어서 관리하는 방식 멀티쓰레딩 기반 서버 : 클라이언트의 수만큼 쓰레드를 생성하는 방식 프로세스와 프로세스 IP 프로세스 : 실행 중인 프로그램 멀티 프로세스 OS는 둘 이상의 프로세스를 동시에 생성 가능하다. 운영체제는 생성되는 모든 process에 id(PID)를 할당하며, 이를 ps 명령어를 통해 확인할 수 있다. fork 함수의 호출을 통한 프로세스의 생성 한 프로그램에서 여러개의 프로세스를 생성할 때에는 fork 명..


소켓의 옵션과 입출력 버퍼의 크기 옵션 정보 아래 표는 소켓의 특성을 변경시킬 때 사용하는 옵션 정보들이다. Protocol Level Option Name Get Set SOL_SOCKET SO_SNDBUF SO_RCVBUF SO_REUSEADDR SO_KEEPALIVE SO_BROADCAST SO_DONTROUTE SO_OOBINLINE SO_ERROR SO_TYPE O O O O O O O O O O O O O O O O X X IPPROTO_IP IP_TOS IP_TTL IP_MULTICAST_TTL IP_MULTICAST_LOOP IP_MULTICAST_IF O O O O O O O O O O IPPROTO_TCP TCP_KEEPALIVE TCP_NODELAY TCP_MAXSEG O O O O ..


1. 도메인 이름과 DNS 서버 도메인 이름(Domain Name) IP 를 대신하는 서버의 주소 실제 접속에 사용되는 주소는 아니다. 이 정보 IP로 변환이 되어야 접속이 가능하다. 우리가 기억하는 대부분의 주소는 Domain Name이다. (www.naver.com, www.google.com 등) DNS(Domain Name System) 서버 도메인 이름을 IP 로 변환해주는 서버 DNS 일종의 분산 데이터베이스 시스템이다. 2. IP 주소와 도메인 이름 사이의 변환 도메인 이름을 이용해서 IP 주소 얻어오기 #include struct hostent * gethostbyname(const char * hostname); IP는 도메인 이름에 비해 상대적으로 변동이 심하기 때문에 IP를 코드로 입..


TCP 기반의 Half-close 일방적인 연결 종료의 문제점 close 및 closesocket 함수의 기능 소켓의 완전소멸을 의미한다. => 상대방의 상태에 상관 없이 일방적인 종료의 형태를 띤다. 그래서 상대 호소트의 데이터 송수신 아직 완료되지 않은 상황이라면, 문제가 발생할 수 있다. 이러한 문제의 대안으로 Half-close 기법이 존재한다. 소켓의 half-close 종료를 원한다는 것은, 더 이상 전송할 데이터가 존재하지 않는 상황이다. 그러니 입력 스트림은 종료해도 되지만, 상대방이 할 말이 남아있을 수 있다. 그러니 출력스트림은 남겨두는 것이 좋다. 입력 스트림만 종료할 때 사용하는 것이 half-close 라고 한다. Half close를 구하기 위한 shut-down 함수 #incl..


# 이 글은 윤성우의 열혈 TCP/IP 프로그래밍 책을 기반으로 추가적인 내용을 붙여 작성된 것이다. 원 저자의 책이 매우 좋은 편이니 읽고 관심이 가는 사람들은 책을 구매해보길 바란다. 지난 2차례에 걸쳐 TCP 기반 서버/클라이언트를 살펴보았다. TCP는 Transmission control protocol의 약자로, 데이터의 전송을 보장하는 프로토콜이다. 아래 글에서 조금 더 자세하게 알아볼 수 있다. 2023.05.23 - [Computer Science/Network Programming] - [Network] 4. TCP기반 서버/클라이언트 1 [Network] 4. TCP기반 서버/클라이언트 1 이 글은 윤성우의 열혈 TCP/IP 책을 참고하여 정리하였습니다. 정확한 내용은 도서를 구매해서 ..


이 글은 '윤성우의 열혈 TCP/IP 책'을 기반으로 다양한 정보를 추가해 정리한 내용이다. 저자분이 워낙 유명하시고 설명을 잘하시는 분이니 읽어보고 관심이 있으면 책을 구매해서 학습하길 바란다. +) 이번 시간 내용은 지난 글과 이어지는 것이니 자세하게 알고 싶다면 지난글을 읽어보길 바란다. 2023.05.23 - [Computer Science/Network Programming] - [Network] 4. TCP와 UDP에 대한 이해 [Network] 4. TCP와 UDP에 대한 이해 이 글은 윤성우의 열혈 TCP/IP 책을 참고하여 정리하였습니다. 정확한 내용은 도서를 구매해서 참고하시기 바랍니다. TCP/IP 프로토콜 스택 인터넷 기반의 데이터 송수신을 목적으로 설계된 스택 7 mobuk.tis..


Floyd-Warchall 알고리즘 그래프에서 모든 노드 간의 최단경로를 찾는 r다이나믹 프로그래밍 기법이다. 보통 플로이드 와샬 알고리즘을 다루기 전에 다익스트라 부터 공부하는데, 알고리즘 수업이 반대로 학습해서 나도 플로이드와샬부터 정리하겠다. 1. 문제 상황 가중치가 있는 그래프에서 모든 노드 간 최단경로를 찾는다. 1에서부터 5로 간다고 생각해보자. 그럼 1 -> 2 -> 4 -> 5 로 갈 수도 있고, 1-> 3-> 2-> 4-> 5로 갈 수도 있다. 비용만 살펴보면 첫번째 경우는 1+2+4=7의 비용이 발생하고 두번째 경우는 12의 비용이 발생한다. 즉, 1에서 5로 가는 최단경로는 1 - 2- 4- 5라는 것을 알 수 있다. 알고리즘 초심자에게 이걸 설명해주면 반정도의 사람들은 의문을 가진다..


이 글은 윤성우의 열혈 TCP/IP 책을 참고하여 정리하였습니다. 정확한 내용은 도서를 구매해서 참고하시기 바랍니다. TCP/IP 프로토콜 스택 인터넷 기반의 데이터 송수신을 목적으로 설계된 스택 7 계층으로 세분화가 되며, 4계층으로 표현된다. Link 계층 물리적인 영역의 표준화 결과 → LAN, WAN, MAN과 같은 물리적 표준 관련 프로토콜이 정의된 영역이다. IP 계층 IP는 Internet Protocol 을 의미함. 경로의 설정과 관련이 있는 프로토콜 TCP/UDP 계층 실제 데이터의 송수신과 관련 있는 계층으로 수송 (Transport) 계층이라고도 함. TCP는 데이터의 전송을 보장하는 프로토콜, UDP는 보장하지 않는 프로토콜이다. TCP → 데이터의 전송을 보장 ( 신뢰성이 있음 )..


2023.05.22 - [Computer Science/Data structure & Algorithm] - [Algorithm] Needleman-Wunsch algorithm [Algorithm] Needleman-Wunsch algorithm 오늘은 Alignment algorithm 중 global alignment에 해당하는 Needleman-Wunsch algoritm(니들만 브니쉬) 에 대해 알아보겠다. alignment 알고리즘은 LCS (longest commen sequence) 알고리즘과 유사하다. LCS에 대해 궁금하면 mobuk.tistory.com Needleman-Wunsch algorithm에 이어서 설명을 진행하기 때문에 꼭 이전 글을 읽고 오길 바란다. Smith-Wate..


https://www.acmicpc.net/problem/2612 2612번: DNA 유사도 첫째 줄에는 두 DNA 서열의 부분 서열 쌍 중 유사도가 가장 큰 것의 유사도를 출력한다. 둘째 줄과 셋째 줄에는 유사도가 가장 큰 부분 서열의 쌍을 출력하는데, 둘째 줄에는 첫 번째 DNA 서열에서 www.acmicpc.net 문제 모든 생물의 DNA 서열은 A, C, G, T 네 개의 문자로 표현된다. 두 DNA 서열이 얼마나 비슷한가를 알아내기 위하여 유사도를 측정한다. 두DNA 서열의 유사도를 측정하기 위해서 먼저 각 서열의 임의의 위치에 공백을 넣어 길이를 같게 만든다. 이렇게 길이가 같아진 두 서열 간의 점수는 다음과 같이 계산된다. 1. 같은 위치에 공백이 아닌 같은 문자가 있으면 3을 더한다. 2...