본문 바로가기
반응형

개발871

개발용어) GC 스파이크(GC Spike) GC 스파이크(GC Spike) C# 같은 GC(Garbage Collection)이 한번씩 발생하는 과정에서 어플리케이션의 성능이 급격하게 저하되는 현상을 말한다.프로파일러 상에서 한번씩 높에 잡히는 현상을 볼수있는데 해당 상황을 말한다.가비지 컬렉션이 발생하면 CPU 사용량이 급증하기 때문에 응답시간이 길어진다.간략하게 GC Spike의 원인은 다음과 같다.Boxing UnBoxing 과정으로 인한 메모리 증가메모리 누수대용량 객체 할당사용 이후의 리소스 자원 해제를 하지 않고 쌓이는 경우 public class ResourceHolder : IDisposable{ private IntPtr unmanagedResource; // 예: 비관리 자원 public ResourceHolder(.. 2024. 6. 12.
읽을거리) 고객 인터뷰 할때 질문하는 방법(Q : 넷플릭스를 보시나요?) 고객 인터뷰 할때 질문하는 방법(Q : 넷플릭스를 보시나요?) 제품이 고객에게 어떻게 받아들여지는지 고객 인터뷰를 하는 경우가 많다.일상적인 제품이나 결정에는 과신하기 쉽다. 우리는 하루 종일 업무를 하면서 제품에 대해서 알게되고 연구하기 때문이다. 고객 인터뷰를 통해서 고객이 필요한 요구사항에 대한 누락된 맥락을 이해하는데 도움이 된다. 그 과정에서 잘못된(폐쇄적인) 답변을 받는 질문은 하지 말아야 한다는 내용의 인사이트를 간단하게 정리한다. 원문 [링크] Story-Based Customer Interviews Uncover Much-Needed Context - Product TalkCustomer interviews are one of the most impactful activities a pr.. 2024. 6. 12.
Unity) Inspector : Toggle Debug Mode Inspector : Toggle Debug ModeUnity 작업을 진행 하다 보면 여러가지 필요한 값들을  Inspector에서 확인을 한다.Inspector의 값을 보다보면 확인이 어려운 경우가 종종 생길 때 Toggle Debug Mode 라는 옵션이 있다.  해당 옵션을 선택하면 기존에 Noraml 에서 보이지 않는 옵션들이 좀 더 상세하게 보여준다.  디버그 모드를 활성화하면 Inspector에는 속성과 해당 값만 표시된다. 선택 항목에 스크립트 구성 요소가 있는 경우 디버그 모드에는 개인 변수도 표시되지만 해당 값은 편집할 수 없다. 각 Inspector 창의 디버그 모드를 개별적으로 전환가능하다. 디버그 모드를 켜려면 추가 항목 ( ⋮ ) 버튼을 클릭하여 상황에 맞는 메뉴를 열고 디버그 를.. 2024. 6. 7.
읽을거리) 채용에서 해고까지!개발자 경력의 죽음의 함정 2가지를 피하세요. 채용에서 해고까지!개발자 경력의 죽음의 함정 2가지를 피하세요.Brian Jenney 라는 사람이 쓴 글인데 흥미가 있어서 간략하게 포스팅 한다.개발자들이 해고당하는 2가지 이유와 불행한 상황을 피하기 위해서 할 수 있는 일에 대한  이야기이다. 원본 [링크] From Hired!… to Fired! Avoid these 2 Developer Career Death TrapsAs an engineering manager I’ve had the privilege of promoting engineers on my team and offering people their first role in tech. It’s one…brianjenney.medium.com   해고되는 과정은 대부분 당신의 잘못이 아닐수.. 2024. 6. 5.
Unity) 앵커 프리셋(Anchor Presets) 앵커 프리셋(Anchor Presets)RectTransform을 사용하다보면 Anchor / Pivot 에 대해서 잘 알고 있어야 한다.앵커 프리셋을 잘 활용하면 좋다. (  기본 프리셋 화면에서  Shift 버튼을 누르면 Pivot의 기준점이 표시된다. 기본 프리셋 화면에서 Alt 버튼을 누르면 확장되는 포지션에 대한 정보가 나온다.    Unity 기본 레이아웃 : [링크] UI -> Image 메뉴에서 이미지를 생성하고 섹션을 참고하여 직접 테스트해 볼 수 있습" data-og-host="docs.unity3d.com" data-og-source-url="https://docs.unity3d.com/kr/2022.1/Manual/UIBasicLayout.html" data-og-url="https.. 2024. 6. 3.
개인생각) RPG 에서 업데이트 및 지속적인 성장에 대한 아이템 가치 보존에 대한 생각 RPG 에서 업데이트 및 지속적인 성장에 대한 아이템 가치 보존에 대한 생각RPG 에서 업데이트를 진행하게되는 과정에서 새로운 업데이트에서 추가되는 아이템 혹은 새로운 지역이나 몬스터혹은 기존의 보상이 추가되는 경우에 기존의 아이템보다 더 좋은 아이템이 업데이트가 되기도 한다.그 과정에서 기존에 과금으로 구매를 진행하는 아이템들이나 기존에 사용하던 앤드아이템(종결아이템)들이 가치가 급격하게 떨어지는 경우가 종종 존재한다. WOW(월드오브워크래프트)의 시즌이 대표적이다.새로운 시즌이 나오면 기존의 아이템의 가치가 떨어진다.게임 사에서는 지속적인 업데이트를 진행하고 더 높은 목표를 동기부여를 주기 위해서는 더 높은 보상과 가치의 아이템을 제공해주는 과정에서 기존의 아이템의 가치에 대해서 고민이 필요하다. 현.. 2024. 6. 3.
개인생각) 게임 플레이에서 보상의 기대감 (전조 증상) 게임 플레이에서 보상의 기대감 (전조 증상)게임플레이 및 게임 개발을 하는 과정에서 보상을 주는 과정에 대한 유저의 인터렉티브한 상황을 표현해주는 디테일한 작업으로 해당 작업의 유무에 따라 유저가 보상을 받는 기대감을 느끼는 정도가 다르다.  흔히 '전조 증상' 혹은 '전조' 정도로 표현하는데 지금은 많은 게임들에 포함되어있다.수집형 게임에서는 뽑기(가챠)를 기준으로는 등급이 달라지기 때문에 세분화된 전조 증상이 존재한다.     전조 증상은 유저에게 기대감을 증폭시켜주고 특별한 경험을 주기 위한 방법으로 과금적인 요소에도 많이 사용되곤 한다.너무 과한 전조 증상을 넣다보면 그만큼 플레이 타임에 문제가 되거나 불만을 가지기도 하기 때문에 적절한 시간 내에서 특별한 케이스에 한해서 사용하는 것이 좋다.  .. 2024. 5. 25.
삽질) ScriptableObject 직렬화 문제로 인한 삽질 ScriptableObject 직렬화 문제로 인한 삽질 ScriptbleObject는 기본적으로 직렬화를 기반으로 구성되어있다.그래서 해당 ScriptableObject의 데이터를 직접수정하게되면 같이 변경되는 상황이 생긴다.    instantiate의 형태로 객체를 복사를 해서 사용을 했다가 큰 낭패를 봤다.이번에 작업하면서 업그레이드라는 요소를 작업하는 과정에서 SOLD 원칙에 의거해서 결합도를 낮추다보니 해당 기능을 ScriptableObject 에서 사용하게 구성했다가. 업그레이드 변수에 대한 값이 계속 누적하게 되는 상황을 디버깅하다가 발견하게 되었다.. 기본기지만.. 삽질의 연속이었다. Unity Discussions  ScriptableObject Seralize : [링크] ★☆☆☆☆ 2024. 5. 21.
읽을거리) Unity Tool을 사용한 2D Animation 이론 Unity Tool을 사용한 2D Animation 이론Unity Animation에 대한 12가지 기본 원칙에 대해 좋은 인사이트가 있어서 간단하게 정리한다. 원본 링크 : [링크] The fundamentals of modern 2D Animation Theory using Unity ToolsWe break down incorporating the 12 classic principles of animation with Unity Tools — from setup to finished animation.medium.com 애니메이션의 본질은 특정 타밍에 따라 서로 움직이는 인식 가능한 포즈를 생성하는 것이다.인간이 애니메이션이라고 느끼는 최소 프레임은 12 프레임이고 요즘 기본 프레임은 24프레임(f.. 2024. 5. 21.
읽을거리) 라이엇 게임즈의 게임 기획자가 되는법 라이엇 게임즈의 게임 기획자가 되는법오래된 글이지만 지금시기에도 좋은 내용이라서 간단하게 정리한다.라이엇에서 예전에 응답하라 라이엇이라는 소통하는 컨텐츠를 진행에서 발췌했다.응답하라 라이엇 : 라이엇 게임즈의 게임 기획자가 되려면 어떻게 해야 하나요 ? : [링크] [응답하라 라이엇] 전 왜 리그 오브 레전드를 잘 못할까요?[응답하라 라이엇]에 오신 것을 환영합니다! 오늘은 게임 기획자가 되는 법, 리그 오브 레전드 게임 실력을 향상시키는 법, 그리고 챔피언 숙련도 레벨 관련 계획에 대해 말씀드리겠습니다. 전talk.op.gg 더보기라이엇 게임즈의 게임 기획자가 되려면 어떻게 해야 하나요?두말할 필요 없이 최종 면접을 통과하셔야 입사가 가능할 테니 면접 통과에 도움이 될 만한 정보를 알려 드리겠습니다.면.. 2024. 5. 20.
읽을거리) UI / UX 디자인이 IP가 된 사례 (페르소나 시리즈) UI / UX 디자인이 IP가 된 사례 (페르소나 시리즈) 인사이트에 좋은 내용이 있어서 간략하게 정리한다. 잘 만든 디자인이 IP가 된 사례 로 페르소나 시리즈를 예시로 든다.페르소나 시리즈의 UI / UX를 보면 그 자체만으로 구분이 가능할 정도로 굉장히 개성이 넘치게 되어있다.조금 조잡해 보이거나 가독성이 좋지는 않지만 시그니처 컬러(빨간색,흰색,검은색)을 절절한 조화를 잘 사용해서 그 자체 만으로도 IP화가 된 케이스이다. 굉장히 드물지만 그만큼 신경을 많이 썻다. 원본 링크 : [선택이 아닌 필수 '게임 개발에 UX 디자이너가 필요한 이유] “선택이 아닌 필수” 게임 개발에 UX 디자이너가 필요한 이유 - DIGITAL iNSIGHT 디지털 인사이트사용성을 통한 수익성 향상부터 출시 후 문제 예.. 2024. 5. 17.
기본기) 타입 추론 (Type Inference) 타입 추론 (Type Inference) 타입 추론은 프로그래밍 언어에서 프로그래머가 명시적으로 타입을 지정하지 않아도 표현식의 타입을 자동으로 유추해서 자동으로 타입을 정의해서 진행하는 기능이다.이는 코드 가독성을 높이고 간결하게 만들어주고 타입 안정성과 같은 정적 타입에서도 이점을 유지할 수 있다.   1. 지역 추론 방식 변수가 선언되는 과정에서 타입을 추론이 가능하다.var x = 5; // 컴파일러가 x의 타입을 int로 추론 2. 함수 반환 타입 추론함수의 반환과정에서 반환타입을 가지고 타입을 추론이 가능하다.def add(a, b): return a + b# 정적 타입 언어에서는 컴파일러가 add 함수가 매개변수와 동일한 타입을 반환한다고 추론할 수 있습니다. 3. 제네릭 타입 추론제네.. 2024. 5. 17.
기본기)C# Null 전파 사용(dotnet style null propagation) C# Null 전파 사용(dotnet style null propagation)코드 작업을 하다보면 Null 체크를 선행(Guard Clause)하는 과정에서 좀더 간편하게 표현하는 방법 중 하나가Null 전파 라는 문법이다.  var v = string.Empty;if(o != null) v = o.ToString(); // dotnet_style_null_propagation = truevar v = o?.ToString();// dotnet_style_null_propagation = falsevar v = o == null ? null : o.ToString(); // orvar v = o != null ? o.ToString() : null;    Null 전파 사용 : [링크] IDE0031:.. 2024. 5. 13.
개발원칙) DRY 개발원칙 (Don't Repeat Yourself) DRY 개발원칙 (Don't Repeat Yourself)소프트웨어 개발에서 중복을 피하고 효율성을 높이기 위한 원칙을 나타냅니다.이 원칙은 코드의 중복을 최소화하고 모듈화된, 재사용 가능한 코드를 작성하라는 것을 강조합니다. 중복된 코드는 유지보수를 어렵게 하고 버그를 발생시킬 가능성을 높입니다. DRY 원칙을 따르려면, 비슷한 기능이나 작업을 하는 코드가 여러 곳에 중복되지 않도록 해야 합니다. 대신, 공통된 동작을 하는 코드를 함수, 클래스, 또는 모듈로 추상화하여 재사용할 수 있도록 해야 합니다. 이 원칙은 코드의 일관성을 유지하고 업데이트 및 수정이 필요한 경우 한 곳에서만 수정하면 되기 때문에 생산성을 향상시키고 실수를 줄일 수 있습니다.  단일 인스턴스만을 갖도록 보장하는 패턴입니다. 중복된.. 2024. 5. 13.
읽을거리) Card Shark (Unity 2D 도구를 사용해서 비전 아티스트 비전을 구현) Card Shark (Unity 2D 도구를 사용해서 비전 아티스트 비전을 구현)Card Shark 이하 카드 샤크는 Unity로 만든 카드를 활용한 속임수를 기반으로 진행하는 인디 어드벤처 게임이다.게임의 진행은 횡 스크롤 방식으로 구현되어있다. 카드 샤크 : [스팀 링크] Card Shark on SteamCard Shark is an adventure game full of cunning, intrigue, and delectable deceit. Enter a world where you’ll need to play your opponents better than you play your cards.store.steampowered.com손으로 드로잉한 디자인을 체용했는데 4K~ Texture의 .. 2024. 5. 9.
반응형