Home
define_chan
Cancel

[ASP.NET Core] Hello MVC #1

ASP.NET Core 소개 ASP.NET Core는 Microsoft에서 개발한 웹 프레임워크이다. 할 수 있는 작업으로는 C#으로 웹앱 및 서비스 등을 빌드할 수 있으며, Blazor를 사용하면 C#으로 웹 프론트엔드까지 작업이 가능하다. ASP.NET Core로 작업할 수 있는 프로젝트 형태는 아래와 같다. MVC Razor Pag...

[멀티쓰레드] Interlocked

경쟁 상태(Race Condition) 경쟁 상태(Race Condition)란 두 개 이상의 프로세스 또는 쓰레드가 하나의 공유 자원에 동시에 접근하여 결과값에 영향을 줄 수 있는 상태를 말한다. 경쟁 상태(Race Condition) 예 static int number = 0; static void Thread_1() { for (i...

[멀티쓰레드] 메모리 배리어

메모리 배리어 메모리 배리어(Memory Barrier)는 하드웨어(CPU)나 컴파일러에게 특정 연산의 순서를 강제하도록 하는 기능이다. 하드웨어(CPU)나 컴파일러에서는 최적화를 위해 연산 결과에 영향이 가지 않을 정도로 연산의 순서를 뒤바꿀수 있는데 멀티쓰레드 환경에서는 이러한 최적화로 인해 문제가 발생할 수 있다. 하드웨어(CPU) 최적화 ...

[멀티쓰레드] 캐시 이론

컴퓨터 구조 원리 - 캐시(cache) 컴퓨터 구조 - 캐시 캐시(cache)는 데이터를 미리 복사해 놓는 임시 장소로, 데이터에 접근하는 시간을 줄이기 위해 사용된다. 컴퓨터는 기본적으로 프로그램을 메모리(RAM)에 올려놓고 실행시키지만 매번 메모리(RAM)에 접근하고 갱신하기에는 오래 걸리기에 연산장치와 메모리(RAM) 사이에 캐시장치를 두...

[고급 C#] LINQ #2

LINQ 문법 정리 기본적인 문법(from, where, orderby, select) from 어떤 데이터에서 찾을 것인지 where 어떤 조건으로 찾을 것인지 orderby 어떤 항목을 기준으로 정렬할 것인지 select 어떤 항목을 추출할 것인지 public enum ClassType { Knight, Archer, ...

[고급 C#] LINQ #1

LINQ C#에서는 LINQ라는 기능을 지원해주고 있다. LINQ는 “Language-Integrated Query”의 약자로, Query를 통해 원하는 데이터를 빠르고 편리하게 추출 할 수 있는 기능이다. 데이터를 다룰 때 유용한 문법이며, SQL 문법과 비슷하다. 보통 데이터들이 있을 때 거기서 특정 필요한 데이터만 추출 및 가공해서 사용해...

[고급 C#] Async, Await

동기(Synchronous)와 비동기(Asynchronous) 동기(Synchronous)란 동시에 일어난다는 의미로 한자리에서 요청과 동시에 결과가 일어난다. 그렇기에 결과가 발생해야지만 다음 동작을 수행할 수 있다. 비동기(Asynchronous)란 동시에 일어나지 않는다는 의미로 요청과 결과가 한자리에서 동시에 일어나지 않을 수 있다. 그렇기...

[웹 기초] CSS #2

CSS Box Model https://www.w3schools.com/css/를 참고 출처:CSS Box Model CSS Box Model은 기본적으로 모든 HTML 요소들의 영역을 상자로 표현한 것을 말한다. 각 HTML 요소들의 영역은 Margin, Border, Padding, Content로 나뉜다. Content - 텍스트...

[웹 기초] CSS #1

CSS CSS란 “Cascading Style Sheet”로 HTML 등의 마크업 언어로 작성된 문서가 실제로 웹사이트에 표현되는 방법을 정해주는 스타일시트 언어이다. 쉽게 말하면 웹페이지를 꾸며주는 언어이다. CSS를 학습할 때 아래 사이트를 참고하면 매우 좋다. https://www.w3schools.com/css/ HTML tags HT...

[멀티쓰레드] 컴파일러 최적화

컴파일러 최적화(Release 모드) 간단한 멀티쓰레드 코드를 작성해보자. static bool _stop = false; // 전역 변수는 쓰레드 간 공유된다. static void Thread1() { Console.WriteLine("쓰레드 시작!"); while(_stop == false) { // 누...