본문 바로가기

Backend8

C#의 recode 레코드 왜 쓰나요? 샘플 코드 예제 / 명명 규칙 record record타입이란 객체 내의 멤버가 변하지 않는 불변 참조 타입(Immutable Reference Type) 생성을 목적으로 한다. 기존엔 class 키워드를 사용해서 클래스를 정의 했지만 record라는 키워드를 통해 불변 타입을 정의하게 된다. C# 9 이상 버전에서 사용할 수 있다. 코드 예제 class로 작성한 Response public class ScoreResponse { public long Id { get; init; } public string Name { get; init; } public decimal AverageScore { get; init; } } record로 작성한 responsepublic record ScoreResponse( long Id, strin.. 2023. 12. 4.
CQRS 패턴을 적용한 MediatR과 FluentValidation CQRS 패턴이란? CQRS Pattern CQRS 패턴이란? CQRS Pattern /pages/list /pages/list CQRS Pattern 이 포스트는 출처가 있는 글입니다. 공부를 위해 정리했습니다 애플리케이션에서 읽기와 쓰기를 분리하는걸 CQRS 패턴이라고 한다. CQRS 패턴은 물리적, 논리적으로 나 solyi.kr CQRS 패턴의 개념에 대해선 위 포스트를 참고해주세요 😄 CQRS 패턴을 적용한 MediatR과 FluentValidation 기본 예제 코드 MediatR은 IRequest 인터페이스를 사용하여 명령과 쿼리를 모두 나타낸다. 사용 사례에서는 명령과 쿼리에 대해 별도의 추상화를 생성한다. 먼저 ICommand 인터페이스의 정의는 다음과 같다. using MediatR; n.. 2023. 11. 28.
Entity Framework Core 개념 / 장단점 / 코드 예제 / 사용 방법 / 데이터 가져오기, 수정, 삭제 / 샘플 코드 EF Core? EF Core는 Entity Framework의 경량화된 버전으로, .NET Core 및 .NET 5 이상에서 사용할 수 있다. 데이터베이스와의 상호 작용을 단순화하고 개발자가 데이터베이스에 대한 쿼리 및 조작을 수행할 수 있는 ORM(Object-Relational Mapping) 도구이다. 주요 기능 데이터베이스에 대한 CRUD(Create, Read, Update, Delete) 작업을 지원한다. LINQ(Language Integrated Query)를 사용하여 데이터베이스 쿼리를 작성할 수 있다. 데이터베이스 스키마를 코드로 정의할 수 있는 Code First 접근 방식을 제공한다. 다양한 데이터베이스 시스템과 호환된다. EF Core의 장점 개발자가 데이터베이스와의 상호 작용을.. 2023. 11. 26.
[C#] JWS 생성 (JSON Web Signature) / 검증 / RS256 용어 설명 JWT (JSON Web Token) JSON 형식 토큰의 표준 [RFC-7519] 장점: 권한 부여, 정보 교환시 유용 형식: header, payload, signatrue의 3가지로 구성되어 있다. 사이에 점을 추가해서 header.payload.signature로 표현된다. const token = base64urlEncoding(header) + '.' + base64urlEncoding(payload) + '.' + base64urlEncoding(signature); JWS (JSON Web Signature) JSON Web Signature 를 의미한다. [RFC-7515] JWT와 JWS의 차이 JWT는 클레임 기반의 웹 토큰으로 사용자의 인증, .. 2023. 8. 8.
Windows Service 개발 / Windows 서비스 앱 만들기 / 윈도우 서비스 실행 / eventLog 갑작스럽게 서비스 개발을 하게 되었다. 현 회사에서는 항상 1) 유지보수 2)간단한 수정 3)개발. 이 순서로 진행 되었기 때문에 기존 코드에 대해 분석할 시간을 어느정도 확보 한 뒤 개발에 들어갈 수 있었으나 이번엔 요건 분석 + 기존 로직 분석이 1일, 개발 2일로 총 3일이 주어졌다. 갑자기 해본적도 (실은 써본적도 거의 없는) 없는 서비스 개발을 맡게 되어 당황스러웠지만 달리 맡을 사람이 없었기 때문에 내가 맡게 되었다. 그나마 다행인 점은, 기존에 참고할 프로젝트 코드가 있고, 매우 유사한 로직도 다른 프로젝트에서 참고 할 수 있다는 점. 국내엔 윈도우 유저가 압도적으로 많지만 윈도우즈의 '서비스' 라는 게 있다는걸 얼마나 알고 있을까..? 나도 네트워크 관리사 2급 시험을 보면서 이런게 있다 .. 2022. 11. 23.
[NestJS] 프로젝트 시작 // 설치 npm i -g @nestjs/cli npm install --save @nestjs/mongoose mongoose npm i --save @nestjs/config npm i --save class-validator class-transformer // nest new project-name // 첫단계 nest g mo cats // cats라는 모듈 생성 controllers : [CatsController]를 추가하고 아래코드 실행 nest g co cats // cats 컨트롤러 생성 nest g service cats // cats 서비스 생성 nest g middleware // middleware 생성 @Module({ controllers : [CatsController], .. 2022. 2. 20.
[ASP.NET] Entity Framework Core Entity Framework core 데이터 연동방식을 두가지로 제공한다. 1. Code-First 방식: 코드 작성 우선주의 마이그레이션 : 미리 작성된 코드로 데이터베이스에 테이블과 컬럼을 생성하는 방식 2. Database-First 방식: 데이터베이서 작업 우선주의 모든 테이블과 컬럼을 데이터베이스에서 테이블과 컬럼을 우선 생성한다. Entity Data Modeling : 코드를 손쉽게 작성할 수 있도록 도와준다. 먼저 Code-First 방식으로 진행해보기로 한다. Code First 방식 이전 게시글에서 작성한 프로젝트를 열어서 그중 DataModels/User.cs 파일을 열고, DataAnnotations 를 추가하고 , 어노테이션을 작성한다. [Key, StringLength(50),.. 2021. 12. 13.
[ASP.NET] 개요 / MVC 패턴 / 의존성 주입 패턴 닷넷 코어는 패턴 프로그래밍에 최적화 되어있다. 패턴 ? 사용자에게 보다 나은 서비스를 제공 프로그램 개발 ? 테스트와 유지보수가 쉬워야 한다. 애플리케이션의 존재 목적 ? 사용자를 만족시키는것 닷넷코어는 아래 2가지를 사용한다 MVC 패턴 (Model-View-Controller) 의존성 주입 패턴 (Dependency Injection) 2021-12-07 MVC 패턴(Model-View-Controller) MVC 프로젝트 생성 C - MembershipController 컨트롤러 폴더에 추가 public IActionResult Login(LoginInfo login) {} 생성 내용에는 if문 내부에서 ModelState.IsValid 를 확인 if문으로 ID, PW가 일치하는지 확인하고 일치하.. 2021. 12. 7.
반응형