본문 바로가기

분류 전체보기100

Delegate / 추상 클래스와 인터페이스 Collection 컴퓨터공학에서 흔히 '자료구조'라고 부르는 영역의 내용으로, 데이터를 특정한 방식으로 저장하는 방법이다. 데이터의 활용 방법에 따라 저장하는 방식을 다르게 한다. (효율성) 같은 성격을 띠는 자료들을 모아주는 자료구조이다. Delegate (1) Comparison 작으면 >0, 같으면 0, 크면 결과 (단, 입력이 한 개라면 소괄호 생략 가능함) ex. 두 수를 더하는 함수 / (x,y) => x+y; * 제네릭 델리게이트를 사용하는 이유 ) delegate를 사용하기 위해 순수한 delegate를 한 번 더 정의하는 것을 방지함. 데이터 이동 시 주의 사항 (값과 참조) VS 에서 C# 작성 시 텍스트 색상의 의미 값, 구조체 : 연두색 참조, 클래스 : 초록색 데이터를 참조할 때.. 2023. 12. 29.
Array와 List의 차이 Array와 List의 차이 1. 크기의 유연성 Array는 코드에서 지정한 길이만큼 고정적인 크기를 갖는다. 반면 List는 Array에 비해 유연한 길이를 갖는다. (가변배열) 2. 메모리 사용량 (CS 상식 : 메모리는 값과 주소를 가질 수 있다.) Array의 메모리는 순차적으로 정리된 반면 List의 메모리는 비순차적이다. 따라서 List의 값은 상대적으로 Array에 비해 메모리가 들고 있어야 할 정보량이 많아진다. 그래서 같은 양의 정보를 담고 있는 배열이라면, List가 더 많은 메모리를 사용한다. 3. 메모리 낭비 List가 메모리 낭비가 없는 이유는 가변배열이기 때문에 필요한 만큼만 정보를 들고 있을 수 있기 때문이다. Array는 처음 선언한 만큼의 공간을 차지하기 때문에 정보가 가득.. 2023. 12. 28.
(C#) 메모리 관리 / Generic Class 메모리 컴퓨터는 메모리에 올라온 데이터들만 처리할 수 있다. 메모리에서 해제된 데이터는 더 이상 유효하지 않다. (1) 코드 영역 실행할 프로그램의 코드. 텍스트 영역이라고도 하는데, 사람이 입력해서 눈으로 보이는 모든 문자와 숫자들을 의미한다. (2) 데이터 영역 주로 static 과 같은 전역 변수, 정적 변수를 사용해서 메모리에 할당하는 것. 데이터 영역에 올라오면 메모리 어느 곳에서든 자료를 인식하고 처리할 수 있다. * CS 지식 참조(reference) 형식 : String(캐릭터의 배열), Array, Delegate, 사용자 생성 클래스들 값(value) 형식 : Enum(사용자 열거형), Int32, Double, 사용자 구조체 등등 (3) 힙(Heap) 동적으로 관리된다. 힙 메모리는 .. 2023. 12. 27.
안 좋은 코드 시리즈 4탄 안 좋은 코드 시리즈 4탄 16. 추측성 일반화 (YAGNI 원칙 위배) 불필요하게 복잡한 코드는 지양하자. 안 쓰는 메소드를 굳이 넣어서 주석 달지 말자. 코드의 3원칙 (1) YAGNI - 미래를 생각해서 미리 기능을 추가해놓지 말자. (2) KISS - 웬만하면 간단하고 이해하기 쉬운 것을 선택하자. (3) DRY - don't repeat yourself . 중복을 피하자 (같은 코드와 로직을 반복하지 말자) 17. 긴 매개변수 목록 매개변수가 많으면 가독성이 떨어진다. 해결방법 ) 질의 함수로 바꾸기, 객체를 통채로 넘기기, 플래그 인수를 제거하기, 여러 함수를 클래스로 묶기 (1) 질의 함수로 바꾸기 클래스 변수에서 해결이 된다면 매개변수를 넣지 않고, 클래스 내에서 계산하고 바로 return.. 2023. 12. 26.
게임 UI의 이해 게임 UI 제작에 앞서 게임 UI에 대한 공부를 선행했다. 게임 UI의 특징 (1) 몰입성을 위한 밝고 강렬한 색상, 고해상도 이미지, 크고 굵은 폰트 사용 (2) 유저가 빠르게 이해할 수 있도록 정보를 요약해 제공 (3) 게임이 플레이되는 화면 중앙에 집중하도록 최대한 단순하게 디자인 게임 UI 제작 시 주의사항 (1) UI가 게임 진행을 해쳐서는 안 됨. (2) 처음 접하는 사람도 이해하기 쉽도록 단순한 구조를 가져야 함. (3) 중요한 것은 강조하고 불필요한 내용은 삭제함. (4) 화면 크기에 맞게 출력되는지 확인 해야함. (잘리거나 비뚤어지지 않았는지) Unity 엔진에서 Canvas 의 이해 Canvas 의 Render Mode 가 Screen Space 라면, Rect Transform 을 변.. 2023. 12. 25.
Player Input System Unity 2D 게임 개발 일지 Player Input system 에서 Behavior 항목 (1) Send Message - OnMove, OnLook 함수를 해당 object에 붙어있는 스크립트에서 찾는다. (2) Broadcast Message - OnMove, OnLook 함수를 해당 object + 하위 자식들에게 있는 스크립트에서도 찾아온다. (3) Invoke Unity Events - Event라는 탭이 새로 생성된다. Unity 자체적으로 Move와 Look 함수를 지정해서 이벤트를 연결한다. UI 제작 시 버튼 만드는 방식과 유사하다. 엔진을 직접 이용하는 직관적인 방식. (4) Invoke C Sharp Events - 해당 Input system 에 스크립트를 생성한다. 코드 작성.. 2023. 12. 22.