2021-01-28(Thu)
๋ชฉ
๋ด์ฉ
ํ์ต ๋ ์ง
2021-01-28(๋ชฉ)
ํ์ต ์๊ฐ
10:00~24:00
ํ์ต ๋ฒ์ ๋ฐ ์ฃผ์
rspec, DB ๊ฒ์, API router ๊ฒ์
ํ์ต ๋ชฉํ
rspec์ ํ์ตํ์ฌ DB์ API router๋ฅผ ๊ฒ์ํ์ฌ environment ๋ธ๋์น์ ํฉ์น๋ค.
๋๋ฃ ํ์ต ๋ฐฉ๋ฒ
eunhkim๋๊ณผ ํ ์คํธ๋ฅผ ์งํํ๋ฉฐ environment ๋ธ๋์น์ ํฉ์ณค๋ค.
์์ธ ํ์ต ๋ด์ฉ
์ฐ์ ์ํผ๋์ด github๊ณผ ๋์ค์ฝ๋๋ฅผ ์ฐ๋ํด์ฃผ์ จ๋ค. ํ๋์ ๋์ค์ฝ๋๋ฅผ ์ฐฌ์ํ ๋ค, github PR ํ ํ๋ฆฟ์ ์์ฑํด๋ณด์๋ค. ์กฐ๊ธ ๊ท์ฐฎ์์ง๋ง webserv ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ํ์๋ค์ด ์ผ๊ด์ฑ์๊ฒ PR์ ๋ ๋ฆฌ๋ ๊ฒ์ด ์ฝ์ง ์๋ค๋ ๊ฒ์ ๋๊ผ๋ ์ง๋ผ ์๊ฐ์ ์ฐ๋๊ฒ ๊ฐ์น์๋ค๊ณ ํ๋จํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ํผ๋์ด kaminari gem์ผ๋ก ํ์ด์ง๋ค์ด์
์ ํด๊ฒฐํด๋ฒ๋ ธ๋ค. kaminari๋ฅผ ์ค์นํ ๋ค, rails g kaminari:config
ํ์ผ์ ๋ง๋ ๋ค, default_per_page๋ฅผ ์
ํ
. ์ดํ์ ์ ์ญ์ ์ผ๋ก ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ 10๊ฐ์ฉ ๊ฐ์ ธ์ฌ ๊ฒ์ด๋ค.
gemfile์ sidekiq์ ์ฌ๋ ค๋๊ณ bunlde install ํ์ ๋ ์ด์๊ฐ ์๊ฒผ๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก Gemfile.lock์ ์ญ์ ํ ๋ค ๋ค์ installํ๋ ํด๊ฒฐ๋์๋ค. bundle update์ ๋ํด ํ์ตํ ํ์์ฑ์ ๋๋ผ๊ณ ์ด ๋งํฌ๋ฅผ ๋ณด๊ณ ํ์ตํ๋ค.
ํํธ docker-compose up ํ์ ๋ ์๋ ์๋ฌ๊ฐ ๋จ๋ ๊ฒฝ์ฐ๊ฐ ์ฆ์๋๋ฐ, docker ์ด๋ฏธ์ง์ ์ฐ๋๋ DB volume์ด ๊ฐ ๋ก์ปฌ๋ง๋ค ๋ฌ๋ผ์ ์๊ธด ์๋ฌ์๋ค. DB volume์ ์น ๋น์ฐ๊ณ ์ฒ์๋ถํฐ DB๋ฅผ ๋น๋ํ๋ ํด๊ฒฐ๋๊ธด ํ๋ค.
rails-rspec gem์ ์ค์นํ๊ณ ์ด ๋งํฌ ๋ฐ๋ผ์ ์งํํด๋ณด์๋ค. ๋ฌธ์ ๋ DB ๊ด๊ณ์ฑ์ ์ ์ํ๊ธฐ ์ํ shoulda_matchers gem์ด ์ฐ๋ฆฌ๊ฐ ์ด๋ฏธ ๋น๋ํด๋ ๋ค๋ฅธ gem๋ค๊ณผ ๊ณ์ ์ถฉ๋ํ๋ค๋ ๊ฒ์ด๋ค. ํ .. ๊ฑฐ๊ธฐ๋ค๊ฐ rspec์ผ๋ก DB ํ
์คํธ๋ฅผ ํ๋ ๊ฒ์ too low
ํ ํ
์คํธ์ฌ์ ์๋ฏธ์๋ค๋ ์๊ฒฌ์ด ์์๋ค. ํ
์คํธ๋ '์ก์
'์ ๊ธฐ๋ฐ์ ๋์ ๋ ์๋ฏธ์๋ค๋ ๊ด์ ์ ๊ฐ๋ช
๋ฐ์์ ๊ตณ์ด rspec์ผ๋ก ํ
์คํธ๋ฅผ ํ์ง๋ ์๊ณ , ์ง์ ์ฝ์๋ก DB๋ฅผ ํ์ธํ์๋ค. ํ
์คํธ์ผ์ด์ค๊ฐ ๋จ์ง ์๋๊ฒ ์์ฝ์ง๋ง.. ๊ตณ์ด ์ด๋ ๊ฒ lowํ ๋ ๋ฒจ์ ํ
์คํธ์ผ์ด์ค ๋จ๊ฒจ๋ด์ผ ์๋ฏธ๊ฐ ์๋์ถ๋ค.
router๋ postman์ผ๋ก api ๋ฌธ์๋ฅผ ์ฐ๋ํด๋๋๋ ํด๋ฆญ ๋ช ๋ฒ์ ๋ชจ์กฐ๋ฆฌ ํ ์คํธ๋ฅผ ๋๋ผ ์ ์์๋ค. postman ์ฐธ ์ข๋คใ ใ
ํ์ต ๋ด์ฉ์ ๋ํ ๊ฐ์ธ์ ์ธ ์ดํ
ํ ์คํธ์ ๋ํ ์ง์ฐฉ์ ์ด๋๊น์ง ๊ฐ์ ธ๊ฐ์ผํ ๊ฒ์ธ๊ฐ.. ์ ๋ํ ๊ณ ๋ฏผ์ ํ ์ ์๋ ํ๋ฃจ์๋ค.
ํ์
ํ ๋ git์ผ๋ก ์ฌ๋ผ๊ฐ๋ฉด ์๋ ํ์ผ๋ค์ด ์ฌ๋ผ๊ฐ๋ ์ด์๊ฐ ์๋ค. ๊ฐ๋ น ์ํฌ๋ฆฟํค๋ DB volume, node_modules ๋ด๋ถ ํ์ผ๋ค ๋ฑ๋ฑ; ๋ด์ผ์ ์ด๋ฐ ํ์ผ๋ค ๋ชจ์กฐ๋ฆฌ ์กฐ์ฌํด์ .gitignore
ํ์ผ์ ๋ฆฌ์คํธ์
ํด์ผ๊ฒ ๋ค.
๋ค์ ํ์ต ๊ณํ
HTML ํ์ผ ๊ตฌ์กฐ ์ก๊ธฐ + ๋ฐฑ๋ณธ View ๊ตฌ์กฐ ์ค๊ณ
Last updated