목록Smart Factory Bootcamp (12)
Yejom's Dev Log

소켓(socket): 네트워크를 경유해서 컴퓨터 간 통신을 하기 위한 도구 소켓 구성 요소: IP주소, 포트번호, 프로토콜 소켓 서버데이터가 중요할 때 => TCP 서버 (연결 지향) • 각 소켓끼리 서로 연결 • 연결된 상태에서 통신, 연결된 대상 외에 다른 대상과는 통신 불가능 • 속도는 느리지만 안정성이 높다.• 데이터가 손실되면 안되는 경우 성능이 중요할 때 => UDP 서버 (비연결 지향) • 연결되지 않은 상태에서 내가 원하는 주소에 데이터를 보낼 수 있는 통신 방법 • 데이터를 보낸 후 확인작업이 없어서 데이터가 다 수신되었는지 확인 불가능 • 속도가 빠르지만 데이터가 소실될 수 있다. • UDP 헤더의 체크섬 필드를 통해 최소한의 오류만을 검출 • 동영상, 음악 스트리밍 서비스 (네트워크..
[라이브러리]- 사전적 의미: 자주 사용하는 코드의 집합 *C++에서는?- .lib 파일 또는 .dll 파일 등을 지칭- 자주 사용하는 함수, 클래스의 코드를 노출시키지 않고 공유 가능- .lib, .dll 파일과 연결된 .h (헤더) 파일을 통해 함수 또는 클래스 원형(입출력값 & 식별자)만 확인 가능 [API, 라이브러리, Framework]• 라이브러리: 응용 프로그램 개발을 위해 필요한 함수, 클래스 등을 모아놓은 것• API (Application Programming Interface)- 두 개 이상의 컴포넌트(시스템, 프로세스, 플렛폼, 프로그램 등) 간에 상호작용을 위해 정의된 인터페이스- 라이브러리와 마찬가지로 함수, 클래스 등으로 제공됨• Framework: 응용 프로그램 개발을 위해..

[Thread]• 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위• 일반적으로 한 프로그램은 하나의 스레드. But. 프로그램 환경에 따라 둘 이상의 스레드 동시에 실행 가능 (멀티 스레드)- 기본적인 사용법 : std::thread- 스레드 생성자에 함수 printMessage를 넣어서 객체 생성. ( thread t1(func, input1, input2, ...))*스레드는 생성되는 순간부터 돌게 됨.- join() : t 스레드가 끝날 때까지 기다려라.[멀티스레드의 문제점]1) 입력값을 잘못 넣어도 스레드 객체 생성이 가능.(오류났을 때 컴파일러가 원인을 정확히 찾아서 말해주지 않음)2) 이상하게 출력함. [Thread Scheduling] • 주요 개념과 원칙1. 스레드 우선..

구조체 (structure)- 프로그래밍을 하다 보면 변수 하나로 표현하기 힘든 것이 있음. - ex) 학생을 표현 하려한다면 이름, 나이, 학교, 학년, 학번, 전공 등 다양한 특징에 대한 변수가 필요함.struct Position { int x = 0; int y = 0;};int main() { Position p; p.x = 3; p.y = 5; p = { 3, 5 };}클래스 (class)UML (Unified Modeling Language) : 모델을 만드는 표준언어UML을 사용하는 유형1. 다른 사람들과의 의사소통 또는 설계 논의2. 전체 시스템의 구조 및 클래스의 의존성 파악3. 유지보수를 위한 설계의 back-end 문서 클래스 다이어그램 (Class Diagram) : 클래스 내부의 ..
파일 분할 (file separation)•헤더 파일•확장자 .h•클래스, 함수 등의 선언부 코드를 모아두는 곳•소스 파일•확장자 .cpp•클래스, 함수 등의 구현부 코드를 모아두는 곳 실습//1. 사용자에게 몇 명의 학생을 입력할 것인지 묻기//2. 학생 수 만큼 이름 나이 생일" 순서로 한번에 입력 받기//3. 1) 학생 정보 출력, 2) 평균 나이, 3) 가장 빠른 생일, 4) 프로그램 종료, 네 가지 기능올 모두 구현//4. 지금까지 배운 자료구조(배열, 벡터, 리스트), 문자열(스트링) 등 자유롭게 활용 하여 작성 ~작성 전에 어떤 기능을 어떻게 구현할지 먼저 정하고 작성 시작하기~//5. * 시간이 남으면 * 예외 처리, 주석, 코드 정리 등을 실시하여 완성도를 높이기// // save_st_..

리스트(list)- 어떤 데이터를 저장할때 그 다음 순서의 자료가 있는 위치를 데이터에 포함시키는 방식으로 자료를 저장#include // list 헤더파일을 추가해야 사용 가능list my_list = { 1,2,3,4,5 }; // 리스트 선언list my_list(4); //int형 리스트 생성 후 크기를 4로 할당(모든 요소 0으로 초기화)list my_list(5, 1); //int형 리스트 생성 후 크기를 5로 할당(모든 요소 1로 초기화)v.assign(5, 1); //0~4인덱스의 값을 1로 초기화 리스트 반복문- 임의 접근 반복자 at(), [] 불가능, 양방향 반복자 (++,--)이용해서 탐색 (list 전용 반복자(list::iterator)를 사용)- push_front(),..