Skip to content

dongseoki/trackdayb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

trackDay

๐Ÿ—‚๏ธ ๋ชฉ์ฐจ

5. ์„ค๊ณ„

5.1 ERD

7.1 Frontend

7.2 Backend

8.1 Frontend

8.2 Backend

9.2 ์‹คํ–‰ ๋ฐฉ๋ฒ•

9.3 license

9.4 ์‚ฌ์šฉํ•œ ํ˜‘์—… ๋„๊ตฌ.


๐Ÿ“ƒ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

trackDay๋Š” ์ด๋ฃจ๊ณ ์ž ํ•˜๋Š” ๋ชฉํ‘œ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ๋งค์ผ์˜ ํ™œ๋™์„ ๊ธฐ๋กํ•˜๋Š” ์‚ฌ์ดํŠธ ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๊ด€์ ์—์„œ์˜ ๋ฆฌํฌํŠธ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์œ ์ €๋“ค์—๊ฒŒ ๋™๊ธฐ๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ์ง€์†์ ์œผ๋กœ ๋„์ „ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์œ ์ €๋“ค๊ฐ„์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์„œ๋กœ์˜ ๋ชฉํ‘œ์™€ ํ™œ๋™์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์™ธ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ชฉํ‘œ๋ฅผ ์ด๋ฃจ๋Š”๋ฐ ๋„์›€์ด ๋˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋Š” ์ง„ํ–‰ ๋„์ค‘ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“† ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ : 2021๋…„ 08์›” 31์ผ ~ 2022๋…„ 4์›” 5์ผ.


๋ฐ๋ชจ๋งํฌ

trackDay

  • ์„œ๋น„์Šค ์ข…๋ฃŒ(22.11.11 00:07)

๐Ÿง‘โ€๐Ÿ’ป ์ œ์ž‘ ๊ธฐ๊ฐ„ & ํŒ€ ๊ตฌ์„ฑ

Backend Frontend
์ด๋™์„
Github
JAVA
๊น€์œ ์ง„
Github
REACT

