Upstage AI LAB 부트캠프 5기/실시간 공부내용 복습

[2024.10.18] 컴퓨터 공학 개론

김 도경 2024. 10. 18. 18:55

* 강의를 듣고 필기한 내용일 이후에 따로 정리한 내용입니다.

* https://glowdp.tistory.com/33 에서 이어지는 게시물 입니다.

File system

컴퓨터에는 다양한 파일들이 저장장치에 저장
- 운영체제가 저장장치에 있는 데이터를 효율적으로 CRUD 할 수 있는 것을 File system

- File
- Directory
- block : 저장 장치의 고정된 데이터 저장 최소 단위(논리적인 단위) : 블록은 최소단위라서 통제로 가져온다.
        - storge에 다녀오는 거 큰일 : 한번에 끝냄

        - OS는 블록단위인데, 최대한 많이!!!! 
- inode : file, Directory의 구조에서 pointer를 이용한 관리를 위한 값
        - unix기반이 모두 가지고 있음
        - node 단위
- Super block: file system의 중요정보가 담긴 모듬
        - 블록들의 블록이라고 생각하면 됨
- journaling : 데이터의 무결성을 보장하기위한 기법

File system을 설계할때는 다음을 고려하여 설계해야 합니다.

- 데이터 관리 및 보존 : 데이터를 안정적으로 저장하고, 사용자가 파일을 쉽게 관리하고 접근할 수 있게 할 수 있습니다.
- 성능 최적화 : 파일을 읽고 쓰는 작업을 빠르고 효율적으로 처리할 수 있도록 해야합니다.
- 데이터 무결성 : 시스템 오류, 전원 차단 등의 상황에서도 파일 시스템이 무결해야 합니다.
- 확장성 : 대규모 데이터와 파일을 처리할 수 있어야합니다.
- 보안 및 접근 제어 : 파일에 대한 권한 및 접근 제어를 제공하여 데이터 보호할 수 있어야 합니다. 

File

운영체제가 지속적인 활용을 위하여 비휘발성 저 장치에 논리적으로 구성된 file 단위로 저장

숫자와 글자와 같은 데이터의 모음이 될 수 도 있고 소스코드를 포함하는 하나의 프로그램

file의 형태로 인하여 사용자는 필요한 자료를 조금 더 쉽게 구분이 가능

  • File Attribute
    File은 프로세스와 사용자 둘 다 효과적으로 구분하기 위하여 다음과 같은 인자들은 포함
    - Name , Identifier(system이 사용하는 유니크한 값), Type, Location Size.  Protection (접근 권한에 관련된 정보), User identification (생성, 수정자에 대한 정보), Timestamps

  • File Operation
    File은 다음과 같은 연산들을 통하여 동작
    - Create, Read, Write, Delete
    - Reposition : 열려있는 현재 파일의 탐색을 위한 값
    - Truncation : 파일을 자르는 개념.
    - Open, Close

    - Structure of File
        - Sequential File Structure : 순차적으로 이루어진 파일 구조
               -단순하고 순차적으로 구성되어 읽고 불러오는 속도가 빠릅니다. 하지만 작성과 삭제를 하는 구조에서 오래 걸리는 단점
    - Index File Structure : Sequential 구조에 기반을 두고 있지만 위치를 잡기위한 index가 첨가
               - DB와 같이 빠른 접근이 필요할때 적절
    - Direct File Structure : 불연속 구조
               - 물리적으로 위치를 옮겨가며 파일을 관리. Hashing 함수를 사용하여 물리적 주소를 접근.

  • File Descriptor
    Open Operation을 통하여 File을 열면 반환이 되는 포인터를 가지는 인덱스 값
    해당 값을 정수로 표현이 되며 대표적으로 다음의 값으로 부터 시작.
    - 0 : stdin(standard input)
              - 각각에 할당을 위해 write lock을 해서 특정파일이 점유를 하는 경우도 있음
    - 1 : stdout(standard output)
              - read만 하는 경우 : 읽고 있다는 정보만 줌 ; 동시에 읽으면 안 되면 lock이 있긴함 - 거의 대부분 같이 쓸수있음
    - 2 : stderr(standart error)
    이외에도 소켓과 같은 프로세스에서 필요한 값들이 추가적으로 할당 : 
Directory

 

