'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...
이전 포스팅에서 JWT(JSON Web Token)를 발급하고 인증하기 위한 처리를 했습니다. 이 포스팅에서는 이전 포스팅에서 만든 인증 처리를 연결하는 작업을 합니다. 연관글 영역 이 시리즈는 'ASP.NET Core 6'에서는 인증 처리를 이런 식으로 하는구나~~~ 라는 걸 알려주기 위한 목적이라 설계가 난잡합니다. 0. 구조 이 프로젝트에서는 'SQLite + Entity Framework'를 사용합니다. 이렇게 구성하면 DB를 사용하지 않을 때는 'InMemory'를 사용하여 메모리DB를 사용할 수 있어 이식성이 좋아서입니다. 연결정보를 받으면 코드 퍼스트(Code First) 방식으로 DB에 연결하여 테이블을 생성하고 데이터를 관리하게 됩니다. 누겟에서 Microsoft.EntityFramewo..
'OAuth2'는 인증방식을 표준화해둔 프로토콜입니다. 이것 밑에 토큰을 발급하고 인증하기 위한 시스템을 만들어 넣어야 하는데.... Json으로 토큰을 발급하고 인증하기 위한 방법의 하나가 'JWT(Json Web Tokens) 인증'입니다. 다른 프로젝트에서는 'IdentityServer4'를 이용하여 'JWT'을 발급하고 인증하는 것을 했었는데 이 포스팅에서는 직접 'JWT'를 발급하고 사용하는 방법을 다룹니다. 1부는 JWT를 발급하고 확인하는 것을 구현하고 2부에서는 이렇게 만든 JWT 사용하는 방법을 다룹니다. 연관글 영역 0. 프로젝트 생성 및 구성 프로젝트를 'ASP.NET Core'로 생성합니다. 'ASP.NET Core'에서 인증처리를 다음과 같은 구조를 가집니다. 미들웨어를 주입하면 ..
ASP.NET Core에서 SSL 테스트를 하다 보니 접속이 되다 말다 합니다....? 1. 증상 확인 정확하게는 프로젝트를 생성했을 때는 됐다가 포트만 바꾸면 SSL포트에 접속이 안 됩니다. 처음에는 되니 방화벽 문제는 아니죠. 2. 원인 여기저기 검색하다가 보니 "IIS Express"의 SSL포트는 정해진 포트만 쓸 수 있다는 글이 있습니다. 그래서 MSDN을 뒤져보다 보니..... 참고 - Running IIS Express without Administrative Privileges It configures HTTP.SYS to reserve ports 44300 through 44399 for SSL. Incoming SSL requests that use localhost and one of..
전편에서 했던 "API 결과 리턴 공통화"는 좀 급하게 만들다 보니 빠진 것이 있는데......가장 중요하다고 할 수 있는 '결과 처리 클래스'가 공통화가 덜돼서 최종 결과를 출력하는 'ApiResultReady.ToResult()'를 호출할 때 출력할 객체를 따로 지정해야 했습니다. 이번엔 이 불편함을 고쳐봅시다. 1. 'ApiResultBaseModel' 수정'ApiResultReady'에서 하던 성공 실패 여부를 처리하기 위한 기능을'ApiResultBaseModel'으로 옮여야 합니다. 성공 문자를 저장해두고 이것과 비교하는 함수를 추가합니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474..
API의 결과를 줄 때 성공하면 약속된 모델을 전달하고 실패하면 실패에 약속된 모델을 전달하는 것이 일반적인 방법입니다.이 방법의 문제는 성공했을 때와 실패했을 때 구분이 매번 똑같을 수 없으니 프론트엔드(Front-end)에서는 이것을 구분하기 위한 작업을 그때그때 해야 합니다. 그래서 API결과를 알리기 위해 고정된 값을 하나 전달해주는 것이 좋습니다.API 결과용 베이스를 만들어 API를 리턴할때는 이 베이스를 상속받은 모델을 리턴하는 것이죠. 1. 필요한 정보API결과는 다음과 같은 경우가 있습니다. 성공 : 의도대로 API가 성공한 경우실패 : 서버에서 실패로 판단하는 경우. 백엔드(Back-end)와 협의된 정보를 전달한다.캐치 가능한 오류 : 서버에서 캐치한 오류(try~catch)알 수 없..
DB를 먼저 작성하거나 다른 프로젝트에 의해 생성된 DB를 사용하는 경우 DB 퍼스트(DB First) 방식을 사용합니다. 연관글 영역 프로젝트는 'ASP.NET Core 2'로 구성되어 있습니다. 이 프로젝트는 sqlite를 기준으로 작성되었습니다. 1. 왜 DB 퍼스트를 사용하는가? 전통적으로 프로젝트가 진행되면 DB를 먼저 만들고 시작했습니다. 예정에는 여기에 직접 쿼리를 날리거나 DBA가 만들어놓은 프로시저를 호출해서 사용했죠. EF(Entity Framework)와 같은 ORM(Object-Relational Mapping) 프레임웍들이 생기면서 모델을 만들어 접근하는 방식을 사용하기 시작합니다. 그렇다면! 기존 방식을 사용하는 프로젝트는 EF를 어떻게 연결하느냐? 이미 만들어져있는 DB의 정보..
드디어 EF(Entity Framework)를 연결합니다.이 프로젝트는 코드 퍼스트(Code First)라 해당 코드가 들어 있지만다른 방식을 사용한다면 코드 퍼스트 부분은 필요 없습니다. [ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기[ASP.NET Core] 빈 프로젝트 세팅 (2) - WebAPI 설정 [ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(1) - 기초[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(2) - Ajax공통 기능, 데이터 바인드 처리[ASP.NET Core] .NET Core로 구현한 SPA(Single P..
WebAPI를 쓴다면 스웨거를 빼놓을 수 없습니다.스웨거는 WebAPI 문서를 자동화 해주는 해주는 라이브러리입니다.( 참고 : 위키백과 - 스웨거 (소프트웨어) ) 문서화뿐만 아니라 바로 테스트도 할 수 있으므로 프론트엔드 개발자와 소통이 편해지죠. [ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기[ASP.NET Core] 빈 프로젝트 세팅 (2) - WebAPI 설정 [ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(1) - 기초[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(2) - Ajax공통 기능, 데이터 바인드 처리[ASP.NE..
코드를 먼저 작성하고 이것을 기반으로 DB를 수정하는 것이 코드 퍼스트(Code First)입니다. 코드 퍼스트가 왜 필요하고 어떻게 사용하는지 알아봅시다. 프로젝트는 'ASP.NET Core 2'로 구성되어 있습니다. 연관글 영역 1. 왜 코드 퍼스트가 필요한가? 전통적인 프로젝트-DB 관계는 DBA가 DB를 만들고 거기에 맞춰 프로그램을 만드는 형태였습니다. 그런데 장비의 가격은 낮아지고 사양은 높아지면서 점점 DB의 성능 이슈를 돈으로 때워도 큰 부담이 안 되는 시대가오게 됩니다! 그러니 프로그래머들이 임시로 DBA를 겸해서 작업하다가 성능 이슈가 발생하는 부분만(혹은 프로젝트가 시작 할 때나 끝날 때쯤) DBA가 붙어서 최적화시키는 프로세스가 정착되었습니다. DB에 맞춰 프로그램을 만들게 되면 문..