Meow & Code Journey
github: @https://github.com/garambaek1017
C#에서 async/await를 사용할 때 lock을 함께 쓰려고 하면 에러가 난다. 이때 어떻게 하면 lock을 쓸 수 있을까? 🤯 🔐 전통적인 lock과 비동기 코드의 문제점 lock문은 동기(synchronous)코드에서만 사용 가능하다.비동기 코드에서 await를 만나면 스레드가 컨텍스트를 해제하면서 락을 제대로 해제하지 못하는 상황이 생길 수 있기 때문이다.private static readonly object _lock = new object();public async Task DoSomethingAsync(){ lock (_lock) // 비동기 코드에서는 사용 불가! { await Task.Delay(1000); }} 결과? 👉 에러! The 'awai..
최근 여러 이슈를 보다가 왜 AI를 돌릴 때 그래픽 카드가 중요한지 궁금해졌다.(ex : Chat GPT vs DeepSeek ) 궁금한건 못 참으니까 왜 그런지 알아보자! 💡 AI를 돌릴 때 그래픽 카드(GPU)가 중요한 이유는 병렬 처리 성능 덕분이다. 💪 CPU vs GPUCPU(중앙 처리 장치) : 직렬 처리에 특화됨. 여러 작업을 순차적으로 빠르게 처리함.GPU(그래픽 처리 장치) : 병렬 처리에 특화됨. 수천 개의 작은 코어가 동시에 많은 작업을 처리함.⚙️ AI에서 GPU가 중요한 이유병렬 연산:딥러닝과 같은 AI 모델은 수많은 행렬 연산과 벡터 연산을 수행한다. GPU는 수천 개의 코어로 이 연산을 병렬로 처리해서 속도를 크게 높여준다. 훈련과 추론 속도:AI 모델을 훈련할 때는 수..
launchSettings.json 파일은 애플리케이션이 로컬 개발 환경에서 실행될 때 필요한 여러 설정을 정의하는 파일. Blazor뿐만 아니라 ASP.NET Core MVC, ASP.NET Core API, Razor Pages 같은 다양한 ASP.NET Core 애플리케이션에서도 똑같이 사용. 개발자의 로컬 PC에서는 **launchSettings.json**의 환경 변수 설정에 따라 환경별 설정 파일이 로드되며, 최종적으로 애플리케이션 설정이 적용 ✨ launchSettings.json의 주요 역할 1. 서버 실행 설정애플리케이션이 어떤 서버에서 실행될지를 정함예를 들어 kestrel이나 IIS Express같은 서버를 사용할 수 있음 2. 브라우저 실행 여부 애플리케이션을 실행할 때, 자동으로 ..
🌐 Nginx란?**Nginx(NGINX)**는 웹 서버 소프트웨어로, 고성능 웹 서버이자 리버스 프록시 서버로 널리 사용됨. Nginx는 아래와 같은 역할을 함:🌍 HTTP 서버로 웹사이트 트래픽을 관리함.🔄 리버스 프록시로 서버와 클라이언트 간 요청을 중계함.⚖️ 로드 밸런싱으로 트래픽을 여러 서버에 분산시켜 성능을 최적화함.Nginx는 빠르고 가벼운 성능 덕분에, Apache 같은 전통적인 웹 서버보다 더 많은 요청을 동시에 처리할 수 있어서, 대규모 트래픽을 처리하는 데 적합함.🔑 Nginx의 주요 특징 ⚡ 비동기 이벤트 기반 아키텍처Nginx는 비동기적으로 동작하고, 이벤트 기반 구조를 사용해서 다수의 요청을 효율적으로 처리함. 쉽게 말해, 한 번에 여러 요청을 빠르게 처리할 수 있음. 🔄 리버..
프레임워크 Framework / 라이브러리 Library 프레임워크 Framework 원하는 기능 구현에 집중하여 개발 할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대 의미 라이브러리 Library 단순 활용 가능한 특정 기능을 모아둔 코드 * 프레임워크는 라이브러리를 포함한다.
WebSocket - 서버와 브라우저 사이에 TCP를 사용하여 양방향 연결을 구성하는 프로토콜