목록코딩 (21)
공부일지
작성 목표데이터 구조와 자료형 개념의 구조화 스킵데이터의 종류 데이터 형식 : 기본 데이터 형식 + 복합 데이터 형식(구조체, 클래스, 배열 등등)복합 데이터 형식 → 오디오, 이미지 등등 표현 변수 : 데이터를 담는 메모리 어딘가에 존재하는 일정 크기의 공간프로그래머는 컴파일러에게 변수를 선언한다. 선언 동시 초기화 여러 변수 한번에 선언 : 동일 데이터 타입일 시 초기화(Initialization)최초의 데이터 할당.미입력 시 쓰레기 데이터 할당 → 소프트웨어가 예상치 못하게 동작.따라서 초기화하도록 C#이 칼들고 협박함.에러 메시지 + 실행 파일 미생성보통 0으로 초기화 리터럴(Literal : ‘말 그대로, 문자 그대로’)고정값을 나타내는 표기법int a = 100; (a : 변수, 100 : 리..
기본 데이터 형식 CPU 연산 장치ALU(Arithmetic Logic Unit) : 정수만 처리하는 장치FPU(Floating Point Unit) : 부동 소수점만 처리하는 장치따라서 CPU에게 데이터 종류에 따라 명령을 내려야 함.CPU는 데이터 타입 판단 능력 없음.컴파일러가 대리 업무 숫자 데이터 형식정수형 : 9가지왤케 많음?닭 잡는데 소 잡는 칼 쓸 수 없다고, 실제 사용되는 리터럴의 크기에 비해 과한 크기의 메모리 선언은 낭비이기 때문.추가로 char도 정수형1 바이트(byte) == 8비트(bit)바이트는 메모리의 주소나 CPU 처리하는 데이터의 단위. 예제 2진수, 10진수, 16진수 리터럴2진수 리터럴 : 0b 접두사byte a = 0b1111_0000;언더바(_)는 자릿수 구분자는 ..
💡 대표적인 코딩 컨벤션 검색 가능한 이름을 사용하라 함수명은 동사로 지어라 함수의 파라미터는 3개 이하가 적당하다 함수의 파라미터로 boolean타입을 사용하지 마라 변수명을 너무 축약하지 마라 함수는 하나의 역할을 하는 것이 좋다. 💡 대표적인 코딩 컨벤션 1. 검색 가능한 이름을 사용하라 2. 함수명은 동사로 지어라 3. 함수의 파라미터는 3개 이하가 적당하다 4. 함수의 파라미터로 boolean타입을 사용하지 마라 5. 변수명을 너무 축약하지 마라 6. 함수는 하나의 역할을 하는 것이 좋다. 💡 삼항 연산자를 쓸 수 있으면 if-else대신 쓴다 중괄호 없는 한 줄짜리 블록을 쓰지 않는다 ex) if문 Switch문을 쓸 수 있으면 사용하는것을 권장 문자열 포멧팅은 string interpolat..
풀매니저란 무엇일까🤔📌 오브젝트 풀(Object Pool) : 객체를 미리 생성해 두고 필요하면 가져다 쓰고, 다 쓰면 풀에 반납하는 형식 ( 웅덩이에 객체를 넣어두고 필요할 때 꺼내쓴다는 느낌) 풀은 보통 리스트, 스택, 큐 등으로 구현.Stack이 그나마 낫다고 함. 장점생성과 소멸이라는 큰 비용의 작업을 최소화메모리 할당과 해제의 반복을 막아줌.가비지 컬렉션에 따른 성능 저하도 막아줌빈번하게 생성하고 파괴되는 객체에서 애용😺 (ex. 총알, 이펙트) 단점자칫 잘못하면 메모리 사용량 늘림오브젝트 풀의 크기를 적당히 조절해야해...+자주 사용하지 않는 오브젝트는 판단해서 가끔씩 제거하도록 ⚙풀매니저의 선언과 사용🔨using System.Collections; using System.Collections..
스택이란 ‘업보 스택 쌓는다.’ 라는 말로서 적어도 나에게는 친숙한 스택이라는 자료구조. 오늘은 이 친구를 알아보자. 스택, 영어로 Stack은 위와 같이 어떠한 것들이 무더기로 쌓여 있는 것을 의미한다. 자료구조에서도 이와 유사한 역할을 진행한다. 스택의 구조 Stack을 배열로 어떻게 만들까? 배열 안에 아무 데이터도 없으니 현재 index는 -1로 설정! 스크립트로 구현해보자 초기 MyStack.cspublic class MyStack { private int[] arr; private int index; public int Size; public MyStack(int size) { Size = size; arr = new int[size]; index = -1; } //추가 public void ..
유한 상태 머신이란?Idle, Move, Attack 등등의 상태에서 상태로 조건에 따라 전환되며 동작되는 장치의 모델 Idle 상태 (멍 때리는 동작) → 조건(밥) 충족 → Happy 상태 (웃는 동작, 춤추는 동작) 유한 상태 머신 : 상태 + 조건 + 동작싸이코패스마냥 행복한 상태와 정적인 상태 또는 행복한 상태와 화난 상태가 동시적이지 못하는 것처럼, 순간마다 상태는 한번에 하나만 진행된다. 예시예시 - EnemyIdle 상태\color{white}\colorbox{pink}{Idle 상태}Idle 상태였던 적의 감지범위에플레이어가 들어오게 된다면플레이어가 감지(조건)\color{#cbaacb}\colorbox{#f6eac2}{플레이어가 감지(조건)}플레이어가 감지(조건)enemy가 플레..
Q. 데이터 10을 저장하고 싶을 때 데이터 10이 어디에 저장되느냐? 맨앞? 맨끝?정답은 Random이다. 이렇게 메모리의 주소를 지목하여 데이터를 대입하는 과정을 우리는 변수에 데이터를 대입하며 익혀왔다. int x = 10; int y = x; x = 20; Console.WriteLine(y); //result : 10 person yeom = new person("염예찬", 32); person chad = yeom; yeom.age = 33; Console.WriteLine(chad.age); //result : 33정수형 변수의 경우각 데이터에게 서로 상호 무관한 자기의 방이 있음. 복사가 진행될 때 해당 방에서 내용물을 복사 시켜줌.Call by Value 클래스의 경우정확한 설명은 아니나..
추가 조사 없이 TIL 적으려 내 맘대로 비유하고 정의 내린 부분이 많음.오브젝트란 무엇인가? 우리가 변수 선언하고 카메라 설정하는 모든 것들은 전부 오브젝트를 만드는 과정이다. 큐 설명선입선출 사용하는 입장에서의 제네릭 예제 1 : 랜덤으로 큐브 만들기우리는 C#에서 프로그램이 main()에서 시작함을 알고 있다.사운드매니저, 게임매니저 등등 스크립트가 많아지면 어디서 시작하는지를 알기 어려움.이와 비슷하게 메인이 되는 진입점인 GameScene을 만들어 진행함. GameScene.cspublic class GameScene : MonoBehaviour { void Start() { Debug.Log(CharacterManager.Instance); } } CharacterManager.cs - 싱글턴..