목차 FastAPI에서의 상속은 주로 SQLAlchemy 모델, Pydantic 모델, 그리고 라우터에 적용된다. 한 줄 한 줄 더듬으며 개발하다 보니, 그리고 파이썬의 상속이 너무 간결하다 보니 그 기능을 오히려 잊게 될 때가 있는데, 또다시 잊어버렸을 나중의 나를 위해서 굳이 글을 분리해서 정리한다. SQLAlchemy 모델의 상속 SQLAlchemy는 ORM 라이브러리로, 디비 테이블을 파이썬 클래스로 표현한다. 이때 'Base'라는 SQLAlchemy의 클래스를 상속받아 사용해야 하는데, 이는 나의 경우 db.py에 다음과 같이 선언되어 있다. Base: DeclarativeMeta = declarative_base() 위와 같이 한 번만 선언하고 모든 모델에서 이 클래스를 상속받아 사용하게 되..
DI(의존관계 주입)는 특정 객체가 의존할 객체나 메서드를(즉, 의존관계를) 해당 객체 외부에서, 정확하게는 스프링 컨테이너에서 주입받는 디자인 패턴이다. 여기서 A가 B에게 의존한다는 말은 B의 구성이나 로직이 변하면 A에게 영향을 끼칠 가능성이 있는 관계라는 뜻이다. 이어서 주입이란 의존성을 사용하려는 객체에게 전달하는 것이라 받아들이면 되며, 디자인 패턴이란 공통적인 문제에 대한 재활용 가능한 솔루션이라 생각하면 된다. 또한 스프링 컨테이너란 객체의 생명주기를 관리하는 모듈이며, 스프링 컨테이너가 관리하는 객체를 빈(Bean)이라 부른다. 이는 스프링의 핵심 원칙인 IoC를 구현하는 수단이기도 하며, 객체의 설계와 사용이라는 관심사를 분리해 느슨한 결합으로 의존도를 낮추는 것이 그 목적이다. 구체적..
DI는 특정 객체가 의존할 객체나 메서드를(즉, 의존관계를) 외부에서 주입받는 디자인 패턴이다. 여기서 주입이란 위 그림에서 보듯이 의존성을 사용하려는 객체에게 전달하는 것이라 받아들이면 되며, 디자인 패턴이란 공통적인 문제에 대한 재활용 가능한 솔루션이자 컨셉이라 생각하면 편하다. 또한 DI는 스프링의 핵심 원칙인 IoC(제어 역전)를 구현하는 수단 중 하나인데, DI의 목표가 객체의 설계와 사용이라는 관심사를 분리함으로써 느슨한 관계로 이루어진 앱을 만드는 것이기 때문이다. 이는 코드의 가독성과 재사용성을 크게 높여주는 효과도 가지고 있다. 그렇다면 이렇게까지 주입하려는 의존성이란 무엇일까? 간략하게 알아보자. Dependency Dependency는 의존성, 의존관계라고 번역한다. 나는 처음엔 의존..
Spring MVC - Controller + Service [Spring]Spring MVC [Spring]Spring MVC - Controller 클래스 구조 생성 및 설계 [Spring]Spring MVC - Controller 클래스에 핸들러 메서드(Handler Method) 구현 [Spring]Spring MVC - Controller 클래스에 ResponseEntity 적용 [Spring]Spring MVC - Controller 클래스에 DTO 적용 [Spring]Spring MVC - DTO 유효성 검증(Validation) [Spring]Spring MVC - DI를 통한 API 계층 ↔ 서비스 계층 연동 [Spring]Spring MVC - 매퍼(Mapper)를 이용한 DTO 클래스..
DI(Dependency Injection, 의존성 주입)는 스프링 프레임워크의 네 가지 특징 중 하나이다. 이전 글에서 다룬 적이 있지만, 간략하게 요약하면 다음과 같다. 2022.08.09 - [개발/Spring] - [Spring]Spring Framework, Spring Triangle [Spring]Spring Framework, Spring Triangle Spring Framework, 혹은 Spring은 Java/Kotlin을 기반으로 한 오픈소스 웹 프레임워크이다. 특히나 엔터프라이즈급 애플리케이션 개발에 필요한 기능이 종합적으로 포함되어 있는데, 대한민국 전자정부 gnidinger.tistory.com DI는 객체 간의 의존관계가 소스코드 외부에서 설정에 의해 정해지는 방식을 뜻한다...
지난번 글에서 스프링 컨테이너에 빈을 등록하는 법에 대해 알아봤었다. 2022.08.12 - [개발/Spring] - [Spring]DI - 스프링 컨테이너(Container)와 빈(Bean) [Spring]DI - 스프링 컨테이너(Container)와 빈(Bean) 지난번 글에서, IoC(Inversion of Control)는 DI(Dependency Injection)에 의해 구현된다고 했었다. 여기서 IoC는 제어 역전이라는 뜻을 가지며, 외부 프레임워크가 개발자의 코드를 호출해 실행된다. DI는 풀 gnidinger.tistory.com 이번 글에선 그 방법들에 대한 부연설명과 자바를 기반으로 한 컨테이너 설정에 대해 더 알아본다. @ComponentScan @ComponentScan은 @Com..
지난번 글에서, IoC(Inversion of Control)는 DI(Dependency Injection)에 의해 구현된다고 했었다. 여기서 IoC는 제어 역전이라는 뜻을 가지며, 외부 프레임워크가 개발자의 코드를 호출해 실행된다. DI는 풀어쓰면 의존성 주입이며, 객체 간의 의존관계가 소스코드 외부의 설정에 의해 정해지는 방식이라고 할 수 있다. https://gnidinger.tistory.com/450?category=992842 [Spring]Spring Framework, Spring Triangle Spring Framework, 혹은 Spring은 Java/Kotlin을 기반으로 한 오픈소스 웹 프레임워크이다. 특히나 엔터프라이즈급 애플리케이션 개발에 필요한 기능이 종합적으로 포함되어 있는..
- Total
- Today
- Yesterday
- 동적계획법
- 칼이사
- Algorithm
- 자바
- 스프링
- a6000
- Backjoon
- 지지
- 알고리즘
- 면접 준비
- 맛집
- 세모
- 야경
- 파이썬
- 남미
- Python
- 중남미
- java
- 백준
- spring
- RX100M5
- 기술면접
- 세계여행
- 유럽
- 스트림
- 세계일주
- 리스트
- 유럽여행
- 여행
- BOJ
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |