작업을 하다 보면 여러 가지 테스트 환경에 대응하려고 웹 루트 폴더를 여러 개 두거나 웹 루트 안에 여러 폴더로 분리하거나 하는 필요성이 있습니다. 1. 웹 루트(Web Root) 변경하기 'ASP.NET Core'에서 웹 루트 기본값은 'wwwroot'입니다. 이것을 바꾸려면 'Program.cs'에서 빌더를 다음과 같이 생성합니다. var builder = WebApplication.CreateBuilder( new WebApplicationOptions { WebRootPath = "wwwroot2" }); 여기서 조심해야 할 것이 'wwwroot' 폴더가 있으면 이 설정은 무시됩니다. 참고 : github - dotnet/aspnetcore Issues : WebApplicationOptions...
'VS Code(Visual Studio Code)'에서도 약간의 설정만 하면 'ASP.NET Core 6'를 빌드할 수 있습니다. 0. 준비 'VS Code'를 열기 전에 '.NET 6 SDK'가 설치해야 합니다. Microsoft Dawnload : .NET 6.0 SDK 'VS Code'를 열고 확장에서 'C#'을 검색하여 설치합니다. marketplace - C# 1. 프로젝트 열기 비주얼 스튜디오에서 생성한 'ASP.NET Core 6' 프로젝트의 루트 폴더를 지정하여 프로젝트를 열어 줍니다. 2. 디버깅을 하기 위한 'launch.json' 파일 생성 원래 "빌드 및 디버그 자산이 없습니다" 같은 메시지가 나왔었는데... 어느 순간 사라졌습니다. 이제는 '실행 및 디버그'창에서 'launch...
리액트(react) 공부하려고 'create-react-app'로 프로젝트 생성하고 돌리는데.... npm WARN deprecated topo@2.0.2: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial). npm WARN ..
티스토리 가이드에 보면 '' 치환자는 필수라는 내용이 나옵니다. 참고 : 티스토리 스킨 가이드 - 공통 치환자 다른 포스트에서도 언급했었지만 ''와 같은 치환자는 티스토리 전용 기능을 위해 이것저것 잔뜩 불러온다는 문제가 있습니다. (참고 : [티스토리 스킨] 티스토리의 치환자는 자체 스크립트도 불러온다. ) 이런 기능들을 사용하지 않는다면 사이트 속도만 느려지게 만들죠. * 주의 * 이 치환자를 제거한 이후에 나오는 에러들은 상당한 자바스크립트(javascript) 지식이 있어야 해결할 수 있는 문제입니다. 자신이 없다면 제거하지 마시길 바랍니다. 제거로 인한 책임은 모두 자신에게 있음을 명심하세요. 기초적인 자바스크립트에 관한 질문은 받지 않습니다. 1. 제거해보기 일단'' 을 제거하고 블로그로 들어..
티스토리 스킨을 보면 '인덱스(index)'와 '퍼머링크(permalink)' 라는 것이 있습니다. (참고 : 티스토리 스킨 가이드 - 글 ) 이 둘은 뭔지 알아보겠습니다. 1. 인덱스(index) 페이지 인덱스 페이지는 '목록 구성 요소'가 '목록 + 내용' 혹은 '내용'일 때 나오는 페이지를 의미합니다. 홈을 이렇게 설정하면 아래와 같이 목록(포스트 리스트)과 포스트 내용이 함께 나옵니다. 빨간 네모를 보면 인덱스 페이지 치환자가 동작한 것을 알 수 있습니다. 2. 퍼머링크 (Permalink) '고유 주소'라는 의미가 있는데..... 그냥 포스트 내용을 의미합니다. 포스트를 클릭해서 들어가거나 주소를 입력해서 들어가면 볼 수 있는 페이지입니다. 3. 필요한가? 이런 이유로 구분되어 있지만 보통은 퍼..
블로그를 이전할 계획 중이라 티스토리 스킨을 만질 생각이 없었는데..... 티스토리의 몇 가지 개편들과 부트스트랩의 다음 버전이 나오면서 손을 안 댈 수 없는 상황이 되었네요. 그래서 일단 기존 '부트스트랩(bootstrap) + 티스토리(tistory)' 샘플을 업데이트하고 있습니다. 참고 : 티스토리 부트스트랩 테스트 부트스트랩 기본 예제인 "Carousel" 티스토리 기본 스킨인 "Whatever"를 기반으로 작업하였습니다. 1. 부트스트랩 5 에서 변경된 내용 1) 5버전으로 버전업 되면서 기본 아이콘 세트가 제외되었습니다. 용량도 많이 차지하면서 다른 아이콘 세트를 사용하는 사람이 많아서 제외된 거 같네요. 원하는 아이콘 세트가 있으면 자유롭게 넣을 수 있지만 일단 이 샘플에서는 아이콘을 모두 ..
'SocketAsyncEventArgs'의 이해를 위한 글을 여러 번 썼었는데..... '.NET 5' 이후로는 'SocketAsyncEventArgs'가 이전과 살짝 다른 동작을 합니다. 그래서 '.NET 5'로 넘어가기 전에 총정리 겸 단계별 샘플을 만들었습니다. 연관글 영역 0. 구조 각 샘플은 거의 같은 구조로 되어 있습니다. 샘플 소스 : dang-gun/DGSocketAssist/ dang-gun/DGSocketAssist/DGSocketAssist1/ 라이브러리 형태로 만들어져 있어 "DGSocketAssist_Server", "DGSocketAssist_Client"만 참조하여 서버/클라이언트 프로그램을 만들 수 있습니다. 1. 'DGSocketAssist1_Server' 이해하기 'DGS..
이전 포스팅에서 ASP.NET Core 프로젝트에 NPM을 올리는 작업을 했습니다. 이 프로젝트에서 이것을 제대로 쓰려면 결국 js파일과 css(여기서는 sass)를 빌드(혹은 미니마이징)해서 웹페이지에서 사용해야 합니다. 이 포스팅은 webpack와 sass를 이용하여 js,css파일을 출력하고 MVC를 통해 이 파일을 사용하도록 하겠습니다. [ASP.NET Core 6] ASP.NET에 NPM 세팅하기 (feat. Task Runner) [ASP.NET Core 6] ASP.NET MVC + NPM (feat. webpack, sass) 1. 프로젝트 생성 ASP.NET Core MVC로 프로젝트를 생성한 후 이전 포스팅에서처럼 npm을 설정합니다. package.json 설정은 다음과 같습니다. 1..
기본템플릿에는 'startup.cs'가 없습니다. 모든 기능이 'Program.cs'하나로 작동할 수 있도록 구성되어 있습니다. 왜 없어졌는가? 덕지덕지 연결된 구성을 간단하게 코드 몇 줄로 구성할 수 있도록 한 것입니다. (참고 : Andrew Lock | .NET Escapades - Comparing WebApplicationBuilder to the Generic Host ) 'Program.cs'에서 'Startup.cs'로 진입하는 구조는 왜 저런 구조가 되었는지를 이해하지 않으면 쓸데없이 파일만 2개로 나눈 듯한 느낌을 받게 되죠. 이렇게 기존 구조가 제거된 구문을 '최 상위문(top-level statements)'이라고 합니다. (참고 : MS Learn - 자습서: 배우는 동안 최상위 ..
별생각 없이 콘솔로 프로그램을 만들었는데.... 기본적으로 있는 콘솔 모드들 때문에 이상한 동작을 하는 경우가 있습니다. 대표적인 것이 "빠른 편집 모드(Quick Edit Mode)"라는 것인데 콘솔 창을 클릭하거나 드레그하면 응용프로그램이 멈추는 현상입니다. 이 모드를 바꾸는 방법을 알아봅시다. 연관글 영역 1. WinApi를 사용해야 한다. 몇 가지 방법들이 있지만 결국은 WinApi를 이용하는 것이 가장 편합니다. WinApi로 콘솔 모드를 변경하려면 1) 디바이스(여기서는 콘솔)의 핸들을 받아서 2) 콘솔 모드 설정값을 받아온 뒤 3) 받은 설정값이 원하는 설정을 추가(혹은 제거)하고 4) 콘솔 모드 설정값을 다시 설정합니다. 설정값이 uint(UInt32)로 된 플래그(flag) 값이라 비트연..