목록분류 전체보기 (162)
Coding Memo
C#에서 Protobuf를 사용할 때는 간단하게 nuget 패키지에 있는 Google.Protobuf만 설치하면 되지만, C++은 직접 헤더 및 라이브러리들을 추가해주어야 한다. (C#이 굉장히 편했던 것이었다!!!!!!!!!!!!!!!!!!!) 먼저 짚고 넘어가야 할 것은 프로토버퍼 특정 버전 이후에 릴리즈 된 프로젝트는 단순히 cmake로 솔루션을 생성하고 빌드하려고 하면 에러가 날 것이다. 이 경우 다음글을 참고하자. ( https://minttea25.tistory.com/128 ) (그 이전 버전은 cmake 폴더에 있는 CMakeLists.txt파일을 포함하고 있어서 하는 방법이 다소 간단하다.) (일단 확인해 본 것은 3.19까지는 가능한 것 같다.) 추가적으로 proto파일에 대한 outp..
Visual Studio에서 빌드 전/후로 이벤트 명령줄을 추가해 줄 수 있다. 빌드 전/후에 이벤트를 추가함으로써 프로젝트와 관련된 외부 파일 컨트롤이나 파일 추가 및 삭제, 이동 등의 명령을 빌드시에 한번에 실행 시킬 수 있다. 매번 해야하는 반복되는 작업을 단지 프로젝트 빌드 한번으로 한꺼번에 해줄 수 있다는 것이다. 1. Visual Studio에서 솔루션 탐색기에서 솔루션을 선택하고 우클릭->속성(Properties)를 클릭한다. 2. 좌측 옵션에서 Build Events를 클릭 3. Command Line에서 edit을 선택해 명령줄을 추가 할 수 있다. 여기서 말하는 명령 줄은 흔히 cmd에서 입력하는 명령과 같다고 생각하면 된다. 총 3가지 경우에 대해 추가해 줄 수 있다. 빌드 전 이벤트..
이 글은 `알고리즘 문제해결전략 - 구종만 (인사이트)의 내용을 일부 참고하여 작성하였습니다. 에라토스테네스의 체를 이용한 소수 찾기 기법은 2 부터 시작해 해당 값이 소수이면, 그 값의 배수를 숫자가 있는 풀(pool)에서 지워나가는 방법을 이용해 풀에 소수만 남기는 기법이다. 어떤 소수인 n에 대해서 n * i (i > 0)에 해당하는 값을 걸러내는 체를 이용한다. 위 방법에서 체에 대한 배열의 크기는 확인하려는 값의 최댓값이 될 것이다. 만약 1억까지의 수를 확인하려고 하면 boolean 타입의 배열을 써도 1억 바이트나 사용해야 한다는 것이다. 사실 0과 1만을 표현하는데 있어서 가장 좋은 데이터는 비트이다. 하지만 보통 프로그램 언어에서는 true/false를 표현하는데 사용되는 boolean ..
최대 연속 부분 구간 합 문제로 어떤 하나의 문제를 다양한 방법으로도 풀 수 있는 경우가 있다는 것을 확인하고 시간복잡도가 어떻게 차이가 나는지 확인해보자. 참고: 이 내용은 `프로그래밍 대회에서 배우는 알고리즘 문제해결전략 - 구종만 지음`에서 나온 내용을 일부 가져왔다. 문제 정수로 이루어진 1차원 배열에서 연속된 부분 구간 중 그 합이 최대인 구간의 합을 구하는 문제이다. 예를 들어 다음과 같인 배열이 있을 때, 연속된 부분 구간 중 최대 합은 12 이다. [ -5, 10, -5, 7, 0, -3, 1, -5, -2, 5 ] => [ 10 , -5, 7 ] => 10 + (-5) + 7 = 12 풀이 1 : 모든 길이에 대해 모든 합 계산하기 첫번째 인덱스 부터 시작해서 길이가 1, 2, 3, ....
Addressable Asset을 사용하고 있는 프로젝트를 빌드 시 발생하는 에러 해결방법 스크립트가 정상적으로 컴파일 되는지 확인 (디버그 창에 SBP ErrorError 이후 좀 더 내려보면 어떤 오류가 있는지 추가적으로 나올 때도 있으니 확인하고 그것부터 해결하면 된다.) 에디터에서 실행했을 때는 잘 실행 되었는데 빌드 시 오류? => 스크립트 내에 프로그램 실행 시에 사용하지 않는 namespace나 참조 등이 있는지 확인 => 예를 들어 UnityEditor.Editor 등의 네임스페이스는 말그대로 에디터에서만 사용가능하고 빌드 시에는 참조할 수 없는 네임스페이스다. 만약 Editor 등의 클래스를 사용하였다면, 사용한 코드에 대해서 조건부 컴파일을 지정해주어야 한다. #if UNITY_EDIT..
조건부 컴파일 심볼 정의는 파일의 첫줄에 해야한다. #define WINDOWS // ... #if WINDOWS //... #else //... #endif 조건부 컴파일 심볼이 하나의 파일에만 사용되면 간단히 위의 예시처럼 하면 된다. 만약, 저 심볼을 하나의 파일에서가 아니라, 다수의 파일에 적용해야하는 경우가 있다. 예를 들어, 조건부 컴파일 디렉티브로 플랫폼 별 코드를 작성해 놓았는데, 이런 코드가 하나의 파일에서가 아니라 프로젝트의 다수의 파일에 각각 다 심볼이 정의가 되어있을 때가 그런 경우다. 이 경우에는 빌드를 A로 하고 싶으면 심볼이 들어가 있는 모든 파일에 '#define A'가 들어가 있는지 다 확인해야한다. 그 반대로 A가 아닌 빌드를 원한다면 '#define A'가 모두 주석 처..
.NET Framework 1.0 ~ 4.8 .NET Core 1.0 ~ 3.1 .NET 5 이후 C# Version 1.0 ~ 7.3 7.0 ~ 8.0 9.0 ~ 문서에 나와있는 테이블 참고: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version C# language versioning - C# Guide Learn about how the C# language version is determined based on your project and the reasons behind that choice. Learn how to override the default manually. learn..
공통적으로 Microsoft에서 개발한 프레임워크로, 다양한 종류의 어플리케이션을 개발하고 실행하는 기술을 제공해준다. 개발된 순서 .NET Framework -> .NET Core -> .NET (5.0, 6.0, 7.0 ...) .NET Framework 주로 Windows에서 실행되는 프로그램을 개발하기 위해 사용되는 프레임 워크이다. 초기에 개발되고 사용되었고 .NET Framework의 한계점과 개선을 위해서 이후에는 .NET Core가 등장하였다. 1. Windows Desktop, ASP.NET 웹, Windows 서비스 등의 개발에 활용된다. 2. CLR (Common Language Runtime): Java의 JVM과 비슷한 역할로, .NET Framework의 실행 환경으로, 코드 실..