2020-12-22(Tue)

  1. ํ•™์Šต ๋‚ ์งœ // 2020-12-22(ํ™”)

  2. ํ•™์Šต์‹œ๊ฐ„ // 9:00~22:00

  3. ํ•™์Šต ๋ฒ”์œ„ ๋ฐ ์ฃผ์ œ // ํ•œ ๋ˆˆ์— ์ฝ๋Š” ๋ฃจ๋น„ ์˜จ ๋ ˆ์ผ์ฆˆ

  4. ๋™๋ฃŒ ํ•™์Šต ๋ฐฉ๋ฒ• // -

  5. ํ•™์Šต ๋ชฉํ‘œ // ํ•œ ๋ˆˆ์— ์ฝ๋Š” ๋ฃจ๋น„ ์˜จ ๋ ˆ์ผ์ฆˆ๋ฅผ ํ›‘๋Š”๋‹ค.

  6. ์ƒ์„ธ ํ•™์Šต ๋‚ด์šฉ

๊ตฌ๋ฆ„ IDE์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•œ ๋ˆˆ์— ์ฝ๋Š” ๋ฃจ๋น„ ์˜จ ๋ ˆ์ผ์ฆˆ ํŠœํ† ๋ฆฌ์–ผ์„ ํ•™์Šตํ•˜์˜€๋‹ค.

ํ•œ๋ˆˆ์— ์ฝ๋Š” ๋ฃจ๋น„ ์˜จ ๋ ˆ์ผ์ฆˆ

01. ์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ

MVC ํŒจํ„ด์— ๋Œ€ํ•œ ์„ค๋ช…์ด ์žˆ์—ˆ๋Š”๋ฐ ํ˜ผ๋ž€์ด ์ƒ๊ฒผ๋‹ค. MVC ํŒจํ„ด์— ๋Œ€ํ•ด ์„ค๋ช…์ด ์žˆ์œผ๋ฉด ๋ชจ๋ธ๊ณผ ๋ทฐ์˜ ์˜์กด์„ฑ์ด ์•„์˜ˆ ์—†๋‹ค๋Š” ์‹์œผ๋กœ ๊ธฐ์ˆ ๋˜์–ด์žˆ๋Š”๋ฐ ๊ถ๊ธˆํ•ด์„œ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋‹ˆ ๊ผญ ๊ทธ๋ ‡์ง€๋„ ์•Š๋‹ค๋Š” ๋ธ”๋กœ๊ทธ ๊ธ€๋„ ์žˆ์—ˆ๋‹ค. ํ .. ์ถ”ํ›„ ์ž์„ธํžˆ ํŒŒ๋ด์•ผ๊ฒ ๋‹ค.

02. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ • & Rails ๊ธฐ์ดˆ

  • *.erb ํŒŒ์ผ์€ ์ผ๋ฐ˜ html์— ruby ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฃจ๋น„๋ฅผ ์ž„๋ฒ ๋“œํ•œ๋‹ค.

  • def ์™€ end ์‚ฌ์ด์— ์žˆ๋Š” ๋‚ด์šฉ์„ action์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ์ด๋ฆ„์ด ๋™์ผํ•œ view์™€ ์ž๋™ ๋งค์นญํ•œ๋‹ค. Rails์—์„œ action์€ ์„œ๋น„์Šค์—์„œ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์œผ๋กœ, ํ–‰๋™์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€ ๋˜๋Š” ๋™์ž‘ํ•˜๋Š” ํ•˜๋‚˜์˜ ๋กœ์ง์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

03. CRUD ๊ธฐ๋Šฅ ๊ตฌํ˜„

rails g model Post

์œ„ ๋ช…๋ น์–ด๋กœ Model class๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ด ๋•Œ ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์—ญํ• ์„ ๊ฐ€์ง„๋‹ค.

  1. db/migrate/xxxx_create_posts.rb: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ” ํ•„๋“œ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์ •์˜ํ•˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ

  2. app/model/post.rb: 1๋ฒˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ posts ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉ

