본문 바로가기

개발 공부 유니티, C#

(15)
UVCS (UnityVersionControlSystem) Unity에서 제공하는 형상관리툴무료 최대 5GB까지 레포지토리 지원https://cloud.unity.com/ Unity Cloud cloud.unity.com 유니티허브에서 요렇게 불러올 수 있다. 유니티 커밋 diff등 사용시  유니티에서 소규모로 가볍게 슥슥 사용하기엔 좋지만나름 간략한 svn하고 비교해도 blame, make patch, merge등 보이지 않는 기능도 많고프로젝트를 본격적으로 관리하기엔 조금 부족해보임.1~3인 정도의 관리 프로젝트는 용이할 듯
개발자 정책 Privacy PolicyThis privacy policy applies to the 몰랑이의 그림퍼즐 app (hereby referred to as "Application") for mobile devices that was created by (hereby referred to as "Service Provider") as a Free service. This service is intended for use "AS IS".Information Collection and UseThe Application collects information when you download and use it. This information may include information such asYour devic..
JDK, SDK, NDK + Kotlin에 대한 주저리 JDK JDK : JRE, JVM, java developerTool을 내포하고 있음. 자바 개발/실행을 위한 키트 JRE : 자바 프로그램 실행 환경 JVM : 자바 프로그램 실행 가상머신, OS에 구애받지 않고 실행 가능, 하지만 속도가 느려짐, 구동 속도 문제 해결을 위해 Jit컴파일러, IL을 사용 실행할 자바 프로그램(jar, war등 상세내용 https://ozofweird.tistory.com/entry/Java-JVM-JDK-JRE-JAR-vs-WAR) Android SDK 안드로이드 앱개발을 위한 개발 툴킷, 안드로이드 앱은 자바로 개발이 되기 때문에 JDK가 필수 (그럼 코틀린은?) NDK Java의 한계를 극복하기위해 네이티브 언어를 사용하기 위한 키트 (자바의 한계 => 일반적으로 ..
제프리 리처의 CLR via C# 3부 핵심 타입 part.1 14장 문자, 문자열, 텍스트 사용하기 숫자 → 문자 변환 캐스팅 : 가장 효율적, int number; char c = (char)number; //A=65 그런거 Convert : 데이터 소실 가능성이 있거나, 오버 플로우시 예외 발생 char c = Convert.ToChar(7000); //16비트로 표현할 수 없는 숫자. 예외발생 IConvertible : ToString, ToChar 등에서 구현 : 가장 비효율. 박싱이 발생 String 변경할 수 없는 문자들의 순서 (배열) 항상 힙에 할당 IComparable, IComparable, ICloneable, IConvertible, IEnumerable, IEnumerable, IEquatable 같은 다수의 인테페이스 구현 String s..
제프리 리처의 CLR via C# 2부 타입 설계 part.2 8장 메소드 이 책에서는 생성자도 특별한 메소드중 하나로 취급 연산자 오버로딩 operator도 메소드 취급 C#의 구조체 vs 클래스 => 값타입 vs 참조타입 필드 초기화 후 생성자 호출 (구조체는 값타입이니 생성자 안불림) 타입생성자 특정타입을 처음 사용하는 경우 호출됨 (개발자가 직접호출가능하나 절대 하지말 것) 연산자 오버로딩은 실제론 그저 메서드일 뿐이라 CLR에서 알 방법이 없다. 타입 변환 연산자 (ToString, ToInt32 등) 원본 타입과 대상 타입이 기본타입인 경우 컴파일러가 직접 변경 기본 타입이 아닌 경우 CLR이 직접 캐스팅 처리하도록 컴파일러가 코드 생성 implicit, explicit 명시적, 묵시적 변환 명시적 변환이 실패하는경우 OverflowException, I..
CLR IL Jit 컴파일 과정 CLR (Common Language Runtime) 서로 다른 프로그램 언어들 사이에서 공동으로 사용할 수 있는 실행 환경 CLR의 핵심기능 메모리 관리 어셈블리 로딩 보안 예외처리 스레드 동기화 등 CLR을 대상으로 코드를 작성하는 언어 C#, COBOL, Perl, PHP, Lua, LISP, Pascal, Scheme .. 등 메서드를 실행하기 위해(최초 호출 되는 시점) IL은 JIT(just in time) 컴파일러(clr의 기능)에 의해 기계어(Native Code)로 번역 IL을 사용하면 CPU와 OS에 독립적인 코드가 생성됨 Jit 컴파일러가 수행시 플랫폼에 최적화된 코드로 번역 후 수행 런타임에 실행되는 컴파일 비용이 증가하는 단점이 있음 NGEN.exe : 네이티브 이미지 생성기 JI..
게임 디자인 패턴 정리 이 책에 있는 내용은 예제 코드의 예시가 좋지 않은 경우도 좀 있었음. 예제가 괜찮게 구현됬다기보다는 이런 패턴이 있다를 이해하는 목적으로만 사용 1~3은 서론으로 스킵 Chapter 4 싱글턴으로 게임 매니저 구현 싱글턴 단 하나의 객체만 가지고 있는 클래스 씬이 바뀌어도 파괴되지 않고, Awake에서 다른 인스턴스가 이미 존재한다면 현재 객체 파괴 GameManager를 예시로 들었는데, 예제는 생략 Start에서 플레이어 세이브/로드 OnApplicationQuit에서 종료시 마지막 종료시간으로 로그남김 Chapter 5 상태 패턴 public class BikeController { switch(state) { case Stop: //... break; case Start: //... break;..
클린 코드 정리 변수명 작명 변수의 의도를 명확히 검색하기 쉬운 네이밍 사용 유추하기 힘든 기발한 이름을 사용하지 마라 한 개념에 한 단어 사용 가져오는 것을 fetch, retrieve, get을 혼용해서 쓴다던가 하는 것들을 통일하기 해법 영역에서 가져온 이름 사용 VISITOR, JobQueue 등 프로그래밍 외에도 전산 용어, 알고리즘 등에서 쓰이는 보편적인 용어들로 작명 함수 SRP(Single Responsibility Principle) : 한 가지 일만 하도록 작게 만들기 매개변수를 최소화 명령과 조회를 분리 뭔가를 수행하던지, 뭔가에 답하던지 둘 중 하나만 하기 오류 코드보다 예외 사용 (요건 경우에 따라 좀 다른것 같기도 함) 코드 중복 방지 주석 주석은 나쁜 코드를 보완하지 못한다. 좋은 주석 1. ..