2019의 게시물 표시

Unity에서 Rider가 프로젝트를 인식하지 못하는 문제

유니티는 폴더명이 곧 프로젝트 명으로 동작하는 것같다. 폴더명을 변경하면 JetBrain Rider로 소스코드를 열수 없다. 설령 연다고 해도 소스코드만 열리지 프로젝트를 인식하지 못한다. 가장 확실한 해결방법은 Unity 프로젝트 폴더에서 sln 파일을 제거한 뒤에 Unity>Edit>Preferences>External Tools에서 External Script Editor 항목을 Visual Studio 2017 또는 2019를 선택하고 Unity를 통해서 소스코드를 열어서 sln을 재생성하는 것이다. sln이 재생성되었음을 확인했으면 다시 External Script Editor를 Jetbrain Rider로 변경한 뒤에 Unity를 통해서 소스코드를 열어본다. 문제가 해결되었을 가능성이 높다.

콜백(Callback) 함수

콜백(Callback) 함수. 이름만 들어보면 무슨 말을 하는 건지 모르겠다. 대부분 인터넷에서 찾아볼 수 있는 글은 콜백 함수를 어떻게 사용하는가에 대해 설명할 뿐, 콜백이 뭔지는 설명해주지 않는다. 그래서 계속 검색을 하던 중에, 스택오버플로우에서 이 콜백 함수의 개념을 잘 설명해준 글을 찾았다. ( https://stackoverflow.com/questions/824234/what-is-a-callback-function ) 콜백 함수는 다른 함수에 의해 접근 가능하고, 첫 번째 함수가 종료가 되고 난 다음에 호출되는 함수 를 의미한다. 다른 함수에 의해 접근 가능하다는 말은 전역이나 static 함수에 접근한다는 뜻이 아니라, C/C++의 함수 포인터나, C#의 델리게이트 같은 걸로 함수를 다른 함수의 매개변수로 건네는 방식으로 어느 객체의 멤버함수에 접근한다는 뜻이다. 물론 마음만 먹으면 전역으로 만든 함수도 매개변수로 건네줄 수 있지만, 전역이면 매개변수로 접근하지 않고 그냥 호출하는게 편하다. 그리고 함수가 종료되고 난 다음에 호출한다는 것은, 매개변수로 받은 콜백 함수를 맨 마지막에 작업이 종료되는 시점에 호출한다는 뜻이다. 좀 더 기억하기 쉽게 생각하려면, Call ed at the back 을 떠올려보자. 한줄로 요약하면 콜백 함수는 어떤 함수가 작업을 다 끝낼 때 호출되는 함수다. 이걸 할려면 함수에 콜백 함수를 인자로 넣어야 하며, C/C++에서는 함수 포인터, C#에서는 델리게이트를 사용한다.

자료구조 정리

이미지
작성중 초안: 2019-05-12 1차 수정: 2019-06-27 개요 자료(data)는 정수, 실수, 문자, 등으로 구분할 수 있는 것들이다. 이 자료들을 효율적으로 저장하거나, 저장된 자료들을 활용하기 위해 자료구조라는 것이 등장하였다. 자료구조란 메모리에 자료를 저장하고, 메모리로부터 불러오는 방식을 의미한다. 보통 자료구조에 저장되는 자료를 원소(element)라고 부른다. 자료 구조의 기본 형태 대표적으로 배열(Array)과 연결 리스트(Linked List)가 있다. 배열 <그림 1. 배열의 논리적 구조> <그림 2. 메모리 공간에 배치된 배열> 배열의 특징은 다음과 같다. 동일한 타입의 자료를 저장. 메모리 상에 자료가 연속적으로 저장이 되어 있음. Index라고 불리는 키(key)값으로 배열에 저장된 자료, 즉 원소(element)에 임의 접근 이 가능함. 일반적으로 프로그램 실행 중에 크기를 변경할 수 없음. 즉, 정적 인 특성을 지님. 연결리스트에 구조가 간단하고 구현이 쉽다. 연결 리스트 <그림 3. 연결 리스트의 논리적 구조> <그림 4. 메모리 공간에 배치된 연결리스트> 연결리스트의 특징은 다음과 같다. 동일한 타입의 자료를 저장 메모리 상에 자료가 연속적으로 저장되어 있지 않으며, 하나의 원소는 다음 원소의 주소를 가지고 있음. 원소(element)에 접근하기 위해서 모든 원소를 순회해야 하는 순차 접근 이 필요함. 프로그램 실행 중에 크기를 변경할 수 있음. 즉, 동적 인 특성을 지님. 배열에 비해 구조가 복잡하고 구현하기 어렵다. 추상 자료형 한편 자료구조에서 수행되는 연산과 동작만 정의한 것을 추상 자료형 (Abstract Data Type; ADT)라고 부르며, 추상 자료형은 배열 또는 연결리스트를 기반으로 구현된다. 선형 자료 구조 선형