티스토리챌린지 19

유니티 - 비동기 프로그래밍에 대해 알아보자. #3 (UniTask)

2024.11.14 - [분류 전체보기] - 비동기 프로그래밍에 대해 알아보자. #2 (Task) 오늘은 지난 시간에 이어 UniTask에 대해 정리해 보고자 합니다. UniTask UniTask는 Unity 환경에서비동기 프로그래밍을 더 효율적으로 할 수 있게 해주는 라이브러리입니다. UniTask는 외부 라이브러리라설치하기 위해선 몇 가지 과정을 거쳐야 합니다. 설치 방법 https://github.com/Cysharp/UniTask 설치하는 방법은 두 가지가 있습니다. 1)사이트에 들어가서 우측에 Releases라 적힌 부분을 클릭하고직접 다운로드 후 유니티에 추가하는 방법   2)아래 내용을 쭉 보다 보면 UPM Packager라는 부분이 나오는데 여기서 제공하는 URL 주소를 유니티 패키지 매니..

카테고리 없음 2024.11.18

VS 주석 한글 깨짐 해결법

오늘은 VS에서 주석이 깨지는 현상 해결법에 대해 정리하고자 합니다. 팀 프로젝트를 진행하면서다른 분들이 작업한 내용의 주석이 이상하게 깨지는 걸 많이 겪었습니다. 그동안은 사실 원인을 알면서도 귀찮아서 내버려뒀는데이번에 코드를 분석하면서 너무 거슬려서 한번 작업해 봤습니다.  원인은 사실 별거 없습니다. 문자 인코딩이 달라서 그렇습니다. 이를 이해하려면 유니코드에 대해 알아야 합니다. 유니코드 전 세계의 모든 문자를 일관되게 표현하기 위한국제 표준 문자 인코딩 체계 컴퓨터는 0과 1의 이진수로 표현하는데 문자를 처리하기 위해선 문자로 변환하는 과정인 문자 인코딩을 합니다.   여러 인코딩 방식이 있지만 보통은 UTF8이 사용되는 듯합니다. UTF8은 유니코드 기반의 가변 길이 인코딩을 하며모든 언어의 ..

카테고리 없음 2024.11.15

비동기 프로그래밍에 대해 알아보자. #2 (Task)

2024.11.12 - [분류 전체보기] - 비동기 프로그래밍에 대해 알아보자. #1 ( Await 과 async)2024.11.13 - [분류 전체보기] - 스레드(Thread)와 스레드 풀(ThreadPool)에 대해 알아보자 지난 시간에 이어  오늘은 비동기 프로그래밍 Task에 대해서 정리해 보고자 합니다.TaskThread와 ThreadPool의 단점을 개선한 비동기 프로그래밍  내부적으로 스레드 풀을 이용하여 작업을 처리백그라운드 스레드로 동작 / 스레드 풀 스레드를 사용하여 작업 실행 Task의 주요 메서드 Start(): Task를 시작하는 메서드 Wait():특정 Task가 완료될 때까지 현재 스레드를 대기시키는 메서드 ContinueWith():Task가 완료된 후 수행할 작업을 지정하..

카테고리 없음 2024.11.14

스레드(Thread)와 스레드 풀(ThreadPool)에 대해 알아보자

오늘은 스레드(Thread)와 스레드 풀(ThreadPool)에 대해 정리해 보고자 합니다. 원래는 Task에 대해서 먼저 글을 작성하고자 했는데 Task의 동작 원리가 Thread와 ThreadPool 개념을 알아야 하더군요.  재미있게도 자꾸 뭔가 거꾸로 공부해 나가는 듯한 느낌이;;스레드 스레드는 CPU 시간을 할당받는 기본 단위기본적으로 모든 프로그램은 메인 스레드를 가지고 있음 장점 메모리를 절약할 수 있다. ->같은 프로세스 내의 스레드들은 메모리를 공유하기 때문.코드, 데이터, 힙 영역 공유 / 각 스레드는 독립적인 스택 영역 보유  단점 반환 값을 받을 수 없다.작업 완료 대기 기능이 없다.실행 중인 작업 취소 불가능하다.   ThreadPool 미리 생성된 스레드들의 집합 / 재사용함으로..

카테고리 없음 2024.11.13

비동기 프로그래밍에 대해 알아보자. #1 ( Await 과 async)

