몬스터 포함하면 배치 개수가 300개 이상 늘어났었음.현재 173개로 줄었는데 아직 해야할 것이 많아 보임1.현재 몬스터 체력바 캔버스를 하나의 캔버스에서 관리하도록 변경 해야 함2. 현재 UI의 경우 다 찢어져 있음 이것을 아틀라스로 묶을 필요성이 있음3. 현재 배치 수를 가장 많이 잡아먹는 것은 오른쪽 에디터 툴이 130개 정도 잡아먹는 중나머지는 자잘하게 타일맵 4개 ( Feild , Deco , BackGround 등 사용 중 ) 포스트 프로세싱 16개 UI Camera 20개정도 차지 중
동일한 스파인 유닛을 소환했음에도 여러번의 드로우 콜을 때려서 배치 개 수 증가.원인은 방향 전환 시 scale값을 그냥 음수 양수로 변환했던게 문제.관련 게시글을 찾은 후 적용동일한 유닛 소환시 배치 수 감소 확인
해당 사진을 보면 배치 수가 어떤 건 한 번에 묶여서 드로우 콜 되지만, 어떤건 개별적으로 늘어나는 것을 확인할 수 있었다.알고보니 몬스터 하위 객체로 Canvas를 넣고 HPbar를 넣었던 것이 문제 원인이 되었고아래와 같이 최적화 하는데 성공하였다.
프로세스란 보조기억 장치 즉 HDD나 SSD에 데이터 형태로 저장된 프로그램을 메모리에 올렸을 때 생겨난다.현재의 우리는 여러 프로그램을 동시에 프로세스로 올려 실행하고 있는데. CPU는 하나이며 메모리 또한 물리적인 크기 즉 자원이 유한하다. 하지만 우리는 수 많은 프로세스를 동시에 돌리고 있으며 메모리의 크기보다 프로세스의 크기가 더 큰 경우에도 컴퓨터에선 잘 돌릴 수 있는데 이러한 일들을 OS에서 관리하고 있기 때문이다.이제부터, 프로세스가 무엇이며 OS가 어떻게 이러한 프로세스와 메모리를 관리하는지 정리해보겠다.1. CPU의 자원을 나눠 가지는 방법.위 사진과 같이 프로세스는 서로 CPU의 자원을 필요로 한다. 이 때 OS에서는 일정 시간 간격으로 ( 타이머 인터럽트 ) CPU의 자원을 나눠줄 수..
위 포스팅은 아래 개발자 강민철씨께서 유튜브로 공개한 내용을 바탕으로 핵심 내용만 정리한 것이다.(https://www.youtube.com/watch?v=isj4sZhoxjk&t=1s)OS란 무엇일까?모든 프로그램은 컴퓨터의 자원을 필요로 한다. 운영체제 또한 하나의 프로그램이기 때문에 위 그림과 같이 메모리에 올라가게 되는데 이 때, OS의 역할은 다른 응용프로그램에게 자원을 올바르게 할당하는 역할을 수행하기 때문에 따로 커널 영역에 올라가게 된다.쉽게 요약하면 사용자가 메모장을 실행하는데 얼마만큼의 RAM과 CPU 하드디스크 등을 사용할지 수작업으로 정하는 경우는 없고 이러한 일을 OS가 한다고 보면 된다. 또한, 우리가 위 사진과 같이 인터넷이던 워드던 메모장이던 응용프로그램을 실행하게 되면 메모..
그래픽스와 엔진 공부를 다시 시작하며 이런 저런 자료를 찾아보던 중 요러한 글을 발견했다!요약하자면, 아마 글쓴이는 TA 리더급 개발자 인 것 같으며 모델러가 그래픽스를 공부하지 않아서 답답함을 토로하는 글이었다.문제는 게임 클라이언트를 공부 한지 꽤 오랜 시간이 지났지만 그래픽스에 대한 지식이 많이 부족했기 때문에해당 글쓴이가 쓴 용어들을 하낫도 알아 먹을수가 없었고!이에 하나하나 구글링 해가며 이해한 바탕으로 용어를 정리해보고자 한다.1. PBRPhsical Based Rendering 물리 기반 렌더링 이며, 표면의 재질에 따른 빛의 반사가 물리적으로 어떻게 이루어지는지 그래픽으로 표현하는 기법이라고 한다.과학적인 관점으로 빛의 물리적 현상을 텍스쳐와 셰이딩을 사용한다고 한다.레거..
📘 배운 점- 1. 좋은 테스트 습관에 대해서 학습할 수 있었다. Unit Test와 통합 테스트에 대한 차이와 TDD 사이클에 대해서 좀 더 깊게 공부할 수 있는 계기가 되었으며 특히 Controller 테스트의 경우 실무에서 했던 방식보다 더 좋은 형태로 구현할 수 있었음을 알게 되었다. 😅 어려웠던 점. SpyBean과 MockBean에 대한 차이점이 궁금했고 SpyBean은 DI 에 올라가는 반면 MockBean은 껍데기만 올라가는 차이점이 살짝 어려웠다. 느낌점 이번 주 과제는 유일하게 실패했는데 이유는 Controller 단에서 Update 하는 부분이 이상하게 잘 되지 않았다. 해당 부분을 우선 질문에 올려두었고 어떤 부분이 잘못되었는지 검증받아야 한다.
현재 필자는 개발 중인 게임에서 백단과 통신 하는 API를 개발 중이다.문제는 현재 개발중인 프로젝트에선, S3 Cloud 저장소에 있는 이미지를 로드해야하는데.처음엔 Local Memory에 저장하는 형태로 구현했다가 차후 1000 장, 1만 장 이상일 땐 어떻게 할 것인가에 대한 고민으로 인해 NHN에서 제공하는 캐시 스토리지를 도입하게 되었다. public class HttpBestImageLoad : IImageDownload { private Action errorCallback; public HttpBestImageLoad(Action errorCallback) { this.errorCallback = errorCallback..
📘 배운 점- 1. Layerd Architecture에 대해 왜 레이어를 4계층으로 구분하여, 관심사 ( SoC)를 분리하여야 하는지. 해당 아키텍쳐를 사용 하였을 때 도메인을 변경하면 모든 레이어에 관련 내용을 변경해야 하고, DDD ( 도메인 주도 설계 )에 어떤식으로 위배 되는 지에 대해 학습 할 수 있었다. 또한, 해당 아키텍처의 싱크홀 안티패턴에 대해서도 학습할 수 있었다. 2. 결합도, 응집도 SoC를 잘 지키기 위해선, 결합도와 응집도에 대한 개념에 대해 다시 한 번 학습하는 계기가 되었으며 코드를 어떤식으로 설계하고 유지보수 해야하는지 알게 되었다. 😅 어려웠던 점. 사실 상 Respository 와 Domain Model 에 대해 잘 이해하진 못했던 것 같다. JPA에서 Reposito..
📘 배운 점- https://kyeonghoons-organization.gitbook.io/untitled/week-3 😅 어려웠던 점. DTO가 안티패턴인 이유 느낌점 시간이 없어 이번 주 차에는 정리를 잘 하지 못하였다.. ㅜ 과제는 완성했지만 깃 북을 한 번에 다 쓸려고 하니 예외적으로 해야할 일들 때문에 미루고 미뤄 결국 정리를 끝내지 못했다. 다음 주 차 부턴 더 열심히 해볼려고 한다.