본문 바로가기

Old/복습11

C++ - 생성자와 소멸자 생성자 객체만 생성해도 생성자는 자동 호출됨 상속관계에 있을 때 자식 객체를 생성하면 맨위 부모 클래스의 생성자부터 차례대로 생성자 호출이 일어남 생성자가 private이라면 다른 함수에서 객체 선언 시 생성자 호출 자체가 불가능해짐 #include #include using namespace std; class A { public: A() { cout name.c_str()); } }; int main(void) { B b(10, "Yubin"); return 0; } 실행 화면>> 소멸자의 호출 시점 데이터 영역: 해당 프로그램이 종료될 때 스택 영역: 해당 객체가 정의된 블록을 벗어날 때 힙 영역: delete를 사용하여 해당 객체의 메모리를 반환할 때 임시 객체: 임시 객체의 사용을 마쳤을 때 2023. 12. 27.
운영체제 - Call Stack Stack과 Heap 프로그램이 실행 중일 때, 변수는 일반적으로 call stack 혹은 process heap에 저장됨 process heap은 stack과 마찬가지로 실행 중인 프로그램에 변수를 저장하는 메모리 영역 Stack Allocation 할당은 function calll stack에서 발생 (stack memory allocation) 할당된 메모리의 크기 정보는 컴파일러가 갖고 있으며, 함수가 호출될 때마다 해당 변수는 stack에서 메모리를 가져오고 함수 호출이 끝날 때마다 변수에 대한 메모리 할당이 해제됨 메서드가 실행 중일 때만 데이터에 접근할 수 있는 임시 메모리 할당 체계 저장된 데이터의 소유자 쓰레드만 접근할 수 있어 상대적으로 안전함 메모리 할당과 해제가 힙 메모리 할당보다 .. 2023. 12. 27.
운영체제 - Thread 1. 프로세스 및 쓰레드 2. 쓰레드의 유형 프로세스와 쓰레드 프로세스: 실행 중인 프로그램 프로세스제어블록(PCB) 텍스트 (코드, 명령어) 데이터(전역변수) 힙(동적 메모리 할당) free area 스택(지역변수, 매개변수) 멀티 쓰레드 프로그램 하나의 프로그램을 2개 이상의 객체가 수행 multithread server 구조 동시 다발적으로 일어나는 일들을 thread로 구현 server data 분리 쓰레드의 장점 프로세스에 비해 새로운 쓰레드 생성 시간/비용이 절약되며, 프로세스 종료 시간보다 쓰레드 종료 시간이 짧음 병렬처리에 적합 멀티프로세서의 효율적 사용 병행 서버 응답 시간 향상 I/O 작업과 컴퓨팅 작업이 병행적으로 실행 프로세스 생성 - fork() 함수 : 유닉스 환경에서 함수를 호.. 2023. 12. 27.
게임 서버 - 관계형 데이터베이스와 NoSQL 관계형 데이터베이스의 부족한 점 기존 테이블에 레코드 1억 개가 이미 들어있다고 가정 필드 하나를 추가하면 데이터베이스 엔진은 기존에 있는 레코드 1억 개 전체에 필드를 추가해야 함 프로그램 구조가 복잡해질수록 테이블 구조도 변경, 유지보수하면서 점점 힘들어짐 데이터베이스의 수직분산과 수평분산 데이터베이스의 수직 분산: 여러 테이블을 각각 여러 데이터베이스 컴퓨터에 나눔 데이터베이스의 수평 분산: 테이블 하나가 레코드를 1억 개 가졌다고 가정하고 데이터베이스 컴퓨터가 100대 주어졌다면, 각 컴퓨터에 데이터베이스를 설치하고 1억을 100으로 나눈 수인 100만 개씩 레코드를 분배, 이렇게 수평으로 분산된 데이터베이스에서는 각 컴퓨터가 큰 테이블 1개를 조각조각 가진 셈으로, 이를 샤드라고 함 이 상태에서.. 2023. 8. 16.
게임 서버 - 데이터베이스 기초 각 플레이어의 로컬 컴퓨터에 플레이어 정보를 저장하면? 플레이어가 자리를 옮겼을 때 자기가 플레이하던 정보를 이어서 할 수 없음 플레이어가 해킹을 할 줄 안다면, 자기가 컴퓨터에 저장된 플레이 정보를 조작할 수 있음 플레이어 정보를 서버에 저장하는 방법: 파일과 데이터 베이스 상용으로 서비스되는 게임들은 대부분 플레이어 정보를 데이터베이스에 저장함 파일 vs 데이터베이스 데이터베이스는 구체적인 상황에서도 빠르고 다각적으로 데이터 검색할 수 있음 데이터베이스 구성 데이터베이스에서 다루는 데이터는 표 형태의 집합 데이터베이스 인스턴스: 테이블의 집합으로 데이터베이스가 다루는 가장 큰 단위의 데이터 집합 데이터베이스에서는 행 단위로 데이터를 넣거나 뺄 수 있으며 이 행을 레코드라 함 레코드 안에는 표의 열이 .. 2023. 8. 1.