categories / development

6 post(s)

자가 위임, 자가 캡슐화 - DDD에서 생성자를 정의하는 방법

DDD에서는 생성자를 정의할 때 자가 위임(self-delegation)과 자가 캡슐화(self-encapsulation)를 사용할 것을 권장한다. 이 두 가지 개념을 통해 어떻게 생성자를 정의해야 하는지 알아보자.

FastAPI에서 사용자가 연결을 끊으면 어떻게 될까? - Middleware disconnection check 문제

FastAPI에서 middleware를 사용하면 클라이언트가 연결을 끊었다는 사실을 알 수 없게 된다. 사용자의 disconnection이 요청 취소를 의미하는 경우, 이는 여러가지 문제로 이어질 수 있다. 연결이 끊겼다는 것을 어떻게 감지해야 할까?

초보 개발자 클릭 금지! Python으로 PostgreSQL DB 개인정보 암호화하기 1편 - 문제정의와 요구사항 분석

AI와 빅데이터가 모든 것의 중심이 되어가는 세상에서 개인정보 보호는 매우 중요하다. 데이터 수집 과정에서 개인정보가 노출되면 심각한 범죄로 이어질 수도 있다. DB 개인정보 암호화를 하려면 어떤 것들을 고려해야 할까? 간단한 예시와 함께 DB 개인정보 암호화를 달성하기 위한 방법들을 살펴보자.

FastAPI로 다양한 input을 받는 웹 서버 개발 방법 - Path parameter, query parameter, request body

Python의 FastAPI는 간단한 코드로 REST API를 빠르게 개발하도록 해준다. 복잡한 코드 없이 FastAPI로 path parameter, query parameter, JSON 타입의 request body 등 다양한 종류의 input을 받는 python backend 서버를 개발해보자.

Python의 enum으로 dynamic value 정의하기

Python의 enum은 일종의 alias라고 생각할 수 있다. 어떤 값을 미리 정의한 다른 이름으로 대체해서 참조할 수 있다. 이 별명과 값들은 enum을 정의하는 시점에 결정되고, 이후 값을 변경할 수 없는 "불변"의 속성을 가진다. 그렇다면 만약 enum에 정의된 다른 값들을 활용하여 동적으로 만들어야 하는 값이 있다면 어떻게 해야 할까?

Python으로 private 변수, getter와 setter를 만드는 방법은 없을까? - Python property decorator

Python으로 객체지향 프로그래밍을 하려고 하는가? Java같은 객체지향 언어를 학습하다보면 public, private 등의 접근제어자, 그리고 getter와 setter에 대해 자연스럽게 접하게 된다. 그런데, python 언어 학습을 할 때는 "쉽다"는 명목하에 곧바로 흥미를 유발하는 예제 프로그램부터 만드는 식으로 진행하는 경우가 많은 것 같다. 객체지향 개념을 python으로 접할 기회가 적어서 모르고 지나치는 부분이 많다. Python에도 private같은 접근제어자 기능을 사용할 수 있다는 사실을 알고 있는가? Getter와 setter를 만들 수 있는 built-in 기능이 있다는 것을 알고 있는가? 생소하다면 빠르게 훑어보자.