위와 같이 scrollview content 내부에 text를 넣고, text 가 늘어나는 만큼 content도 늘어나는 scrollview를 제작하고 싶다. 그럴때 사용하는게 Content Size Fitter 와 Vertical(or Horizontal or G
Init 함수IStoreControllerunity IAP 시스템의 중심적인 컨트롤러 역할을 한다. 사용자의 인앱구매를 관리하고, 실제로 구매를 요청하고 처리하는 등의 기능을 제공한다. IDetailedStoreListener ⇒ 구글 결제를 가능하게 해주는 인터페이스
UI Canvas Scaler 란 ? Canvas 에서 UI 요소의 크기를 다양한 해상도에 맞게 조정할 수 있다. 1. Constant Pixel Size UI 요소가 픽셀 크기 그대로 유지 된다. 해상도가 달라져도 크기가 변하지 않는다. 세부요소는 Scale

.
캐시(Cache) 라고 하는 좀 더 빠른 메모리 영역으로 데이터를 가져와서 접근하는 방식. 예를 들어, 속도가 느린 하드 디스크의 데이터를 메모리로 가지고 와서 메모리 상에서 읽기 쓰기를 수행하는 것을 "데이터를 메모리에 캐싱한다" 라고 한다. 캐시는 데이터의 지역성이

트랜젝션 여러 작업을 하나의 묶음으로처리해서, 전부 성공하거나 전부 실패하게 만드는 것. Unity 클라이언트 개발자가 알아야 하는 이유는 내가 직접 DB를 다루지 않더라도 서버가 트랜잭션을 어떻게 처리하는지에 따라서 클라이언트 코드 설계가 완전히 달라지기 때문이다.
시스템의 일부 기능이나 리소스에 문제가 생겼을 때, 전체가 죽는 대신 핵심 기능은 유지한 채 부가 기능부터 순차적으로 줄여나가는 설계 원칙이다. 로그인 시 필수 정보만 보장하고 나머지 정보는 실패해도 게임 진행 (추후 인게임에서 재통신응답 실패 시 캐시된 마지막 데이
병렬처리를 작업할 때 필요한 개념에 대해서 공부하고 정리해봤다. DAG (방향성 비순환 그래프) 순환하지 않고 한 방향으로만 흐르는 그래프. 주로 작업 간의 종속성과 실행 순서를 정의할 때 사용된다. 위상정렬 순서가 정해져 있는 일련의 작업을 차례대로 수행해야
이전 블로그 링크 이전에 작업했을땐 IAP4 버전이였는데 2026년 6월 8일 이후로 IAP4 업데이트를 완전 중단한다기에 IAP5 로 회사에서 업그레이드를 진행했다. 그러면서 새로 추가된 PendingOrder 클래스로 기존 상점에서 비정상 결제 취소 시 (결제
클라이언트에서 서버와 통신할 때 네트워크 환경이 낮은 경우 어떻게 대응할 수 있는지 학습한 방법을 정리한다. 지수적 백오프 (exponential backoff)는 실패한 작업을 재시도할 때 재시도 간격을 지수적으로 늘려가는 전략이다. 네트워크 요청, 서버 연결,리소스
난독화란 ? 빌드된 코드와 데이터를 분석하기 어렵게 만들어 리버스 엔지니어링, 치팅, 소스/에셋 도용을 막는 보호 기법이다. 특히 C#은 디컴파일이 너무 쉽기 때문에 별도 조치 없이 빌드하면 해킹에 매우 취약하다. 난독화가 실제로 하는 일 이름 바꾸기 네임스페이스,
파이어앰블램 좋아하시는 분 ? 파앰에선 ( 그 외 다른 게임 다수) 난수 시스템으로 특정 행동을 하면 다음 행동을 강제화 하는데, 난수 시스템을 구현하기 위해 필요한 결정론적 시드, 시드 개념에 대해 알아보자. 컴퓨터의 난수 개발 방식 일단 컴퓨터가 난수를 만드는 방
ci cd에 대해 학습하였다. 정의 (가볍게) CI 코드를 합치기 전에 자동으로 검증하는 것. 테스트, 빌드 가능여부, 코드 리뷰 같은 "이 코드 합쳐도 되나?" 의 검사 CD CI로 검증한 코드를 자동으로 배포 가능한 상태까지 만든다. 더 나아가 상태를 통과하면
제로 할당 (zero - allocation) Linq 라이브러리 링크 내부 구현을 인터페이스 + 클래스 기반에서 -> 구조체(struct) 기반으로 전면 재설계해서 쿼리 체인 자체가 힙 할당을 일어나지 않게 만들었다. 사용법은 컬렉션 앞에 AsValueEnumer
.
이전에 정상 동작하던 기능이 코드 변경 이후에 깨지는 현상이다. 새 기능 추가,버그 수정, 리팩토링, 라이브러리 업데이트 등 "좋은 의도의 변경"이 원인이라는 점이 핵심이다.좋은 변경을 하였지만 발생한 나쁜 버그..즉, 회귀는 새 기능의 변경이 아니라, 이미 검증된 영
회사에서 analytics repo 에서 관련 tool 로 데이터를 수집해서 유의미한 결과를 도출하는 경험을 하였다. 단순한 read뿐 아니라 새로 개발한 feature 코드 내에서도 기존 analytics log 가 어떻게 설계(?) 되어있는지 분석해서 직접 삽입하였
종류(type)을 클래스가 아니라 객체로 표현하는 패턴이다. 원래 상속으로 표현하던 분류 체계를, 인스턴스가 타입 객체를 참조하는 형태로 바꾼다. Unity 의 scriptable object가 타입 객체 패턴의 대표적인 예시다. 기존 enum 으로 관리하는 데이터들을

처음 접한 개념 및 CI 구현하면서 배운 부분 학습 정리용. 워크플로 : .github/workflows/\*.yml 파일 하나. "언제 무엇을 할지"의 단위 트리거(on) : 언제 도는지, push, pull_request, workflow_dispatch(버튼으로

정의 알고리즘의 골격(순서) 는 부모 클래스가 고정하고, 그 안의 일부 단계만 자식클래스가 채우게 하는 패턴이다. "언제 무엇을 호출할지"는 부모가 쥐고, 자식클래스는 "그 단게에서 무엇을 할지"만 정한다. ex) 구성 요소 탬플릿 메서드 부모 클래스에 있고,