Study

이번엔, 회원가입된 정보를 바탕으로 로그인을 구현해보자. 개요회원가입 시, 입력된 비밀번호를 해싱된 상태로 저장하였다.이번엔 입력한 비밀번호를 해싱한 후, 서버에 저장된 비밀번호와 비교하고, 동일하다면 토큰과 정보를 반환하면서 로그인 처리 되도록 진행해보자. 1. 서버에서 로그인 API 작성이전에 했던 서버 설정 그대로, 이번엔, 로그인 API를 작성해보자./// 위는 생략 (회원가입 등) [Route("Login")] [HttpPost] public async Task Login([FromBody] LoginRequest request) { if (string.IsNullOrWhiteSpace(request.id) || string.IsNull..
지금까지 학습한걸 바탕으로 간단한 로그인 로직을 구현해보자. 개요지금까지 학습한 개념으로 로그인을 구현해보려고 한다.일단, 우리가 사용할 수 있는 개념은 ASP.NET Core Web API 사용방법과, 이걸 MySQL과 연동해 데이터를 저장하는 방법이다. 1. 간단한 로그인정말 간단한 로그인을 위해서는 이렇게 할 수 있다.AccountDB라는 (이름은 달라도 된다.) 테이블을 만들고, 거기에 아이디, 패스워드를 그냥 저장한다.이렇게 하는게 제일 간단하다. 조회할 땐, 아이디에 해당하는 비밀번호를 비교만 하면 되기 때문이다. 아직, Program.cs를 어떻게 작성해야할지 잘 모르지만, 이전에 학습한 내용을 바탕으로 이렇게 작성했다.using MySqlConnector;using SqlKata.Compi..
이전 글 [ASP.NET Core] 05. 의존성 주입 방법의 라이프 사이클C#의 종속성 주입(DI)에 대해서 공부해보자. 종속성 주입(DI)C#에서의 종속 주입(DI)에는 세 가지 종속 주입 방법의 수명 주기 (AddSingleton, AddScoped, AddTransient)를 사용할 수 있다.수명인스턴스 생성 타freeedeveloper.tistory.com이 글에 더해서 DI에 대해 자세히 알아보자. 현재 보고 있는 예제는 ASP.Net Core - 컨트룰러에서 DI 객체 불러오기DI 시스템을 사용하면 보통 아래처럼 객체에 접근한다. DI 등록 builder.Services.AddTransient (); 컨트롤러 [ApiController][Route("[controller]")]public ..
ASP.NET Core에서 사용하는 ZLogger를 알아보자. ZLoggerZLogger는 .Net에서 제공하는 Logger보다 향상된 기능을 제공하는 라이브러리다.그림과 같이기존의 Logger는 오브젝트를 박싱하고, string을 UTF8로 인코딩하는데 추가적인 비용이 발생한다.하지만, ZLogger를 이용하면, 이 과정을 줄일 수 있다.zero allocation string 빌더인 ZString을 사용하여 버퍼영역에 직접 UTF8로 작성함로그 문자열을 콘솔에 출력하기 위한 ConsoleStream에 한번에 보내기 때문에 Boxing이 발생하지 않음비동기적으로 작동하기 때문에 애플리케이션에 부하를 주지 않음ConsoleLogging 외에도 FileLogger, RollingFileLogger, Str..
redis를 사용하기 위해 cloudstructes라는 라이브러리를 알아보자. CloudStructures.NET용 Redis클라이언트 라이브러리다.StackExchange.Redis를 기반으로 더 편리한 API를 제공한다. 왜 사용할까?일반 Redis 클라이언트 (StackExchange.Redis)를 직접사용한다면, // 문자열 저장await db.StringSetAsync("user:1:name", "John");// 문자열 읽기var name = await db.StringGetAsync("user:1:name");이런식으로 사용하게 되지만, // 타입 안전하게 저장var redisString = new RedisString(connection, "user:1:name");await redisSt..
Redis에 대해서 설치하는 방법과 기초 예제를 알아보자. RedisRedis는 데이터 처리 속도가 엄청 빠른 NoSQL 데이터베이스다.Key-Value 형태로 데이터를 저장한다.인 메모리 (In-Memory)에 모든 데이터를 저장한다. 그래서 데이터 처리 성능이 굉장히 빠르다.캐싱 -> 현업에서 가장 많이 사용됨세션관리실시간 분석 통계메세지 큐지리공간 인덱싱속도제한실시간 채팅 및 메세징이런 용도로 주로 사용된다.설치하기 [Redis] 윈도우10 환경에서 레디스 설치하기Redis 설치 프로그램 다운로드 아래 링크에 접속하여 msi 확장자의 Redis 설치 프로그램을 다운로드한다. https://github.com/microsoftarchive/redis/releases Releases · microsof..
SQLKata의 개념과 설치 방법을 알아보자.공식 문서는 아래에 있다. SqlKata | SqlKatafluent SQL query builder, supports SqlServer, MySql, PostgreSql, SQLite, Oracle and Firebirdsqlkata.com SQLKataSQLKata는 다양한 데이터베이스 플랫폼에서 SQL 쿼리 작성을 더욱 쉽고 효율적으로 만들어주는 라이브러리이다.데이터베이스 쿼리 작성 시 보다 직관적이고 편리한 문법을 제공한다. 예를 들어, SELECT 문에서 컬럼을 선택할 때, 별칭을 지정할 수 있다.WHERE절에서는 다양한 조건문을 쉽게 작성할 수 있다.IEnumerable posts = await db.Query("Posts") .Where("L..
이제 .NET Core에 MySQL을 연결하는 방법을 알아보자.1. MySqlConnector 설치dotnet add package MySqlConnector프로젝트 터미널에서 위의 명령어를 입력해 MySqlConnector를 설치해주자. 2. SQL 연결MySQL의 일반적인 연결 문자열은 다음과 같다."Server=YOURSERVER;User ID=YOURUSERID;Password=YOURPASSWORD;Database=YOURDATABASE"해당 문자열의 값을 데이터베이스에 적합한 설정으로 바꾸자.appsettings.json에 해당 문자열을 등록해주면 된다.{ .... "ConnectionStrings": { "Default": "Server=YOURSERVER;User ID=YOURUS..
API 서버 간 통신 때 HttpClientFactory를 사용하는 방법을 알아보자.문제상황예를 들어서 외부 API에서 데이터를 가져오는 기능을 구현한다고 가정해보자.public class BadService{ public async Task GetDataAsync() { // 매번 새로운 HttpClient를 만듦 -> X var client = new HttpClient(); var response = await client.GetAsync("https://api.example.com/data"); return await response.Content.ReadAsStringAsync(); // client가 자동으로 Dispos..
API 서버의 디렉토리는 어떻게 구성되어있는지 확인해보자. Controllers : 컨트롤러 클래스를 저장하는곳.DTO : 클라이언트와 데이터를 주고 받을 때, 모델 클래스를 저장하는 곳Infrastructure : DB, 메일, 기타 시스템 연동 등의 설정 파일을 저장하는 곳Libraries : 프로젝트 내 공통 처리를 저장하는 곳Repositories : DB 접근 처리를 저장하는 곳Services : 비즈니스 로직을 저장하는 곳│ ├── Controllers│ │ └── TodoController.cs│ ├── Dto│ │ ├── CreateRequestDto.cs│ │ └── CreateResponseDto.cs│ ├── Infrastructure│ │ ├─..
LKM0222
'Study' 카테고리의 글 목록