์ด ๋•Œ ํŒŒ์ผ๋ช…์€ ๋ ˆ์ผ์ฆˆ์˜ 'CoC(Convention over Configuration)' ์ฒ ํ•™์— ์˜ํ•ด ๋ ˆ์ผ์ฆˆ์—์„œ ์„ค์ •ํ•ด๋‘” ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค.

  1. ๋ชจ๋ธ ํด๋ž˜์Šค์˜ ๊ทœ์น™: ๋‹จ์ˆ˜ํ˜•์˜ ์นด๋ฉœ ์ผ€์ด์Šค

    ex) Post, PostComment

  2. ๋ชจ๋ธ ํด๋ž˜์Šค์˜ ํŒŒ์ผ ์ด๋ฆ„: ๋‹จ์ˆ˜ํ˜•์˜ ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค

    ex) post.rb, post_comment.rb

  3. ํ…Œ์ด๋ธ”: ๋ณต์ˆ˜ํ˜•์˜ ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค

    ex) posts, post_comments

    04. scaffold ์‚ฌ์šฉํ•˜๊ธฐ

    ๋ ˆ์ผ์Šค์—์„œ๋Š” CRUD๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ MVC๋ฅผ ๋ช…๋ น์–ด๋กœ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ด ์žˆ๋‹ค. ์ด ๋ฐฉ์‹์ด Scaffolding(์Šค์บํด๋”ฉ)์ด๋‹ค.

    ์Šค์บํด๋”ฉ์€ ๋ผˆ๋Œ€, ๊ธฐ๋ฐ˜์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๋ ˆ์ผ์Šค์—์„œ๋„ ์ด ๋œป๊ณผ ๊ฑธ๋งž๊ฒŒ CRUD์™€ ๋”๋ถˆ์–ด CRUD์™€ ์—ฐ๊ด€๋œ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋“ค์„ ๊ฐ–์ถ˜ ํ”„๋กœ์ ํŠธ์˜ ๋ผˆ๋Œ€๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

    routes.rb์— ์“ฐ์ธ resources ๋ฉ”์„œ๋“œ๋Š” RESTful ํ•œ ๋ผ์šฐํŠธ(์ฃผ์†Œ์™€ ์ปจํŠธ๋กค๋Ÿฌ ์—ฐ๊ฒฐ)๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

    ๋ฆฌ์†Œ์Šค

    ๋ฆฌ์†Œ์Šค(์ฃผ์†Œ)๋ฅผ ํ‘œํ˜„ํ•  ๋• ๋ช‡ ๊ฐ€์ง€ ์ œ์•ฝ ์กฐ๊ฑด์ด ์กด์žฌํ•œ๋‹ค.

    1. ๋ฆฌ์†Œ์Šค๋Š” ๋™์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ช…์‚ฌ๋กœ ์ž‘์„ฑํ•œ๋‹ค. ๋ฆฌ์†Œ์Šค๋Š” ํ–‰์œ„๋ฅผ ํ‘œํ˜„ํ•˜์ง€ ์•Š๊ณ  ํ–‰์œ„์˜ ์ฃผ์ฒด, ์ฆ‰ ์ž์›๋งŒ ํ‘œํ˜„ํ•œ๋‹ค. ๋•Œ๋ฌธ์— ํ–‰์œ„(๋™์‚ฌ) ๋ถ€๋ถ„์€ HTTP ๋ฉ”์„œ๋“œ๋กœ ๋Œ€์‹ ํ•œ๋‹ค.

    2. ๋ฆฌ์†Œ์Šค๋Š” ์ฝœ๋ ‰์…˜๊ณผ ๋„ํ๋จผํŠธ(๋ฉค๋ฒ„)๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ๋„ํ๋จผํŠธ๋Š” ๋ฌธ์„œ ๋˜๋Š” ํ•œ ๊ฐ์ฒด๋กœ, ์ฝœ๋ ‰์…˜์€ ๋„ํ๋จผํŠธ์˜ ์ง‘ํ•ฉ ๋˜๋Š” ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ๋•Œ๋ฌธ์— ์ฝœ๋ ‰์…˜์„ ํ‘œํ˜„ํ•  ๋• ๋ณต์ˆ˜ํ˜•์œผ๋กœ, ๋„ํ๋จผํŠธ๋ฅผ ํ‘œํ˜„ํ•  ๋• ๋‹จ์ˆ˜ํ˜• ๋˜๋Š” ์ฝœ๋ ‰์…˜ ๋’ค์— id ๊ฐ’์„ ์ž…๋ ฅํ•˜์—ฌ ํ‘œํ˜„ํ•œ๋‹ค.

    ๋ ˆ์ผ์Šค๋Š” ์›์น™์ ์œผ๋กœ RESTfulํ•œ ๋ผ์šฐํŠธ๋ฅผ ์ „์ œ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค.

    1. ํ•™์Šต ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ์ดํ‰

    ๊ตฌ๋ฆ„ IDE์— ์žˆ๋Š” Ruby ๊ธฐ์ดˆ ๊ฐ•์˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๋ณ„๋กœ ๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ์•Š์•˜๋Š”๋ฐ Rails ๊ฐ•์˜๋Š” ์ƒ๋‹นํžˆ ๋งŒ์กฑ์Šค๋Ÿฌ์› ์Šต๋‹ˆ๋‹ค. ์–ด์„œ ํ•™์Šต์„ ์ด์–ด๋‚˜๊ฐ€์„œ ๋‹ค๋ฅธ ๋™๋ฃŒ๋“ค์˜ ํ•™์Šต๋Ÿ‰์„ ๋”ฐ๋ผ๊ฐ€์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๋‹ค์Œ ํ•™์Šต ๊ณ„ํš

    • ๋ฃจ๋น„์˜จ๋ ˆ์ผ์ฆˆ ํ•™์Šต

Last updated