모든 글 보기
프로세스와 스레드 (OS)
운영체제는 컴퓨터가 동작하도록 도와주는 소프트웨어 (사용자 ↔ 프로그램 ↔ 운영체제 ↔ 하드웨어) 로 복잡한 하드웨어를 대신 다뤄 사용자에게 편리함을 제공 (GUI, CLI 제공) 시스템 자원(CPU, 메모리 등) 효율적으로 관리 ex) 약간 내가 어떤 문서를 열고 싶을 때 내가 직접 하드웨어를 조작하는게 아니라 해당 문서를 더블클릭(GUI)하면 운영체제가 알아서 하드웨어 조작해서 문서를 열어준다. OS가 각각의 자원에서 중요하게 여기는 것은 CPU - 스케줄링 Memory - 분배 IO 장치 - CPU와 IO 장치 정보 주고 받는 거 Disk - 파일 관리, 헤드 이동 줄이기 ex) 사용자는 컴퓨터가 동시에 여러 프로그램을 수행하는 것처럼 느끼는데, OS가 여러 프로그램들이 CPU를 번갈아서, 메모리를..
클래스 만들기 (C++)
// 클래스 정의 class MyClass { public: int member1; char member2; MyClass(int _member1, char _member2) { member1 = _member1; member2 = _member2; } void print() { cout
[C++] int를 string으로, string을 int로
to_string() 함수로 int, double, float 타입을 string 타입으로 변경할 수 있고 stoi() 함수로 string 타입을 int 타입으로 변경할 수 있다. int ➜ string #include #include int main() { int num = 1; string num_str = to_string(num); cout
문자열 비교하기 (C++)
C++에서 문자열은 '\0'로 끝나는 char 배열 혹은 string 클래스로 표현할 수 있다. string 클래스 문자열은 == 연산자, compare 함수를 이용해서 비교 가능하고 char 배열 문자열은 strcmp 함수를 이용해서 비교 가능하다. string 클래스 문자열 비교 #include string str1 = "apple"; string str2 = "banana"; string str3 = "apple"; // == 연산자 if(str1 == str2) cout
공백 없는 입력 받기 (C++)
string을 이용해서 공백 없는 입력을 받는다 1차원 공백 없는 입력 //input : whynot? //output : w h y n o t ? char arr[100]; string s; cin >> s; //입력 for(int i=0; i
Anaconda
Anaconda는 파이썬 배포판이다 Anaconda는 머신러닝, 패키지를 포함하고 있는 파이썬 배포판이다. 배포판은 보통 [리눅스 커널 + GNU 소프트웨어 + 기타 소프트웨어]로 구성된 리눅스 배포판을 의미한다. 파이썬 배포판은 [파이썬 인터프리터 + IDE + 기타 라이브러리]F로 구성된 것을 말한다. 파이썬 배포판을 이용하면 파이썬 인터프리터를 다운받은 후 따로 IDE를 설치하거나, 따로 필요한 라이브러리를 pip로 설치하는 귀찮음을 줄일수도 있다. Anaconda는 파이썬 인터프리터, 주요 라이브러리, Jupyter Notebook과 같은 개발환경 등을 가지고 있다. (파이썬으로 코딩해서 프로그램을 만들려면 [1]인터프리터 [2]IDE [3]라이브러리 등이 필요하다) Anaconda는 가상환경을 ..
WebRTC로 1:1 화상채팅 만들어보기
WebRTC 별도의 소프트웨어 없이 웹 브라우저에서 바로 실시간 음성채팅, 화상채팅, 텍스트, 파일 교환을 가능하게 하는 기술 WebRTC가 어떤 원리로 실시간 커뮤니케이션을 가능하게 만드냐? P2P 구조 WebRTC는 기본적으로 Server - Client 구조가 아닌 P2P 구조이다. P2P는 인터넷에 연결된 기기들이 중개 장치를 거치지 않고 직접 데이터를 주고 받는 것이다 ex) 나랑 내 친구가 화상채팅을 한다하면 내 컴퓨터, 친구 컴퓨터을 각각 Peer라 하고 내 컴퓨터, 친구 컴퓨터가 서버를 거쳐서 데이터를 주고 받는게 아니라 직접 데이터를 주고받기 때문에 Peer to Peer 구조이다 세상에는 네트워크가 다양하고 각 Peer들이 NAT 뒤에 존재한다 만약 우리 집 컴퓨터(Peer)와 철수 집..