2021-02-10(Wed)
ํญ๋ชฉ
๋ด์ฉ
ํ์ต ๋ ์ง
2021-02-10(์)
ํ์ต ์๊ฐ
11:00~24:00
ํ์ต ๋ฒ์ ๋ฐ ์ฃผ์
Active Admin gem, BCrypt gem, Rails Active Record, Backbone
ํ์ต ๋ชฉํ
Signup ๋ชจ๋์ ๊ตฌํ์๋ฃํ๋ค.
๋๋ฃ ํ์ต ๋ฐฉ๋ฒ
eunhkim, sanam, jujeong๋๊ณผ ํ์ดํ๋ก๊ทธ๋๋ฐ
์์ธ ํ์ต ๋ด์ฉ
Active admin์ผ๋ก ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ์ฌ ํ ์คํธ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ํ์ตํ๋ค.
rails generate active_admin:resource ChatBan
์ ๋ช ๋ น์ด๋ก active_admin์ ํ์ฉํ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ Password๋ฅผ ์ํธํํด์ DB์ ์ ์ฅํ๊ธฐ ์ํด BCrypt๋ฅผ ํ์ฉํ๋ค. ์๋๋ ๋ด๊ฐ ์ ๋ฆฌํ BCrypt ํ์ฉ ํ๋ก์ฐ.
BCrypt๋ ๋จ๋ฐฉํฅ์ผ๋ก ๋ณตํธํ๊ฐ ๋ถ๊ฐ๋ฅํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ฐ๋ผ์ ํด์ฑ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฒ ๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ณด๋๋ผ๋ ์๋ณธ ๊ฐ์ ์ ์ ์์ต๋๋ค. ๋๋ถ์ ๊ฐ๋ฐ์๊ฐ ๋์ ๋ง์์ ๋จน๊ณ ํน์ ์ ์ ์ Password ๋ ์ฝ๋๋ฅผ ๋ฏ์ด๋ณธ๋ค๊ณ ํด๋ ๋ณตํธํ๋ ์๋ณธ Password๋ฅผ ์ ์ ์๊ฒ ๋๋ ๊ฒ์ด์ฃ .
โ
๊ทธ๋ผ ์ ์ ๊ฐ Password๋ฅผ ์
๋ ฅํ์ ๊ฒฝ์ฐ ๋ง๋ Password์ธ์ง ์ฌ๋ถ๋ ์ด๋ป๊ฒ ํ์ธํ๋๋!
DB์ ์ ์ฅํด๋๋ '๋์งํธ ํ๊ฑฐํ๋ฆฐํธ'๋ก BCrypt::Password Object๋ฅผ ์์ฑํ ํ == ์ฐ์ฐ์๋ก ๋น๊ตํ๋ฉด BCrypt::Password Object์ ๋ด๋ถ ํด์ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ํด๋น password๊ฐ ๋ง๋์ง ๊ฒ์ฆํฉ๋๋ค.
โ
๊ฒฐ๊ณผ์ ์ผ๋ก ํ์๊ฐ์
/๋ก๊ทธ์ธ ์ํธ ์ฒ๋ฆฌ๋ ์๋ ๊ณผ์ ์ผ๋ก ์ด๋ค์ง๋๋ค.
โ
1. ํ์๊ฐ์
์ ์
๋ ฅํ password๋ BCrypt::Password.create ๋ฉ์๋์ ์ธ์๋ก ๋๊ฒจ์ง๊ณ , BCrypt::Password Object๊ฐ ๋ง๋ค์ด์ง๋ค.
2. ์ด BCrypt::Password Object์ 'Digital fingerprint'๋ฅผ String์ผ๋ก DB์ ์ ์ฅํ๋ค.
3. ์ดํ ๋ก๊ทธ์ธ์ ์ ์ ๊ฐ Password๋ฅผ ์
๋ ฅํ๋ฉด, ํด๋น ์ ์ ์ DB Password ํ๋์ ์ ์ฅํด๋๋ 'Digital fingerprint'๋ฅผ ๋ถ๋ฌ์จ๋ค. ์ด๋ฅผ BCrypt::Password.new ๋ฉ์๋์ ์ธ์๋ก ๋๊ฒจ BCrypt::Password Object๋ฅผ ์์ฑํ๋ฉฐ, ์ด Object์ ์ ์ ๊ฐ ์
๋ ฅํ Password๋ฅผ ์ ๋ฌํ์ฌ ํด์๊ฒ์ฆํ๋๋ก ํ๋ค.
๋ฌธ์ )
๋ฒํผ์ ์ฌ๋ฌ๋ฒ ๋๋ฅด๋ฉด ์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ๋ฒ ํธ๋ฆฌ๊ฑฐ ๋์ด๋ฒ๋ฆฌ๋ฉฐ Appearance View์ ๋ก๊ทธ์ธํ ์ ์ ๊ฐ ์ฌ๋ฌ๋ช ์๊ฒจ๋ฒ๋ฆฐ๋ค. ์ด๊ฑธ ์ด๋ป๊ฒ ํด๊ฒฐํ ๊ฒ์ธ๊ฐ?
ํด๊ฒฐ)
๋ฐฉ๋ฒ์ ํ์ธํด๋ณด๋ ์ผ์ข ์ flag๋ฅผ ๋ง๋ค์ด์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๊ตฌํ๋ ์ฉ์ดํ๊ณ ์ผ๋ฐ์ ์ธ ๊ฒ์ด๋ผ ํ๋จํ๋ค.
button์ ๊ฐ์ง๊ณ ์๋ view ๊ฐ์ฒด์ status
์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ๋ง๋ค์๋ค. ์ดํ ๋ฒํผ ํด๋ฆญ ์์ ์ status
์ดํธ๋ฆฌ๋ทฐํธ ๊ฐ์ ์กฐ์ฌํด์ ๋์ํ ์ก์
์ ๊ฒฐ์ ํ๊ณ , ๊ณง๋ฐ๋ก status
๊ฐ์ ์์ ํด์ฃผ๋ ์์ผ๋ก ํด๊ฒฐํ๋ค.
Rails ํ
ํฌ๋ ํ ํ ๋ง
์ฐ๊ด ํ
์ด๋ธ ๊ฒ์์ ์๊ธฐ ์์ ์ ์ฐธ์กฐํ๊ณ ์ถ๋ค๋ฉด?
ํน์ ์ ์ ์ ๊ทธ ์ ์ ์ ์น๊ตฌ๋ค์ ๋ํ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์์ผํ๋ค. ์๋์ฒ๋ผ ๋ช ์ํด์ฃผ๋ฉด ๋๋ค.
class Friendship < ApplicationRecord
belongs_to :user
belongs_to :friend, class_name: "User", foreign_key: "friend_id"
end
class User < ApplicationRecord
has_many :friendships
has_many :friends, through: :friendships, source: :friend
...
end
ํ์ต ๋ด์ฉ์ ๋ํ ๊ฐ์ธ์ ์ธ ์ดํ
ํ์ดํ๋ก๊ทธ๋๋ฐ์ ์ ๊ทน ํ์ฉํ๊ณ ์๋๋งํผ ์ปค๋ฐ ๋ก๊ทธ์ ๋ด ์ด๋ฆ์ ๋จ๊ธฐ๊ธฐ๋ ์ฝ์ง ์์ผ๋, ๋๋ฃ๋ก๋ถํฐ ๋ฐฐ์ฐ๋ ์ ์ด ๋ง์์ ์ข๋ค. ๊ณง ์ค์ฐํด๋ค. ํ๋ก์ ํธ ๋ชจ๋ ์ฐธ์ฌ๊ฐ ์ด๋ ค์์ง๋๋ผ๋ ํ๋ก์ ํธ ์งํ์ ํ์ํ ์ฑ ์ ์ฝ๋ ์์ผ๋ก ์ด๋ป๊ฒ๋ ํ์ต์ ๋ฉ์ถ์ง ๋ง์.
๋ค์ ํ์ต ๊ณํ
๋ฃจ๋น๋ก ๋ฐฐ์ฐ๋ ๊ฐ์ฒด์งํฅ ๋์์ธ ์ฑํฐ 3 ์ฝ๊ธฐ
ํ๋ก์ ํธ ๋ชจ๋ ์ฐธ์ฌ๋ ๋ฏธ์
Last updated
Was this helpful?