โญ ๊ธฐ์ˆ  ์Šคํ… ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • ๊ฐœ๋ฐœ์–ธ์–ด: JAVA(jdk-11.0.10), JavaScript
  • ๊ฐœ๋ฐœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: React
  • ๋ฐฐํฌ :
    • AWS EC2 : IaaS. Amazon์œผ๋กœ ๋ถ€ํ„ฐ ๋ฌผ๋ฆฌ์  ์„œ๋ฒ„, ๋„คํŠธ์›Œํฌ, ๊ฐ€์ƒํ™”๋ฅผ ์ง€์›๋ฐ›์Œ.
    • AWS RDS : AWS ํด๋ผ์šฐ๋“œ์—์„œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋” ์‰ฝ๊ฒŒ ์„ค์น˜, ์šด์˜ ๋ฐ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์„œ๋น„์Šค
  • DBMS :
    • mysql(8.0.24) : ์˜คํ”ˆ ์†Œ์Šค์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
  • ํ†ต์‹  :
    • Axios: ์„œ๋ฒ„ ํ†ต์‹ ์„ ์œ„ํ•ด ์‚ฌ์šฉ
  • ์Šคํƒ€์ผ :
    • material-UI : UI ํ†ต์ผ์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉ
    • emotion : mui ์ปค์Šคํ…€์„ ์œ„ํ•ด ์‚ฌ์šฉ
  • ํ”„๋ ˆ์ž„์›Œํฌ :
    • spring boot(ver 2.5.2)) : ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„ ์›Œํฌ
    • spring security : Spring ๊ธฐ๋ฐ˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณด์•ˆ(์ธ์ฆ๊ณผ ๊ถŒํ•œ, ์ธ๊ฐ€ ๋“ฑ)์„ ๋‹ด๋‹นํ•˜๋Š” ์Šคํ”„๋ง ํ•˜์œ„ ํ”„๋ ˆ์ž„์›Œํฌ
    • mybatis : ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง€์ •ํ•œ SQL, ์ €์žฅํ”„๋กœ์‹œ์ € ๊ทธ๋ฆฌ๊ณ  ๋ช‡๊ฐ€์ง€ ๊ณ ๊ธ‰ ๋งคํ•‘์„ ์ง€์›ํ•˜๋Š” ํผ์‹œ์Šคํ„ด์Šค ํ”„๋ ˆ์ž„์›Œํฌ
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(ํŒจํ‚ค์ง€) :
    • dayjs : Date ํƒ€์ž… ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ
    • dotenv : React ๋‚ด๋ถ€ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ
    • randomcolor : ๋ชฉํ‘œ์ถ”๊ฐ€์‹œ ๋ผ๋ฒจ ์ƒ‰์ƒ ๋žœ๋ค๊ฐ’ ์ƒ์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉ
    • react-colorful : ๋ชฉํ‘œ์ถ”๊ฐ€์‹œ ๋ผ๋ฒจ ์ƒ‰์ƒ ์„ ํƒ์„ ์œ„ํ•œ ์ปฌ๋Ÿฌ picker
    • react-datepicker : ๋ชฉํ‘œ/ํ™œ๋™ ์กฐํšŒ์‹œ ๊ธฐ๊ฐ„์„ ํƒ์„ ์œ„ํ•ด ์‚ฌ์šฉ
    • react-google-login : ๊ตฌ๊ธ€์•„์ด๋””๋กœ ๋กœ๊ทธ์ธ ์—ฐ๋™์„ ์œ„ํ•ด ์‚ฌ์šฉ
    • react-icons : ์•„์ด์ฝ˜์„ ์œ„ํ•ด ์‚ฌ์šฉ
    • redux : ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ
    • redux-saga : ์ƒํƒœ๊ด€๋ฆฌ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ
    • react-toastify : ์•Œ๋ฆผ์ฐฝ์„ ์œ„ํ•ด ์‚ฌ์šฉ

์„ค๊ณ„

ERD

https://www.erdcloud.com/p/pMhndMEj8ag42BjaR

restApiDoc

RestApi ๋ช…์„ธ์„œ ๋งํฌ

๐Ÿ•น๏ธ ์ฃผ์š” ๊ธฐ๋Šฅ

๋กœ๊ทธ์ธ / ํšŒ์›๊ฐ€์ž…

  • JWT ํ† ํฐ ๋ฐฉ์‹์œผ๋กœ ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›๊ณ  LocalStorage์— ์ €์žฅํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์˜๋ฌธ ์†Œ๋ฌธ์ž, ์ˆซ์ž, ํŠน์ˆ˜๊ธฐํ˜ธ๋ฅผ ์ด์šฉํ•˜์—ฌ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹‰๋„ค์ž„์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ชจ๋“  ๊ณณ์—” ๋‹‰๋„ค์ž„๋งŒ ๋…ธ์ถœ๋œ๋‹ค.

๋ชฉํ‘œ๊ด€๋ฆฌ

  • ๋ชฉํ‘œ๋ฅผ ์นด๋“œ๋กœ ๋งŒ๋“ค์–ด ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์›ํ•˜๋Š” ์กฐ๊ฑด์— ๋งž๊ฒŒ ๋ชฉํ‘œ์นด๋“œ๋ฅผ ํ•„ํ„ฐ๋ง ๊ฑธ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ชฉํ‘œ์นด๋“œ์—๋Š” ์ง„ํ–‰๊ธฐ๊ฐ„/๊ณต๊ฐœ์—ฌ๋ถ€/์ œ๋ชฉ/๋‚ด์šฉ/๋ชฉํ‘œ์œ ํ˜•(์ฃผ๊ธฐ์„ฑ/๊ธฐํ•œ์„ฑ)/์ง„ํ–‰๋ฅ /๋ถ€๋ชจ๋ชฉํ‘œ/ํƒœ๊ทธ์ปฌ๋Ÿฌ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. Thumbnail Thumbnail

