본문 바로가기

반응형

전체

(119)
삼성 대학생 알고리즘 특강 후기(2022) + Pro Test 2022년 삼성 SDS 동계 대학생 알고리즘 특강을 수강했고 그 후기와 Pro Test 관한 후기들 작성한 포스팅이다. 2022년 1월에 수강했기에 사실 엄청엄청 늦은 후기다. 최근 삼성SDS 하반기 공채시즌에 SDS에서 연락이 왔었기에 생각나서 적는 후기다. 1. 삼성 SDS 알고리즘 특강이란 매 방학마다 삼성SDS에서 관련 전공자들 상대로 알고리즘 특강을 한다. 사실 나도 몰랐다가 2021년 말쯤에 동아리 단톡방에 관심있는사람 신청해보라고 해서 신청해보았다. 그 당시의 나는 알고리즘 공부를 안한지 1달~2달 쯤 돼서 다시 시작할 때가 되긴 했었다. 그래서 좋은 기회라고 생각해서 신청하였다. 나는 JAVA로 신청했고 입과테스트도 봤다. 내 기억으론 5문제중 1.5솔인가 1솔 했는데 입과를 시켜줬다. 온..
유니티 Sprite Atlas 유니티에는 다양한 최적화 기법이 있는데 이번 글에서는 Sprite Atlas에 대해 포스팅하고자 한다. 똑같은 기능을 제공하는 Sprite Packer라고 있긴하다. 근데 유니티 자체에서도 Legacy(구식)이라고 지정해놨고 개인적으로도 Atlas가 더 직관적이고 사용하기 편해서 웬만하면 Sprite Atlas로 쓰는게 좋지않을까 싶다. 어쨋든 현업에서 대부분 사용하고 있다고 하니 꼭 알아두자. Sprite Atlas란 스프라이트 아틀라스(Sprite Atlas) 는 여러 개의 텍스처를 단일 텍스처로 결합하는 에셋이다. Unity는 여러 개의 드로우 콜을 발행하는 대신 이러한 단일 텍스처를 호출함으로써 하나의 드로우 콜을 발행할 수 있다. 참고로 DrawCall은 모바일에선 최대 100안쪽으로 나오게 해..
유니티 UI(3) -POT/NPOT Texture 유니티 UI를 공부하면서 중요하다고 생각되는 내용들 적는 포스팅이다. 필기노트 같은거 POT(Power of Two) 텍스쳐 텍스쳐 가로/세로 크기가 2의 승수(1,2,4,8,16,32.....)인 텍스쳐 NPOT(Non-Power of Two) 텍스쳐 텍스쳐 가로/세로 둘중 크기가 하나라도 2의 승수가 아닌 텍스쳐 이것이 왜중요한가?? 텍스쳐건 뭐건 전부다 숫자(바이너리)로 이뤄져있다. 컴퓨터는 애초에 바이너리 데이터를 다루기가 훨씬 쉽다. NPOT 텍스쳐를 사용할 때 GPU는 텍스쳐와 가장 가까운 사이즈의 2의 승수를 찾아서 해당 텍스쳐를 그대로 복사한다. 즉 메모리에 2개의 텍스쳐가 올라가게 된다. 원본텍스쳐(NPOT)와 원본을 POT화시킨 텍스쳐 이렇게 2개. 즐 효율이 좋지않다. 모바일 게임에선..
유니티 UI(2)-이미지 Type 전편에 이어서 유니티 UI를 공부하면서 중요하다고 생각하는 것들 작성하는, 일종의 필기노트이다. Image Type Simple : 가장 일반적인 이미지 타입 , 비율에 맞게 스트레치됨 Sliced : 스프라이트를 9개의 영역으로 나누어 각자 다른 방식으로 리사이즈하는 방식, Sprite Editor에서 영역을 설정 할 수 있다. 현업에서 굉장히 자주 쓰이는 테크닉이라고 한다. 아래와 같이 Fill Center의 체크를 풀어줌으로써 중앙을 비울수 있다. Tiled : 위의 설정해논 영역중 중앙부분으로 일정하게 도배하는 이미지 타입니다 Filled : 말 그대로 채워주는 방식, 체력바같은거에 많이 쓴다. 각종 수치들을 건들여서 채워주는 방식을 정할 수 있다.
유니티 UI(1)-Vertex와 Canvas UI기초 다시 공부하면서 배운것들 정리하는,어떻게 보면 그냥 필기노트정도다. Vertex 3D 모델링의 가장 기본 단위 Vertex Buffer 렌더링에 사용할 버텍스를 모아 놓은 버퍼 캔버스에 내부적으로 존재한다(우리가 볼 순 없다) 씬에서 왼쪽위를 Shaded에서 Wireframe으로 바꿔주면 위와 같이 Vertex들을 볼 수 있다. Event System 클릭, 드래그 등등 이벤트들은 하나 또는 하나이상의 모듈을 통해 시스템에 전달되야 한다 그 모듈이 EventSystem에 있다 UI를 만들면 저절로 만들어진다 Canvas Screen Space - Overlay : 스크린 화면을 최상위에서 완전히 덮어서 렌더링하는 모드 Pixel Perfect : UI가 깨지지 않고 잘 나오지만 Performan..
Unity PlayerPrefs 활용 현재 만들고 있는 게임은 템플런 같은게임을 생각하며 만든게임이다. 튜토리얼을 따로 만들까 하다가 튜토리얼 후에 본게임으로 들어가게 구현하기로 했다. 템플런에서는 다운받고 첫판을 시작하면 튜토리얼 후에 본게임으로 들어간다. 삭제했다가 다시하면 다시 튜토리얼 부터 시작한다. 그렇기에 나도 삭제하고 다시 다운받으면 튜토리얼부터 시작하는걸로 구현하기로 했다. 이 때 다운받고나서 첫판인지 아닌지 PlayerPrfes를 활용해서 구분하겠다. PlayerPrefs말고도 Json,XML 등등 다양한 저장방식이 있다. 각각마다 장/단점이 있으므로 그때그때 고려해서 다른 저장방식을 사용해주자. 필자도 저번 프로젝트때에는 Json으로 암호화와 복호화까지 구현해서 플레이어 데이터를 저장했었는데 이번 프로젝트에선 간단한 Pla..
Github LFS 저장공간 확보 개발을 하다보면 종종 100MB가 넘는 파일을 Github에 push해야 할 때가 있다. 그럴때 사용하는게 LFS이다. 한번이라도 GIthub에 100MB넘는 파일을 LFS를 이용해서 업로드하면 계속 history에 남는다. 나중에 그 파일을 지우고 github에 push를 하더라도 계속 남는다. 이걸 계속하다보니 어느새 1GB LFS 저장공간을 넘어섰고 결제를 진행할 수 밖에 없었다. 이걸 해결하기 위해선 Github support 팀에 직접 연락을 해야한다. 나는 위와 같이 답장이 왔고 받은 메일을 번역하자면 아래와 같다. 우리가 서버에서 파일들을 지워야 하므로 LFS로 tracking 했던 모든 파일중 어떤 것을 지우고 싶은지 얘기해줘라(아니면 다 지울 수 있는데 살리고 싶은것들을 알려줘라, 너의 ..
백준 3176번(JAVA) 백준 문제중 11438번 LCA2가 있는데, 트리를 타고 올라갈때 한 칸 씩 올라가는게 아니라 2의N승씩 올라가는 빠른 LCA가 있다. 밑에 문제를 풀 줄 안다면 이번 3176번도 손 쉽게 풀 수있다. https://www.acmicpc.net/problem/3176 3176번: 도로 네트워크 첫째 줄에 N이 주어진다. (2 ≤ N ≤ 100,000) 다음 N-1개 줄에는 도로를 나타내는 세 정수 A, B, C가 주어진다. A와 B사이에 길이가 C인 도로가 있다는 뜻이다. 도로의 길이는 1,000,000보다 작거나 같은 양 www.acmicpc.net 빠른 LCA탐색 문제는 부모를 2의N승 부모를 저장한다. 예를들어 위 그림과 같은 트리가 있다고 가정해보자. 기존에는 바로 위의 부모만 저장했다. 그래서 ..

반응형