728x90

프로그래밍 이야기 43

VisualStudio 소스코드 utf-8 인코딩 설정하기

종종 VisualStudio 로 작업을 하다보면 소스코드 인코딩이 제멋대로 바뀌는 경우가 있었음. Unity 관련 문제인지, SVN 관련 문제인지는 알 수 없음. 아무튼, VisualStudio 의 EditorConfig 를 생성해서 chatset 을 명시적으로 설정할 수 있음. 순서 1. VisualStudio 에서 Solution Explorer 열기 2. Solution Explorer (솔루션 탐색기)에서 프로젝트를 우클릭. 3. Context Menu 에서 [추가 > 새 EditorConfig(IntelliCode) 클릭. 4. 이 때 프로젝트 파일이 있는 경로에 .editorconfig 파일이 생성됩. 5. 메모장으로 .editorconfig 파일 열기 6. 아래 설정 텍스트 블럭을 추가. [..

파이썬(Python) - 폴더 아래 소스코드 인코딩 일괄 변환 스크립트

유니티 엔진으로 개발하던 프로젝트의 소스코드가 어째서인지 어느 순간 인코딩이 바뀌어 버렸습니다. 원인은 알 수가 없는 상황. 코드는 모두 utf-8 인코딩으로 관리하고 있었는데, 갑자기 인코딩이 변경되고 코드 내에 한글이 모두 깨져있는 상황. 그래서, 일단 파이썬으로 소스코드 전체 일관 인코딩을 변경해주는 코드를 짜서 돌렸습니다. 아래는 원본 소스. 폴더 이름과 소스코드 확장자, 인코딩을 적절히 수정해서 돌리면 됩니다. 그리고 chardet 모듈을 사용하기 때문에 pip install chardet 커맨드로 chardet 모듈을 설치해야 합니다. import os import codecs import chardet # 현재 경로 아래의 scripts 폴더 내 파일들의 인코딩을 변경합니다. director..

스마트 포인터 노트 auto_ptr, unique_ptr, shared_ptr, weak_ptr

비야네 스트로스트룹 "디자인 패턴 RAII (Resource Acquisition Is Initialization)" "자원의 획득은 초기화다" == "자원 관리를 스택에 할당한 객체를 통해 수행" C++11 이전 auto_ptr 이 등장. 많은 문제가 있었음. 참조 : Why is auto_ptr being deprecated? https://stackoverflow.com/questions/3697686/why-is-auto-ptr-being-deprecated " auto_ptr을 직접적으로 대체할 수 있는(또는 어쨌든 이에 가장 가까운) 것은 unique_ptr입니다. auto_ptr은 할당될 때 소유권을 이전합니다. unique_ptr도 소유권을 이전하는데, codification of move..

MSB8020 Error v143에 대한 빌드 도구를 찾을 수 없습니다. 해결법

오류 MSB8020 v143에 대한 빌드 도구(플랫폼 도구 집합 = 'v143')를 찾을 수 없습니다. v143 빌드 도구를 사용하여 빌드하려면 v143 빌드 도구를 설치하십시오. [프로젝트] 메뉴를 선택하거나 솔루션을 마우스 오른쪽 단추로 클릭한 다음 "솔루션 대상 변경"을 선택하여 현재 Visual Studio 도구로 업그레이드할 수도 있습니다. 설치된 플랫폼 도구 집합과 프로젝트의 설정이 달라서 생기는 문제. 설치된 플랫폼 도구 집합으로 변경해주거나, 프로젝트 설정을 변경해서 해결해주면 됨. 프로젝트 속성 > 일반 탭으로 이동. 플랫폼 도구 집합 드롭다운 받스를 눌러서 변경. 이렇게 변경하고 다시 빌드 해보면 성공.

소수점 연산 오차 관련 (Epsilon, Approximately, IsNearlyEqual)

컴퓨터는 0과 1, 즉 2진수로 숫자를 처리. 실수의 소수점 숫자를 2진수로 정확히 표현할 수 없는 경우가 있기 때문에(비트가 무한히 반복) 소수점 연산을 할 때에는 미세한 오차가 발생할 수 밖에 없음. 예시를 보면 // C# using System; class Program { static void Main() { float num1 = 0.1f; float num2 = 0.2f; float sum = num1 + num2; Console.WriteLine("Sum: " + sum); } } // C++ #include int main() { float num1 = 0.1f; float num2 = 0.2f; float sum = num1 + num2; std::cout

C# 리플렉션(Reflection) 개념잡기

C#에서 리플렉션(Reflection) 기능은 프로그램이 런타임 중에 동적으로 객체의 타입 정보를 획득해서 접근하고 활용할 수 있는 기능. 리플렉션은 주로 System.Reflection 네임스페이스 내의 기능들을 사용하여 런타임에 타입 정보를 동적으로 검사하거나 조작하는 것. GetType() 메서드는 객체의 런타임 타입을 가져오는 것으로, 이것도 정적인 타입 정보를 가져오는 것이므로 일반적으로는 리플렉션을 사용했다고 보기 어렵. System.Reflection 네임스페이스의 기능을 사용하는 경우에야 리플렉션을 사용한 것으로 간주하며, typeof 연산이나 GetType() 메서드는 해당 범주에 포함되지 않는 것으로 볼 수 있음. 왜 이름이 리플렉션(Reflection)일까? C#의 리플렉션(Refle..

Freeware Hex Editor and Disk Editor

HxD는 신중하게 설계된 빠른 헥스 편집기로, 원시 디스크 편집 및 메인 메모리(RAM) 수정 외에도 모든 크기의 파일을 처리할 수 있습니다. 사용하기 쉬운 인터페이스는 검색 및 바꾸기, 내보내기, 체크섬/다이제스트, 바이트 패턴 삽입, 파일 분쇄기, 파일 연결 또는 분할, 통계 등과 같은 기능을 제공합니다. 편집 기능은 순전히 기술적인 차이점을 숨기기 위해 간소화되었기 때문에 단순하고 작업 지향적인 작업에 중점을 둔 텍스트 편집기와 같은 방식으로 작동합니다. 예를 들어, 드라이브와 메모리는 파일과 유사하게 표시되며 함께 속해 있을 가능성이 있는 데이터를 잘라내는 섹터/지역 제한 보기와 달리 전체로 표시됩니다. 드라이브와 메모리는 실행 취소를 지원하는 등 일반 파일과 동일한 방식으로 편집할 수 있습니다...

친절한 엔지니어링 <Kind Engineering> How To Engineer Kindness by Evan Smith

에 대한 글과 영상 강의입니다. 영상은 아래 링크. https://www.youtube.com/watch?v=wTezaqqyzlk 친절하게 대할 때 얻을 수 있는 이점에 대해서만 설명합니다. 이 글의 나머지 부분에서는 실용적인 조언과 팁을 통해 친절하게 응대하고 친절을 장려하는 방법에 대해 더 자세히 설명. 0. 친절이란 무엇인가요? 1. 정직 2. 비동기 커뮤니케이션: 코드 리뷰 3. 심리적 안전 4. 피드백/비판 5. 추가 읽기 6. 결론 What Is Kindness? 이 뭘까요? 은 다른 사람에게 투자하고, 그들을 도울 방법을 찾고, 그들이 있는 곳에서 만나는 것. 친절은 상대방의 입장에서 생각하고 상대방의 감정과 배경을 고려하여 도움을 주려고 노력하는 것입니다. 사람마다 친절에 대한 정의는 다르..

C# .Net Framework v4.8 이상 부터는 Dictionary Key 로 enum 을 써도 garbage 가 발생하지 않는다

Key 를 찾는 과정에서 boxing 이 일어나 가비지가 생기는 문제가 과거에 있었는데 수정되어서 문제가 해결됨. EnumEqualityComparer 로 비교 연산을 처리하도록 수정됨. 참고 https://enghqii.tistory.com/69 C#에서 Dictionary에 Enum을 써도 괜찮은것 같다 전에 이런 글에서 Dictionary에 Key값으로 enum을 넣으면 내부에서 boxing이 일어나는데, 그 이유는 Dictionary 내부에서 IEqualityComarer로 ObjectEqualityComparer를 사용하게 되기 때문이라고 했다. 4 버전대 이상 enghqii.tistory.com https://pizzasheepsdev.tistory.com/2 이제는 Unity에서 Dictio..

ECMA 란?

표준의 필요성 (The necessity of standards) 표준은 한 제조업체에서 만든 컴퓨터용으로 준비된 데이터를 다른 제조업체에서 만든 컴퓨터에서도 최소한의 변경만으로 사용할 수 있는 가능성을 제공합니다. 또한 여러 제조업체에서 프로그래밍 언어를 준비할 때 작업의 중복을 피할 수 있습니다. 1960년 이전에 일부 국가 기관에서 종이 테이프와 코드와 같은 이 분야의 표준 작업을 시작했지만, 이들 기관 간 또는 제조업체 간에는 협업이 이루어지지 않은 것으로 보입니다. 국가마다 요구 사항이 다를 수 있으므로 모든 곳에서 동일한 표준을 사용할 필요는 없지만 표준은 최소한 호환 가능해야 합니다. 업계가 주도하는 이니셔티브 (A initiative driven by industry) 이러한 작업을 조정하..

728x90
반응형