본문 바로가기
반응형

개발881

개발용어)서드 파티 (3rd Party / third party) 서드 파티 (3rd Party / third party) 서드 파티는 일반적으로 하드웨어 생산자와 소프트웨어 개발자의 관계를 나타내는 용어로 사용된다. 하드웨어 생산자는 퍼스트 파티(first party)로, 소프트웨어 개발자는 서드 파티(third party)로 불리기도 한다. 프로그램에서 서드 파티라고 하면 PlugIn(플러그인), Lib(라이브러리), Framework(프레임워크)등을 말하기도 한다. 어떠한 서비스를 진행하기 위해서는 여러 가지 기능들이 많이 개발하는데 각자 자기의 전문분야를 개발하고 SDK로 제공해서 사용한다. 결제 모듈, 플랫폼 서비스 등등으로 더 효율적이고 빠른 개발을 진행할 수 있다. ★☆☆☆☆ 2021. 4. 27.
Unity)점진적 가비지 컬렉션 (User Incremental GC) 점진적 가비지 컬렉션 (User Incremental GC) 2019.1a 10 이상에서 사용 가능하다고 한다. 기본적으로 c#은 자동 메모리를 관리를 GC(Garbage Collection)가 자동으로 일어나고 프로그래머에게 비가시적으로 일어난다. Unity는 기본적으로 Boehm-Demers-Weiser 가비지 컬렉터를 사용하는데 이는 Stop-the World 방식으로 처리된다고 한다. 이 방식은 가비지 컬렉터가 임의의 순간에 처리가 되게 되면 프레임 드랍 현상이 일어난다. 이러한 방법을 해결하기 위한 방법으로 점진적 GC 방식이라고 한다. Project Setting - Player - User incremental GC라는것을 체크하면 점진적 GC를 처리한다고 한다. 유니티 블로그에 결과를 참고.. 2021. 4. 26.
개발관련) c# 2021 코딩 지침 및 관행 c# 2021 코딩 지침 및 관행 흥미로운 기사를 보게 돼서 이렇게 포스팅하게 되었다. 원문 링크 : [ 링크 ] C# Coding Guidelines and Practices - 2021 This post highlights the list of software engineering guidelines in general. Most of these are industry-wise conventions, thus using them will ensure that your code is easily readable by people who are not you. vmsdurano.com 조건문을 기술 하는 과정, null 체크하는 과정, String.Format을 하는 과정 등 여러 가지 팁이 나열되어있다.. 2021. 4. 26.
개발관련) AAB(Android App Bundle) AAB(Android App Bundle) Unity를 사용한 빌드를 하는 경우에는 64bit를 지원하기 위해서 IL2CPP 모드를 사용하게되고 이를 32비트용 64비트용 모두 패키징 하면 앱 패키지의 크기가 많이 커지게 된다. 이를 해결하기 위한 방법으로 AAB(Android App Bundle)빌드 방식으로 빌드하는 방식이다. Android App Bundle을 사용하여 게시하면 사용자가 가능한 한 가장 작은 다운로드로 앱을 설치할 수 있다고 한다. Android App Bundle 정보 : [링크] Android App Bundle 정보 | Android 개발자 | Android Developers 중요: 2021년 8월부터 Google Play에 신규 앱을 게시할 때 Android App Bund.. 2021. 4. 22.
기본기) 소프트웨어 관리 버전(Semantic Versioning) 소프트웨어 관리 버전(Semantic Versioning) 소프트웨어를 관리하고 서비스하다 보면 버저닝 관리에 대한 고민을 하게 된다. 계속적인 서비를 진행하다보면 점점 많은 버전들이 계속적으로 늘어나게 되는데 소프트웨어 관리 버전에 대한 정의는 중요하다. 소프트웨어 관리 버전 규칙에 대한 설명을 간략하게 정리하기 위한 포스팅이다. 유의적인 버전 명세 규칙은 다음과 같다. 1. 버전은 어떤 방식으로든, 빌드의 구분을 정확하고 이해하기 쉬워야 한다. 2. 버전의 일반적인 구성은 정답은 없으나 Major , Minor, Build or Maintenance Version ex) 1.0.0 의 형태로 구성한다. 3. 번호 넘버링형태로 1부터 시작하고, 빌드의 성향에 따라 버전을 한 개 올린다. 유의적 버전을 .. 2021. 4. 19.
Unity)어드레서블(Addressables) 어드레서블(Addressables) 어드레 서블(Addressables)은 예전의 에셋번들(AssetBundle)을 대체하는 에셋 관리 시스템으로 리소스들의 주소(위치)를 지정해서 고유하게 로드 및 방식을 분리가 가능하다. 추가로 런타임 메모리 관리도 좀 더 편리하게 된다고 한다. [Window]-[Assets Management]-[Addressables] 메뉴를 선택하면 어드레서블 메뉴가 노출된다. 어드레서블을 체크하고 이름(ball)을 지정이 가능하다. 어드레서블 지원은 Unity 2018 LTS~ 이상부터 지원을 한다고 한다. 어드레서블을 로드해서 처리되는 코드는 대략 다음과 같다. void OnButtonClick() { if(string.IsNullOrEmpty(addressToAdd)) De.. 2021. 4. 15.
문제해결)VisualStudio) 설치 관리자 속도 느릴 때 (오프라인 설치) Visual Studio 설치 관리자 속도 느릴 때(오프라인 설치) Visual Studio 설치 관리자가 너무 속도가 느리다. 몇 시간째 이러고 있어서. 네트워크 상태도 보고, 다시 재설치도 해보고 했지만.. 설치 속도가 너무 느렸다. 그래서 찾다가 발견한 방법들을 포스팅하고자 한다. 오프라인 설치방법이다. 해당 설치를 기준으로 명령 프롬프트로 설치하는 방식이다. 설치 파일이 있는 경로로 이동 이후에 vs_community_1304759098.1611109135.exe --layout : 설치경로 --lang (언어팩) en-US ko-KR를 명령 프롬프트에 입력한다. 그러면 다음과 같이 설치가 된다. 자세한 내용은 해당 링크를 참고하면 된다. Visual Studio 2019 오프라인 설치 만들기 :.. 2021. 4. 14.
기본기)c#) Async / Await 사용법 Async / Await 사용법 Task 비동기는 코드에 대한 추상화가 가능하고 비동기적으로 실행된다. Await 키워드는 작업을 차단하지 않는 방식으로 처리 Async / Await 사용법 Task 비동기는 코드에 대한 추상화가 가능하고 비동기적으로 실행된다. static async Task MakeToastWithButterAndJamAsync(int number) { var toast = await ToastBreadAsync(number); ApplyButter(toast); ApplyJam(toast); return toast; } Task를 사용해서 백그라운드 스레드를 시작하고 Await를 사용해서 결과를 기다리고 후 처리된다. private DamageResult CalculateDamage.. 2021. 4. 14.
기본기)c#) 무시 항목 무시 항목 C# 7.0부터 C#에서는 애플리케이션 코드에서 의도적으로 사용되지 않는 자리 표시자 변수인 무시 항목을 지원합니다. 무시 항목은 할당되지 않은 변수에 해당하므로 값을 가지지 않는다고 한다. '_' 의 형태로 선언되는 항목은 무시 항목으로 처리된다고 한다. 예시로 Task를 무시하고 비동기 작업에서 생성되는 모든 오류를 무시하려고 하는 의도로 처리가 된다. private static async Task ExecuteAsyncMethods() { Console.WriteLine("About to launch a task..."); _ = Task.Run(() => { var iterations = 0; for (int ctr = 0; ctr < int.MaxValue; ctr++) iterati.. 2021. 4. 14.
개발용어)CI/CD (Continuous Integration/Continuous Delivery) CI/CD (Continuous Integration/Continuous Delivery) CI/CD(Continueous Intergration / Continuous Delivery)는 지속적인 서비스 제공 및 지속적인 배포를 의미하는 용어로 개발하는 과정에서 완성된 결과를 만드는 일은 굉장히 비일비재한데. 이 환경을 자동화를 진행함으로 최소한의 노력으로 새로운 코드를 배포하는 것을 목표로 한다. 본인은 개인적으로 많이들 젠킨스(Jenkins) 를 통해서 위의 CI/CD 환경을 구축되어있었다. 다른 CI/CD 툴들이 많이(Continuous Integration/Continuous Delivery) CI/CD(Continueous Intergration / Continuous Delivery)는 지속.. 2021. 4. 14.
개발환경)젠킨스(Jenkins)로 구글 플레이 스토어 업로드 하기 젠킨스(Jenkins)로 구글 플레이 스토어 업로드 하기 젠킨스를 통해서 코드 최신화(Git) -> 모바일 플랫폼 빌드(. Apk) -> Google Console Upload가 자동화되면 굉장히 편할 것 같아서 겸사겸사 환경 구축을 진행했다. 다행히도 플러그인이 존재해서 권한 및 환경에 대한 작업만 하면 된다. 젠킨스에서 Google Play Android Publisher 플러그인을 설치한다. Google Play Android Publisher : [링크] Google Play Android Publisher Enables Jenkins to manage and upload Android app files (AAB or APK) to Google Play. plugins.jenkins.io Goog.. 2021. 4. 13.
Unity)해결)VisualStudio)CS0246 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. CS0246 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. 위의 에러는 기본적으로 Class가 선언이 되어 있지 않거나 using으로 임포트가 되지 않아서 발생하는 에러이다. 분명히 존재하는 Class 나 using문을 선언을 했는데도 위와 같은 에러가 나는 경우가 종종 있다. 이럴 경우에는 컴파일하는 과정에서 순서가 잘못된 경우로 Unity 프로젝트를 종료 후 해당 프로젝트의. csproj 파일과. sln 파일을 삭제하고 다시 Unity 프로젝트를 실행 하면 자동으로 생성되는 파일(Visual Studio 프로젝트에는 프로젝트 형식—(예: C# 프로젝트 (.csproj))이다. 해당 파일들은 c# 프로젝트의 구조를 명시하는 Unity 프로젝.. 2021. 4. 12.
코드분석) Tower Defence Game Tower Defence Game 일반적인 디펜스 게임으로 스테이지가 존재하고 각 몬스터는 길을 따라 이동을 한다. 라이프가 존재하고 돈을 가지고 타워를 설치가 가능하다. 타워를 설치(타일 클릭)를 하게 되면 돈이 차감되고 타워가 설치되고 공격 범위에 몬스터가 존재하면 공격을 시도한다. 총 3가지의 타워가 존재하고 가격은 각기 다르다. 프로젝트 링크 주소 : [링크] Brackeys/Tower-Defense-Tutorial Learn how to make a 3D Tower Defence Game using Unity. - Brackeys/Tower-Defense-Tutorial github.com ------------------------------------ 몬스터들은 WayPoint를 기준으로 이.. 2021. 4. 11.
Unity) InGame Debug Console Plugin 적용 InGame Debug Console Plugin 적용 게임을 개발하다보면 Editor가 아닌 환경 실행빌드에서 문제가 터지는 경우가 종종 존재하게된다. 이럴 경우에 유용하게 사용될수 있는 Plugin 을 찾던도중 Free로 되어 있는 'InGame Debug Console' 이라는 플러그인을 찾아서 적용한 포스팅이다. 간단하게 테스트해봤는데 정상적으로 잘나오는 것을 확인했다. 나중에 플랫폼 빌드에서도 확인이 가능한 상황이어서 유용하게 잘 쓰일수 있다. Unity Assets Store : [링크] In-game Debug Console | GUI 도구 | Unity Asset Store Use the In-game Debug Console from yasirkula on your next project.. 2021. 4. 10.
개발용어) 복셀(Voxel) 복셀(Voxel) 복셀은 3D 공간에서 2D 형태로 표현되는 이미지의 표현으로 Voxel은 (Volume + Pixel)의 합성어로 부피를 가진 픽셀이라고 할 수 있다. 마인크래프트를 대표적인 복셀을 사용한 예시이다. 복셀은 해상도가 올라갈수록 연산량이 기하급수적으로 늘어난다고 한다. ★☆☆☆☆ 2021. 4. 10.
반응형