본문 바로가기

전체 글

(90)
[Rust Tutorial] 6 - Control Flow Introrust의 흐름 제어(분기문, 반복문)에 대한 설명과 예제입니다. rust는 이 부분에서는 타 언어들과 거의 비슷합니다. 차이가 있다고 한다면 다음과 같은 부분이 있습니다. 무한루프 예제인 loopslice 표기법 (1..5, 1..=10)match(switch, case), if let 코드 예제를 통해 확인해 보겠습니다. Code ExampleRust 1.79.0 (released 2024-06-13) fn main(){ // ========================================= // Conditionals (분기문) // ========================================= /* [Example] if, else : 가장 기초..
[Rust Tutorial] 5 - Function Introrust의 함수 에 대한 설명과 예제입니다. rust의 함수는 기존 언어와는 좀 다른 점들이 있습니다.  return keyword 없이 return할 수 있으며 이 문법이 rust의 기본 문법이다.borrow 규칙으로 인해 값을 복사하는 함수, 값을 소모하는 함수가 구분된다.closure 문법 (이건 사실 모든 언어가 다 다르긴 합니다)function 자체의 input, output에 대한 설명보다는 rust가 가지고 있는 function의 특징 위주로 예제를 작성해 보았습니다.  Code ExampleRust 1.79.0 (released 2024-06-13) fn main(){ #[allow(warnings)] // 경고문구 무시할때 사용 fn no_return_function..
[Rust Tutorial] 4 - Data Type IntroRust에서 제공하는 Data Type 여러 가지가 있지만 기본적으로 제공하는 Type은 크게 Primary Type과 Advenced Type, Compound Type, Collection Type으로 나눌 수 있습니다.  Primary Type : 정수, 소수, 문자(char), 참/거짓, Advenced Type : 문자열(&str, String)Component Type : Tuple, Array, Slice, ...Collection Type : Vector, Map, Set, ...Custom Type : Enum, Struct, ... 예제를 통해 어떻게 사용할 수 있는지 확인해 보겠습니다.  Code ExampleRust 1.79.0 (released 2024-06-13) fn ..
[Rust Tutorial] 3 - Variables IntroRust language에서 Variable에 대한 간단한 설명을 하고자 합니다.Immutable : Rust 변수는 기본적으로 불변(Immutable)입니다.가변(mutable) 변수로 선언하려면 mut 키워드를 사용해야 합니다.Static Type : Rust는 static type language입니다. 모든 변수의 Type이 Compile time에 결정됩니다.Type은 명시적으로 지정할 수 있지만 대부분의 경우 Compiler가 스스로 추론합니다.Rust는 변수를 초기화 하지 않으면 사용할 수 없습니다. (let x; 같은 표현은 불가)Shadowing : 동일한 이름의 변수를 재 선언하여 이전 변수를 "감출 수"(Shadowing) 있습니다.Ownership and Lifetimes ..
[Rust Tutorial] 2 - Cargo 사용법 Intro Cargo는 Rust의 공식 패키지 매니저이자 빌드 시스템으로, Rust 프로젝트를 효율적으로 관리하고 빌드, 실행, 테스트, 의존성 관리를 돕는 도구입니다. Cargo는 Rust 언어와 함께 설치되며, Rust 개발에서 필수적인 역할을 합니다. Cargo 사용법에 대한 간단한 설명입니다. Cargo의 이점편리한 의존성 관리:라이브러리를 쉽게 추가하고 버전을 관리할 수 있습니다.일관된 빌드 환경:동일한 명령어로 디버그 및 릴리스 빌드를 생성합니다.생태계 통합:Rust의 공식 패키지 레지스트리인 Crates.io와 통합되어 필요한 크레이트를 쉽게 가져올 수 있습니다.테스트와 문서화 지원:내장된 테스트 및 문서화 도구로 개발 생산성을 높입니다. Cargo 사용 예시## version checkca..
[Rust Tutorial] 1 - Introduce Intro최근 들어 저는 Rust를 시작했습니다. 개발경력이 C embedded를 시작으로 해서 최근은 Python Application에 몸담고 있는 와중에 Rust를 왜 시작하게 되었을까요? Rust는 저에게 꽤 이상적인(실용적인지는 아직 잘 모르겠습니다) 언어였기 때문입니다. 개인적으로 느낀 Rust의 감상은 2가지 입니다. Rust에 대한 개인적인 감상1. GC가 없다.GC로 인해 내가 Memory를 관리하지 않아도 되지만, 그것은 즉 memory에 대한 내가 세부적으로 제어할 수 없는 내부 동작이 있다는 의미이기도 합니다. 이는 곧 성능 최적화를 방해하는 요소가 되기도 합니다. 요즘 언어들은 대부분 GC를 가지고 있습니다. Java부터 Python, Javascript까지 요즘 Applicati..
[Redis] - Tutorial with Python *목차 - Intro - 환경설정 - 예제코드(Redis 기능 제외) - Redis 없이 기능 Test - Redis 적용 - Redis 적용 후 기능 Test - Outro Intro안녕하세요, 이번에는 Redis를 Python에서 활용하는 방법에 대해서 알아 보겠습니다. Redis 자체는 Python만을 위한 것이 아닌 In-memory 방식의 DBMS입니다. 그래서 category도 DB에 넣을까 하다가 Python에서 사용하는 Redis에 대한 문법이 주로 소개될 것 같아 Python Library로 하여 소개 드립니다. Redis는 다음과 같은 특징을 가지고 있습니다.In-memory : Redis는 data를 기본적으로 disk가 아닌 memory에 저장합니다.저장 관점 : MySQL, Pos..
[Alembic] - Tutorial * 목차 - Intro - 환경 구성 - 예제 코드 작성   1. local_main.py   2. server_main.py - Init Alembic   1. First Migration   2. Table 추가, 변경 후 migration   3. Migration 이전 version으로 rollback - Outro IntroAlembic은 Python용 SQLAlchemy 데이터베이스 툴킷과 함께 사용하기 위한 경량 데이터베이스 마이그레이션 도구입니다. Django에서는 자체적으로 DB의 schema 구조 변경에 따라 Migration file을 생성해서 적용하거나 이전 기록을 추적해서 rollback하는 기능이 있습니다. 하지만 Django 없이 Flask나 Fastapi을 통해 Web bac..
[Laboratrix] 6 - Code Repository : AWS Codecommit * 목차 - Intro - CodeCommit - 사전 요구사항 - git 자격 증명 - repository 복제 - git push - Outro  Intro지난 시간에는 Unittest까지 작성을 완료했습니다.  이번 시간에는 이 code를 가지고 형상관리를 해보도록 하겠습니다. code repository 많이 활용되는 github 대신 aws에서 service하는 CodeCommit을 활용해 보도록 하겠습니다.   CodeCommitgit을 사용하시는 분들은 대부분 github를 사용하고 계실 것입니다. 하지만 저는 AWS에 Application Infra 구축을 하기 위해 AWS에서 사용하는 CodeCommit을 사용하려 합니다. AWS CodeCommit은 AWS에서 제공하는 완전 관리형 Gi..
[Laboratrix] 5 - Backend API Unit Test * 목차 - Intro - Unit Test 간단 설명 - Unit Test Code 작성 - Outro  Intro이전 글에서는 Fastapi를 활용해서 Backend API를 만들어 봤습니다. [Laboratrix] 4 - FastAPI로 CRUD 동작 구현하기Intro이전 시간에는 Docker Compose로 Backend 개발 환경을 구성했었습니다. [Laboratrix] 3 - Docker Compose로 backend 개발 환경 구성* 목차 - Intro - Install Docker Desktop - Install vscode - Container 접속 - Docker Containertyoon9781.tistory.com 하지만 그것가지고는 그림을 완성할 수 없습니다. Unit Test를 ..