728x90

C 7

24.04.12 서버 프로그래밍, 백준

게임 서버 프로그래밍 8장. 분산 서버 구조 8.1 수직 확장과 수평 확장 확장성(scalability)이란 사용자 수가 늘어나더라도 쉽게 대응할 수 있어야 한다는 의미다. 최대로 처리할 수 있는 사용자 수가 무제한이여도 가능해야 한다는 것이 확장성 목표이다. 사용자 수가 늘어나도 서버 성능을 유지하려면 보통 다음 두 가지 중 하나를 수행한다. 스케일 업(scale-up) : 수직 확장 스케일 아웃(scale-out) : 수평 확장 수직 확장은 서버의 하드웨어를 더 좋은 것으로 교체하여 처리량을 늘리는 것을 의미한다. 수평 확장은 서버 대수를 늘려서 더 많은 처리를 하는 것이다. 수평 확장이 더 많이 사용되는 방법이지만, 소프트웨어 설계가 더 복잡하다는 대가가 따른다. 또 수평 확장은 수직 확장으로 서버..

삼항 연산자

삼항 연산자(ternary operator) 삼항 연산자는 다른 언어에는 존재하지 않는 C언어와 C++만의 독특한 연산자이다. C++에서 유일하게 피연산자를 세 개나 가지는 조건 연산자이다. 간단하게 if-else문을 대체할 수 있다. 문법 조건식 ? 반환값1 : 반환값2 물음표(?) 앞의 조건식에 따라 결괏값이 참(true)이면 반환값 1을 반환하고, 결괏값이 거짓(false)이면 반환값2를 반환합니다.

언어/C++ 2024.02.14

C & C++.1

C & C++ 선언(declaration)과 정의(definition) 프로그래밍에서 선언(declaration)과 정의(definition)는 명백히 다른 역할을 하지만 혼동하여 사용하기 쉽다. 선언과 정의의 가장 큰 차이는 ‘메모리를 할당하는가’ 이다. 메모리를 할당하지 않고, 대상의 이름만 알려준다면 선언이고 대상의 메모리가 할당된다면 그것은 정의다. 선언 컴파일러가 참조할 식별자(identifier)와 이름을 알립니다. 식별자란 변수의 타입과 함수의 인수목록을 뜻하며 이름은 변수, 함수, 클래스의 이름, 네임 스페이스를 뜻합니다. 정의 정의는 식별자와 이름으로부터 코드를 생성하여, 함수가 호출되거나 변수를 사용할 때 생성된 코드를 참조한다. 정의는 고유 사양으로 프로그램에는 정의가 하나만 있어야 ..

언어/C++ 2024.02.07

4. 복사 생성자 & 임시객체

복사 생성자 객체의 복사본을 생성할때 호출되는 생성자 복사될 원본에 const를 붙여서 원본이 손상되는 일 방지 깊은 복사 , 얕은 복사 깊은 복사 - 복사에 의해 두개의 값 생성 얕은 복사 - 대상의 값은 하나 접근 포인터만 2개 얕은 복사의 경우 이미 삭제된 메모리를 한번 더 삭제하려 하면 오류 발생 대입 연산자 단순 대입 → 얕은 복사 실행 대입 연산자 다중정의로 깊은 복사 수행하도록 작성 변환 생성자 explicit 예약어로 차단 가능 이름없는 임시 객체 객체를 return 하는 경우 임시 객체가 복사생성자로 생겼다 사라짐 r-value 참조 연산에 따라 생성된 임시객체 기본 자료형 말고, 클래스에 적용될 때 필요 이동 시맨틱 이동 생성자 + 이동 대입 연산자

언어/C++ 2023.01.17
728x90