Skip to content

๐Ÿ’ฐ ๊ณ ๊ฐ ์†Œ๋น„๋‚ด์—ญ ๊ธฐ๋ก/๊ด€๋ฆฌ ๊ธฐ๋Šฅ

Notifications You must be signed in to change notification settings

rimi0108/moneybook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

36 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ฐ ๊ณ ๊ฐ ๊ฐ€๊ณ„๋ถ€ ์ž‘์„ฑ ๋ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„

โ— SECRET_KEY, token ๋ฐœ๊ธ‰์„ ์œ„ํ•œ ALGORITHM, DATABASES๋Š” ๋ณด์•ˆ์„ ์œ„ํ•ด ๋ณ„๋„์˜ ํŒŒ์ผ my_settings.py์— ๋ณด๊ด€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ERD

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-18 แ„‹แ…ฉแ„’แ…ฎ 6 11 49

๐Ÿ›  ์‚ฌ์šฉ ๊ธฐ์ˆ  ๋ฐ ํˆด

  • Back-End : ย ย 
  • Deploy :
  • ETC : ย ย 

๐Ÿ‘ฉโ€๐Ÿ’ป ๊ตฌํ˜„ ๊ธฐ๋Šฅ

users

  • ์œ ์ €๋Š” ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์„ ํ†ตํ•ด ํšŒ์›๊ฐ€์ž…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ์ €์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ db์— ์•”ํ˜ธํ™”ํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด bcrypt๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ์ €๊ฐ€ ๋กœ๊ทธ์ธ ์‹œ token์ด ๋ฐœ๊ธ‰๋ฉ๋‹ˆ๋‹ค.
    • token ๋ฐœ๊ธ‰์€ jwt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐœ๊ธ‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    • token์€ ๋กœ๊ทธ์•„์›ƒ์„ ์œ„ํ•ด ๋ฐœ๊ธ‰์‹œ db์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ์œ ์ € ๋กœ๊ทธ์•„์›ƒ ์‹œ db์—์„œ ํ† ํฐ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
    • ์„œ๋น„์Šค ์ด์šฉ์‹œ ์‚ญ์ œ๋œ ํ† ํฐ์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•œ ํ›„ ์‚ญ์ œ๋œ ํ† ํฐ์ผ ์‹œ ์œ ์ €๋Š” ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    • ์žฌ๋กœ๊ทธ์ธ ์‹œ ๋‹ค์‹œ db์— ํ† ํฐ์ด ์ €์žฅ๋˜๋ฏ€๋กœ ์œ ์ €๋Š” ์ •์ƒ์ ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๐Ÿค” jwt ๋กœ๊ทธ์•„์›ƒ์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜๋ฉฐ ์“ด ๊ธ€

