본문 바로가기

분류 전체보기110

[최적화] 데이터 구조와 알고리즘 작업 시 성능 최적화 전략 프로그램의 효율성, 확장성 및 응답성을 향상시키기 위한 성능 최적화 전략 적절한 데이터 구조선택- 필요한 작업에 가장 적합한 데이터 구조 선택 (예:유일성 검사가 필요할 경우 List보다 HashSet 사용) 시간 복잡도 이해- 알고리즘의 시간 및 공간 복잡도에 대한 확고한 이해를 통해 성능 병목 현상을 효율적으로 예측 메모리 할당 최소화- 고정 용량을 가진 배열을 사용하거나 오브젝트 풀을 사용하여 빈번한 할당 및 가비지 수집 오버헤드를 줄임 효율적인 알고리즘- 시간 복잡도를 최소화하는 최적의 정렬 및 검색 알고리즘을 사용병렬 프로그래밍 사용- 대규모 데이터집합 처리 속도를 높이기 위해 멀티스레딩을 활용하여 프로세서 간 작업 부하를 분산 프로파일링 및 벤치마킹- 프로파일링 도구를 사용하여 애플리케이션의 .. 2026. 2. 23.
[Unity] 유니티 릴레이 서비스 유니티 릴레이유니티에서 제공하는 멀티플레이어 게임용 네트워크 인프라 서비스 중 하나로, NAT(Network Address Translation)나 방화벽 등의 이유로 플레이어들끼리 직접 연결(P2P, Peer-to-Peer)할 수 없을 때, 중간 서버를 통해 데이터를 중계해주는 서비스입니다.Unity의 Unity Gaming Services (UGS) 플랫폼의 일부로 작동하며, Unity Transport와 연동되어 사용됩니다. https://docs.unity.com/ugs/ko-kr/manual/relay/manual/integration Relay 연동Relay 연동# Relay는 Unity 생태계의 일부로, Lobby, Unity Authentication, Unity Transport 패키지,.. 2025. 8. 13.
[코딩공부] 코딩 컨벤션(Coding Convention) 코딩 컨벤션(Coding Convention)개발자들이 팀 프로젝트를 시작하기 전에 변수명, 함수명, 파일명 등의 작성 방식에 대한 규칙을 정하는 것을 "코딩 컨벤션(Coding Convention)" 또는 "코드 스타일 가이드(Code Style Guide)"라고 합니다. 예시로 포함되는 내용:변수/함수/클래스/파일의 네이밍 규칙 (예: camelCase, snake_case, PascalCase 등)들여쓰기 방식 (탭 vs 스페이스, 공백 개수)한 줄 최대 길이주석 스타일코드 구조 및 파일 구성 방식목적:협업 시 코드의 일관성을 유지하고가독성과 유지보수성을 높이기 위해참고:많은 경우, 특정 언어나 프레임워크에서는 공식 스타일 가이드가 이미 존재합니다. 예를 들어:Python: PEP 8JavaScri.. 2025. 8. 10.
[C#] ConcurrentDictionary :: 멀티스레드 환경을 위한 Dictionary ConcurrentDictionaryConcurrentDictionary는 .NET (C#)에서 멀티스레드 환경에서 안전하게 데이터를 읽고 쓸 수 있도록 설계된 스레드 안전한 딕셔너리(Dictionary)입니다.기본적으로 Dictionary는 단일 스레드 환경에서는 매우 빠르지만, 멀티스레드 환경에서는 동기화 처리가 필요합니다. 이를 수동으로 처리하는 대신, ConcurrentDictionary를 사용하면 .NET이 내부적으로 락(lock)과 분할(lock striping) 기술을 통해 성능과 안전성을 보장합니다.✅ 주요 특징 스레드 안전(Thread-safe)동시에 여러 스레드가 읽고/쓰기 가능락 분할(Lock Striping)전체 딕셔너리에 락을 걸지 않고, 키 범위에 따라 분할하여 효율성 확보성능 .. 2025. 7. 7.
[네트워크] TCP/IP - 비동기 방식의 연결 (2)TCP 비동기 클라이언트 TCP 비동기 클라이언트using UnityEngine;using UnityEngine.UI;using System;using System.Net.Sockets;using System.Threading.Tasks;using System.Text;public class TcpClientAsync : MonoBehaviour{ [SerializeField] private string serverIP = "127.0.0.1"; [SerializeField] private int serverPort = 8888; [SerializeField] private InputField inputField; [SerializeField] private Button sendButton; [.. 2025. 6. 17.
[네트워크] TCP/IP - 비동기 방식의 연결 (1)TCP 비동기 서버 TCP 비동기 서버 TcpServerAsync.cs using UnityEngine;using System;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;public class TcpServerASync : MonoBehaviour{ private TcpListener tcpListener; private Thread listenerThread; // Start is called before the first frame update void Start() { listenerThread = new Thread(ListenForIncomingRequests); .. 2025. 6. 12.