Skip to content

Hyune0129/edu_Learn_ASPNetCore_APIServer

 
 

Repository files navigation

ASP.Net Core Web API Server 학습


1. 학습하기

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

Redis 프로그래밍

MySQL 프로그래밍

로그 라이브러리 ZLogger

.NET 에서 로그 라이브러리로 ZLogger를 추천한다.
사용 방법은 ZLogger 디렉토리를 보기 바란다.

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# 학습 자료

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 99.9%
  • Dockerfile 0.1%