์‹œ๊ฐ„๊ด€๋ฆฌ

  • ํ™œ๋™์„ ํƒ€์ž„๋ผ์ธํ˜•์‹์œผ๋กœ ๊ธฐ๋ก,์ €์žฅํ•œ๋‹ค.
  • ์›ํ•˜๋Š” ์กฐ๊ฑด์— ๋งž๊ฒŒ ํ™œ๋™ ํƒ€์ž„๋ผ์ธ์„ ํ•„ํ„ฐ๋ง ๊ฑธ ์ˆ˜ ์žˆ๋‹ค.
  • ํ™œ๋™์—๋Š” ์‹œ๊ฐ„/๊ณต๊ฐœ์—ฌ๋ถ€/์ œ๋ชฉ/๋‚ด์šฉ/๋ชฐ์ž…๋„/๊ด€๋ จ๋ชฉํ‘œ๋ฅผ ๊ธฐ๋กํ•œ๋‹ค. Thumbnail Thumbnail

๐Ÿ™‰ Troubleshooting

Frontend

  • ๋กœ๊ทธ์ธ ๋ฐ ํšŒ์›๊ฐ€์ž… ๋“ฑ์—์„œ ํŒจ์Šค์›Œ๋“œ RSA์•”ํ˜ธํ™” ํ•˜์—ฌ ์ „๋‹ฌ(22.01.17)

    • ์ƒํ™ฉ : ๋กœ๊ทธ์ธ ๋ฐ ํšŒ์›๊ฐ€์ž…์‹œ ํŒจ์Šค์›Œ๋“œ๋ฅผ RSA๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ „๋‹ฌ, RSA์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•œ JS ์†Œ์ŠคํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํ™ฉ
    • ์›์ธ : javascript ์†Œ์ŠคํŒŒ์ผ์„ React์—์„œ import ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์–ด๋ ค์›€
    • ํ•ด๊ฒฐ๋ฐฉ์•ˆ : ๋ฆฌ์•กํŠธ ์ „์šฉ JSEncrypt ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ(npm ๋ชจ๋“ˆ)
  • ๋ฆฌ๋•์Šค ์ ์šฉ ์ดํ›„ ์ƒˆ๋กœ๊ณ ์นจ ์‹œ accessToken/refreshToken ๋‚ ์•„๊ฐ(22.03.03)

    • ์ƒํ™ฉ : ๋ฆฌ๋•์Šค๋ฅผ ์ ์šฉํ•˜์—ฌ accessToken/refreshToken์„ ์ƒํƒœ๊ฐ’์œผ๋กœ ์ €์žฅํ•˜๊ณ , ์ƒˆ๋กœ๊ณ ์นจ์‹œ ํ† ํฐ ์ •๋ณด ๋‚ ์•„๊ฐ
    • ์›์ธ : ํ† ํฐ์ •๋ณด๋ฅผ state ์ฒ˜๋Ÿผ ์ƒํƒœ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•œ ๊ฒƒ
    • ํ•ด๊ฒฐ๋ฐฉ์•ˆ : ํ† ํฐ์ •๋ณด๋“ค์€ saga์—์„œ API ํ†ต์‹  ์ดํ›„ localstorage.setItem ๋ช…๋ น์–ด๋กœ ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ๋ณ„๋„๋กœ ์ €์žฅ
  • ์„ฑ๋Šฅ ๊ฐœ์„  (22.03.28)

    • ์ƒํ™ฉ : ๋ชฉํ‘œ์กฐํšŒ ํŽ˜์ด์ง€ ๋žœ๋”๋ง์‹œ ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์€ API ์š”์ฒญ
    • ์›์ธ : ๋ชฉํ‘œ์นด๋“œ ํ•˜๋‚˜ํ•˜๋‚˜ ๋งˆ๋‹ค modifyModal ์ฝ”๋“œ ๋‚ด๋ถ€์˜ API ์š”์ฒญ์ด ๊ฐ€๋Š” ๊ฒƒ
    • ํ•ด๊ฒฐ๋ฐฉ์•ˆ : ๋ชฉํ‘œ์นด๋“œ ๊ฐœ์ˆ˜๋ณ„๋กœ ๋‹ค ์š”์ฒญ์ด ๊ฐ€๋˜ ๊ฒƒ์„ ์ˆ˜์ • ๋ชจ๋‹ฌ์ฐฝ์ด open ๋˜์—ˆ์„ ๋•Œ๋งŒ ์š”์ฒญ๊ฐ€๋„๋ก ์ฒ˜๋ฆฌ

