728x90

CS 92

C#의 string

[C#] 문자열 string 자료형 (tistory.com) [C#] 문자열 string 자료형 안녕하세요 아임코딩입니다. C# 에서는 문자열을 관리할 수 있는 string 자료형을 제공합니다. 유튜브 링크 https://youtu.be/kPu705T6Vdg System.String System.String 클래스는 문자열을 작성, 조작 및 비교할 수 imcoding-official.tistory.com System.String 클래스는 문자열을 작성, 조작 및 비교할 수 있도록 다양한 메서드를 제공합니다. 별칭으로는 string을 사용하여 프로그래머는 간편하게 문자열을 관리할 수 있습니다. C#에서 문자열을 사용하는 간단한 프로그램을 살펴보겠습니다. 더하기 연산자도 제공함 C# string의 기본적인 ..

CS/C# & Unity 2023.12.12

const와 readonly의 차이 (+ static)

const, readonly 둘 다 값을 수정할 수 없도록 하는 상수임. 둘의 차이는? const : 컴파일 타입의 상수 / readonly: 런타임 상수 const - 컴파일 타입 상수임 ( 컴파일 시 const 변수의 값을 가져옴) - 내장 자료형( 정수형, 실수형, Enum, String)에 대해서만 사용 가능함 - 변수 선언과 동시에 값을 할당해야 함 - 메모리 할당 위치는 Stack Memory임 (static 선언을 하면 heap 메모리에 저장 가능) readonly - 런타임 상수임 (exe or dll을 사용할 때 변수의 값을 가져옴) - 모든 자료형에 사용할 수 있으며, 생성과 동시에 초기화할 필요는 없음 - 생성자 단계에서 단 1번 할당을 통해 초기화 가능 - 메모리 할당위치는 Heap..

CS/C# & Unity 2023.12.12

직렬화와 역직렬화

데이터 직렬화(serialization)는 무엇이고 왜 필요한가? (tistory.com) 데이터 직렬화(serialization)는 무엇이고 왜 필요한가? 우선 이 글은 구글링에서 나오는 여러 가지 직렬화에 대한 글들과 설명들을 읽고 제 나름대로 한번 더 이해하기 편하도록 정리한 글입니다. 데이터 직렬화(serialization), 역직렬화(deserialization)는 hub1234.tistory.com 직렬화: 객체에 저장된 데이터를 I/O 스트림에 쓰기(출력) 위해 연속적인(serial) 데이터로 변환하는 것 역직렬화: I/O 스트림에서 데이터를 읽어서(입력) 객체를 만드는 것 객체를 직렬화한다: 객체 상태를 바이트 스트림으로 바꿔서 바이트스트림을 객체의 복사본으로 되돌릴 수 있음을 의미 앞서 ..

CS/C# & Unity 2023.12.12

게임에서의 삼각함수 활용

[게임이론] 삼각함수의 활용 (tistory.com) [게임이론] 삼각함수의 활용 definelife.tistory.com/search/%EC%82%BC%EA%B0%81 #define LIFE ZERO 인생 대 전환을 위한 기록, 프로그래밍과 IT 지식 소개 definelife.tistory.com 위의 삼각함수가 게임에서 어떻게 활용되는지 사례를 통해 알아본다. 1 definelife.tistory.com 게임수학) 게임을 만들때 삼각함수를 쓰는 예. (tistory.com) 게임수학) 게임을 만들때 삼각함수를 쓰는 예. 1. 원형 발사체. Vector2 dirVec = new Vector2(Mathf.Cos(Mathf.PI * 2 * i / roundNum) , Mathf.Sin(Mathf.PI * ..

게임에서의 외적과 내적

[유니티] 게임에서 Vector의 내적, 외적이 갖는 의의 (tistory.com) [유니티] 게임에서 Vector의 내적, 외적이 갖는 의의 보통 고등학교 때 기하와 벡터를 다루며 기본적으로 내적과 외적을 배우는데, 다들 전문적인 물리 엔진 제작과 같은 전문적인 업무가 아니면 쓸모없다고 생각하지만, 의외로 단순한 작업에서도 gnaseel.tistory.com 내적: A * B = |A| * |B| * cosX * 내적의 쓰임 1. 두 벡터 사이의 각도를 구할 수 있음 (ex) 퍼즐 슈팅게임) 2.물체가 앞에 있는지 뒤에 있는지 판별 가능 Cos은 좌, 우로 90도가 넘어가는 순간 음수의 값을 갖게 되기 때문 3.시야각 내에 물체 판별 플레이어 시야각이 x일 때, 플레이어의 시선과 오브젝터 위치벡터를 내..