File들을 단순하게 쭉 나열하는것 보다 관련된 자료들끼리 묶어서 관리하는것이 당연히 효율적으로 관리될 것입니다. 이를 위하여 사용되는 개념이 Directory

- 보통 트리 구조로 관리를 하게 됨
- Directory는 최상위 root directory 부터 자식인 sub directory들로 구성

  • Directory Operation : Directory는 다음과 같은 연산들을 통하여 동작
    - Create, Delete, Search
    - List : Directory 내부의 Directory or File을 List화하여 관리합니다.
    - Rename
    - Traverse : 백업과 같이 다른 장치로 이동할 수 있습니다.

  • Structure of Directory
    - Single-Level Directory : 가장 단순한 형태의 구조
            - 사용자가 여러명일 경우 관리가 힘듭니다. 
    - Two-Level Directory : 사용자간의 구별을 가지는 형태의 구성
    - Three-Level Directory : Tree 구조라고도 불리며 일반적인 컴퓨터에서 통용되는 구조
             - 사실상 가장 많이 씀
    - Acyclic-Graph Directory : Three-Level Directory에서 link가 추가된 구조
        - 바로가기와 같은 기능이 추가되었다고 볼 수 있습니다.
    - General Graph Directory : 여타 구조들과 다르게 순환이 가능한 구조
        - 복잡하며 구현이 힘듬
Allocation of File System
  • Contiguous Allocation : 디스크에 연속적으로 블록이 할당이 되는 방식
        - 매우 빠른 동작 / 하지만 할당 할 수 있는 영역이 부족한 상태에서는 할당하지 못하고 영역이 남는 조각화가 발생

  • DisContiguous Allocation : 불연속적으로 할당을 하는 방식
         - 비어있는 블록에 데이터를 분산하여 저장하는 방식
          - Linked Allocation : 각 블록에 다음 블록의 위치를 저장하여 파일을 이어주는 방식
               -조각화 문제를 해결/ 하지만 연결된 마지막 파일을 사용할때 속도가 느려질 가능성 있음
           - Index Allocation : 인덱스 블록을 사용하여 모든 파일 블록의 위치를 저장하는 방식
              - 매우 효율적인 방법