Backend

  • ์„œ๋ฒ„๋‹ค์šด์ด์Šˆ(21.12.25)

    • ์ƒํ™ฉ :
      • deploy.sh ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰์ค‘์— ํŒŒ์ผ์„ ๊ถŒํ•œ์„ ๊ฑด๋“œ๋ ธ๊ณ , ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์‹œ, ํŠน์ • ๋ช…๋ น์–ด๋“ค์ด ๊ถŒํ•œ ๋ฌธ์ œ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ
    • ์›์ธ : deploy.sh์— ์ฃผ์–ด์ง„ ๊ถŒํ•œ์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๋ฌธ์ œ๋กœ ํŒŒ์•…๋จ.
    • ํ•ด๊ฒฐ๋ฐฉ์•ˆ ; script ์‹คํ–‰์‹œ ๊ถŒํ•œ์„ ํ•ญ์‹œ ๋ฐ”๊พธ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ถ”๊ฐ€ํ•จ. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋งํฌ ์ฐธ์กฐ.
  • accessToken ์ž„์˜ ์ˆ˜์ •ํ•ด๋„ ์„œ๋ฒ„๊ฐ€ ๋กœ๊ทธ์ธํ–ˆ๋˜ ์œ ์ €๋ฅผ ์ธ์‹ํ•˜๋Š” ๋ฌธ์ œ

    • ์ƒํ™ฉ :
      • ํ˜„์žฌ ํ”„๋กœ์ ํŠธ๋Š” access refresh token ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ์ฆ์„ ํ•จ. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— accessToken์„ ์ž„์˜ ์ˆ˜์ •ํ•˜๊ณ , ๊ถŒํ•œ์ด ํ•„์š”ํ•œ API ํ˜ธ์ถœ์‹œ
        • result : ๋กœ๊ทธ์ธํ–ˆ๋˜ ์œ ์ €๋ฅผ ์ธ์‹ํ•˜๊ณ , API๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰๋จ.
        • expected result : ํ† ํฐ ํ•ด์„์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ 401 ์—๋Ÿฌ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•จ.
      • ์›์ธ ๋ถ„์„ :
        • ๋กœ๊ทธ์ธ ํ–ˆ๋˜ ์œ ์ €๋ฅผ ์ธ์‹ํ•œ๋‹ค๋Š” ์ ์—์„œ ํ˜„์žฌ session์ด ๋™์ž‘ํ•˜๊ณ  ์žˆ์Œ์„ ์œ ์ถ”ํ•จ.(๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋กœ๋„ ํ™•์ธ.)
        • ์ด์ „์— ๋ถ„๋ช… ๋˜๋˜ ๊ธฐ๋Šฅ์ด ์–ด๋Š ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์•ˆ๋˜๊ธฐ ์‹œ์ž‘ํ•จ. ๋ณด์•ˆ ์„ค์ •์—์„œ ๋ญ”๊ฐ€ ์กฐ์น˜๋ฅผ ์ทจํ•œ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•˜๊ณ , ๊ด€๋ จ๋œ ํŒŒ์ผ์˜ ์„ค์ •๋“ค์„ ํ™•์ธํ•ด๋ด„. ํ™•์ธ ๊ฒฐ๊ณผ ๊ด€๋ จ ์„ค์ • ๋ถ€๋ถ„์ด ์ฃผ์„์ณ์ ธ์žˆ๋˜ ๊ฒƒ์„ ํ™•์ธํ•จ.
        • ํ•ด๋‹น ์ฝ”๋“œ๋Š” SecurityConfig.java 63๋ฒˆ์งธ ์ค„์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ.
      • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ : ํ•ด๋‹น ์ฃผ์„์„ ํ•ด์ œํ•จ. ์ด์Šˆ ํ•ด๊ฒฐ

