본문 바로가기

전체 글247

Service Locator와 Event Bus 개념공부가독성을 위해 접은글로 처리더보기Service Locator패턴서비스들을 중앙에서 관리하는 저장소, 모든 서비스들을 한 곳에 등록하고 필요할 때 꺼내서 사용하는 패턴서비스 (Service): 실제로 특정 작업을 수행하는 객체 -ex) 육성 시스템서비스들... 로케이터 (Locator): 서비스들을 등록하고, 클라이언트의 요청에 따라 해당 서비스를 찾아 제공하는 중앙 관리자입니다. '안내 데스크'의 역할을 합니다. - ex) GameManager클라이언트 (Client): 사용처 (어디서든)장점중앙 관리 : 모든 서비스 한곳에서 관리느슨한 결합: 클래스들이 직접 의존하지 않음테스트 용이: Mock 객체로 쉽게 교체 가능Event Bus 패턴이벤트 중개소. 어떤 클래스에서 이벤트를 발생시키면 그 이벤.. 2025. 10. 7.
async와 await을 사용할 상황 ▶ async와 await 스레드 풀 자동 관리: C#이 알아서 효율적으로 관리 컨텍스트 전환: 메인 스레드 ↔ 백그라운드 스레드 자동 전환 오버헤드 최소화: 필요한 경우에만 스레드 사용 개발자 편의성: 복잡한 스레드 관리 코드 불필요※C++에서 수동으로 관리하던거 C#이 자동으로 처리해줌public async Task UnityExample() { // 1. 메인 스레드 (Unity UI 스레드) Debug.Log($"Before await: {Thread.CurrentThread.ManagedThreadId}"); // 2. 백그라운드 스레드로 이동 await Task.Run(() => { Debug.Log($"In Task.Run: {Thread.Cu.. 2025. 10. 7.
MySQL 기본 사용법 MySQL 데이터베이스 스키마와 테이블 세팅기본 PORT번호는 3306으로 설정되어 있음 (MySQL Defult)데이터베이스는 해킹 사고의 근간.. 보통 해킹당했다! = DB 털렷다!adress가 데이터베이스 스키마. 그 아래 하위로 Table을 만들 수 있다PK = PreimaryKey 즉 중복 불가능키 그리고 나머지 약자도 오른쪽 아래 보면 표기되어 있다테이블에 데이터를 삽입하주고 Apply키를 누르면 들어감 book 테이블을 만들어서 userInfo와 연결해줄건데 아래와 같이 구성adressbook의 userifo의 name과 author을 연결해줬다는 뜻주의 사항 대소문자 구분x, 데이터 문자열은 구분o기본 코드사용사용법 직관적이고 어렵지도 않다번개모양 누르면 적은 코드가 실행됨INSERT UP.. 2025. 6. 24.
입출력모델 - IOCP (Completion Port) IOCP (I / O Completion Port)가 왜 최종일까?이전 모델들의 단점을 모두 해결했기 때문에이벤트 모델의 단점 : 스레드와 클라이언트가 1:1로 묶여 클라이언트 수 만큼 스레드가 필요했다콜백 모델의 단점 : I/O를 시작한 스레드에서만 콜백이 실행되는 '스레드 종속성' 문제가 있었다 IOCP는 적은 수의 스레드로 많은 클라이언트의 I/O를 효율적으로 처리하며, I/O 완료 작업을 특정 스레드에 종속시키지 않고 노는 스레드에게 공평하게 분배한다.IOCP의 3대 핵삼 구성요소세가지 핵심API함수로 동작한다CreateIoCompletionPortIOCP의 핵심인 Completion Port 핸들을 생성하는 함수모든 I/O 완료 통지는 이 포트를 통해 이루어진다.또한 클라이언트 소켓이 생길 때마.. 2025. 6. 16.
입출력 모델 Overlapped - IO (콜백기반) 비동기 데이터 수신( Overlappend I/O )이전 포스팅에서 다룬 Event기반 IO 모델은 클라이언트마다 스레드와 이벤트 핸들을 할당하여 I/O 완료를 감지하는 방식이였다이번엔 이벤트 핸들을 직접 관리하는 대신 I/O 작업이 완료되었을 때 우리가 지정한 함수가 자동으로 호출되게 만드는 콜백 기반 처리 최종적으로 왜 IOCP를 사용하는지 이해하기에 도움이 되는 개념 Alertable State와 APC콜백 모델을 이해하려면 두 가지 중요한 개념을 먼저 알면 좋다APC(Asynchronous Procedure Call, 비동기 프로시저 호출)쉽게 말해 나중에 특정 스레드에서 실행될 함수I/O 작업이 완료되면 OS는 "작업 끝났어" 라고 말하는 대신 우리가 등록한 콜백함수를 APC큐라는 작업 공간에 .. 2025. 6. 16.
입출력 모델 - Overlapped I/O (이벤트기반) MS공식 문서https://learn.microsoft.com/ko-kr/windows/win32/api/winsock2/nf-winsock2-wsasend WSASend 함수(winsock2.h) - Win32 apps연결된 소켓에 데이터를 보냅니다. (WSASend)learn.microsoft.comhttps://learn.microsoft.com/ko-kr/windows/win32/api/winsock2/nf-winsock2-wsarecv WSARecv 함수(winsock2.h) - Win32 apps연결된 소켓 또는 바인딩된 연결 없는 소켓에서 데이터를 받습니다. (WSARecv)learn.microsoft.com 용어정리 Overlapped I/O (이벤트 기반)IOCP로 나아가기 위한 발판비동.. 2025. 6. 16.