전체 글 488

[React] React State ( 함수형 컴포넌트 vs 클래스형 컴포넌트 )

React의 상태(state)가 변경되면 렌더링(Rendering) 과정이 실행됩니다.React는 효율적인 업데이트를 위해 Virtual DOM을 활용한 최적화된 리렌더링을 수행합니다.React는 변경된 state 값을 Virtual DOM에 적용합니다.Virtual DOM이란?실제 DOM을 직접 변경하는 것이 아니라, 메모리 상에 존재하는 가상의 DOM을 수정하는 방식.변경 사항을 먼저 Virtual DOM에 적용한 후, 실제 DOM과 비교하여 최소한의 변경만 실제 DOM에 반영함.React의 State가 변경되면? setState(useState)가 호출됨Virtual DOM을 변경기존 Virtual DOM과 비교(diffing)변경된 부분만 실제 DOM에 반영 (최적화)필요한 경우, useEffec..

Web/React 2025.02.18

[React] VSCode에 React 설정 및 유용한 기능

Node.jsNode.js는 브라우저 밖에서도 Javascript를 실행할 수 있게 해주는 런타임 환경이다.크롬 v8 기반으로 동작하며 Single-Thread의 non-blocking I/O 이벤트 기반으로 동작한다.아래 URL을 통해 Node.js를 설치할 수 있다.https://nodejs.org/ko Node.js — 어디서든 JavaScript를 실행하세요Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.nodejs.org NPM ( Node Packege Manager )Javascript를 위한 패키지 관리자로 공개된 Javascript 라이브러리들을 쉽게 설치해 사용할 수 있다.React 파일 생성하기1. Cre..

Web/React 2025.02.18

[AI] peft를 사용한 LLM 파인튜닝