Types of File system
  • FAT (File Allocation Table)
    - 초기에 사용하던 방식이며 윈도우에서 대부분 호환이 잘 됨.
    - 파일을 작은 클러스터로 나누어서 관리하며 최대용량이 작은 편.
    - 암호화, 압축이 지원되지 않음.
    - 조각화와 단편화가 발생하기 쉬움
  • NTFS (New Technology File System)
    - FAT의 한계를 개선한 고급 파일 시스템으로, 파일 암호화, 압축, 파일 복구 등 다양한 기능을 지원.
    - Windows NT 이상에서 지원
  • EXT (EXtended File System)
    - 리눅스 기반 운영체제에서 사용하는 파일 시스템으로, EXT2, EXT3, EXT4로 발전.
    - Journaling(데이터 변경사항 발생시 로그에 기록을 하게됩니다. 하여 문제가 발생하게 되면 로그를 기반으로 하여 복구를 할 수 있게 지원
    - 기능을 추가해 데이터 안정성을 강화하였으며, 대용량 파일 및 파티션을 지원
  • APFS (Apple File System)
    - Apple의 최신 파일 시스템으로, SSD 최적화, 스냅샷 기능, 파일 및 디렉토리 복제 성능 향상을 지원.

Database System

Types of Databases
  • 데이터베이스는 데이터를 저장하고 관리하기 위한 체계적인 방법을 제공하는 컴퓨터 시스템
  • 다양한 종류의 데이터베이스가 있으며, 각각의 종류는 특정한 용도에 따라 설계

  • 데이터 분석가 : 내가 쓰는 DBMS에서 어떤 SQL을 결과가 정확히 나왔는가?
    - SQL을 정말 정말 잘해야한다 (문제 : chatGPT도 잘한다.) 그보다 더 잘해야한다
    - SQLD같은 자격증은 큰 의미가 없고, SQL을 썼을때 DB에 대한 내용을 알거나, DB의 원론을 알거나가 필요

  • 관계형 데이터베이스(Relational database) : RDB
    - 데이터가 필요하면 무조건!!!! RDB를 쓰면 된다.
    - 근본, 인류역사의 중요한 발견중 하나 
    - 테이블 형태로 데이터를 저장하고 SQL(Structured Query Language)을 사용
    - 데이터를 검색하고 조작하는 데이터베이스 유형
    - 관계형 데이터베이스는 데이터를 정형화된 형태로 저장

    - 데이터는 하나 이상의 테이블(table)에 저장, 각 테이블은 행(row)과 열(column)으로 구성됨
    - 각 열은 데이터의 속성을 나타내며, 각 행은 개별 데이터 레코드(record)를 나타냄

    SQL : 관계형 데이터베이스에서 가장 일반적으로 사용되는 쿼리 언어
    - SQL을 사용하여 데이터를 검색하고 필요한 정보를 가져올 수 있음.
    - SQL은 데이터베이스에 저장된 데이터를 추가, 삭제, 수정하는데 사용되는 명령문도 지원

    - 관계형 데이터베이스는 대규모 데이터를 처리하는데 적합하며, 데이터의 일관성과 무결성을 보장.
    - 데이터베이스 내의 데이터는 중복을 최소화하여 일관성을 유지
    - 데이터를 업데이트하거나 삭제할 때 다른 테이블 간의 연관성을 유지하여 무결성을 보장

    - 관계형 데이터베이스는 대부분의 기업에서 사용되며, 예를 들어 Oracle, MySQL, Microsoft SQL Server가 있음

  • NoSQL 데이터베이스(Not only SQL) : 딥러닝이 많이 씀
    - MongoDB (document), Vector DB
    - NoSQL 데이터베이스의 대표적인 예로는 MongoDB, Cassandra, Couchbase, Redis, Amazon DynamoDB 등이 있음.

    - 관계형 데이터베이스와는 다른 형태의 데이터 모델을 사용하는 비관계형 데이터베이스 유형
    - NoSQL 데이터베이스는 대량의 비정형 데이터를 다루는 데에 적합하며, 수평적 확장성을 강조

    - NoSQL 데이터베이스는 데이터를 컬렉션(collection), 문서(document), 그래프(graph) 등의 형태로 저장
    - 각각의 컬렉션은 다수의 문서를 포함하며, 각 문서는 일반적으로 JSON 형태로 저장
    - 그래프 데이터베이스는 데이터를 노드(node)와 간선(edge)의 형태로 저장

    - NoSQL 데이터베이스는 수평적 확장이 가능하도록 설계되어 있음
    - 데이터베이스 시스템은 여러 대의 컴퓨터에서 작동하며, 데이터는 여러 노드에 분산 저장
    - 이를 통해 대규모 데이터를 처리하고, 처리량을 확장
    - NoSQL 데이터베이스는 대규모 분산 시스템에서 사용되며, 대량의 비정형 데이터를 저장하고 처리하는 데에 적합.

  • 메모리 데이터베이스(In-memory database) : SNS는 무조건 메모리 DB
    - 메모리 데이터베이스의 대표적인 제품으로는 Redis, Memcached, Apache Ignite 등
    - 관계형 데이터베이스에서도 메모리 데이터베이스를 지원하는 제품 : Oracle에서는 In-Memory Database를 제공하고, MySQL에서는 Memory Storage Engine을 지원

    - 디스크 대신 메모리(RAM)를 사용하여 데이터를 저장하고 처리하는 데이터베이스
    - 디스크에 비해 메모리의 접근 속도가 훨씬 빠르기 때문에, 매우 빠른 데이터 처리 속도를 보장
    - 메모리 데이터베이스는 주로 실시간 데이터 처리나 대규모 데이터 처리 등의 분야에서 사용

    - 메모리 데이터베이스는 메모리 크기에 제한을 받기 때문에 대용량 데이터 처리에는 적합하지 않음.
    - 메모리에 데이터를 저장하기 때문에 시스템에 장애가 발생하면 데이터가 손실될 가능성이 있음

  • 분산 데이터베이스(Distributed database) : 이런게 있구나 정도만 알면 됨, 구현할 일 없을듯
    - 대표적인 분산 데이터베이스 제품으로는 Oracle RAC, Apache Cassandra, MongoDB 등

    - 여러 대의 컴퓨터에 데이터를 분산하여 저장하고, 이를 중앙 집중식으로 관리하는 데이터베이스
    - 각각의 컴퓨터는 로컬 데이터베이스를 유지하면서, 분산 데이터베이스 시스템에 참여
        
    - 분산 데이터베이스는 대규모 데이터 처리를 위해 설계되어 있으며, 여러 대의 서버를 사용하여 데이터를 처리하므로 단일 서버에 비해 처리량이 향상가능함
    - 분산된 데이터를 병렬적으로 처리할 수 있기 때문에 빠른 데이터 처리 속도를 보장
        
    - 분산 데이터베이스는 서버 간 통신을 필요로 하므로 네트워크 대역폭의 한계나 네트워크 장애 등이 발생할 경우 데이터 접근 속도가 저하
    - 데이터 일관성 등의 문제를 해결하기 위한 추가적인 구현이 필요.
        
    - 분산 데이터베이스는 다수의 사용자가 대규모 데이터를 처리하는 분야에서 많이 사용된다. 예를 들어, 은행의 금융 거래, 전자 상거래 등에서 사용됨

  • List of RDBMS (Relational Database Management System)
    - RDBMS :관계형 데이터베이스를 생성, 관리, 조작하는 데 사용되는 소프트웨어
    - SQL(Structured Query Language)이라는 표준 질의 언어를 사용하여 데이터를 저장하고 관리
        
        1. Oracle Database : 가장 유명한 DB
             - 대규모 비즈니스용 데이터베이스 시스템으로, 가장 많이 사용되는 RDBMS 중 하나
             - Oracle Corporation에서 개발하고 유지보수한다.
             - 속도, 성능, 경력 면에서 1위이다. 윈도우랑 동일
        2. Microsoft SQL Server: Microsoft에서 개발한 RDBMS
              - Windows 운영체제에서 가장 많이 사용된다. 비즈니스 환경에서 많이 사용
        3. MySQL : 오픈 소스로 제공 : 대부분 공부할 때 사용됨. MySQL이 오픈소스라 무료임.
            - SQL은 거의 문법이 비슷비슷하다. 그래서 공부할 때는 MySQL로 하면 된다.
             - 가벼운 웹 응용 프로그램에서 많이 사용
             - Enterprise Edition도 따로 존재하며, Oracle사에서 관리
        4. PostgreSQL: PostgreSQL Global Development Group에서 개발한 오픈 소스 RDBMS
              - 기업급 데이터베이스에서도 많이 사용
        5. IBM DB2: IBM에서 개발한 RDBMS
              - 대규모 시스템에서 사용. 여러 플랫폼에서 지원
        6. SQLite: 오픈 소스 RDBMS
              - 경량의 데이터베이스 시스템으로 사용. 모바일 디바이스나 웹 브라우저 등에서 많이 사용.
        7. MariaDB: 오픈 소스 RDBMS.
              - MySQL과 호환성이 높아 MySQL의 대안으로 사용
        
        이외에도, SAP Sybase ASE, Teradata, Amazon Aurora 등 많은 RDBMS 제품들이 있다.

  • List of NoSQL
        1. MongoDB: 가장 많이 사용되는 NoSQL 데이터베이스
          - 오픈 소스로 제공되며, JSON 형태로 데이터를 저장.
          -  스키마가 존재하지 않아 유연하게 데이터를 저장.
        2. Cassandra: Apache Software Foundation에서 개발한 NoSQL 데이터베이스
          -  분산형 아키텍처를 기반으로 하며, 대용량 데이터 처리에 특화
        3. Couchbase: Membase에서 개발한 NoSQL 데이터베이스
          -  분산형 아키텍처와 메모리 캐시를 이용하여 데이터를 빠르게 처리
        4. Redis: 오픈 소스 NoSQL 데이터베이스로, 메모리 기반 데이터 저장소
          -  데이터를 메모리에 저장하여 빠른 처리 속도를 제공
        5. Amazon DynamoDB: AWS에서 제공하는 NoSQL 데이터베이스
          -  분산형 아키텍처와 자동 확장 기능을 제공하며, 높은 처리 성능을 제공
        6. Neo4j: 그래프 데이터베이스 중 가장 많이 사용되는 NoSQL 데이터베이스
          -  데이터를 노드와 엣지의 그래프 형태로 저장하여 빠른 검색 및 연결 분석이 가능
        7. Apache HBase: Apache Software Foundation에서 개발한 NoSQL 데이터베이스
          -  Hadoop 기반으로 분산형 아키텍처를 사용하여 대용량 데이터 처리에 특화
Database schema design
  • Database schema design은 데이터베이스의 구조를 설계하는 과정
         - 스키마 디자인은 데이터베이스의 정확성, 일관성, 유지보수성 등을 결정하는 중요한 요소
  • 데이터베이스 스키마 디자인은 테이블의 속성(Column)을 적절하게 설계
    테이블 간의 관계(Relationship)를 정의하여 데이터를 효율적으로 저장하고 관리할 수 있도록 한다.
  • Normalization (정규화) : 저장의 효율성 때문에 테이블을 작은 여러개의 테이블로 나누는 과정
  • Join operation : 정규화를 해서 나눠져 있던 테이블을 특정 column들을 기준으로 합치는 연산

  • ERD(Entiry-Realtionship Diagram)
         -  개체와 그들 간의 관계를 시각적으로 나타내는 모델링 도구
         -  ERD는 데이터베이스의 구조와 설계를 표현하는데 사용
        
         -  개체는 특정 유형의 데이터를 나타내는 것으로, 일반적으로 테이블로 표현
         -  개체는 테이블의 열을 나타내며, 열의 데이터 타입과 제약 조건 등을 정의
        
         -  관계는 두 개 이상의 개체 간의 연결을 나타냄.
         -  관계는 일대일, 일대다, 다대다 등의 유형이 있다. 관계는 개체 간의 키와 외래키를 사용하여 정의
        
         -  ERD를 사용하여 데이터베이스 스키마를 설계하면, 데이터베이스의 구조와 관계를 쉽게 이해할 수 있음
         -  효율적인 데이터 저장과 검색이 가능한 스키마를 설계할 수 있음 
         -  프로젝트의 초기 단계에서 요구사항을 분석하고, 요구사항의 이해를 돕는데 유용함.

    - 테이블간의 관계는 다양한 유형이 있음
    1. One to One : 한 테이블의 레코드가 다른 테이블의 레코드와 하나씩 대응하는 관계
    2. Many to One: 한 테이블의 레코드가 다른 테이블의 여러 레코드와 대응하는 관계
    3. MAny to Many: 한 테이블의 레코드가 다른 테이블의 여러 레코드와 대응하고, 다른 테이블의 레코드도 한 테이블의 여러 레코드와 대응하는 관계
SQL (feat. MySQL)
  • 계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리하고 조작하는 표준 언어
  • MySQL은 RDBMS 중 하나로, 오픈소스이며 Oracle이 관리
  • 현재 최신 버젼은 MySQL 9.0.1이며 가장 많이 사용하는건 MySQL 8.0.39

실습

  • 데이터베이스 생성 및 관리
CREATE DATABASE mydatabase;        # 끝에 꼭 ;을 써줘야한다, ;을 쳐야 실행

- 데이터를 저장할 데이터베이스를 먼저 생성

USE mydatabase;

- 데이터베이스를 생성한 후, 해당 데이터베이스를 사용하도록 선택

________ users (
    id INT AUTO_INCREMENT PRIMARY KEY,         # id는 따로 안써주고 1부터 올라감
    name VARCHAR(100),
    email VARCHAR(100)
);

- 데이터를 저장할 테이블을 생성. 예를 들어, users라는 테이블을 생성하고, id, name, email 필드를 포함

 

  • 데이터 삽입 (INSERT)
_______ users (name, email) _____ ('John Doe', 'john@example.com');      #대소문자구분, VALUES는 name과 email로 넣어줌

- 데이터를 "row 단위로" 삽입하는 기본적인 SQL 문법

INSERT INTO users (name, email)             #VALUES는 name과 email로 넣어줌
VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com');

- 여러 개의 데이터를 한 번에 삽입

 

  • 데이터 조회(SELECT)
SELECT * FROM user;

- 모든 데이터 조회

SELECT name, email FROM users;

- 특정 column만 조회 : users 테이블에서 name, email column을 가져오기

SELECT * FROM users WHERE name = 'Alice';
 SELECT name, email FROM users WHERE name = 'Bob';

- 조건에 맞는 데이터 조회 ; users 테이블에서 이름이 Alice인 데이터 가져오기 / 이름이 bob인 사람의 이름과 이메일 가져오기

 

  • 데이터 업데이트
UPDATE users
SET email = 'alice_new@example.com'
WHERE name = 'Alice';

- 기존 데이터를 수정

DELECT FROM users WHERE name = 'Bob';

-이름이 Bob인 데이터 모두 삭제하기

 

  • 조건에 따른 데이터 정렬 및 제한
SELECT * FROM users ORDER BY name DSC;       #DEC : 내림차순 ASC : 오름차순

-데이터 정렬 : 이름을 기준으로 내림차순 정렬하기

SELECT * FROM users LIMIT 5;

- 데이터 제한 : LIMIT를 사용하여 조회할 데이터의 수를 제한할 수 있습니다.

  • 테이블 삭제 (DROP)
DROP TABLE users;

- 테이블 자체를 삭제하려면 DROP TABLE을 사용

 

  • key 
CREATE TABLE orders (
    order_id INT AUTO_INCREMENT PRIMARY KEY,       #pk가 없으면 table정의가 없음. 집주소가 없는 것과 마찬가지
    order_date DATE
);

- Primary Key 설정 : PRIMARY KEY는 테이블 내에서 각 행을 고유하게 식별하는 열
      - 명확하게. 모든 행을 다 구분할 줄 알아야한다!!! order_id는 primary key가 된 것이다.
     - 무조건 정의를 해줘야한다!!! 안되면 테이블 정의가 안 된다

CREATE TABLE order_items (
    item_id INT AUTO_INCREMENT PRIMARY KEY,
    order_id INT,
    product_name VARCHAR(100),
    FOREIGN KEY (order_id) REFERENCES orders(order_id)   #orders 테이블에 있는 order_id(PK)를 order_items 테이블의 order_id라는 Foreign Key로 설정
);

- Foreign Key 설정
   -  Foreign Key는 한 테이블의 열이 다른 테이블의 기본키를 참조하도록 설정
   - order 입장에서의 이야기.

  • 집계 함수
SELECT COUNT(*) FROM users;               #레코드 수 세기
SELECT SUM(salary) FROM employees;        #특정 column의 값 합계 구하기
SELECT AVG(age) FROM users;               #평균 값 구하기

SELECT MAX(salary) FROM employees;        #최대 값
SELECT MIN(age) FROM users;               #최소 값
  • 그룹화
SELECT department, COUNT(*) FROM employees GROUP BY department;

- GROUP BY를 사용하여 데이터를 그룹화하고 각 그룹에 대해 집계할 수 있음

 

  • JOIN

- SQL에서 조인은 두 개 이상의 테이블을 결합하여 데이터를 조회하는 데 사용

SELECT users.name, orders.order_date
FROM users
INNER JOIN orders ON users.id = orders.user_id;

- INNER JOIN

SELECT users.name, orders.order_date
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

- LEFT JOIN

 

Computer Network 

Introduction to Computer Networking

- 올해 유명한 논문
m3: Accurate Flow-Level Performance Estimation using Machine Learning  :
- https://dl.acm.org/doi/10.1145/3651890.3672243

    - 대규모 데이터센터 네트워크에서 성능 예측을 빠르고 정확하게 하기 위한 새로운 방법을 제시
    - 네트워크 성능(특히 대기 시간과 같은 지표)을 빠르게 추정하기 위해 머신러닝을 사용

Crux: GPU-Efficient Communication Scheduling for Deep Learning Training

- https://dl.acm.org/doi/10.1145/3651890.3672239
   - 딥러닝 훈련 중 발생하는 통신 경합 문제를 해결하여 GPU 활용률을 최적화하는 시스템
   - GPU 강도가 높은 작업에 우선순위를 부여하여 효율적인 통신 스케줄링을 구현

요즘 연구 주제 : Distributed Learning, Federated Learning

Accelerating Model Training in Multi-cluster Environments with Consumer-grade GPUs
- https://dl.acm.org/doi/10.1145/3651890.3672228
  - 저비용 소비자급 GPU를 사용해 AI 모델 훈련을 가속화하는 기술을 제시

  - 특히 고가의 데이터센터급 GPU와 전용 고속 네트워크가 없는 환경에서 효율적으로 딥러닝 모델을 훈련할 수 있는 방법을 제시'

 

가장 공부해야하는 분야 : TCP and UDP - 무조건 암기하기

 

- 이 부분 추가로 공부하기