ํšŒ๊ณ 

Frontend

์ข‹์•˜๋˜ ์ 

  • ์‹ค์ „ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๋ชจํ˜ธํ•˜๋˜ ๊ฐœ๋…์„ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
    • ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋˜ React๋ฅผ ์„œ๋น„์Šค์— ์‘์šฉํ•ด ๋ณธ ๊ฒƒ์ด ์ข‹์•˜๋‹ค.
    • ํ•จ๊ป˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•œ ๋ถ„๊ป˜ ์ •๋ง ๋งŽ์€ ๊ฑธ ๋ฐฐ์› ๋‹ค. ๋™์„๋‹˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์•„์‰ฌ์› ๋˜ ์ 

  • ์›น๊ฐœ๋ฐœ์ž๋Š” ์‹ ์†์ •ํ™•์ด ์ƒ๋ช…์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์„ ์ ์šฉํ•ด๋ณด์ง€ ์•Š์•˜๋‹ค.
  • ๋””๋ฒ„๊น…์„ ๊ตฌ๊ธ€๋ง์—๋งŒ ์˜์กดํ•˜๊ณ , ๋ฉด๋ฐ€ํžˆ ๊ฒ€ํ† ํ•˜์ง€ ์•Š์•˜๋‹ค.
  • ๋ฆฌํŒฉํ† ๋ง์ด๋‚˜, ๊ธฐ๋Šฅ์ˆ˜์ •์„ ํ•˜๋ฉด์„œ, ์˜ํ–ฅ๋„๋ฅผ ๊นŠ์ด ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ์ž‘์—…ํ•˜์—ฌ ์ค‘๊ฐ„์— ๋ฐฐํฌ ์ฃผ๊ธฐ๋ฅผ ๋”œ๋ ˆ์ด ํ•˜์˜€๋‹ค.

์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ๋ฐฉํ–ฅ

  • Javascript Deep Dive
  • ์•„์ด๋””์–ด๋ฅผ ์‹ ์† ์ •ํ™•ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ์—ฐ์Šต
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
  • ํ’€์Šคํƒ์„ ์œ„ํ•œ ํŠธ๋ž™๋ฐ์ด ๋œฏ์–ด๋ณด๊ธฐ

Backend

์ข‹์•˜๋˜ ์ 

  • ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋‹คํ•ด๋ณธ๊ฒƒ์ด ๋ฟŒ๋“ฏํ•˜๋‹ค.
    • ๊ธฐํš, ์„ค๊ณ„, ๊ตฌํ˜„, ๋ฐฐํฌ, ํ˜‘์—…, ํŒ€์›๋ชจ์ง‘, ํ™๋ณด, ๋””์ž์ธ...

