๐ Backend21 [FastAPI] Best Practices - Project Structure Project StructureFastAPI ํ๋ก์ ํธ ๊ตฌ์กฐ ์ค๊ณ ํ ๋ ์ฐธ๊ณ ํ๊ธฐ ์ข๋ค.Netflaix/Dipatch๋ฅผ ์ฐธ์กฐํ์ฌ ์์ ํ ์๋ฃ์ด๋ค.fastapi-projectโโโ alembic/โโโ app # ์๋ณธ์ src ์ด์ง๋ง ๋ณธ์ธ์ app ์ ํธํจ.โ โโโ authโ โ โโโ router.pyโ โ โโโ schemas.py # pydantic modelsโ โ โโโ models.py # db modelsโ โ โโโ dependencies.pyโ โ โโโ config.py # local configsโ โ โโโ constants.pyโ โ โโโ exceptions.pyโ โ โโโ service.pyโ โ โโโ ut.. 2025. 2. 14. [SQL] SELECT ๊ด๋ จ ํจ์ ์ง๊ณ ํจ์ (Aggregate Functions)AVG(): ํ๊ท ๊ฐ ๊ณ์ฐSUM(): ํฉ๊ณ ๊ตฌํ๊ธฐCOUNT(): ์ ์ฒด ํ ๊ฐ์COUNT(*): ๋ชจ๋ ํ์ ๊ฐ์COUNT(์ปฌ๋ผ๋ช ): NULL์ด ์๋ ๊ฐ์ ๊ฐ์MAX() / MIN(): ์ต๋๊ฐ๊ณผ ์ต์๊ฐGROUP_CONCAT(): ๋ฌธ์์ด ํฉ์น๊ธฐROUND() / CEIL() / FLOOR(): ๋ฐ์ฌ๋ฆผ, ์ฌ๋ฆผ, ๋ด๋ฆผ ๋๋ฒ์งธ ์ธ์๋ก ์ด๋ ์๋ฆฌ๊น์ง ํํ ์ ํจTRUNCATE(): ์ง์ ํ ์๋ฆฌ์๊น์ง ๋ฒ๋ฆผ์์ N๊ฐ ๋ฐ์ดํฐ ์ถ์ถ (LIMIT)LIMIT N: ๊ฒฐ๊ณผ์์ ์์ N๊ฐ๋ง ์ถ๋ ฅ ๋ ์ง ๋ค๋ฃจ๊ธฐ# ๋ ์ง ๋ฒ์ ์กฐํWHERE JOINED BETWEEN '2021-01-01' AND '2021-12-31'๋๋WHERE YEAR(JOINED) = 2021 # ๋ ์ง ํฌ๋งท ๋ณ๊ฒฝDATE_F.. 2025. 2. 5. [Security] ์คํ๋ง ์ํ๋ฆฌํฐ Spring Security์ธ์ฆ(Authentication), ๊ถํ ๋ถ์ฌ(Authorize) ๋ฐ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํ๋ ์์ํฌ 2024. 2. 27. [Spring Basic] ์คํ๋ง ์ฑ๊ธํค ์ฑ๊ธํค ํจํด ํด๋์ค์ ์ธ์คํด์ค๊ฐ 1๊ฐ๋ง ์๋ ๊ฒ์ ๋ณด์ฅํ๋ ๋์์ธ ํจํด package hello.core.singleton; public class SingletonService { //1. static ์์ญ์ ๊ฐ์ฒด๋ฅผ ๋ฑ 1๊ฐ๋ง ์์ฑํด๋๋ค. private static final SingletonService instance = new SingletonService(); //2. public์ผ๋ก ์ด์ด์ ๊ฐ์ฒด ์ธ์คํด์ค๊ฐ ํ์ํ๋ฉด ์ด static ๋ฉ์๋๋ฅผ ํตํด์๋ง ์กฐํํ๋๋ก ํ์ฉํ๋ค. public static SingletonService getInstance() { return instance; } //3. ์์ฑ์๋ฅผ private์ผ๋ก ์ ์ธํด์ ์ธ๋ถ์์ new ํค์๋๋ฅผ ์ฌ์ฉํ ๊ฐ์ฒด ์์ฑ์ ๋ชปํ๊ฒ ๋ง๋๋ค. pr.. 2024. 1. 18. [Spring Basic] ์คํ๋ง ์ปจํ ์ด๋์ ๋น ์คํ๋ง ์ปจํ ์ด๋ /์คํ๋ง ์ปจํ ์ด๋ ์์ฑ ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext ๊ฐ ๋ฐ๋ก ์คํ๋ง ์ปจํ ์ด๋์ด๋ค ๊ณ ์ด๊ณ ์ด ์ ๋ณด๋ฅผ ๋ชจ์์ ์ด๋ฅผ ์คํ๋ง์์ ์ฌ์ฉํ๋ ์คํ๋ง ๋น ํํ๋ก ์ปจํ ์ด๋์์ ๊ด๋ฆฌํ๋ค. ํํ ๋งํ๋ BeanFactory๋ ์ด๋ฐ ApplicationContext์ ์ต์์ ์ธํฐํ์ด์ค์ด๋ค. ํ์ง๋ง ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ํด ์ฃผ๋ก AnnotationConfig, ApplicationContext๋ฅผ ์ฌ์ฉํ๋ค. locale, ํ๊ฒฝ ๋ณ์, ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฒคํธ, ๋ ๋์ ๋ฆฌ์์ค ์กฐํ ๋ฑ๋ฑ... ์คํ๋ง ๋น ๊ทธ๋ ๋ค๋ฉด Bean ์ด๋ ๋ฌด์์ธ๊ฐ? ๊ทธ๋ฌ๋ฉด์ .. 2024. 1. 18. [Spring Basic] IoC์ DI IoC - ์ ์ด์ ์ญ์ ๊ธฐ์กด ํ๋ก๊ทธ๋จ๋ค์ ๊ฐ๋ฐ์์ ์์ง์ ๋ฐ๋ผ ๊ตฌํ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ์ฐ๊ฒฐํ๊ณ ์คํํ๋ค. ์ฆ ํ๋ก๊ทธ๋จ์ ์ ์ด ํ๋ฆ์ ๊ฐ๋ฐ์๊ฐ ์ง์ ์กฐ์ข ํ๋ค. ํ์ง๋ง ์คํ๋ง์์ ํด๋น ๊ฐ์ฒด์ ์์ฑ๊ณผ ์ฐ๊ฒฐ, ์คํ์ ๊ฐ๋ฐ์๊ฐ ์๋ ์คํ๋ง์ด ๋ด๋นํ๋ค. ํ๋ ์ ์ํฌ vs ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ๋ ์์ํฌ๋ ๋ด๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์ ์ดํ๊ณ , ๋์ ์คํํ๋ฉด ํ๋ ์์ํฌ ๋ด๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์ง์ ์ ์ด์ ํ๋ฆ์ ์ ์ดํ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ ๊ทธ๋ฆผ์ฒ๋ผ ๋์ ๋น์ฆ๋์ค ์ค๋ธ์ ํธ(๋ด๊ฐ ๊ตฌํํ ๊ฐ์ฒด)์ Configuration ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์คํ๋ง ์ด๋ฆฌ์ ๋ฆฌ ์งฌ๋ฝํด์ ์คํ๋ง ์๋ฒ๊ฐ ์์ฑ๋๋ค. DI - ์์กด๊ด๊ณ ์ฃผ์ ์คํ๋ง์ด DI๋ฅผ ํ๋ ๋ฐฉ๋ฒ์๋ ๋ค ๊ฐ์ง๊ฐ ์๋ค. โญ๏ธ ์์ฑ์ ์ฃผ์ โญ๏ธ Setter ์ฃผ์ ํ๋ ์ฃผ์ ์ผ๋ฐ ๋ฉ์๋ ์ฃผ์ ์์ฑ์ ์ฃผ์ ์์ฑ.. 2024. 1. 18. ์ด์ 1 2 3 4 ๋ค์