프로그래밍
-
Javascript 최적화프로그래밍 2024. 3. 26. 19:39
원문 : 롬그르크 (romgrk.com) romgrk --> I often feel like javascript code in general runs much slower than it could, simply because it’s not optimized properly. Here is a summary of common optimization techniques I’ve found useful. Note that the tradeoff for performance is often readabil romgrk.com 유용한 최적화 방법에 대한 자세한 설명
-
for-scope-task프로그래밍 2024. 3. 6. 18:17
1. for(var i=0; i { var r = await StartTestConvert(i); Console.WriteLine(r); }); } Console.ReadLine(); static Task StartTestConvert(int i) { return Task.FromResult(i); } 이것과 2. for(var i=0; i { var r = await StartTestConvert(n); Console.WriteLine(r); }); } Console.ReadLine(); static Task StartTestConvert(int i) { return Task.FromResult(i); } 이것의 차이는? 1번 코드의 for문 안의 Task는 백그라운드 작업이다. 따라서, 동시성이 없다..
-
-
예매, 예약 시스템에 대한 고찰 - 1프로그래밍 2024. 3. 3. 22:51
대부분의 개발자는 분산 처리와 인프라에 대해 고민할 경우가 많지 않다. 분산 처리의 경우 대부분 Message Queue라던지, 비동기 처리를 공부할 것이다. 여기서 다루고자 하는 것은 대량 접속자에 대한 처리에 대한 고민이다. 우리가 영화나 공연 또는 기차 예매 시스템을 개발한다고 하자. 예로 공연 예매 시스템을 구현한다면 어떻게 해야 할까? 일반적인 개발자는 모든 서버와 인프라를 하나의 시스템으로 간주한다. 즉, 모든 시스템은 동일한 역활을 수행하는데 있어, 특정 영역이나 구분 없이 모두 공통적인 기능을 수행하는 시스템을 구축하게 된다. 이러한 경우 대량 접속자 또는 처리에 취약할 수 밖에 없다. 특히 도메인과 많은 연관성이 있는데 그림으로는 아래와 같다. 위와 같은 예매 좌석이 있다고 하자. 각 구..
-
ASP.NET MVC에서 ASP.NET CORE MVC + WEBAPI의 여정 - 파트2프로그래밍 2024. 2. 16. 13:56
이제 MVC 대신 BLAZOR SPA를 할 차례 입니다. .NET을 사용하는 Web project들은 대부분 MVC로 구현된다. 또는 현대적 어플리케이션을 작성한다면 대부분 react, vue를 사용하고 있으리라. (angular는 사랑받지 못하고 있다...) 그럼 왜 Blazor를 추천하는가? 파트1에서 대부분의 개발자가 Winform을 거쳐왔다고 이야기 하였다. 그러나, 특이 케이스들이 있으니, WPF, Sliverlight를 개발해본 개발자들이 되겠다. WPF는 간단히 말해서 마크업 기반으로 UI 프로그램을 작성할 수 있는 UI프레임워크가 되겠다. 그렇다, WPF 마크업이 HTML의 마크업과 유사(?)하기에, 또한 MVC를 거치며 모델화하는 프로젝트를 경험한 개발자에게 유용한 Blazor는 .net..
-
ASP.NET MVC에서 ASP.NET CORE MVC + WEBAPI의 여정 - 파트1프로그래밍 2024. 2. 15. 15:02
이제 과거의 유산을 걷어내고 새로 스택을 쌓을 시간 입니다. ASP.NET MVC와 ASP.NET CORE MVC는 상당한 간극이 있다. 대표적으로 HttpContext를 사용하는 방법에 있다. ASP.NET MVC의 HttpContext는 Application에서 전역 객체에 속한다. 아래와 같이 설명할 수 있다. Request (Browser) ----> IIS - Create Application Thread (at ThreadPool) ---> ASP.NET MVC Pipeline ----> Find route to Controller 또한 ASP.NET MVC에서는 별도의 의존성 주입이 기본으로 없으므로 대부분의 코드가 HttpContext를 직접적으로 사용하고 있다. 코드로는 아래와 같다. p..
-
로그인을 구현하시나요? 당장 Session사용을 멈추세요.프로그래밍 2024. 2. 15. 13:27
Session 객체에 로그인 정보와 유무를 담지 마세요. 빌드 후 다시 로그인 하시겠습니까? 웹 개발을 할때 가장 좋지 못한 계정 관리 케이스가 무엇이냐고 물어 본다면 아래와 같다. "로그인 상태를 Session으로 처리하려고 할때이고 이 말은 빌드할때마다 로그인을 다시 해야 된다는 이야기다." 그럼 어떻게 처리해야 할까? 우리는 JWT가 있음을 알고 있다. 또한 JWT에 Claim정보를 넣을 수 있다는 것도 알고 있다. Claim정보에 사용되는 것들은 대부분 규격화 되어 있다. 따라서 해당 규격에 맞게 JWT를 생성해서 Client(Browser)에서 보관하고 있어야 한다. 그것이 쿠키가 되었든 로컬스토리지가 되었든 말이다. 그럼 서버측에서는 어떻게 로그인 되었는지 알까? JWT는 암호화되어 발행되고 ..
-
ASP.NET 개발에서 DataTable은 만악의 근원입니다.프로그래밍 2024. 2. 15. 13:17
DataTable은 만악의 근원입니다. 먼저 간략하게 ASP.NET 개발의 역사에 대해 알아보자. ASP.NET 의 시초는 ASP이며 ASP는 JSP과 동등한 레벨의 Model1 스타일의 코드를 작성하는 개발 프레임워크이다. ASP와 JSP의 Model1은 페이지 코딩으로 ASP에서는 vb문법을 채택하고 있다. 중요한 점은 asp와 jsp 모두 페이지 중심의 개발 스타일이라는 점이다. ASP.NET으로 발전된 이후 ASP.NET은 2가지로 분리된다. 1. ASP.NET WEBFORM 2. ASP.NET MVC ASP.NET WEBFORM은 C# WINFORM에 기반한, 즉, CS 개발자가 접근하기 쉽게 하기위해 만들어진 프레임워크이다. ASP.NET MVC는 이름 그대로 Model-View-Control..