DevOps BootCamp 171

Session Layer - Socket(소켓)

소켓(Socket) "네트워크 환경에서 클라이언트와 서버가 서로 연결할 수 있게 만들어진 연결부"를 의미 네트워크 상에서 돌아가는 두 개의 프로세스 간 양방향 통신의 하나의 엔드포인트 > 엔드포인트는 IP주소와 PORT 번호의 조합 - 포트 번호에 바인딩되어 전송계층에서 데이터를 주고받는 애플리케이션을 식별 - 어플리케이션 계층에 존재하는 프로세스들은 데이터를 주고받기 위해 소켓을 거쳐 전송 계층의 네트워크로 전달함으로써 데이터를 송수신할 수 있음 소켓 안에 있는 정보들 프로토콜 호스트 IP 주소 (Source IP Address) 호스트 Port 번호 (Source Port Nunber) 목적지 IP 주소 (Destination IP Address) 목적지 Port 번호 (Destination Port..

IP와 IP Packet와 ★ TCP vs UDP ★

IP 패킷에서 패킷은 pack과 bucket이 합쳐진 단어로 소포로 비유 > IP 패킷은 이를 데이터 통신에 적용한 것 - 비연결성 - 비 신뢰성 ★ OSI 7 계층과 TCP/IP 4 계층 먼저 HTTP 메시지가 생성되면 Socket을 통해 전달 ※ 소켓(socket) : 네트워크 환경에 연결할 수 있게 만들어진 연결부 TCP/IP 패킷 구성 정보 TCP 특징 - 연결 지향( TCP 3 way handshake) 가상연결 - 데이터 전달 보증 - 순서 보장 - 신뢰할 수 있는 프로토콜 ★ 3 way handshake 1. 먼저 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보냄 2. 서버는 요청 수락한다는 ACK와 SYN가 설정된 패킷 전송, 클라이언트가 ACK로 응답하기를 기다림 3. 클라이언트가 ..

HTTP

HTTP 특징: 클라이언트 서버 구조 무상태 프로토콜, 비연결성 HTTP 메시지 단순성, 확장 가능 ● 클라이언트 서버 구조 Request Response 구조 클라이언트 > 요청, 서버 > 응답 대기 ● 무상태 프로토콜 서버가 클라이언트 상태를 보존 x 장점 : 확장성 높음 단점 : 클라이언트가 추가 데이터 전송 모든 것을 무상태로 설계할 수 있는 경우도 있고 없는 경우도 있음 ex) 단순한 서비스 소개 화면 but 로그인 같은 기능은 상태를 서버에 유지시켜야 함 > 상태 유지 - TCP/IP의 경우 기본적으로 연결을 유지 > 서버의 자원 지속적 소모 - 비연결성을 가지는 HTTP에서는 실제로 요청을 주고받을 때만 연결을 유지 > 최소한의 자원으로 서버 유지를 가능 - HTTP 1.0 기준으로, HTT..

OSI 7계층과 TCP/IP 4계층

TCP/IP 4 계층 - OSI 7 계층은 데이터 플로우 계층과 애플리케이션 계층으로 구분 - 데이터를 만드는 애플리케이션 부분과 이 데이터를 잘 전달하는데 집중하는 하부 계층으로 구분하는 것에 목적 ● 물리 계층 : 물리적 연결과 관련된 정보를 정의 주로 전기 신호를 전달 ● 데이터 링크 계층: 물리 계층에서 들어온 전기 신호를 데이터 형태로 처리 주소 정보를 정의, 출발지와 도착지 주소를 확인 후 데이터 처리 ● 네트워크 계층: IP주소와 같은 논리적인 주소를 정의 라우터를 통해 정의한 IP주소를 이해하고, 최적의 경로를 찾아 패킷을 전송 ● 전송 계층: 해당 데이터들이 실제로 정상적으로 보내지는지 확인하는 역할 ● 세션 계층: 세션 계층은 양 끝 단의 프로세스가 연결을 성립하도록 도와주고, 작업을 ..

Progect1 회고

▶ Project 01 - 이번 프로젝트로 서버를 처음 만들어 봤는데 오류가 많이 났던 거 같습니다. - 하지만 팀원들과 상의하면서 조금씩 수정해 나갔고 요구 기능들을 구현해 낼 수 있었습니다. - 저희 팀은 각자 구현해 보고 나중에 코드를 합치는 방식으로 진행하였습니다. ● ERD 작성 - 주제는 수업 LMS(학습 관리 시스템)의 서버를 구성하는 것이었습니다. - 테이블을 users, registration, classes로 나누었으며, users는 시스템 사용자, registration은 수강 신청, classes는 수업을 의미합니다. - users에서 userId와 role을 기본키, classes에서는 classId를 기본키, registration에서 userId와 classId를 참조키로 설정..

