![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/u8O9V/btr1lzUhK4b/Z6t5uKet33vMrbCS1DVqS0/img.png)
## 개요 오랜만에 닷넷 및 C# 개발로 돌아왔더니 옛날에 공부했던 내용들이 가물가물해서 프로그램 설계시 주요 키워드들을 다시 정리해보도록 한다. (keywords : compiler에게 알려주기위해 미리정의된(predefined) 예약된(reserved) 식별자(identifiers)) ## 접근제한자(Access Modifier) - public : 접근 제한없음 - protected : 파생type까지만 접근 가능 - internal : 현재 어셈블리에서만 접근 가능 - private : 현재 type에서만 접근가능 - protected internal이나 private protected는 개인적으로 잘 안쓰고 가독성도 떨어진다고 생각하기에 패스 접근제한자는 되도록 default보다 명시적으로 선언..
Unity 개발에 있어 핵심요소중 하나는 직렬화시스템이라고 할 수 있기에 정리해본다. ## 직렬화(Serialization) - 컴퓨터 과학의 Data Storage 측면에서 데이터구조나 객체 상태를 다양한 플랫폼 또는 전송간에도 재구성(역직렬화;Deserialization)할 수 있는 포맷(byte stream)으로 변환하는 프로세스 - 직렬화 방식은 컴퓨터가 처리하기 쉬운 이진(binary)방식 byte stream과 사람이 처리하기 쉬운 text방식 byte stream이 있다(e.g. 이미지에 사용되는 이진방식포맷, 네트워크간 데이터 전달에 사용되는 JSON같은 text방식포맷) - 컴퓨팅과 직렬화는 떼어 놓을 수 없는 관계 - 데이터 지속성(Persistence)를 위해 저장장치 또는 DB에 저..
유지보수시에 버그 발생을 높이고 디버깅이 힘들어지므로 되도록 멀리하는것이 좋지만 게임과 같은 특정분야에서 성능이나 효율성(소규모개발)을 이유로 Singleton Pattern이 많이 쓰이는것 같아 정리하도록 한다. ## 개요 MonoBehaviour나 ScriptableObject같은 Unity Object를 Singleton으로 만들수도 있지만 객체 설계 취지에서 벗어나고 객체 lifetime에 대한 제어권이 Unity C++ Engine에 있다는게 찝찝하기에 개인적으로는 사용을 지양한다. 참고로 대충 아래와 같은 방식으로 `Awake()`를 통해 초기화하해서 사용하며 안정성을 위해 부가 코드가 추가될 수 있다. ## MonoBehaviour Singleton 보통 싱글톤을 상속과 일반화를 통해 많이 ..
개요 게임이 실행될때 초기화를 위한 작업이 필요하다면 `RuntimeInitializeOnLoadMethod`라는 attribute를 사용하여 설정 가능하다. 해당 어트리뷰트로 설정된 static method는 게임이 로드된 후 호출된다.(invoked) Assets폴더 하위 C# 스크립트의 static method 중 하나에 해당 attribute를 설정해서 정의 가능하다. Scene에 올라가서 동작하는게 아니기 때문에 `MonoBehaviour`와 같은 Unity클래스 외 C#클래스 어느곳에 정의해도 무방하다. 예를들면 Assets root폴더에 AppMain.cs 스크립트를 만들고 아래와 같이 설정 가능하다. using UnityEngine; internal class AppMain { [Runti..
수학, 물리랑 관계없이 살다가 게임개발에 발을 들여놓으니 모든것이 수학이요 물리다.그동안 속력과 속도의 차이에 대해 생각없이 살았는데 개념상 차이가 있어 간단하게 정리를 한다. vector와 scala- vector(벡터) : 크기와 방향이 있는 물리량(e.g. 속도(velocity), 가속도, 힘, 중력장 등) - scala(스칼라) : 크기만 있고 방향이 없는 물리량(e.g. 속력(speed), 시간, 부피, 질량 등) Unity에서도 physics를 사용하면 `Rigidbody.AddForce`같이 힘을 가할때 vector를 인자로 받는다. 그리고 가중치값은 `float`과 같은 타입으로 정의한 scala를 사용한다. vector에 scala(가중치)를 곱하거나 나눠서 방향에 영향을 주지 않고 해당..
대다수 생수 판매 제조업체들이 양x치이기 때문이다. 매년 수질 부적합 등으로 적발되고, 일부는 반복해서 부적합 판정중이다. 2021년에는 60개 회사중 무려 1/3의 회사가 부적합 판정을 받았는데도 계속 팔고있다. 심지어는 크롬, 비소 같은 발암물질까지 검출되는 회사도 있다. (쿠팡 탐사수) 1년에 4번 수질기준위반으로 적발되도, 거의 매년 적발되도 솜방망치 처벌로 인해 계속해서 온라인으로 유통되고 판매되고 있다. 내가 삼다수만 먹는 이유는 딱 3가지다 1. 한번도 부적합 판정을 받지 않은 상품은 삼다수가 유일하다. 2. 삼다수는 유통기한이 24개월이다. (다시말하면 생수인데 유통기한 짧은애들은 뭔가 문제가 있다고 보면됨) 3. 국내 최고 대기업 총수를 가까이에서 볼 기회가 있었는데 삼다수를 먹고 있었다..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bht9Al/btrIjI4iqTX/zpqKLTMFIa13sPzU77y68K/img.png)
개요 GitHub은 일반적으로 개방과 공유를 중시하는 오픈소스 지향 저장소지만 private한 저장소로도 활용되며, 제 3자가 repository에 등록된 창작물을 사용할때의 특정권한 및 제약사항을 license를 통해 행사할 수 있다. 보편적으로 사용되는 license의 종류와 어떤 경우에 어떤 license를 적용하는게 효과적인지 알아보도록 한다. License License의 사전적 의미는 "(공적으로) 허가하다"이다. 예를들어 국가에서 운전을 하도록 허가하는 경우, 운전허가증인 운전면허증(Driver's license)을 발급한다. 운전면허증은 임의로 수정하거나 타인에게 양도할 수 없으며, 운전자는 교통법규에 명시된 규약을 지키며 운전해야할 의무가 있다. 이는 창작물에서도 동일하다고 볼 수 있다...
개요 게임업계에 몸담은적 없는 개발자출신이 혼자 게임개발을 진행하다보니 그래픽작업에 에로사항이 꽃피고 있다. 좀 찾아보니 대형게임은 컨셉아티스트(원화), 일러스트레이터(삽화) 외 그래픽아티스트인 도트디자이너, 배경디자이너, 3D모델러, 애니메이터, 이펙터 등등 뭐 세분화 시키려면 엄청 다양한 분야로 나뉘는듯 보인다. 요즘엔 이 모든것들을 Entertainment Design이라 한다고도 하는데 키보드만 칠 줄 아는 내가 지금 배워서 할 수 있을리가 만무하다. 대형게임도 아니니 원화는 제끼고 일러스트 몇개와 게임리소스만 있으면 되는데 그렇다면 선택지는 아래와 같다. 게임일러스트 게임의 화장빨 얼굴이다. 게임설치전부터 사용자에게 다가가는 가장 첫인상이기 때문에 적어도 일정레벨 이상의 퀄리티가 필요하다. 필수..
개요 개발환경의 스타일 일원화를 위한 세팅작업 - Theme : `Dark+` - Font family : "'Cascadia Mono', D2Coding, Consolas, 'Courier New', monospace" - Default font : `Cascadia Mono` (ligatures 제거 버전) - Font size : VS2022(11), VSCode(15), Notepad++(11, Regular), Notepad(11, Regular) - Cascadia Mono가 표시 안되는 문제 : CMD(D2Coding, 16), PowerShell(D2Coding, 16) - Font style : Regular (SemiLight도 괜찮은데 고해상도 모니터에서는 default설정인 Regu..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Av5sN/btrG7Xvn8WF/uJVsyoyCzU99AZLUjmclzk/img.png)
개요 Git 및 GitHub은 기본적으로 `git commit`(및 `git tag`)의 name 및 email만 체크하고 보안적인 측면은 고려하지 않는다. 이는 의도하지 않은 제3자가 name 및 email만 알면 commit을 통한 repository의 변경이 가능하다는 의미이며, 이를 검증하고 방어하기 위해 Git 및 GitHub에서는 GPG 등을 통해 서명(signing)하는 방식을 사용한다. 이를통해 Git v1.8.3 이후 버전부터는 서명하지 않았거나 신뢰할 수 없는 사람이 서명한 commit이 있다면 `git merge`와 `git pull`을 통한 Merge를 허용하지 않을 수 있다. 또한 GitHub에서는 "Branch protection rules"의 "Require signed com..
- Total
- Today
- Yesterday
- Singleton
- coroutine
- framework
- VS2022
- github
- await
- 환경설정
- Python
- initialize
- C#
- 비동기
- 싱글톤
- Visual Studio Code
- git
- Custom Package
- selenium
- Scraping
- async
- RuntimeInitializeOnLoadMethod
- logging
- 코루틴
- 닷넷
- vscode
- Debug
- unity
- gcp
- 유니티
- .net
- firestore
- Addressables
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |