2025/03 23

3월 마지막날을 보내며

4월 개인 공부 우선순위 순1.알고리즘 문제(생각하면서 코드 짜는 습관 들이기 좋음)2. 개인 플젝(= 유니티 사용 & 서버 API 사용 익히기)3. CSOS4. 게임코드 접하기(겜수책이든 뭐가 됐든)5. 자기 전이나 아침준비할 때 이론 위주 강의듣기6. 서버 그래픽스업무 시 신경쓸 것실무에서는 잘 알려주는 것들 잘 익숙해지려 노력하자.뭐든 부딪혀보고 익숙해지려 애쓰기의견 제시는 신중하게, 생각 정리 후 검토 여러 번 하기질문 할 마음이 들어도,여러번 생각하고 시도해보고 여쭤 보기가져다 쓰려는 클래스는 추측보단꼭 클래스 멤버 쭉 훑고 읽으며 감잡아가기꾸준히 하자일희일비하지 말자개인적 바램4월에는 개인 플젝 어느정도 진도 뺐으면 좋겠다.🙂빨리 포톤서버 익히고 게임 컨텐츠 만들고 싶다.체력을 위해 운동좀 ..

프로그래머스 LV.2 연속 부분 수열의 합의 개수

GitHub : https://github.com/kwon1232/CodingTest/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/131701.%E2%80%85%EC%97%B0%EC%86%8D%E2%80%85%EB%B6%80%EB%B6%84%E2%80%85%EC%88%98%EC%97%B4%E2%80%85%ED%95%A9%EC%9D%98%E2%80%85%EA%B0%9C%EC%88%98int solution(vector elements) { int sum = 0; set s; for (int i = 0; i   https://school.programmers.co.kr/learn/courses/30/lessons/13..

프로그래머스 LV.3 야근 지수

야근 지수는 무작정 큰 수 하나만 남은 시간을 전부 할애하여차감한다고 답이 나오는 것이 아니다.즉 차감의 우선순위가 있기 때문에 우선순위 큐를 떠올라야 한다. 예를 들어 " 4, 3, 3 " 가 주어졌을 때, 4시간의 시간이 주어지면 "2, 2, 2"으로 만들어야 제곱의 합이 제일 작고 "0, 3, 3"로 만들면 제곱의 합이 크다는 것을 알 수 있다. 그러므로, 우선순위 큐를 활용해서 존재하는 작업 중 가장 큰 값이 top인 max heap으로 구성하여N시간 동안 top에 위치한 작업량을 잠깐 끄집어내서 한 시간씩 빼주고 다시 push 해준다. 물론 vector sort로 계속 정렬할 수 있지만,이는 vector만 사용한 코드의 시간 복잡도는 O(n*m)이므로n번 처리하는 과정에서 매번 m개의 작업을..

프로그래머스 LV.2 롤케이크 자르기

GitHub :https://github.com/kwon1232/CodingTest/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/132265.%E2%80%85%EB%A1%A4%EC%BC%80%EC%9D%B4%ED%81%AC%E2%80%85%EC%9E%90%EB%A5%B4%EA%B8%B0 CodingTest/프로그래머스/2/132265. 롤케이크 자르기 at main · kwon1232/CodingTestThis is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub)...

포톤 서버를 이용한 채팅 서버 제작

📦 ChatManager — 네트워크 채팅 관리 Photon Chat 서버와 직접 통신하고 네트워크 이벤트를 처리하는 관리자 주요 역할Photon 서버 연결 및 인증채팅 채널 구독 / 메시지 송신채널 내의 메시지 수신 및 UI로 전달Photon 채팅 관련 콜백들 처리구조 ChatManager static ChatManager instance ➤ 싱글톤 ChatClient chatClient ➤ Photon 채팅 클라이언트 string chatChannel ➤ 사용할 채널명 ("GlobalChannel") SendMessageToChat() ➤ 채널로 메시지 전송 OnConnected() ➤ 서버 연결 완료 후 채널 구독 OnGetMessages() ..

포인터를 사용하는 이유 토막 정리

포인터를 왜 쓰는지 알면언제 써야할지 명확하게 알고 쓸 수 있다1. 포인터 변수에 함수 주소를 저장하고 이를 호출해 상황에 따라 다르게 작동하는 코드를 만들 수 있다거나ex) 함수 포인터, 델리게이트 등2. 크기가 큰 구조체나 클래스를 매개변수로 넘겨줄 때 값 복사로 넘겨주면 상당히 무거운 작업이 되므로 이에 대한 참조(주소)만 넘겨준다던가ex) const & 같이 넘겨주는 경우3. 동적 할당한 메모리를 포인터로 가리킬 수 있다거나ex) 동적 할당 메모리 관리1,3번의 활용상속구조를 이용해서 버추얼테이블을 효율적으로 활용하는 캐스팅2번으로 상속구조 클래스 내부의 함수 얕은 참조로 경량화 가능

복제와 대입 처리하기

복제 생성자나 대입 연산자를 직접 정의하지 않으면컴파일러가 자동으로 만들어준다.이렇게 컴파일러에서 생성된 메서드는객체 타입 데이터 멤버에 대해복제 생성자와 대입 연산자를 재귀적으로 호출한다.하지만 int, double, 포인터와 같은 기본 타입에 대해서는비트 단위 복제(=bitwise copy) (또는 얕은 복제 (=shallow copy))나 대입이 적용된다.+++ Plus +++bitwise copy, shallow copy 에서는원본과 복사된 내용이 모두 메모리에 있는동일한 객체를 참조한다.+++++++++++즉, 원본 객체의 데이터 멤버를 대상 객체로단순히 복제하거나 대입만 한다.복제 생성자와 대입 연산자 정의해주기그런데 객체에 동적으로 할당한 메모리가 있으면 문제가 발생한다.이러한 문제는s라는 ..

GPGPU와 GPU 프로그래밍

GPU 프로그래밍을 공부하기에 앞서,GPU 프로그래밍이 필요한 이유를 이해하기 위해서는GPGPU(General-Purpose GPU)의 개념을 이해해야 한다.그리고 GPGPU를 이야기하려면 먼저그래픽 처리 장치(Graphics Processing Unit, GPU)가 무엇인지 알아야 한다. 그래픽카드라는 이름에서도 알 수 있듯 GPU는 컴퓨터 그래픽스 연산에 특화된 연산 장치이다.그래픽스 연산은 화면에 그림을 그리는 연산이라 이해하면 된다. 컴퓨터 내부에서는 물체나 공간에 대한 정보 또는이미지 정보가 인간이 눈으로 볼 수 없는 데이터 형태로 저장된다.따라서 이를 눈으로 보기위해 데이터를 해석해서 화면에 그리는 작업이 필요하다.이러한 그래픽 연산을 위해 개발된 연산 장치가 바로 그래픽 카드, GPU이다. ..

3월 말 회사 PainPoint

빌드 후에 bp로 짠 로직이 정상 작동하지 않는 오류가 있었다.이는 패키징 설정 문제 였으나,패키징 과정에서 자동으로 bp의 참조가softpointer로 치환되는 것이 오류의 원인으로 보았다. 그 이유는, 에디터 플레이로는 값이 서로 잘 전달되었지만,패키징 이후에는 값이 얕은 참조가 되었을 때 생기는 오류로 보였다.혹은 값이 잘 전달되지 않았을 때 생기는 경우의 오류였기에 해당포인터 오류로 판단하였다. 어떻게 오류를 수정해나가고 있긴 하지만,이번 기회로 OSCS,그리고 언어에 대한 이해, 엔진에 대한 이해를 좀 더 스스로에게 요구하는 계기가 되었다.