스마트포인터 / 사이클 해결 방법

[C++] 스마트포인터(Smart Pointer) (tistory.com) [C++] 스마트포인터(Smart Pointer) RAII RAII는 C++에서 자주 쓰이는 idiom으로 자원의 안전한 사용을 위해 객체가 쓰이는 스코프를 벗어나면 자원을 해제해주는 기법이다. C++에서 heap에 할당된 자원은 명시적으로 해제하지 않으면 해 hmjo.tistory.com 스마트 포인터의 특징 자원을 획득한후, 자원 관리 객체에게 넘긴다 자원관리 객체는 자신의 소멸자를 사용하여 자원이 확실하게 해제 되도록 한다 버그 보완(안전), 자동청소, 자동 초기화를 해준다 스마트 포인터는 C++에서 안전하고 효율적인 코드를 작성하는데 유용하다 delete를 이용해 직접 메모리를 해제하지 않고, 스마트 포인터의 소멸자에 존재..

CS/C++ 2023.12.08

버퍼 오버플로우

버퍼 오버플로란? | Cloudflare 버퍼 오버플로: 버퍼에 데이터를 쓰는 소프트웨어가 버퍼의 용량을 초과하여 인접한 메모리 위치를 덮어쓸 때 발생하는 비정상적인 현상 공간이 충분하지 않은 컨테이너에 너무 많은 정보가 전달되어 결국 해당 정보가 인접한 컨테이너의 데이터를 대체하게 되는 것 프로그램 실행을 방해하거나 제어하기 위해 컴퓨터의 메모리를 수정하려는 공격자가 악용할 수 있음.

CS/C++ 2023.12.08

함수 호출 stack frame 관련

[자료구조] 스택 프레임(Stack Frame) (velog.io) [자료구조] 스택 프레임(Stack Frame) 함수가 호출될 때 스택에 생성되는 공간인 스택 프레임 (Stack Frame) velog.io 스택 프레임(Stack Frame) 함수가 호출될 때, 그 함수만의 스택 영역을 구분하기 위하여 생성되는 공간이다. 메모리의 스택 영역은 함수의 호출과 관계되는 지역 변수 및 매개변수가 저장되는 영역이다. 스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다.

CS/C++ 2023.12.08

전방선언이 필요한 이유?

C++ 전방 선언 :: Gyong (tistory.com) C++ 전방 선언 전방 선언 -> 외부 파일 어딘가에 해당 클래스가 존재한다고 알려주는 역할 다양한 파일들을 만들고 서로 엮는 과정에서 불필요한 파일의 정보까지 가져오는 상황이 발생한다. 이를 해결하기 위 gyong0.tistory.com 코딩맛집 :: [C++] 전방선언 (Forward Declaration) (tistory.com) [C++] 전방선언 (Forward Declaration) C++에서 미리 함수를 정의하지 않으면 순차적으로 코드를 읽어들여 오류를 발생시킨다. (식별자 찾을 수 없음) 그러나 전방선언이 이뤄졌다면 컴파일러는 오류 없이 지나간다. C++ 전방선언 (Forwar coding-restaurant.tistory.com ..

CS/C++ 2023.12.08

부모클래스 소멸자를 virtual로 만들지 않으면?

C++에서 소멸자에 virtual을 사용하는 이유는? (tistory.com) C++에서 소멸자에 virtual을 사용하는 이유는? C++에서 소멸자에 virtual을 사용해야 하는 이유는 뭘까? 우선 ClassA를 부모 클래스, ClassB를 ClassA를 상속하는 자식클래스라고 할때 생성자와 소멸자는 다음과 같이 호출된다. ClassB *B = new ClassB (A 생 life-inus.tistory.com ClassA = 부모 클래스 / ClassB = ClassA를 상속하는 자식클래스라고 할때 ClassB *B = new ClassB (A 생성자 -> B 생성자) delete B (B 소멸자 -> A 소멸자) 생성자와 소멸자는 이 순서로 호출됨 if 다형성 이용을 위해 ClassA 포인터에 자..

CS/C++ 2023.12.08
728x90