Search
๐Ÿ“š

Restful, Framework - Theory (1)

ํƒœ๊ทธ
backend study
โ€ข
PHP
โ€ข
Node.js
โ€ข
Spring Boot
1.
Route: restfull ํ•˜๊ฒŒ ์„ค๊ณ„๋ฅผ ํ•ด์•ผํ•จ (http ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ), Cotroller์˜ ์ •๋ณด๋ฅผ ํ†ตํ•ด ์š”์ฒญ์— ๋งž๋Š” Controller์—๊ฒŒ ์š”์ฒญ ์ „๋‹ฌ
2.
Controller: Route์— ์žˆ๋Š” Path-Variable์ด๋‚˜ Query-String, Body์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ๋ฐ›์•„์คŒ, service/priver์—๊ฒŒ ์ด ๊ฐ’๋“ค์„ ์ „๋‹ฌ, service/provider์—๊ฒŒ return ๋ฐ›์€ ๊ฐ’๋“ค์„ ํ†ตํ•ด jsonํ˜•ํƒœ๋กœ response(result, isSuccess, code, message) ํ•จ
3.
Service/Provider: DB ์ปค๋„ฅ์…˜์ด ๋ฐœ์ƒ, ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ, Provider๋Š” select ์—ญํ• ์„ ํ•  ๋•Œ, Service๋Š” ๊ทธ ์™ธ์˜ ํ–‰์œ„๋ฅผ ํ•  ๋•Œ ์ด์šฉ.
4.
Dao: ์‹ค์งˆ์ ์ธ query ์ž‘์„ฑ, ์‹คํ–‰
โ€ข
ํ˜•์‹์  Validation(ํƒ€์ž…, ๋นˆ๊ฐ’, ๊ธธ์ด, ์ •๊ทœํ‘œํ˜„์‹ ๋“ฑ) โ†’ Controller
โ€ข
์˜๋ฏธ์  Validation(DB๋‹จ์—์„œ ๊ฑฐ์ณ์•ผํ•˜๋Š” ๊ฒƒ๋“ค) โ†’ Service or Provider
โ†’ ๋งŒ์•ฝ insert or update or deleteํ•  ๋•Œ Validation ๊ฑฐ์น˜๋А๋ผ select ํ•˜๋Š” ๊ฒฝ์šฐ์—
service์—์„œ ๋ฐ”๋กœ DAO๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  Provider๋ฅผ ๊ฑฐ์ณ์„œ ์กฐํšŒ๊ณผ์ •์„ ๊ฑฐ์นจ.
ํ•˜์ง€๋งŒ ์–ธ์–ด๋ณ„๋กœ ์กฐ๊ธˆ์”ฉ ์ฐจ์ด๊ฐ€ ์žˆ์Œ
1.
PHP : Route๊ฐ€ ์—†๊ณ  index.php ํŒŒ์ผ์— ์ง์ ‘ ์ง€์ •ํ•ด์ฃผ์–ด์•ผํ•˜๋Š” ํ˜•์‹
2.
Node.js: ๋‹ค ์กด์žฌ
3.
Spring Boot: Route๊ฐ€ ์—†๊ณ  Controller์•ˆ์— Route๊นŒ์ง€ ์ง์ ‘ ์ง€์ •ํ•ด์ฃผ๋Š” ํ˜•์‹
โ€ข
๊ฐ ํŒŒ์ผ์„ ๋„๋ฉ”์ธ ๋ณ„๋กœ ํŒจํ‚ค์ง€ ์ƒ์„ฑํ•ด์„œ ๊ด€๋ฆฌ

Spring Boot Template

1.
SpringBoot java (ํŒจํ‚ค์ง€๋งค๋‹ˆ์ง€ = Maven(=Spring ์„ ํ˜ธ), Gradle(StringBoot ์„ ํ˜ธ))
2.
Validation: ์„œ๋ฒ„ API ๊ตฌ์„ฑ์˜ ๊ธฐ๋ณธ์€ Validation์„ ์ž˜ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ.
์™ธ๋ถ€์—์„œ ์–ด๋–ค ๊ฐ’์„ ๋‚ ๋ฆฌ๋“  Validation์„ ์ž˜ ์ฒ˜๋ฆฌํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ํ„ฐ์ง€๋Š” ์ผ์ด ์—†๋„๋ก ์œ ์˜ํ•ด์•ผ ํ•จ
๊ฐ’, ํ˜•์‹, ๊ธธ์ด ๋“ฑ์˜ ํ˜•์‹์  Validation์€ Controller์—์„œ, DB์—์„œ ๊ฒ€์ฆํ•ด์•ผ ํ•˜๋Š” Validation์€ Provider ํ˜น์€ Service์—์„œ ์ฒ˜๋ฆฌ
3.
nohup: ๋ฌด์ค‘๋‹จ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด nohup์„ ์‚ฌ์šฉํ•จ.
โ€ข
์„œ๋ฒ„๊ฐ€ ๋Š๊ธฐ๋ฉด ์‚ฌ์šฉ์ž ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณค๋ž€ํ•ด์ง
โ€ข
์ค‘๋‹จ๋˜์ง€ ์•Š๋Š” ์„œ๋น„์Šค ์ œ๊ณตํ•ด์•ผ ํ•จ
โ€ข
๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋Œ์•„๊ฐ€๋„๋ก ๋งŒ๋“ค์–ด์ฃผ์–ด์•ผ ํ•จ
์‹คํ–‰ ์‹œํ‚ฌ ๋•Œ nohup๋งŒ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋จ nohup java -jar /build/libs/xxx-SNAPSHOT.jar & &: ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋Œ์•„๊ฐ€๊ฒŒ ํ•œ๋‹ค๋Š” ์˜๋ฏธ
JavaScript
๋ณต์‚ฌ