์•„์‰ฌ์› ๋˜ ์ 

  • ํ”„๋กœ์ ํŠธ๋ฅผ ๋„ˆ๋ฌด ์˜ค๋ž˜, ๊ธธ๊ฒŒ ๋Œ์—ˆ๋‹ค.
  • ์‹ค๋ฌด์— ์ง‘์ฐฉํ•œ ๋‚˜๋จธ์ง€ ์ด๋ก ์„ ์†Œํ™€ํžˆ ํ–ˆ์—ˆ๋‹ค.
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜๋‹ค.
  • ORM์„ ์ด์šฉํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋‹ค.
  • ์ฒซ ํ”„๋กœ์ ํŠธ์˜€๋Š”๋ฐ ์„œ๋น„์Šค ๊ตฌํ˜„์— ์ง‘์ฐฉํ–ˆ๋‹ค.

์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ๋ฐฉํ–ฅ

  • ๋น ๋ฅธ ์‹œ๊ฐ„๋‚ด์— ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด๋ณผ์ˆ˜์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋ณธ๋‹ค.
  • ๊ธฐํš์„ ์ž‘๊ฒŒ ํ•œ๋‹ค.(1๋‹ฌ๋‚ด์— ์ž‘์—…ํ• ์ˆ˜ ์žˆ๋Š”)
  • ์‹ค๋ฌด ์ „์—, ์ด๋ก  ๋จผ์ € ๋น ์‚ญํ•˜๊ฒŒ ํ•ด๋‘”๋‹ค.
  • ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ๊ฒƒ๋ณด๋‹ค, ๋‹ค๋ฅธ ์‚ฌ๋žŒ ์ฝ”๋“œ๋ฅผ ๋” ๋งŽ์ด ๋ณด๊ณ , ํ•ด์„ํ•ด๋ณธ๋‹ค.
  • ๋‹ค์Œ ํ”„๋กœ์ ํŠธ ๊ธฐํšŒ๊ฐ€ ์žˆ๋‹ค๋ฉด
    • TDD ๊ธฐ๋ฐ˜์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ,
    • ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ์— ์ฃผ๊ธฐ์  ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ถ”๊ฐ€
    • ORM ๋„๊ตฌ๋ฅผ ์ด์šฉํ•ด ์ฟผ๋ฆฌ ํ‘œ์ค€ํ™” ๋ฐ ์ƒ์‚ฐ์„ฑ ์ฆ๋Œ€.

๊ทธ์™ธ

๐Ÿ”ง ์œ ์ € ํ”ผ๋“œ๋ฐฑ ๋ฐ ๊ฐœ์„  ์‚ฌํ•ญ (์˜ˆ์‹œ)

ํ”ผ๋“œ๋ฐฑ ์ •๋ฆฌ Notion

  1. ์ž์ฒด ํ”ผ๋“œ๋ฐฑ
  2. 1์ฐจ ์œ ์ € ํ”ผ๋“œ๋ฐฑ (์ง€์ธ) 21/11/15 ~ 21/11/22
  3. 2์ฐจ ์œ ์ € ํ”ผ๋“œ๋ฐฑ (๊ฐ์ข… ์ปค๋ฎค๋‹ˆํ‹ฐ) 21/11/27 ~ 21/11/30

๊ฐœ์„  ์‚ฌํ•ญ

์‹คํ–‰ ๋ฐฉ๋ฒ•

์ž‘์„ฑ๋œ ๋ฌธ์„œ

  • document ํด๋” ์ฐธ๊ณ .

์‚ฌ์šฉํ•œ ํ˜‘์—… ๋„๊ตฌ.

  • notion
    • ํ”„๋กœ์ ํŠธ๋ฅผ ์ „๋ฐ˜์  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ. ํšŒ์˜๋ก ์ž‘์„ฑ.
  • excel
    • API ๋ช…์„ธ์„œ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.
  • postman
    • API ํ…Œ์ŠคํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.
    • Run in Postman

์ฐธ๊ณ ์‚ฌํ•ญ

  • ์œ„ํ‚ค์— ์„ค๊ณ„์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ํŽ˜์ด์ง€๊ฐ€ ์žˆ์Œ.
  • ์ด์Šˆ์˜ ์ฒ˜๋ฆฌ ๊ณผ์ •์€ issue ํƒญ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published