2024.11.10 - [분류 전체보기] - 유니티 - Coroutine에 대해 알아보자 지난 시간에는 코루틴에 대해 글을 작성했었습니다. 여기에 이어서 오늘은 지난 시간 언급한 것 처럼Await와 async에 대해 정리해 보고자 합니다. Async/Await의 주요 특징C# 5.0 이상 버전에서 지원비동기 코드를 동기 코드처럼 작성 가능메인 스레드 차단 없이 비동기 작업 수행 예시 코드 public class AsyncAwaitExamples{ public async Task BasicExampleAsync() { Console.WriteLine("작업 시작"); await Task.Delay(2000); // 2초 대기 Console.WriteLine(..

카테고리 없음 2024.11.12

깃허브 - Repositoy에 있는 파일 경로 변경 (feat : 깃허브 데스크탑, 유니티)

오늘은 깃허브 Repository 파일 경로를 변경하는 법에 대해 정리해 보고자 합니다. 매번 유니티 새 프로젝트를 만들 때마다 깃허브 폴더에 복사하고 옮기자니 귀찮아서 방법을 찾았고 알게 된 내용을 정리해 봤습니다. (꽤 오래전부터 이렇게 사용했는데 의외로 잘 모르는 분들이 있는 거 같더군요.) 유니티 경로로 지정/생성하는 방법   먼저 유니티 프로젝트를 만든 후,깃허브 데스크톱에서 Add를 통해 깃허브 레포지토리를 만들 때Local Path를 유니티 프로젝트 경로로 추가하면 복사 없이 바로 연동해 줄 수 있습니다. 실수로 위치를 잘못 지정했을 때 / 변경하고 싶을 때 방법실수로 폴더 위치를 내부로 지정해서 문제가 발생했지만 당황하지 않고 우클릭 - Show in Explore로 들어가Local에서 원..

카테고리 없음 2024.11.11

유니티 - Coroutine에 대해 알아보자

오늘은 Coroutine에 대해 정리하고자 합니다. 최근에 테스트를 봤었는데Coroutine에 관한 질문에 정확하게 대답을 못 한 거 같아다시 한번 정리를 해보고자 작성했습니다. Coroutine 작업을 다수의 프레임에 분산하는 메서드. 실행을 일시 정지하고 제어를 Unity에 반환하지만, 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드. 객체를 생성할 때 힙 메모리에 할당한다.   중요한 건 ※  비동기식으로 처리하는 것처럼 보이나 그 근본은 동기식이다. 동기식 ? 비동기식?  동기식  = 작업이 순차적으로 실행되는 것 비동기식= 작업이 병렬적으로 실행 가능(동시에 실행 가능)  이름도 들어보도 사용해 봐서 어렴풋이는 기억하고 있었었는데,비동기식이라는 게 당시 안 떠올라서 이상하게 썼던 거 같네요..

카테고리 없음 2024.11.10

의존성 주입(DI/ Dependency Injection)에 대해 알아보자(feat : DIP)

오늘은 의존성 주입(DI/ Dependency Injection)에 대해 알아보고자 합니다. 2024.10.31 - [디자인 패턴] - 디자인 패턴에 대해 알아보자#4 - 팩토리 패턴 (Factory Pattern) (feat : 팩토리 메소드, 추상 팩토리 패턴) 이전에 팩토리 패턴에 대해 글을 작성한 적이 있었는데요,추가로 공부 하다보니 의존성 주입(DI/ Dependency Injection)을 자주 사용한다고 하여DI라는 게 정확히 뭔지 찾아봤고 그 내용을 정리했습니다. DI와 DIP를 엮어서 많이들 소개하던데이전에 작성했던 Solid 원칙을 보고 오신다면 더 이해가 쉬울거로 생각합니다.2024.10.07 - [디자인 패턴] - 디자인 패턴에 대해 알아보자 #1 Solid 원칙 의존성 ? 한 클래..

카테고리 없음 2024.11.08

디자인 패턴 - MVC(Model-View-Controller)패턴에 대해 알아보자(+ MVP, MVVM)

2024.11.05 - [디자인 패턴] - 디자인 패턴에 대해 알아보자#5 옵저버 패턴 (Oberserver) 지난 시간에 이어 오늘은 MVC(Model-View-Controller) 패턴과MVP(Mode-View-Presenter),MVVM(Model-View-ViewModel)에 대해 알아보고자 합니다. MVC 패턴은 몇 번 들어봤는데찾다 보니 MVP, MVVM 패턴도 함께 설명하고 있기에 같이 정리해 봤습니다. 이전에 팩토리 패턴이랑 팩토리 메서드 같은 느낌으로 생각하시면 편할 겁니다.응용한 버전들이랄까.MVC( Model, View, Controller ) 패턴 이 패턴은 UI를 체계적으로 구현하기 위해 만들어진 패턴입니다.이름처럼 Model, View, Controller 세 부분으로 나누어 불..

디자인 패턴 2024.11.07