목록전체 글 (37)
공부일지
연속적 동형 데이터 타입(Homogeneous Data Types) C/C++ 에서는 연속적인 메모리 공간에 대한 주소이며C# : 배열 객체로서 메모리 상의 배열에 대한 정보를 가지며 System.Array 클래스로 생성되어 속성과 메서드를 사용할 수 있는 객체 인스턴스 가변 배열(Jagged Array) : 배열 요소가 서로 다른 차원과 크기를 갖는 배열.가변 배열 : int [][] a = ne wint [][];2차원 배열 : int[ , ] a = new int[ , ];특일반 다차원 배열에서 공간의 낭비가 심할 때각 차원마다 다른 배열 크기를 가져야 할 때 동적 배열(Dynamic Array) : 최대 크기를 미리 알 수 없을 때, 중간에 확장 또는 축소하는 기능을 갖는 배열장점 : 꼭 필요한 ..
자료구조(Data Structure) : 데이터를 효율적으로 액세스하고 조작할 수 있도록 구조를 만들어 저장하고 관리하는 것.어떻게 구현할지 - 자료형의 물리적 형태로 구현 추상적 자료형(Abstract Data Type, ADT) : 특별한 구현방법을 지정하지 않은 자료형알고리즘이 문제를 해결하는데 필요한 자료형과 그 자료를 사용한 연산들을 수학적으로 정의한 모델무엇이 구현되어야 하는지 - 자료형의 논리적 형태로 정의하는것 자료구조단순 구조(Primitive Data Structure) : 기본적 데이터 타입 ex) 정수 실수 문자 부울린선형 구조(Linear Data Structrue) : 앞 자료와 뒤 자료의 1대 1 구조.배열, 연결리스트, 스택, Queue 등비선형 구조(Non-Linear Da..
작성 목표데이터 구조와 자료형 개념의 구조화 스킵데이터의 종류 데이터 형식 : 기본 데이터 형식 + 복합 데이터 형식(구조체, 클래스, 배열 등등)복합 데이터 형식 → 오디오, 이미지 등등 표현 변수 : 데이터를 담는 메모리 어딘가에 존재하는 일정 크기의 공간프로그래머는 컴파일러에게 변수를 선언한다. 선언 동시 초기화 여러 변수 한번에 선언 : 동일 데이터 타입일 시 초기화(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..