데이터베이스 설계

관계형 데이터베이스 데이터(data): 각 항목에 저장되는 값 테이블(table; 또는 relation) : 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으로 축적 칼럼(column; 또는 field) : 테이블의 한 열을 가리킴 레코드(record; 또는 tuple) : 테이블의 한 행에 저장된 데이터 키(key) : 테이블의 각 레코드를 구분할 수 있는 값입니다. 각 레코드마다 고유한 값을 가집니다. 기본키(primary key)와 외래키(foreign key) 등이 있음 1:1 관계 - 하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우 - 각 전화번호가 단 한 명의 유저와 연결되어 있고, 그 반대도 동일하다면, User 테이블과 Phonebook 테이블은 1:1 관계 1:N 관계 ..

MLOps

머신 러닝(Machine Learning) > 데이터를 이해하는 알고리즘의 과학이자 애플리케이션 머신 러닝의 세 가지 주요 학습 1. 지도학습으로 미래를 예측 2. 강화학습으로 반응형 문제를 해결 3. 비지도 학습으로 숨겨진 구조를 발견 MLOps DevOps : 개발과 운영을 따로 나누지 않고 개발의 생산성과 운영의 안정성을 최적화하기 위한 문화이자 방법론 DevOps를 머신 러닝(Machine Learning) 시스템에 적용한 것 : MLOps 머신 러닝을 도입한 데이터 처리 파이프라인 1. 데이터 분석 - 데이터 분석(EDA, Exploratory Data Analysis) 을 수행, 데이터 스키마 및 특성을 이해 2. 데이터 준비 (추출 및 정제) - 데이터 소스에서 관련 데이터를 추출(extra..

ETL과 ELT

ETL, ELT > 데이터 파이프라인 > 각 알파벳은 추출(Extract), 적재(Load), 변환(Transform)의 약자 추출의 대상 관계형 데이터베이스 (RDBMS) NoSQL 텍스트 파일 (JSON, log, txt 등) SaaS로부터 생성되는 데이터 (Google Ads와 같은 광고 데이터) 데이터 레이크 (비정형 데이터를 포함해 원시 데이터를 저장하는 공간) 적재의 대상 데이터 웨어하우스 ELT와 ETL의 차이점은 순서의 차이 ● ETL(추출→변환→적재), 적재하는 과정에서 변환(Schema-on-Write) ● ELT(추출→적재→변환), 적재하고 나서 분석을 시작할 때 변환(Schema-on-Read) 비정형 데이터를 분석할 경우 ELT 작업, 상대적으로 정형화된 데이터 분석보다는 훨씬 느..

정형 데이터와 비정형 데이터

정형 데이터와 비정형 데이터 정형 데이터 : 정해진 규칙에 따라 구조화된 데이터 > 날짜, 이름, 주소, 신용 카드 숫자 등과 같이 해당 칼럼에 들어갈 값이 예측 가능하고 의미 파악이 쉬운 데이터 > 사용자들이 사용하기 쉽고, 머신러닝 알고리즘이 가공/분석하기에 용이 > 적재한 데이터가 많은 상황에서 구조 그 자체가 바뀌는 경우, 모든 정형 데이터를 업데이트해야 하므로 많은 시간과 자 원이 소모 비정형 데이터 : 문서(JSON, 텍스트)의 형태를 띄거나, 아예 음성이나 영상과 같은 바이너리 형식의 데이터 > 있는 그대로 저장하기에 유용하나, 가공하거나 분석하기에는 어려울 수 있음 > 최근에는 모든 데이터를 있는 그대로 저장하고 고도화된 빅데이터 도구를 이용해 보다 쉽게 가공/분석할 수 있게 만드는 것이 ..

데이터 파이프라인

★ 데이터 파이프라인 > 다양한 데이터 소스로부터 원시 데이터를 수집하여 분석을 위해 데이터 웨어하우스와 같은 별도의 데이터 저장소로 이전하는 과정 데이터 파이프라인을 만드는 이유 > 다양한 경로로부터 수집되는 데이터를 웨어하우스에 적재한 후, 적재한 데이터를 바탕으로 효과적으로 분석하기 용이하게 만들기 위함 > MLOps의 필수 과정 OLTP vs. OLAP - OLTP(Online Transaction Processing) 데이터베이스 : 그 목적이 트랜잭션(기본적인 CRUD 작업)에 포커스가 맞추어져 있는 데이터베이스 - OLAP(Online Analytical Processing) 데이터베이스는 적재된 데이터를 다양한 방법으로 분석하는 데 포커스 > 다양한 데이터소스로부터 수집되는 데이터를 통합 ..