전체 글

· Rust
오늘은 간단하게 Rust를 이용하여 다중클라이언트 에코 서비스를 구현해보도록 하겠습니다. server.rs use std::thread; use std::net::{TcpListener, TcpStream, Shutdown}; use std::io::{Read, Write}; use std::str::from_utf8; fn handle_client(mut stream: TcpStream) { let mut data = [0 as u8; 1000]; while match stream.read(&mut data) { Ok(_size) => { let text = from_utf8(&data).unwrap(); print!("[{}] : {}", stream.peer_addr().unwrap(), text)..
· C++
오늘은 C/C++로 echo service를 구현해보았다. 코드 설명은 소스코드에 주석이 다 적혀있있기 때문에 따로 설명은 안하겠습니다. SERVER.h #define _WINSOCK_DEPRECATED_NO_WARNINGS #pragma comment(lib, "ws2_32") #include #include #include #include using namespace std; class server { public: WSADATA wsaData; // WSADATA : Windows 소켓 구현에 대한 정보 포함 구조체 SOCKET server_socket, client_socket; SOCKADDR_IN server_address, client_address; /* SOCKADDR_IN : IPv4의..
· Linux
오늘은 리눅스의 기본 설치 및 유형에 대해 알아보는 시간을 갖고 실습으로 CentOS 리눅스를 설치해보록 하겠습니다. 리눅스 설치의 개요 리눅스 설치 파일은 해당 배포본의 홈페이지에서 다운로드 받을 수 있다. 리눅스는 단 하나의 제품 또는 한 종류의 제품만 있는 것이 아니다. 리눅스 배포판마다 설치 환경과 설치 과정이 다르다. 사용자 설정 시스템을 제외한 설치 유형을 선택하면 하드디스크를 자동으로 재구성하여 기존 데이터는 제거된다. [Minimal] · 리눅스 설치 시 필수 패키지 [데스크탑] · 개인용 컴퓨터에 적합한 패키지 · 하드디스크의 모든 리눅스 파티션 삭제 후 데스크탑 운영에 적합한 환경으로 설치 · 문서 작성, 멀티미디어, 그래픽 도구 관련 프로그램 설치 · Minimal Desktop은 예..
· Linux
오늘은 리눅스 라이선스에 대해 알아보는 시간을 갖도록 하겠습니다. GNU GNU : GNU's Not UNIX 리처드 스톨만이 1983년에 GNU 개발을 처음 시작하였다. 자유 소프트웨어 재단 FSF : 자유 소프트웨어 재단 (Free Software Foundation) 1985년 리처드 스톨만이 설립한 재단이다. 자유 소프트웨어는 사용자가 소프트웨어를 실행, 복제, 배포, 학습, 개작, 향상시킬 수 있는 소프트웨어이다. 오픈 소스 소프트웨어 오픈 소스 소프트웨어 (Open Source Software) 1998년 일부 커뮤니티에서 '자유 소프트웨어' 대신 '오픈 소스 소프트웨어'라는 용어를 사용하기 시작했다. GNU GPL GPL : (General Public License) GPL은 자유 소프트웨..
· Linux
오늘은 리눅스의 역사에 대해 간단하게 알아보는 시간을 갖도록 하겠습니다. 리눅스의 역사 [1960년대 후반] 1969년 프로젝트에 참여했던 벨 연구소 연구원 켄 톰슨이 초기 형태의 UNIX를 개발하였다. [1970년대] 1971년 벨 연구소의 데니스 리치가 C언어를 개발함으로써, 어셈블리 언어로 되어 있던 UNIX가 C언어로 재작성된다. [1980년대 초중반] 1985년 리처드 스톨먼은 FSF 라는 비영리 단체를 설립 후 'GNU 선언문'을 발표한다. 1987년 앤드루 스튜어트 타넨바움은 MINIX를 개발한다. [1990년대 초중반] 핀란드의 헬싱키 대학의 리누스 토발즈가 MINIX의 커널 소스를 고쳐 GNU 시스템에 적합한 커널을 개발하였다. 참고서 : 2023 이기적 리눅스마스터 2급 기본서 내용 :..
· Linux
요즘 리눅스 마스터 2급 자격증을 따기위해 리눅스에 대해 공부하면서 간단하게 정리해보도록 하겠습니다. 리눅스란 [특징] 오픈 소스 운영 체제이다 멀티유저, 멀티태스킹 운영체제이다. 다중 스레드를 지원하는 네트워크 운영체제이다. 여러 종류의 파일 시스템을 지원하는 운영체제이다. [장단점] 리눅스는 유닉스와 완벽하게 호환 가능하다. 리눅스는 PC용 운영체제보다 안정적이다. 하드웨어 기능을 효과적으로 사용한다. 리눅스는 오픈 소스 운영체제이다, 공개 운영체제이기 때문에 문제점 발생시 기술 지원를 받는 데 한계가 있다. 한글 지운이 미흡하다. 보안상의 취약점이 쉽게 노출될 가능성이 있다. 리눅스 디렉터리 디렉터리란 파일저장소를 의미하며, 리눅스 디렉터리는 계층적 트리 구조로 구성되어 있다. [종류&특징] / :..
· Python
오늘은 파이썬으로 TCP/IP 멀티 스레드 소켓 통신을 하는 다중 클라이언트 채팅 프로그램을 구현해 보았다. [기본 로직] [서버 코드 설명] 패키지, 모듈 선언 import socket import threading from queue import Queue - import socket : 통신을 위한 파이썬 기본 패키지에 포함된 내장 socket 모듈 - import threading : 쓰레드를 사용하기 위한 모듈 - from queue import Queue : FIFO(First In First Out)기반의 자료구조인 큐(queue) 모듈 if __name__ == '__main__': - 해당 파일을 직접 실행 한다면 True 큐 생성 send_queue = Queue() PORT 번호 지정..
STLLIN
Positive