일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 자바
- ORM
- IT story
- IT
- SQL Server
- .NET 8.0
- SQL Server 구성 관리자
- RAISERRR
- springboot
- 데이터베이스
- System.Text.Json
- git
- SOP
- OUT 파라미터
- Exception in thread "main" java.lang.Error
- sql server manager
- 스프링부트
- JavaScript
- 스프링 시큐리티
- ERROR_MESSAGE
- MSSQL
- C#
- 권한
- 프로시저
- cors
- SSMS
- java
- Newtonsoft.Json
- jpa
- github
- Today
- Total
목록C# (9)
its_jh_stroy
Visual Studio 2022를 사용하며 C# 개발을 하는 중, 평소에 사용하던 단축키가 동작하지 않는 문제가 발생하였다.일단은 급한 대로 하던 개발을 하려고 했지만, prop 명령으로 프로퍼티를 만들 수 없다는 것이 너무 불편하여 바로 문제를 해결하기로 했다.다행히 문제 해결 과정은 어렵지 않았다.단순히 Visual Studio의 설정 문제였고, 해당 설정만 바꾸어주면 해결되는 것이었다. 문제 해결Visual Studio를 실행하고 아래 경로에 따라 설정 화면을 열어준다.도구 - 옵션 - 텍스트 편집기 - C# - IntelliSense 아래와 같은 화면이 표시되는데, "코드 조각 항상 포함" 항목을 체크하면 된다. 위 과정이 끝나면 평소 사용하던 단축 명령어들이 문제없이 동작하게 된다.
배포할 솔루션 만들기먼저 배포할 웹 솔루션을 만들어야 한다.여기에서는 ASP.NET Core 웹앱(Model-View-Controller) 단일 프로젝트로 구성된 솔루션을 만들었다. docker 파일 만들기배포를 위해서는 docker 파일이 필요하다.생성된 프로젝트에서 docker 파일을 생성한다.- 추가 - docker 지원대상 OS는 Linux로 하였다. docker 파일이 생성되면 Visual Studio 상단의 실행 버튼이 Docker로 바뀌는 것을 확인할 수 있다. 프로그램을 실행하면 docker desktop에 컨테이너와 이미지가 만들어져 있을 것이다. 이제 외부로부터 접속할 수 있는 환경이 구성되었다.위 이미지를 살펴보면 컨테이너는 두 개의 포트가 있다고 되어있는데, 실제 실행 중인 웹 애플..
MongoDB Atlas는 MongoDB에서 제공하는 클라우드 데이터베이스 서비스이다. 이 서비스를 통해 MongoDB 데이터베이스를 클라우드 환경에서 호스팅 하여 사용할 수 있다. 배포, 백업, 복구와 같은 작업을 자동으로 처리하기 때문에 데이터베이스를 관리하는데 드는 시간과 비용을 크게 줄일 수 있다. 실습을 위해서는 MongoDB Atlas에 가입하여 프로젝트와 데이터베이스, 컬렉션을 만들어야 한다. 만약 연결할 위 항목이 없다면 MongoDB Atlas 사이트에 접속하여 연결할 데이터베이스와 컬렉션을 만들 수 있다. 여기서는 데이터베이스와 컬렉션이 있다고 가정하고 포스팅을 진행한다. 연결 문자열 확인 먼저 데이터베이스에 연결할 문자열을 확인해야 한다. MongoDB Atlas 접속 후 프로젝트 선..
ASP.NET Core에서 CORS 문제 해결하기현재 사용중인 버전은 .NET 8.0이라는 것을 참고한다. 오류 발생웹 개발 공부를 위해 프로젝트를 구성하던 중 문제가 발생하였다. 프론트엔드와 백엔드를 서로 다른 프로젝트로 분리했는데 자바스크립트에서 아래와 같은 오류가 발생한 것이다.No 'Access-Control-Allow-Origin' header is present on the requested resource위 오류메시지는 웹 브라우저의 개발자 도구 - 콘솔에서 확인할 수 있다. 이것은 동일 출처 정책(Same-Origin-Policy)때문에 일어난 오류이다. 동일 출처 정책에 관한 자료는 아래 링크를 잠고한다. 동일 출처 정책(SOP)과 교차 출처 리소스 공유(CORS) (tistory.com..
.NET에서 JSON과 관련된 라이브러리는 System.Text.Json과 Newtonsoft.Json가 많이 사용된다. 두 라이브러리는 모두 JSON 문자열과 .NET 객체 간 직렬화와 역직렬화를 수행하지만 몇 가지 차이점이 있다. 1. 대소문자 구분대소문자를 구분하는 System.Text.Json과 달리 Newtonsoft.Json은 대소문자를 구분하지 않는다. MVC 패턴에서 컨트롤러가 뷰에 전달하는 JSON 데이터는 CamelCase 형식으로 전달되는 경우가 많은데, .NET 객체의 속성은 PascalCase로 작성되어 있다. 따라서 System.Text.Json를 사용하는 경우 속성명이 맞지 않다고 판단되어 값이 제대로 전달되지 않게 된다. 이것을 해결하기 위해 대소문자를 구분하지 않는 별도의 ..
.NET 8.0이 실행되는 과정ASP.NET Core 웹앱(Model-View-Controller)로 프로젝트를 만들어보면 MVC 패턴에 맞춰 여러 폴더와 파일이 생성된다. 프로젝트를 실행하면 Home 컨트롤러의 Index 페이지가 _Layout.cshtml 구조 안에서 호출된다. 만약 왜 이렇게 실행되는지 모른다면 웹 개발을 하는 데 있어서 상당한 어려움을 겪게 될 것이다. 따라서 프로젝트 구조도 어느 정도 파악할 겸 .NET 8.0 웹 애플리케이션이 실행되는 과정에 대해 정리해 보았다. 결과적으로 기본 프로젝트를 실행할 때 호출되는 순서는 아래와 같다. - Program.cs -> 컨트롤러(HomeController.cs) -> 뷰(Index.cshtml) -> 레이아웃 파일(_Layout.cshtm..
작업자 서비스 프로젝트에서는 Program.cs 파일을 통해 의존성을 주입할 수 있다. Program.cs 파일은 기본적으로 아래와 같은 형태로 되어있다. IHost host = Host.CreateDefaultBuilder(args) .ConfigureServices(services => { services.AddHostedService(); }) .Build(); await host.RunAsync(); ConfigureServices에 들어가는 Action 메서드를 수정하여 의존성을 주입할 수 있다. 주입할 의존성 타입 생성자에 파라미터가 필요 없는 경우도 있지만 필요한 경우도 있다. 각 경우에 따라 필요한 소스이다. 생성자 파라미터가 필요 없는 경우 //Program.cs IHost host = ..
WPF에서 웹 페이지 렌더링을 지원하는 기본적인 컨트롤은 WebBrowser이다. 하지만 WebBrowser 컨트롤은 IE 기반으로 페이지를 표시하기 때문에 최신 웹 표준을 지원하지 않는 경우도 존재한다. 따라서 페이지가 제대로 표시되지 않읗 수 있다. cefSharp 라이브러리를 활용하면 문제를 해결할 수 있지만 .NET Framwork에서 지원하기 때문에 .NET Core에서는 사용할 수 없다. .NET Core를 사용한다면 WebView2를 활용하여 이러한 문제를 해결할 수 있다. 라이브러리 설치 도구 - Nuget 패키지 관리자 - 솔루션용 Nuget 패키지 관리 Microsoft.Web.WebView2 설치 xaml 작업 Window 컨트롤에 아래 속성 추가 xmlns:wv2="clr-names..
비동기 프로그래밍 비동기란 여러 가지 작업을 동시에 수행할 수 있도록 하는 방식이다. C#에서 비동기 프로그래밍을 하는 방식 중 하나로 Task와 async, await 키워드를 사용하는 것이 있다. Task Task는 메서드와 같은 작업 단위를 비동기적으로 실행할 수 있도록 지원하는 .NET 클래스이다. C#에서는 반환값 유무에 따라 Task와 Task와 같은 형태로 사용된다. async await async와 await는 비동기 프로그래밍을 하기 위한 키워드이다. 아래는 각 키워드에 대한 설명이다. async - 해당 메서드가 비동기적으로 실행될 수 있음을 표시하는 역할을 한다. - async 메서드의 반환 타입은 void, Task, Task 타입 중 하나이다. * void는 await를 사용할 수..