본문 바로가기

23년 2학기 학교공부

(82)
[CN] RESTful API 📁 CRUD CRUD : 데이터(엔티티) 처리를 위한 기초 연산 - Create - Read - Update - Delete 📁 TCP 기반 PasteBin PasteBin Service란 간단한 텍스트, 코드 등을 게시하는 서비스이다. 서버는 SET과 GET 메시지를 처리한다. 클라이언트는 SET과 GET 메시지를 전송한다. 프로토콜은 [SET|GET] KEY [VALUE]과 같고, utf-8로 인코딩된다. - 'SET' KEY\r\nVALUE : KEY에 저장된 VALUE 저장 - 'GET' KEY : KEY에 저장된 VALUE 반환 (기본값 : "") PasteBin 서비스의 서버와 클라이언트를 직접 구현해보자. 🌱 PasteBin Client 코드 import socket FLAGS = _ = N..
[SE] 프로젝트 관리 📁 프로젝트 관리 프로젝트를 계획하고 수행하는데 필요한 모든 작업 관리 - 필요한 작업의 결정 - 프로젝트에 적합한 인력 확보 - 직무 정의 - 일정 계획 - 작업 준비 - 비용 예측 - 지시, 감독 - 기술적 리더 - 다른사람이 내린 결정을 검토하고 승인 - 팀원 사기 진작과 지원 - 모니터링, 통제 - 다른 프로젝트 관리자와 협력 - 보고(reporting) - 프로세스 개선 📁 프로젝트 관리 활동 1. 제안서 작성 2. 프로젝트 계획 및 스케줄링 3. 프로젝트 비용 계획 4. 프로젝트 모니터링 및 검토 5. 인력 선발 및 평가 6. 보고서 작성 및 프레젠테이션 📁 프로젝트 계획 프로젝트 계획 수립 시간이 많이 걸리는 프로젝트 관리 활동이다. 초기 개념에서 시스템 제공에 이르기까지 지속되는 활동이다...
[SE] 소프트웨어공학 개요 📁 소프트웨어 소프트웨어란, 프로그램과 프로그램의 개발, 운용, 보수에 필요한 관련 정보를 모두 포함한 개념이다. 보통 프로그램과 소프트웨어를 같은 의미로 사용하지만, 프로그램은 소프트웨어에 포함되는 개념으로 동등한 의미가 아니다. 소프트웨어는 예술적 활동의 결과물과 달리 공학적 작업의 결과이다. 즉 프로그램 이외의 정보도 중요하며, 특히 소프트웨어가 복잡해지면서 공학적 과정, 즉 "설계"의 중요성이 커지고있다. 🌱 소프트웨어의 특징 1. 손에 잡히지 않는다.(intangible, invisible) 개발 작업을 이해하기가 어렵다. 예를 들어 진척도 부문을 보면, 작업이 어느정도까지 진행된건지 한 눈에 보고 파악하기 어렵다. 또한 소프트웨어의 구조(architecture)를 파악하는 것이 쉽지 않다. 소..
[CN] 네트워크 계층 프로토콜 : IP 📁 네트워크 계층 네트워크 계층은 OSI 계층모델에서 3계층에 해당하고, 대표적인 프로토콜로 IP 프로토콜이 있다. 네트워크 계층에서는 IP 패킷을 송수신하고, IP 패킷을 전달하고, IP주소를 찾고 이에 대한 목적지까지 경로를 찾는 알고리즘과 자료구조를 찾는 일 등이 수행된다. 호스트, 라우터, 스위치 등등은 각각의 기능 차이를 반영하는 다른 계층들로 구성된다. 📁 IP 패킷 IP 패킷은 다음 절차에 따라 생성된다. 1. 웹 브라우저 클릭 2. 클릭에 대한 내용을 HTTP 메시지로 만들기 3. HTTP 메시지 TCP 세그먼트로 만들기 4. TCP 세그먼트를 IP 패킷으로 만들기 (encapsulation) 5. IP 패킷을 이더넷 프레임으로 만들기 6. 이더넷 프레임을 0,1 비트로 만들어서 보내기 7..
[CN] TCP 혼잡제어 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 혼잡(Congestion) 네트워크에서 혼잡(Congetsion)이란, 네트워크상에 너무 많은 데이터가 있는 상태를 뜻한다. 혼잡한 상태의 증상은 다음과 같다. 1. 시간이 오래 걸린다. 2. 패킷이 중간에 이탈할 수 있다. 컴퓨터, 라우터, 공유기는 메모리가 있는데, 버퍼 큐에 패킷이 들어갔다 나옴. 들어오는게 나가는거보다 속도가 느리면 쌓일거니까 계속 쌓이다보면 overflow. 들어갈 큐가 없으면 그 데이터는 손실됨. 대부분 이런 경우가 패킷손실의 경우. checksum 경우는 엄청 희귀함. 단, 흐름제어와 혼잡제어는 다르다. 흐름 제어는 수신자에 대한 속도 제한. 순전히 수신자의 상태를 보고 판단함. 네트워크와..
[CN] Blocking, Non-blocking, 동기, 비동기 📁 Blocking vs. Non-blocking 1. Blocking : 프로세스가 시스템을 호출 하고나서 결과가 반환되기까지 다음 처리로 넘어가지 않음 2. Non-blocking : 시스템을 호출한 직후에 프로그램으로 제어가 다시 돌아와서 시스템 호출의 종료를 기다리지 않고 다음 처리로 넘어갈 수 있음 위 코드는 client에서 오류가 발생한다. 왜일까? 📁 동기 vs 비동기 1. 동기(synchronous) : 특정 작업이 끝나면 다음 작업을 처리하는 순차처리 방식 2. 비동기(asynchronous) : 여러 작업을 처리하도록 예약한 뒤 작업이 끝나면 결과를 받는 방식. Cpu 연산이 DB/API 연산보다 훨씬 빠르다 동시 프로그래밍 패러다임 • 전통적 방법 • 쓰레드를 여러 개 이용 • thr..
[CN] Socket Programming 📁 네트워크 프로그래밍 • IPC: inter-process communication • 클라이언트 서버 서비스를 위한 필수 프로그래밍 • Socket programming을 학습한다는 것은? • C/C++ 언어 • Socket 구조체, socket(), bind(), listen(), accept() 함수이용 • 소켓을 만들어서 클라이언트와 서버 통신 프로그래밍 • 윈도우, 리눅스, 유닉스 응용 SW 개발 • 운영체제 Network-layer 프로그래밍 • 서버 또는 통신 전용 프로그램: C/C++ • 응용(웹/앱/서버) 개발시 프레임워크 사용 • Java Spring, Netty • Python Django, FastAPI • JavaScript Nodejs, Express 📁 Socket Progr..
[CN] TCP 📁 TCP 1. 양방향 full duplex data 전송이 가능한 프로토콜. tcp 연결을 통해서 클라이언트-> 서버, 서버-> 클라이언트 방향으로 데이터를 동시에 전송할 수 있다. MSS(maximum segment size) : 데이터 전송을 할 때 최대 segment 크기가 주어짐. tcp에서는 바이트로 연속적으로 전달하긴 하지만 물리적으로는 세그먼트 단위임. mss는 이더넷 프레임 크기에 의해 결정된다. 2. connection-oriented TCP는 클라이언트와 서버 사이에 연결을 만들고 난 다음 데이터를 전송한다. 이때 연결을 만드는 과정을 handshaking이라고 부른다. 3번의 메세지 교환을 통해 만들어진다고해서 3-way handshake 라는 이름이 붙음. 3. Flow contr..