전체 글(120)
-
Axum 시작하기
개요 Rust로 웹 개발을 하기 위해서는 다양한 프레임워크들이 존재합니다. 그중에서도 요즘 가장 핫한 프레임워크 중 하나는 Axum입니다. Axum은 비동기 웹 애플리케이션을 개발하기 위한 라이브러리이며, Rust의 비동기 프로그래밍 기능을 활용하는 구조로 되어 있습니다. Rust에서 비동기로 유명한 tokio라는 크레이트가 있는데 tokio에서 만든 웹 프레임워크 입니다. 핵심 기능들 1. 타입 안전성: 모듈 간의 상호작용에서 컴파일 타임에 버그를 최대한 줄여주는 타입 안전성을 제공합니다. 2. 모듈화된 구성: 작은 단위로 쉽게 구성을 나누고 조합할 수 있어 비대해진 웹 서비스를 유지하기 쉽습니다. 3. 익스프레션(objected) 스타일 라우팅: Axum은 간결하고 사용하기 쉬운 라우팅을 위해 신작된..
2023.06.20 -
MemoryCache
개요 프로젝트의 성능을 향상 시키기 위해서 캐싱을 많이 사용합니다. 캐싱으로 유명한 Redis를 사용 할 수도 있지만, 작은 프로젝트에서는 Redis를 따로 사용하지 못하는 경우도 있습니다. 그래서 C#에서는 캐시를 구현 할 수 있는 MemoryCache 클래스를 제공합니다. 이 클래스는 객체의 삽입, 갱신, 삭제와 같은 작업을 메모리상에서 처리하기 때문에 데이터베이스에 부담을 줄이고 좀 더 개발하기 편하게 해줍니다. IMemoryCache IMemoryCache는 Microsoft.Extensions.Caching.Memory 패키지에서 사용 할 수 있습니다. 간단하게 Visual Studio를 사용해서 .NET 7 ASP.NET Core 웹 API 프로젝트를 생성해서 진행하도록 하겠습니다. 프로젝트를..
2023.06.19 -
Rust 명령줄의 인수 받기
개요 Rust는 Command Line에 즉 CLI 도구에 많이 사용 됩니다. 그래서 오늘은 Command Line에서 인수를 받는 방법에 대해 알아보도록 하겠습니다. 표준 라이브러리 인수 다루기 Rust의 표준 라이브러리인 std::env::args()를 통해 Rust 프로그램의 인수를 가져 올 수 있습니다. fn main() { let args = std::env::args(); for (i, s) in args.enumerate(){ println!("{}", s); } } $ cargo run 10 20 30 a b c 1.1 1.2 10 20 30 a b c 1.1 1.2 인수의 경우는 전부 string으로 받게 됩니다. Clap 크래이트 사용하기 CLI를 사용하기 위해서는 표준 라이브러리 만으..
2023.06.18 -
Task vs. ValueTask
개요 C# 프로그래밍에 익숙해지다 보면 비동기 프로그래밍에 관심을 갖게 됩니다. 비동기 프로그래밍은 사용자 경험을 향상시키고, 자원을 최적화하며, 성능을 높여주기 때문에 무척 중요한 개념입니다. 이 글에서는 C#에서 사용되는 주요 비동기 작업 유형인 Task와 ValueTask에 대해 알아보겠습니다. 이 두 가지 유형의 차이점을 이해하면 비동기 작업을 더 효율적으로 설계하고 구현할 수 있습니다. 기본 개념 Task는 비동작 작업을 나타내는 참조 형식입니다. 비동기 작업을 표현하기 위해 Task를 사용하면 코드의 가독성과 유지 관리가 향상 됩니다. ValueTask는 비동기 작업을 나타내는 값 형식입니다. Task와 달리, 메모리 할당 및 GC에 더 효율적입니다. 여기서 중요한 것은 참조 형식이냐? 값 형..
2023.06.17 -
dotnet cli nuget 저장소 지정
개요 요즘 Visual Studio보다 Visual Studio Code를 더 많이 사용 중입니다. 오늘 nuget을 다운받으려고 하는데, 패키지를 자꾸 찾을 수 없어 해결 방법에 대해 글을 쓰려합니다. 문제점 BenchmarkDotNet이라는 Nuget 패키지를 설치하고 싶었습니다. 그래서 dotnet add package BenchmarkDotNet 명령을 입력 했는데 아래와 같이 에러가 발생하였습니다. > dotnet add package BenchmarkDotNet 복원할 프로젝트를 확인하는 중... info : X.509 certificate chain validation will use the default trust store selected by .NET. info : X.509 certi..
2023.06.16 -
Rust의 HashMap 소개
HashMap이란? HashMap은 키-값 쌍(Key-Value Pair)로 이루어진 데이터를 저장하는 데이터 구조입니다. HashMap을 사용하면 키를 통해 값을 빠르게 검색하거나 수정하는 것이 가능합니다. 또한 키는 고유하며, 중복되지 않아야 합니다. let mut 변수명 : HashMap = HashMap::new(); 위와 같이 HashMap을 생성 할 수 있습니다. HashMap 생성 및 값 추가 모듈 가져오기 먼저 모듈을 가져오기 위해서는 아래와 같이 표준 라이브러리로부터 해당 모듈을 가져와야 합니다. use std::collections::HashMap; HashMap 생성하기 HashMap은 키와 값을 연결해 주는 테이블입니다. 아래와 같이 생성합니다. let mut fruits = Has..
2023.06.15