โ SECRET_KEY
, token ๋ฐ๊ธ์ ์ํ ALGORITHM
, DATABASES
๋ ๋ณด์์ ์ํด ๋ณ๋์ ํ์ผ my_settings.py
์ ๋ณด๊ดํ์ต๋๋ค.
- ์ ์ ๋ ์ด๋ฉ์ผ๊ณผ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ์ ํตํด ํ์๊ฐ์ ์ ํ ์ ์์ต๋๋ค.
- ์ ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ db์ ์ํธํํ์ฌ ์์ ํ๊ฒ ์ ์ฅํ๊ธฐ ์ํด
bcrypt
๋ฅผ ์ฌ์ฉํ์ต๋๋ค. - ์ ์ ๊ฐ ๋ก๊ทธ์ธ ์ token์ด ๋ฐ๊ธ๋ฉ๋๋ค.
- token ๋ฐ๊ธ์
jwt
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ๊ธํ์์ต๋๋ค. - token์ ๋ก๊ทธ์์์ ์ํด ๋ฐ๊ธ์ db์ ์ ์ฅ๋ฉ๋๋ค.
- token ๋ฐ๊ธ์
- ์ ์ ๋ก๊ทธ์์ ์ db์์ ํ ํฐ์ ์ญ์ ํฉ๋๋ค.
- ์๋น์ค ์ด์ฉ์ ์ญ์ ๋ ํ ํฐ์ธ์ง ์๋์ง ํ๋จํ ํ ์ญ์ ๋ ํ ํฐ์ผ ์ ์ ์ ๋ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค.
- ์ฌ๋ก๊ทธ์ธ ์ ๋ค์ db์ ํ ํฐ์ด ์ ์ฅ๋๋ฏ๋ก ์ ์ ๋ ์ ์์ ์ผ๋ก ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค.
- ๐ค jwt ๋ก๊ทธ์์์ ๋ํด ๊ณ ๋ฏผํ๋ฉฐ ์ด ๊ธ
- ์ ์ ๋ ๋ก๊ทธ์ธ ์ ๊ฐ๊ณ๋ถ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค.
- ๋ก๊ทธ์ธ ํ์ง ์์ ์ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
- ์ ์ ๋ ๊ฐ๊ณ๋ถ์ ์ฌ์ฉํ ๊ธ์ก, ๋์ ์
๊ธ/์ถ๊ธ ์ฌ๋ถ, ๋ฉ๋ชจ, ์์ฐ์ ์ข
๋ฅ(ํ๊ธ, ์นด๋ ๋ฑ), ๋ถ๋ฅ(์ผํ, ์๋น ๋ฑ), ๋ฉ๋ชจ๋ฅผ ๊ธฐ๋กํ ์ ์์ต๋๋ค.
- ์๋ชป๋ ๋ ์ง ํ์์ ์ ๋ ฅํ๊ฑฐ๋ ๋๋ฌด ํฐ ๊ธ์ก(16์๋ฆฌ ์ด์)์ ์ ๋ ฅํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
- ์ ์ ๋ ์์ ์ด ๊ธฐ๋กํ ๊ฐ๊ณ๋ถ ๋ฆฌ์คํธ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.
- ์ ์ ๋ ๋ , ์, ์ผ์ ์ ํํด์ ๊ฐ๊ณ๋ถ ๋ฆฌ์คํธ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.
- ๋ง์ฝ ๋ , ์, ์ผ ์ค ์๋ฌด๊ฒ๋ ์ ํํ์ง ์๋๋ค๋ฉด ํ์ฌ ๋ ์ง์ ๊ธฐ๋ก์ ์ถ๋ ฅํฉ๋๋ค.
- ์ ์ ๊ฐ ์ ํํ ์ต์ ์ ๋ฐ๋ผ ํํฐ๋ง๋ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
- ํํฐ๋ง๋ ๊ฒฐ๊ณผ์ ํจ๊ป ์ ์ ๊ฐ ๊ธฐ๋กํ ์ด ๊ธ์ก์ด ์ ๊ธ๊ณผ ์ถ๊ธ ๊ธ์ก์ผ๋ก ๋๋์ด์ ธ ์ถ๋ ฅ๋ฉ๋๋ค.
- ์ ์ ๋ ์์ ์ด ๊ธฐ๋กํ ๋ฆฌ์คํธ ์ค ํ๋๋ฅผ ๊ณจ๋ผ ์์ธ ๊ธฐ๋ก์ ์กฐํํ ์ ์์ต๋๋ค.
- ์ ์ ๋ ์์ ์ด ๊ธฐ๋กํ ๊ฐ๊ณ๋ถ์ ๋ด์ฉ์ ์ ๋ฐ์ดํธ ํ ์ ์์ต๋๋ค.
- ์ ์ ๋ ์์ ์ด ๊ธฐ๋กํ ๊ฐ๊ณ๋ถ์ ๋ด์ฉ์ ์ญ์ ํ ์ ์์ต๋๋ค. (soft delete๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ๋ณต์ ๊ฐ๋ฅํ๋๋ก ํ์์ต๋๋ค.)
- ์ ์ ๊ฐ ๊ฐ๊ณ๋ถ๋ฅผ ์ญ์ ํ๋ฉด ํด๋น ๊ฐ๊ณ๋ถ์ is_deleted ํ๋๊ฐ True๋ก ๋ณํ๋ฉฐ ์ฌ์ฉ์๋ ํด๋น ๊ฐ๊ณ๋ถ๋ฅผ ์กฐํ, ๋ณ๊ฒฝํ ์ ์๊ฒ ๋ฉ๋๋ค.
- ์ ์ ๋ ์์ ์ด ์ญ์ ํ ๊ฐ๊ณ๋ถ๋ฅผ ๋ค์ ๋ณต์ํ ์ ์์ต๋๋ค.
- ์ ์ ๊ฐ ๊ฐ๊ณ๋ถ๋ฅผ ๋ณต์ํ ์ ํด๋น ๊ฐ๊ณ๋ถ์ is_deleted ํ๋๊ฐ False๋ก ๋ณํ๋ฉฐ ์ฌ์ฉ์๋ ๋ค์ ํด๋น ๊ฐ๊ณ๋ถ๋ฅผ ์กฐํ, ๋ณ๊ฒฝํ ์ ์๊ฒ ๋ฉ๋๋ค.
- ํฐ๋ฏธ๋์ ์ด์ฉํ์ฌ ์ํ๋ ํด๋์ ๋ค์ด๊ฐ์ ๋ฐ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
git clone https://github.com/rimi0108/moneybook.git .
- Docker ํ์ผ์ด ์๋ ์์น์์ ๋ฐ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด Docker ํ๊ฒฝ์ ์คํํฉ๋๋ค.
docker-compose up --build
- ์๋ฒ ์คํ์ ํ์ธํฉ๋๋ค.
django | Starting development server at http://0.0.0.0:8000/
django | Quit the server with CONTROL-C.
- Postman Docs ์ ์ ์ํ์ฌ์
์ฐ์ธก ์๋จ์ Run in Postman
๋ฒํผ์ ๋๋ฅด๊ณ ๋ก๊ทธ์ธ ํ ์ฌ์ฉํ ์ํฌ์คํ์ด์ค๋ฅผ ๊ณ ๋ฆ
๋๋ค.
ํฌ์คํธ๋งจ ํ๊ฒฝ์ No Environment์์ Local๋ก ๋ณ๊ฒฝํ๊ณ ํต์ ์ ์์ํฉ๋๋ค.
โ mysql ํ๊ธ ์ธ์ฝ๋ฉ ์๋ฌ ์
apt-get update
apt-get install vim
vim /etc/mysql/my.cnf
์ ์ธ๊ฐ์ง ๋ช ๋ น์ด๋ฅผ mysql ์ปจํ ์ด๋์์ ์คํํฉ๋๋ค.
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
my.cnf ํ์ผ์ ์ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ ์์ ์ผ๋ก ํ๊ธ์ด ๋จ๋ ๊ฒ์ ํ์ธํ์ค ์ ์์ต๋๋ค.
- Docker
django
์ปจํ ์ด๋์ ์ ์ํ์ฌmanage.py
ํ์ผ์ด ์๋ ์์น์์ ๋ฐ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
python manage.py test
- test ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค.
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
..............
----------------------------------------------------------------------
Ran 14 tests in 2.404s
OK
Destroying test database for alias 'default'...
์ ํ๋ฉด์ test ์ฑ๊ณต ์ ๋์ค๋ ํ๋ฉด์ ๋๋ค.
โ Got an error creating the test database: (1044, "Access denied for user 'django'@'%' to database 'test_django'")
์ ์๋ฌ ๋ฐ์ ์ mysql root์ ์ ์ํ์ฌ
mysql> GRANT ALL PRIVILEGES ON test_django.* TO 'django'@'%';
mysql> FLUSH PRIVILEGES;
์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.