본문 바로가기

분류 전체보기108

[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.
[네트워크] TCP/IP 비동기 통신 함수 Asynchronous TCP/IP 통신 함수 Asynchronous TCP/IP 통신 함수 TCP/IP 통신을 위한 클래스들을 제공하는 네임스페이스 System.Net.Sockets- C# 5.0부터 도입된async/await키워드를 사용하면 비동기 코드를 동기 코드처럼 간결하게 작성할 수 있습니다. TcpListener(서버)TcpListener(IPAddress localaddr, int port): 서버가 사용할 IP 주소와 포트에서 클라이언트 연결을 수신할 TcpListener 객체를 생성합니다.Start(): 클라이언트 연결 수신을 시작합니다.AcceptTcpClientAsync(): 클라이언트로부터 온 리퀘스트(연결 요청)를 비동기적으로 수락하고, await 키워드와 함께 사용하여 연.. 2025. 6. 12.
[네트워크] 비동기 통신 비동기 통신 Asynchronous (비동기) 통신 Asynchronous(비동기) 통신은 프로그램이 특정 작업(예: 네트워크 요청)을 시작한 후, 그 작업의 완료를 기다리지 않고 바로 다음 코드를 실행하는 통신 방식입니다. 작업의 결과는 나중에 콜백(callback) 함수, 이벤트, future/promise 객체 등을 통해 확인하거나 처리합니다. 비동기 TCP/IP 통신의 장단점 장점• UI 멈춤 방지:네트워크 작업 중에도 프로그램 실행이 중단(block)되지 않아, UI가 멈추는 현상(Freezing)을 방지할 수 있습니다.• 높은 응답성:사용자의 입력에 즉각적으로 반응할 수 있어 애플리케이션의 응답성이 유지됩니다. • 효율적인 자원 사용:대기 시간 동안 다른 작업을 병렬 처리할 .. 2025. 6. 11.
[주간일지] 6월 2주차(6.9~6.15) 지난 주 한 일 지난 주 진행 작업 및 이슈사항- 서버 공부 : TCP 동기형 클라이언트 (🗓️~ 06.10) ✔️🗳️ 제21대 대선 (🗓️06.03) ✔️💊 일반건강검진 (🗓️06.05) ✔️❤️ 데이트 (이라크전 월드컵예선3AM) 6/6🌸 다이소, 헤어샵 방문 6/7 이번 주 할 일지난 업무 관련하여 이번 주에 수정/진행 할 사안, 지원 요청- 서버 공부 : TCP 비동기형 서버 (🗓️06.10 ~ 12) ✔️💪 홈트레이닝 + 자전거 타기📽️ (CGV영등포) 인피니트 15주년 콘서트 리미티드 에디션 더 무비 (🗓️06.14) 2025. 6. 11.