PEFT란?PEFT (Parameter-Efficient Fine-Tuning)는 대형 언어 모델(LLM)을 더 적은 리소스로 효율적으로 미세 조정(Fine-Tuning)할 수 있도록 하는 기술입니다.Hugging Face의 peft 라이브러리를 사용하면 LoRA, Prefix Tuning, Adapters 같은 PEFT 기법을 쉽게 적용할 수 있습니다. Hugging Face의 PEFT(🤗 Parameter-Efficient Fine-Tuning) 라이브러리에서 LoRA 지원(https://github.com/huggingface/peft)!pip install -q -U bitsandbytes!pip install -q -U git+https://github.com/huggingface/transf..

AI 2025.02.14

[C#서버] Akka.net과 Cluster Part.5 적용해보자!

그동안 공부했던 Akka.net과 IOCP 등 여러 기술을 조합하여 Messenger 서버를 개발해 보고 있습니다. https://github.com/tkddls3319/Akka.net-IOCP-Web-MessengerServer GitHub - tkddls3319/Akka.net-IOCP-Web-MessengerServer: Akka.net과 IOCP를 결합한 채팅 서버 ( Cluster )Akka.net과 IOCP를 결합한 채팅 서버 ( Cluster ). Contribute to tkddls3319/Akka.net-IOCP-Web-MessengerServer development by creating an account on GitHub.github.com

[C#서버] google.protobuf.Timestamp Json Deserialize 사용방법

google.protobuf.Timestamp는 Protobuf에서 날짜 및 시간을 다룰 때 사용하는 표준 타입입니다. Protobuf 메시지를 JSON으로 직렬화하거나 JSON에서 역직렬화(Deserialize)할 때, 타임스탬프(TimeStamp) 처리가 까다로울 수 있습니다. 이 글에서는 ProtoBuf에서의 Timestamp 사용법과 C#에서 JSON 직렬화/역직렬화 처리 방법을 설명합니다. 1. Proto 파일에서 Timestamp 사용 설정1.1 Timestamp를 사용하기 위한 Proto 설정Protobuf에서 google.protobuf.Timestamp를 사용하려면 먼저 다음과 같이 import를 선언해야 합니다.syntax = "proto3";import "google/protobuf/..

[Unity] PropertyAttribute (인스펙터 정리)

Unity Inspector 속성(Attribute)은 스크립트의 변수와 동작을 Unity Editor에서 효율적으로 관리하게  1. [AddComponentMenu]설명: AddComponent 메뉴에 스크립트를 추가하고 그룹화하여 관리.사용 예: 특정 스크립트를 카테고리화해 찾기 쉽게 만듦.효과: AddComponent 메뉴에 CustomScripts > MyCustomScript 경로로 표시.[AddComponentMenu("CustomScripts/MyCustomScript")]public class AddComponentMenuTest : MonoBehaviour { }2. [ContextMenu] & [ContextMenuItem][ContextMenu] 설명: Inspector의 톱니바퀴 메..

Unity 2025.01.15

[C#서버] Protobuf사용 방법 및 빌드 이벤트와 .bat

구글 프로토버퍼란?Google Protocol Buffers(protobuf)는 데이터 직렬화 형식으로 사용되는 강력하고 효율적인 도구로, 다양한 언어와 플랫폼 간에 데이터를 교환하고 저장하기 위해 사용됩니다.  효율적인 직렬화: protobuf는 바이트 크기 측면에서 효율적입니다. 작은 크기의 직렬화된 데이터를 생성하며, 이는 데이터를 네트워크로 전송하거나 디스크에 저장할 때 대역폭과 저장 공간을 절약합니다. 빠른 역직렬화: protobuf 메시지는 효율적인 이진 형식으로 저장되므로 역직렬화 속도가 빠릅니다. 데이터를 직렬화된 형식에서 메모리 객체로 변환하는 작업이 빠르게 수행됩니다. 이식성: protobuf는 언어 중립적인 형식으로 데이터를 정의하며, 이로 인해 다양한 프로그래밍 언어와 플랫폼 간에 ..

[Unity] WebGl환경 iis로 Websocket 통신 방법 Javascript NativePlugin

https://docs.unity3d.com/kr/2021.1/Manual/webgl-server-configuration-code-samples.html WebGL: 서버 설정 코드 샘플 - Unity 매뉴얼아래 코드 샘플은 WebGL로 작업할 때 서버를 설정하는 방법을 보여줍니다. 다음 샘플은 IIS 및 Apache 서버에 적용됩니다. WebGL 서버 설정에 대한 자세한 내용은 WebGL: 압축 빌드 및 서버 설정을 참조docs.unity3d.comhttps://docs.unity3d.com/kr/2018.4/Manual/webgl-deploying.html WebGL: 압축된 빌드 배포 - Unity 매뉴얼릴리스 모드에서 WebGL 프로젝트를 빌드하는 경우(빌드 퍼블리시 참조), Unity는 빌드의..

Unity 2024.12.27

[Unity] InputSystem 사용방법(PlayerInputComponent와 Generate C# Class)

Unity의 Input System은 기존의 Legacy Input Manager의 한계를 해결하기 위해 설계된 새로운 입력 관리 시스템입니다. 멀티 디바이스 지원, 유연성 향상, 플랫폼 호환성 강화를 목표로 하며, 2019년에 처음 도입되어 Unity의 최신 입력 관리 표준으로 자리 잡았습니다.기존 Legacy Input Manager의 한계기본 API가 직관적이고 학습 곡선이 낮지만 Input Manager에서 모든 입력을 사전에 설정해야 하며, 게임 내에서 변경하려면 커스텀 스크립트를 작성해야 하고 이벤트 기반 입력 미지원, 멀티 디바이스 지원의 부족, 폴링(Polling) 기반 입력으로 사용자가 입력한 상태를 매 프레임마다 Update에서 확인해야 되기 때문에 유지보수 및 확장에 어려움이 있습니다..

Unity 2024.12.27

[Softeer/C++] [21년 재직자 대회 예선] 회의실 예약

https://softeer.ai/practice/6266 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai#include#include#include#include#includeusing namespace std;string formatString(int time){ string s = to_string(time); return s.size() > n >> m; string in; int start, end; vector roomName; map> room; for (int i = 0; i > in; roomName.push_back(in); room[in] = vector(10); } for (int i = 0; i > in >> start >> end; for (int i ..

[C#서버] Akka.net과 Cluster Part.4

Akka.NET 클러스터란?Akka.NET 클러스터는 여러 대의 서버(노드)를 하나의 분산 시스템으로 구성하여 확장성, 고가용성, 그리고 장애 복구 기능을 제공하는 시스템입니다. 각 서버는 독립적인 역할을 수행하며, 클러스터를 통해 서로 협력하여 부하를 분산하고 높은 가용성을 유지할 수 있습니다.클러스터의 주요 특징과 개념확장성 및 역할 기반 분산 처리:Akka.NET 클러스터는 서버를 필요에 따라 쉽게 추가하거나 제거할 수 있습니다. 이를 통해 시스템은 수평으로 확장 가능하며, 클라이언트 수나 데이터 처리량이 증가해도 효율적으로 대응할 수 있습니다.각 서버는 클러스터 내에서 특정 역할을 맡습니다. 예를 들어, MMORPG 같은 게임에서는 이동 서버, 전투 서버, 채팅 서버 등 기능별로 서버를 나눠 관리..

[C#서버] Akka.net과 Actor모델 Part.3

주요내용분산 메세지 전달과 RouterPool RouterActorSelect와 Route 비교HOCON을 사용한 Router 설정비동기 actor간 메시지 전달 PipeTo와 ReceiveAsync비동기 호출 단순화 akka.Interfaced액터 메세지 수신 교착 상태 방지와 ReceiveTimeout1. 분산 메세지 전달 Router라우터는 다른 actor 그룹으로 메시지를 전달하는 메시징 허브 역할을 하는 특별한 종류의 actor 입니다. 라우터의 목적은 실제 작업을 수행할 배우들(즉, 라우티)을 통해 작업(메시지 스트림)을 분배하고 균형을 맞추는 것입니다.라우터는 actor이지만 기존 actor와 다르게 한 번에 여러 메시지를 처리할 수 있습니다. 라우터의 목적은 메시지를 처리하는 것이 아니라,..

[C#서버] Akka.net과 Actor모델 Part.2

주요내용액터 메시지 처리 스레드 관리 DispatcherAkka.Net 애플리케이션 설정 HOCON(Human-Optimized Config Object Notation)ReceiveActor메세지 예약 Scheduler퍼블리시 구독 (pub-sub) 패턴런타임 액터 동작 전환 BecomeStacked와 UnbecomStacked액터 동작 전환과 메세지 임시저장 Stash1. Dispatcher ( 액터 메시지 처리 스레드 관리 )액터를 사용할 때, 메시지가 액터에 도달하는 과정은 매우 중요합니다. 여기서 핵심 역할을 하는 것이 바로 Dispatcher입니다. Dispatcher는 액터의 메일박스에서 메시지를 꺼내어 액터가 실제로 작업을 수행하는 OnReceive() 메서드로 전달하는 중개자입니다. 쉽게..

[C#서버] Akka.net과 Actor모델 Part.1

주요내용Akka.net 이란?액터관리와 ActorSystem 액터간 메세지 전달 Tell액터참조와 IActorRef액터생성과 Props액터간 감독과 예외처리 supervision주소로 액터 찾기 ActorSelectionActorSelection과 IActorRef 차이점액터 라이프사이1. Akka.net이란?.NET 플랫폼에서 사용할 수 있는 오픈 소스 프레임워크로, Actor 모델을 구현하여 병렬성과 분산 시스템을 쉽게 구축할 수 있도록 도와줍니다.2. Actor모델 이란?Actor 모델은 큰 프로젝트에서 여러 작업을 동시에 처리하거나, 많은 사용자가 동시에 접속하는 시스템을 만들 때 매우 유용한 패턴입니다. 이 모델을 이해하기 위해 먼저, 우리가 흔히 사용하는 객체 지향 프로그래밍(OOP)과 비교해..

[C#] Func 람다식 Expression오류(cs0834)

우선 Func 람다 형식은 표현식(Expression)람다와 문(Statement)람다 2가지가 존재한다. 표현식(Expression) 람다: 하나의 표현식으로만 구성된 람다입니다. 이 경우 return 키워드를 사용하지 않고, 람다의 결과는 그 표현식 자체가 됩니다.Func square = x => x * x; // 표현식 람다문(Statement) 람다: 중괄호 {}를 사용하여 여러 문으로 구성된 람다입니다. 이 경우 return 키워드를 사용할 수 있습니다.Func square = x =>{ int result = x * x; return result; // 문 람다에서는 return 사용 가능}; C#에서 CS0834 오류는 "A lambda expression with a statem..

VisualStudio/C# 2024.09.11