Backend

์ด๋ฒˆ์—๋Š” API ํ™•์ธ ๋ฐ DB ํ™•์ธ์„ ํ•ด๋ณด์•˜๋‹ค.Swagger๋ฅผ ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด๋ณด์•˜๋‹ค. "Try it out"์„ ๋ˆŒ๋Ÿฌ์„œ ์ •ํ•ด์ง„ ํŒŒ๋ผ๋ฉ”ํƒ€์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค. ํ…Œ์ŠคํŠธ์šฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ๋ผ๋ฉ”ํƒ€๋ฅผ ํ˜•์‹์— ๋งž๊ฒŒ ์ž˜ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿผ ์‘๋‹ต์ด ์ด๋ ‡๊ฒŒ ์˜ค๋Š” ๊ฒƒ์„ ์ž˜ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 200๋ฒˆ์ด ์ž˜ ์‘๋‹ตํ–ˆ๋‹ค๋Š” ์‹ ํ˜ธ์ด๋‹ค. API๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. sqlite3 /Users/***/IdeaProjects/fitness-tracker/tracker.db ๊ทธ ๋‹ค์Œ ํ„ฐ๋ฏธ๋„์— ๋“ค์–ด๊ฐ€ ๋ณธ์ธ ํ”„๋กœ์ ํŠธ์˜ db๋กœ ์ ‘์†ํ•œ๋‹ค. ์ ‘์† ํ›„, ์…€๋ ‰ํŠธ ๋ฌธ์„ ํ†ตํ•ด ์กฐํšŒ๋ฅผ ํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ DB ์—ฐ๋™์ด ์ž˜ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
์•ˆ๋…•ํ•˜์„ธ์š”.์˜ค๋Š˜์€ ์ œ๊ฐ€ ์„œ๋ฒ„ ๋ฐ DB ๊ณต๋ถ€๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋Š” ๋‚ด์šฉ์„ ๊ธฐ๋กํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.์ฃผ์ œ๊ฐ€ "์šด๋™ ๊ธฐ๋ก ๋ฐ ์‹๋‹จ ๊ธฐ๋ก ์•ฑ"์ž…๋‹ˆ๋‹ค.์™œ๋ƒํ•˜๋ฉด ์ œ๊ฐ€ ํ‰์†Œ์— ์šด๋™์„ ์ข‹์•„ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . ๊ฐœ๋ฐœ IDE๋Š” ์ธํ…”๋ฆฌ์ œ์ด๋ฅผ ์ผ์–ด์š”.์ฃผ์š” ํŒŒ์ผ์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. 1. main.py -> API ํ†ต์‹ ์˜ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•˜๋Š” ํŒŒ์ผ. (app ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ API ๋ผ์šฐํ„ฐ ๋“ฑ๋ก, DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ)2. models.py -> ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ์ •์˜. ์ด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” sqlalchemy๋ฅผ ์‚ฌ์šฉํ•ด ์‹ค์ œ DB์™€ ์ƒํ˜ธ์ž‘์šฉ3. database.py -> ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์„ค์ • ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ4. routes/meal.py -> api ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ •์˜ (ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ์‹์‚ฌ ๊ด€๋ จ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ) ์„œ๋ฒ„..
ํšŒ์›๊ฐ€์ž…๊ณผ ๊ทธ์— ๊ด€๋ จํ•œ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด๋ณด๋Š” ํ”„๋กœ์ ํŠธ์ด๋‹ค. MVC1 ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ„์— ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์กด์žฌํ•˜๊ฒŒ ์„ค๊ณ„ํ•  ๊ฒƒ์ด๋‹ค.  page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>request.setCharacterEncoding("utf-8"); %>response.setContentType("text/html;charset=UTF-8"); %>DOCTYPE html>html>head>meta charset="UTF-8">script type= "text/javascript" src = "js/cookiefunc.js">script>title>Insert title heretitle>l..
JDBC๋Š” ์ž๋ฐ”์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๋™์‹œ์ผœ์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ •๋ณด๋ฅผ ๋“ฑ๋กํ•˜๊ฑฐ๋‚˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ณผ์ •์„ ๋งํ•œ๋‹ค. ์ด ๊ณผ์ •์„ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ์ด๋Ÿฌํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๊น”์•„์„œ ํ”„๋กœ์ ํŠธ์˜ lib ํด๋”์— ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. JDBC๋Š” ์œ„์™€ ๊ฐ™์ด 6๋‹จ๊ณ„์˜ ๊ณผ์ •์œผ๋กœ ์ง„ํ–‰์„ ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.  public UserDao() { // TODO Auto-generated constructor stub //๊ฐ•์ œ ๊ฐ์ฒด ์ƒ์„ฑ --> org.mariadb.jdbc.driver ์–˜์˜ ๊ฐ์ฒด๋ฅผ ๊ฐ•์ œ๋กœ ์ƒ์„ฑํ•˜๊ฒ ๋‹ค (๊ฐ•์ œ ๊ฐ์ฒด ์ƒ์„ฑ์€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ๋ฌด์กฐ๊ฑด ํ•ด์ฃผ์–ด์•ผ ํ•จ) try { Class.forName("org.mariadb.jdbc.Driver"); System.out.println("1๋‹จ๊ณ„ : ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋”ฉ ์„ฑ๊ณต"); } catch (ClassNotFoun..
hyunjun's developing ๐Ÿฃ
'Backend' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก