/edu_Learn_ASPNetCore_APIServer

ASP.NET Core Web API 학습을 위한 저장소

Primary LanguageC#

ASP.Net Core Web API Server 학습


1. 학습하기

직접 예제 코드를 만들어 보면서 학습을 잘하자

Redis 프로그래밍

MySQL 프로그래밍

2022년 인턴 사원이 만든 학습 자료

학습자료_2022년_인턴 이라는 디렉토리에 2022년 인턴 사원으로 근무한 분이 만든 학습 자료가 있다.
이 자료들을 순서대로 한번 보기 바란다.
이것들을 본 후 실습을 하나씩 한다. 03_Dapper, 06연습 프로젝트 구현은 따라서 실습을 할 필요는 없다. 그냥 보기만 한다.

학습에서는 데이터 베이스 프로그래밍으로 Dapper를 사용하고 있는데 실제 실습에서는 SqlKata를 사용한다
SqlKata 소개
demo 프로그램 codes 디렉토리에 있는 github_sqlkata_demo.zip 파일이다.

서버 캠퍼스 1기 수료생 정리 자료

서버 캠퍼스 1기 수료생 정리 자료

학습자료_2024_서버캠퍼스2기 디렉토리를 보기 바란다

문서



단계 별로 따라하면서 API 서버 만들기

아래 영상과 예제 코드를 참고하면서 단계 별로 만들면서 배운다.


API Server 개발하기

  • code 디렉토리의 APIServer_Templete 디렉토리에 있는 코드를 참고해서 만들기 바란다.
  • 프로젝트는 새로 만들고 구조나 코드 등을 참고한다.
  • APIServer_Templete에 있는 코드 보다 더 좋은 코드를 만드는 것을 목표로 한다.

example_filter_APIServer

  • 아래 프로그램은 codes 디렉토리 안에 있다.
  • 기획데이터(마스터 데이터)가 json으로 된 것을 로딩
  • 미들웨어로 라우팅을 커스텀마이징
  • 미들웨어로 클라이언트 보낸 요청 데이터의 암호를 풀어서 핸들러에 전달하도록 한다
  • 필터로 클라이언트에 보내는 응답의 포맷을 변환하거나 암호화 하도록 한다

gRPC Server


참고할 실습 프로젝트

  • (2022년) 신입 사원 교육 프로젝트
    • codes/practice_robotmon-go 디렉토리에 있다.
    • .NET 6 버전 사용
  • 2023년 지니어스 인턴 프로젝트
  • (2024년 1월) 신입 사원 교육 프로젝트
    • 미니게임천국 모작
    • codes/practice_MiniGameHeavenAPIServer 디렉토리에 있다.
    • .NET 8 버전 사용


API 서버의 디렉토리 구성 예

  • Controllers: 컨트롤러 클래스를 저장하는 곳
  • Dto: 클라이언트와 데이터를 주고받을 때 모델 클래스를 저장하는 곳
  • Infrastructure: DB, 메일, 기타 시스템 연동 등의 설정파일을 저장하는 곳
  • Libraries: 프로젝트 내 공통 처리를 저장하는 곳
  • Repositories: DB 접근 처리를 저장하는 곳
  • Services : 비즈니스 로직을 저장하는 곳
│   ├── Controllers
│   │   └── TodoController.cs
│   ├── Dto
│   │   ├── CreateRequestDto.cs
│   │   └── CreateResponseDto.cs
│   ├── Infrastructure
│   │   ├── Configure
│   │   │   ├── DatabaseConfigure.cs
│   │   │   └── ServiceConfigure.cs
│   │   └── Database
│   │       └── TodoEntity.cs
│   ├── Libraries
│   │   ├── Exception
│   │   │   └── ValidationException.cs
│   │   └── Middleware
│   │       └── CustomExceptionMiddleware.cs
│   ├── Program.cs
│   ├── Properties
│   │   └── launchSettings.json
│   ├── Repositories
│   │   └── Todo
│   │       ├── ITodoRepository.cs
│   │       └── TodoRepository.cs
│   ├── Services
│   │   └── Todo
│   │       ├── ITodoService.cs
│   │       └── TodoService.cs
│   ├── TodoApi.csproj
│   ├── TodoApi.sln	
│   ├── TodoApi.http
│   ├── appsettings.Development.json
│   └── appsettings.json
├── Api.Tests
│   ├── Api.Tests.csproj
│   ├── Api.Tests.sln	
│   ├── GlobalUsings.cs
│   └── UnitTests
│       └── Services
│           └── TodoServiceTests.cs
└── dotnet-todo-web-api.sln	

C# 학습 자료