moneybooks

  • ์œ ์ €๋Š” ๋กœ๊ทธ์ธ ์‹œ ๊ฐ€๊ณ„๋ถ€ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋กœ๊ทธ์ธ ํ•˜์ง€ ์•Š์„ ์‹œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ์ €๋Š” ๊ฐ€๊ณ„๋ถ€์— ์‚ฌ์šฉํ•œ ๊ธˆ์•ก, ๋ˆ์˜ ์ž…๊ธˆ/์ถœ๊ธˆ ์—ฌ๋ถ€, ๋ฉ”๋ชจ, ์ž์‚ฐ์˜ ์ข…๋ฅ˜(ํ˜„๊ธˆ, ์นด๋“œ ๋“ฑ), ๋ถ„๋ฅ˜(์‡ผํ•‘, ์‹๋น„ ๋“ฑ), ๋ฉ”๋ชจ๋ฅผ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ž˜๋ชป๋œ ๋‚ ์งœ ํ˜•์‹์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋„ˆ๋ฌด ํฐ ๊ธˆ์•ก(16์ž๋ฆฌ ์ด์ƒ)์„ ์ž…๋ ฅํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ์ €๋Š” ์ž์‹ ์ด ๊ธฐ๋กํ•œ ๊ฐ€๊ณ„๋ถ€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์œ ์ €๋Š” ๋…„, ์›”, ์ผ์„ ์„ ํƒํ•ด์„œ ๊ฐ€๊ณ„๋ถ€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋งŒ์•ฝ ๋…„, ์›”, ์ผ ์ค‘ ์•„๋ฌด๊ฒƒ๋„ ์„ ํƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ˜„์žฌ ๋‚ ์งœ์˜ ๊ธฐ๋ก์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    • ์œ ์ €๊ฐ€ ์„ ํƒํ•œ ์˜ต์…˜์— ๋”ฐ๋ผ ํ•„ํ„ฐ๋ง๋œ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
    • ํ•„ํ„ฐ๋ง๋œ ๊ฒฐ๊ณผ์™€ ํ•จ๊ป˜ ์œ ์ €๊ฐ€ ๊ธฐ๋กํ•œ ์ด ๊ธˆ์•ก์ด ์ž…๊ธˆ๊ณผ ์ถœ๊ธˆ ๊ธˆ์•ก์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
  • ์œ ์ €๋Š” ์ž์‹ ์ด ๊ธฐ๋กํ•œ ๋ฆฌ์ŠคํŠธ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ ์ƒ์„ธ ๊ธฐ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ์ €๋Š” ์ž์‹ ์ด ๊ธฐ๋กํ•œ ๊ฐ€๊ณ„๋ถ€์˜ ๋‚ด์šฉ์„ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ์ €๋Š” ์ž์‹ ์ด ๊ธฐ๋กํ•œ ๊ฐ€๊ณ„๋ถ€์˜ ๋‚ด์šฉ์„ ์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (soft delete๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณต์› ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.)
    • ์œ ์ €๊ฐ€ ๊ฐ€๊ณ„๋ถ€๋ฅผ ์‚ญ์ œํ•˜๋ฉด ํ•ด๋‹น ๊ฐ€๊ณ„๋ถ€์˜ is_deleted ํ•„๋“œ๊ฐ€ True๋กœ ๋ณ€ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž๋Š” ํ•ด๋‹น ๊ฐ€๊ณ„๋ถ€๋ฅผ ์กฐํšŒ, ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ์œ ์ €๋Š” ์ž์‹ ์ด ์‚ญ์ œํ•œ ๊ฐ€๊ณ„๋ถ€๋ฅผ ๋‹ค์‹œ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์œ ์ €๊ฐ€ ๊ฐ€๊ณ„๋ถ€๋ฅผ ๋ณต์›ํ•  ์‹œ ํ•ด๋‹น ๊ฐ€๊ณ„๋ถ€์˜ is_deleted ํ•„๋“œ๊ฐ€ False๋กœ ๋ณ€ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž๋Š” ๋‹ค์‹œ ํ•ด๋‹น ๊ฐ€๊ณ„๋ถ€๋ฅผ ์กฐํšŒ, ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ‘€ ์‹คํ–‰ ๋ฐฉ๋ฒ•

  1. ํ„ฐ๋ฏธ๋„์„ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ํด๋”์— ๋“ค์–ด๊ฐ€์„œ ๋ฐ‘ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
git clone https://github.com/rimi0108/moneybook.git .
  1. Docker ํŒŒ์ผ์ด ์žˆ๋Š” ์œ„์น˜์—์„œ ๋ฐ‘ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด Docker ํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
docker-compose up --build
  1. ์„œ๋ฒ„ ์‹คํ–‰์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
django  | Starting development server at http://0.0.0.0:8000/
django  | Quit the server with CONTROL-C.
  1. Postman Docs ์— ์ ‘์†ํ•˜์—ฌ์„œ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-19 แ„‹แ…ฉแ„’แ…ฎ 6 54 50

์šฐ์ธก ์ƒ๋‹จ์— Run in Postman ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  ๋กœ๊ทธ์ธ ํ›„ ์‚ฌ์šฉํ•  ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ๊ณ ๋ฆ…๋‹ˆ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-19 แ„‹แ…ฉแ„’แ…ฎ 6 56 10

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-19 แ„‹แ…ฉแ„’แ…ฎ 6 56 15

ํฌ์ŠคํŠธ๋งจ ํ™˜๊ฒฝ์„ No Environment์—์„œ Local๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ํ†ต์‹ ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

โ— mysql ํ•œ๊ธ€ ์ธ์ฝ”๋”ฉ ์—๋Ÿฌ ์‹œ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-19 แ„‹แ…ฉแ„’แ…ฎ 8 49 48

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 ํŒŒ์ผ์— ์œ„ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-19 แ„‹แ…ฉแ„’แ…ฎ 9 01 41

์ •์ƒ์ ์œผ๋กœ ํ•œ๊ธ€์ด ๋œจ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

unit test ์‹คํ–‰๋ฒ•

  1. Docker django ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•˜์—ฌ manage.pyํŒŒ์ผ์ด ์žˆ๋Š” ์œ„์น˜์—์„œ ๋ฐ‘ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
python manage.py test
  1. 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;

์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.

๐Ÿš€ Postman Docs

https://documenter.getpostman.com/view/16843855/UVCCeiac

About

๐Ÿ’ฐ ๊ณ ๊ฐ ์†Œ๋น„๋‚ด์—ญ ๊ธฐ๋ก/๊ด€๋ฆฌ ๊ธฐ๋Šฅ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published