๋ฐฐ๋ฌ์ ๋ฏผ์กฑ ํ์๊ฐ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฏธ์ ์ ์ํํ์ต๋๋ค. ExpressJS ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํด ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ณ ํ ํ๋ฆฟ์ ์ด์ฉํด ๋ทฐ๋ฅผ ๊ตฌํํฉ๋๋ค. ์์ ๋ฌผ์ ์ต์ข ์ ์ผ๋ก Heroku๋ฅผ ์ด์ฉํด ๋ฐฐํฌํ๋ ๊ณผ์ ์ผ๋ก ๋ง๋ฌด๋ฆฌํฉ๋๋ค.
์ฃผ์์ฌํญ์ผ๋ก๋ ๋น์ฆ๋์ค ๋ก์ง์ ์์ ํจ์๋ค๋ก ๋ถ๋ฆฌํ๋ ๊ฒ๊ณผ, ๊ณตํต๋ ์คํ์ผ ์ ๋ฆฌ, ์ฌ๋ฐ๋ฅธ ์๋งจํฑ ํ๊ทธ์ ์ ์ฉ์ด ์์ต๋๋ค.
์์ฝ์ง๋ง ๊ฒฐ๊ณผ์ ์ผ๋ก, ์ฃผ์ด์ง ์๊ตฌ์ฌํญ ์ค ํ์๊ฐ์ ๊ธฐ๋ฅ์ ์๊ฐ์ ์ซ๊ฒจ ๊ตฌํํ์ง ๋ชปํ์ต๋๋ค. ๐ข
## ๋ฉ์ธ ํ์ด์ง
๋ก๊ทธ์ธ ๋ฒํผ
- ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ด๋ํ๋ค.
## ๋ก๊ทธ์ธ ํ์ด์ง
๋ก๊ทธ์ธ ์์ด๋ ์ธํ
- ์ ํจ์ฑ ๊ฒ์ฆ(์ด๋ฉ์ผ ํ์ ๋๋ ์์ด๋ ํ์), ๊ฐ ์
๋ ฅ์ด ์๋ฃ๋์ง ์์ ์ ๊ฒฝ๊ณ ๋ฉ์์ง
ํ์๊ฐ์
๋ฒํผ
- ํ์๊ฐ์
ํ์ด์ง๋ก ์ด๋ํ๋ค.
## ๊ฐ์
์ฝ๊ด ๋์
์ฝ๊ด๋์ ์ฒดํฌ๋ฐ์ค
- ์ฝ๊ด ํญ๋ชฉ์ด ๋ชจ๋ ์ ํ๋ ์ ์ ์ฒด๋์ ์ฒดํฌ๋จ
- ์ฝ๊ด ํญ๋ชฉ์ด ํ๋๋ผ๋ ๋น ์ ธ์์ผ๋ฉด ์ ์ฒด๋์ ์ฒดํฌ ํด์
- ์ ์ฒด๋์ ์ฒดํฌ ์ ๋ชจ๋ ํญ๋ชฉ์ด ์ฒดํฌ๋จ
๋์ด ์ ํ ๋ฒํผ
- ๋ ์ค ํ๋๋ง ์ ํ ๊ฐ๋ฅ(14์ธ ์ด์ ๋๋...
.
.
.
.
ํ๋ก ํธ์๋๋ ๋ค์๊ณผ ๊ฐ์ด ํ์ด์ง ๋ณ๋ก ๊ธฐ๋ฅ์ ๋๋ด์ต๋๋ค. ์ ํจ์ฑ ๊ฒ์ฆ ์ฌ๋ถ, ๋ฐ์ํ๋ ์ด๋ฒคํธ ๋ฑ์ ์ค์ ์ผ๋ก ๋ถ์ํ๊ณ ์ด์๋ฅผ ๋ฐ๊ธํฉ๋๋ค.
๋ฐฑ์๋๋ ์์ง ์ญ๋์ด ๋ถ์กฑํด ๋ฐ๋ก ์ค๊ณ๋ฅผ ์งํํ์ง ์๊ณ , Express์ ์์ API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ผ์ฐํ ์ค์ , request body ์ค์ ๋ฑ์ ์งํํ์ต๋๋ค.
HTML์ด ์๋ pug ํ ํ๋ฆฟ์ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ ์ง์ ์ฅ๋ฒฝ์ด ์์์ง๋ง ์ด๋์ ๋ ์ฐ์ต์ ๊ฑฐ์น๋ ๋งํฌ์ ๊ณผ ์คํ์ผ๋ง์ ์์ํ๊ฒ ํ ์ ์์์ต๋๋ค.
:root {
--baemin-mint: #2ac1bc;
--baemin-gray: #d7d7d7;
--baemin-light-gray: #f6f6f6;
--baemin-font-gray: rgb(147, 146, 146);
--baemin-red: #da0d0d;
--large-img-size: 3rem;
--middle-img-size: 2rem;
--small-img-size: 1rem;
--large-font-size: 1.2rem;
--middle-font-size: 1rem;
--small-font-size: 0.8rem;
}
.baemin-btn--primary {
color: white;
background-color: var(--baemin-mint);
padding: 0.75rem;
border: none;
font-size: var(--middle-font-size);
font-weight: bold;
border-radius: 0.5rem;
cursor: pointer;
}
์คํ์ผ์ํธ ํ์ผ์์๋ ๊ณตํต๋ ๋ถ๋ถ์ ์ถ๋ ค ๋ฐ๋ณต์ ์ค์ผ ์ ์์ต๋๋ค. ์์ ๊ฐ์ด ์ฌ์ฉ์ ์ง์ ๋ณ์๋ฅผ ํ์ฉํด ๊ณตํต๋ ์์ฑ์ ํ ๊ณณ์์ ๊ด๋ฆฌํ ์ ์๊ณ , ๋ฒํผ์ ์คํ์ผ ๋ฑ ์์ฃผ ์ฌ์ฉ๋๋ ์์์ ๊ณตํต ์ ์ฉ ์คํ์ผ์ํธ์ ๋ฃ์ด ๋ชจ๋ ๊ณณ์์ ์ ๊ทผํ๊ฒ ๋ง๋ค ์๋ ์์ต๋๋ค.
๋ฐฑ์๋๋ ๊ฒฝํ์ด ๋ง์ง ์์ ๋ค์ํ ์ ๋ก์ฌํญ์ ๊ฒช์์ต๋๋ค. Express ํ๋ ์์ํฌ ์์ฒด๊ฐ ์ฒ์์ด๊ธฐ๋ ํ๊ณ , pug๋ผ๋ ํ ํ๋ฆฟ ์์ง๊น์ง ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ ์ตํ๋๋ฐ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ ธ์ต๋๋ค.
extends layout
mixin checkInput(id, className, text)
if className.includes('agree--all')
div(class=`checkbox__container ${className}`)
input(type="checkbox" id=id)
label(for=id)=text
else
div(class=`checkbox__container ${className}`)
input(type="checkbox" id=id)
label(for=id)= text
img.arrow(src="/images/terms_and_conditions/right-arrow.svg", alt="right-arrow")
block stylesheet
link(rel="stylesheet", href="/stylesheets/agree_terms.css")
block scripts
script(src="/javascripts/agree_terms.js" defer)
block content
body
header.header
a.header__right-link(href="/")
h2.header__title ํ์๊ฐ์
p.guide-ment ์ด์์ค์ธ์
p.guide-ment ์ฝ๊ด ๋์๊ฐ ํ์ํด์.
form.agree-terms__form
+checkInput("agreeAll", "agree--all", "์ ์ฒด๋์")
+checkInput("baemin", "agree essential", "๋ฐฐ๋ฌ์ ๋ฏผ์กฑ ์ด์ฉ์ฝ๊ด ๋์")
+checkInput("fintech", "agree essential", "์ ์๊ธ์ต๊ฑฐ๋ ์ด์ฉ์ฝ๊ด ๋์")
+checkInput("personalInfo", "agree essential", "๊ฐ์ธ์ ๋ณด ์์ง์ด์ฉ ๋์")
+checkInput("personalInfoToThirdParty", "agree option", "๊ฐ์ธ์ ๋ณด ์ 3์ ์ ๊ณต ๋์(์ ํ)")
+checkInput("marketing", "agree option agree--last", "๋ง์ผํ
์ ๋ณด ๋ฉ์ผ, SMS ์์ ๋์(์ ํ)")
label.age-select__container
input(type="radio" name="age" id="age" checked=true)
p ๋ง 14์ธ ์ด์์
๋๋ค.
img.age-select__avatar(src="/images/terms_and_conditions/over.png", alt="over_person")
label.age-select__container
input(type="radio" name="age" id="age")
p ๋ง 14์ธ ๋ฏธ๋ง์
๋๋ค.
img.age-select__avatar(src="/images/terms_and_conditions/under.png", alt="under_person")
button.baemin-btn--primary.next-btn(type="submit" disabled) ๋ค์์ผ๋ก
๋ค์๊ณผ ๊ฐ์ ํํ๋ก ์ด๋ฃจ์ด์ง ํ ํ๋ฆฟ์ ๋๋ค. ๋งํฌ์ ์ ์คํฌ๋ฆฝํธ ํ์ผ์ฒ๋ผ ์ฌ์ฌ์ฉ, ๋ถ๊ธฐ ์ฒ๋ฆฌ, ๋ชจ๋ํ๋ฅผ ํ ์ ์๋ค๋ ์ฅ์ ๋๋ฌธ์ ์ ์ฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฌผ๋ก ๋ค์ ์ฌ์ฉํ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๐ฅต
๊ฐ์ ์บ ํผ๋ถ๋ค๋ ๋๋ถ๋ถ ์ฒ์ ์ฌ์ฉํ์๋ ๋ถ๋ค์ด์์ ํ ๋ฐ ์ ์ฒ๋ผ ๋ง๊ตฌ์ก์ด๋ก ์ฌ์ฉํ๋ ๊ฒ ์๋๋ผ ๋๊ตฌ์ ์ฅ๋จ์ ์ ๋จผ์ ํ์ ํ๊ณ ํน์ฑ์ ๋ง๊ฒ ์ฌ์ฉํ๋ ๋ถ๋ค๋ ๊ณ์ จ์ต๋๋ค.
๊ทธ๋ฐ ๋ถ๋ค์ ๋ณด๋ฉด์ ๋๊ตฌ ์ฌ์ฉ์ ์์ด ์ฌ๋ฐ๋ฅธ ์ ๊ทผ๋ฒ์ด ๋ฌด์์ธ์ง ๊ณ ๋ฏผํด๋ดค์ต๋๋ค.
๋ฏธ๋ค์จ์ด
Express ํ๋ ์์ํฌ์ ํต์ฌ ๊ธฐ๋ฅ ์ค ํ๋๋ ๋ฏธ๋ค์จ์ด์
๋๋ค. ๋ฏธ๋ค์จ์ด๋ฅผ ํตํด ์์ฒญ์ ์์ ์ฟ ํค๋ฅผ ์กฐํํ๋ฉฐ ๋ค์ํ ๊ธฐ๋ฅ์ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค์ด ๋ผ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค๋ฉด ์ ์ ์ ๋ก๊ทธ์ธ ์ฌ๋ถ๊ฐ ์์ต๋๋ค.
// board.js
const express = require('express');
const router = express.Router();
router.get('/', readPosts);
router.post('/write', checkUserLogin, writePost);
router.post('/edit', checkUserAuthority, editPost);
router.post('/delete', checkUserAuthority, deletePost);
module.exports.router;
๋ค์๊ณผ ๊ฐ์ ํํ๋ก ๊ตฌํํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฒ ๋ฏธ์ ์์ ๋น๋ก ๋ฏธ๋ค์จ์ด์ ์ํํ ์ฌ์ฉ์ ํ์ง ๋ชปํ์ง๋ง ๋ค์ ๋ฏธ์ ์์๋ ์ด๋ฌํ Express์ ํน์ฑ์ ์ ์ด๋ ค๋ด์ผ๊ฒ ์ต๋๋ค! ๐ฏ
๋ก์ง ๋ถ๋ฆฌ
ํ๋ก ํธ์๋์ฒ๋ผ ๋ฐฑ์๋์์๋ ์ต๋ํ ๋ก์ง์ ๋ถ๋ฆฌํ๋ ค๊ณ ํ์ต๋๋ค. DB ์ ๊ทผ ๋ฉ์๋, ์ฟ ํค ํ์ฑ ๋ฑ ์ฌ์ฌ์ฉ์ฑ์ด ๋์ ๋ก์ง๋ค์ lib ํด๋ ์์ ๋ฃ์ด ๊ด๋ฆฌํ์ต๋๋ค.
ํ์ด์ง ๋ผ์ฐํ ์ด ์๋ api ์์ฒญ ๋ฑ์ api ํด๋์ ํ์ ํญ๋ชฉ์ผ๋ก ๊ฐ๊ฐ์ ์นดํ ๊ณ ๋ฆฌ์ ๋ง๊ฒ ๋ผ์ฐํ ์ค์ ์ ํ์ต๋๋ค. ์ด๋ฐ ๋ฐฉ์๋ Express์ ๋ฏธ๋ค์จ์ด๋ฅผ ์ด์ฉํ ๋ฐฉ๋ฒ ์ค ํ๋์ ๋๋ค.
ํ์ฌ api ๊ตฌํ์์๋ ์ ํจ์ฑ ๊ฒ์ฆํ๋ ๋ก์ง๋ ํจ๊ป ํฌํจ๋์ด์๋๋ฐ ํด๋น ๋ถ๋ถ์ ๋ฐ๋ก ๋นผ์ ๊ตฌํํ๋ ๊ฒ ๋ ๊ฐ๋ ์ฑ ์ธก๋ฉด์์ ์ข์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฏธ์ ์ํ ํ ํฌ๋กฑ๊ณผ ํธ๋ ์ค์ ๋ฆฌ๋ทฐ๋ฅผ ๋ฃ๊ณ , ๋ค๋ฅธ ์ฌ๋์ ๊ตฌํ๊ณผ ์ ์ฝ๋๋ฅผ ๋น๊ตํ๋ฉด์ ์๊ฐํด ๋ณธ ๋ด์ฉ๋ค์ ๋๋ค.
์ด๋ฒ ๋ฏธ์ ์ ๊ธฐํ์ด ์ฌ์ค ์ ์ดํ์ด์๊ธฐ ๋๋ฌธ์ ์ ์๊ฒ๋ ๊ต์ฅํ ์งง์ ์๊ฐ์ด์์ต๋๋ค. ์ฃผ์ด์ง ๊ธฐ๋ฅ์ ์์ฑ๊ณผ ์ฝ๋ ํ๋ฆฌํฐ๋ฅผ ๋ชจ๋ ์ฑ๊ธฐ๊ธฐ๋ ์ด๋ ค์ด ์ํฉ์ ๋๋ค.
๊ธฐ์กด์ ๊ฐ์ง๊ณ ์์๋ ์๊ฐ์ ๋ฌด์กฐ๊ฑด ์์ฑ๋๊ฐ ์ค์ํ๋ค๋ ์ชฝ์ด์์ต๋๋ค. ๋ง์ฝ ์ ๋ฌด๋ผ๋ฉด ๊ธฐํ ๋ด์ ์ผ๋จ ์์ฑ์ ์ํค๊ณ ์ถํ ์ ์ง๋ณด์๋ฅผ ํตํด ํ๋ฆฌํฐ๋ฅผ ์ฌ๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํ์ง๋ง ์ง๊ธ์ ๊ต์ก์ด ์ค์ ์ด ๋๋ ๊ธฐ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์ฒซ ๋ฒ์งธ ๋ชฉํ๋ ํ์ต์ ๋๋ค. ๊ทธ๋์ ๊ฐ์ธ์ ์ธ ์์ ๋ง ํด์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ฌ๋์ด ๋ด ์ฝ๋๋ฅผ ๋ณด๊ณ ์ด๋ป๊ฒ ๋๋ผ๋์ง๋ ์ค์์ฌํญ์ด ์๋์์ง๋ง ์ง๊ธ์ ํ์ ์ ๊ฒฝํํ ์ ์๋ ๊ธฐํ์ ๋๋ค.
๋๋ฃ๋ค๊ณผ ๋์ ํ์ง์ ์ฝ๋์ ๋ํด ํ์ตํ๋ ๊ฒ์ด ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ ธ์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌผ๋ก ์ค๋ ฅ์ด ์ถฉ๋ถํ๋ค๋ฉด ํ์ง๊ณผ ์์ฑ๋ ๋ ๋ค ์ฑ๊ธธ ์ ์์ต๋๋ค... โ ๏ธ ๊ฒฐ๋ก ์ ์ผ๋ก ํฌ๋กฑ์ ์์ฑ๋์ ํ์ง ๋ชจ๋ ํฌ๊ธฐํ ์ ์๋ ๊ฒ๋ค์ด๋ผ๊ณ ๋งํ์ต๋๋ค. ใ ใ
์ปค๋ฐ์ atomic ํด์ผํ๋ค.
๋ฆฌ๋ทฐ์ ๋ง์ง๋ง์ ํธ๋ ์ค๊ฐ commit์ ๋ํ ์๊ธฐ๋ฅผ ํด์คฌ์ต๋๋ค. commit์ ์์ ์ด ๋๋์๊ฐ ์ ์๋ save point์ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํด๋น ์ปค๋ฐ์์ ๋ฌด์จ ์์ ์ ํ๋์ง ํ๋์ ํ์ ํ ์ ์์ด์ผํฉ๋๋ค.
atomic ์ปค๋ฐ์ ์์ ๊ฐ์ ์ฌํญ์ ์ ์ค์ํฉ๋๋ค. ์ต๋ํ ์์ ๋จ์๋ก ์ปค๋ฐ์ ์ชผ๊ฐ๋ฉด ์ปค๋ฐ ๋ฉ์์ง์ ๋ด๊ธฐ๋ ๋ด์ฉ์ด ํ๋ถํด์ง๋๋ค. ํธ๋ ์ค๋ ๋ฉ์๋ ๋จ์๋ก ์ปค๋ฐ์ ์ชผ๊ฐ๋ ๊ฑธ ์ถ์ฒํ์ต๋๋ค. ๊ทธ๋ ๊ฒ๊น์ง ์๊ฒ ์ชผ๊ฐ๋ ๊ฒ ๋ง๋๊ฐ ์ถ์์ง๋ง, ์๊ฐํด๋ณด๋ฉด ๋ง๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ๋์ PR์๋ ์ฌ๋ฌ ๊ฐ์ ์ปค๋ฐ์ด ๋ด๊น๋๋ค. ๊ทธ๋ฆฌ๊ณ commit์ ๋ณด๊ณ ์ด๋ค ์์ ์ ์ด๋ป๊ฒ ์ ๊ทผํ๋์ง ํ์ ํ ์ ์๊ฒ๋ฉ๋๋ค. ํฐ ๋ฉ์ด๋ฆฌ๋ก ์ปค๋ฐ์ ๋ ๋ฆฌ๊ฒ ๋๋ฉด ์ปค๋ฐ์ ๋ด๊ธด ์๋ฏธ๊ฐ ๋ชจํธํด์ ธ ๋์ค์ ํ์ธํ ๋ ํ๋ค ์ ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
์ต๋ํ ์ปค๋ฐ์ ์ชผ๊ฐ๋ฉด์ ๊ฐ๋ฐํ๋ ์ต๊ด์ ๋ค์ฌ์ผ๊ฒ ์ต๋๋ค.
๋น๋ก ์งง์ ์๊ฐ์ด์ง๋ง, ์ฌํ ๊ณต๋ถํ๋ฉด์ ๋ค์๋ ๋ง๋ค, ๊ทธ๋ฆฌ๊ณ ๋ฏธ์ ์ ๋ฆฌ๋ทฐ๋ฅผ ํตํด ์ข์ ์ฝ๋๋ ๋ฌด์์ธ์ง ๋ค์ ํ๋ฒ ์๊ฐํด๋ณด๊ฒ ๋์ต๋๋ค.
ํ ๋ฌธ์ฅ์ผ๋ก ์์ฝํ์๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋์ด ๋ด ์ฝ๋๋ฅผ ๋ณผ ๋ ๊ธฐ๋ฅ์ ํ๋์ ํ์ ํ ์ ์์ด์ผํ๋ค.
์ฝ๋๋ ๋ํ๋๋ ๋ฐ๊ฐ ๋ช ํํด์ผํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์์ฑ๋ ํจ์๋ค์ ๊ธฐ๋ฅ์ด ๊ฐ๊ฒฐํด์ผํ๊ณ ๋ณต์กํ ๋ถ๋ถ๋ค์ ๋ถ๋ฆฌ ๊ณผ์ ์ ํตํด ์ ์ ํ ์ถ์ํ ๊ณ์ธต์ ์ ๊ณตํด์ผํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด ์กฐ๊ฑด๋ฌธ์ ์กฐ๊ฑด์์ password ์ ํจ์ฑ์ ๊ฒ์ฆํ๋ ๋ก์ง์ ์์ฑํ๋ ๊ฒ ์๋, ์ ํจ์ฑ ๊ฒ์ฆ์ ๋ฐ๋ก ๋ฉ์๋๋ก ๋ถ๋ฆฌํด ์กฐ๊ฑด ์์์ ํธ์ถํ๋ ๋ฐฉ์, ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ๊ธฐ๋ช ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์, ๋งค์ง๋๋ฒ๋ฅผ ์์๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ์ ๋ฑ์ด ์์ต๋๋ค.
๋ํ ํฌ๋กฑ์ด Early return๊ณผ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ์ฐ๊ด์ฑ์ ๋ํด ๋งํด์ฃผ์์ต๋๋ค.
if (๋ณต์กํ ์กฐ๊ฑด) {
...๋ค์ํ ๋ก์ง๋ค
} else {
return;
}
์์ ๊ฐ์ ํํ๋ก ์ฝ๋๋ฅผ ์์ฑํ ๊ฒฝ์ฐ ์ฌ๋์ ๋ก์ง์ ๋ณผ ๋ ์กฐ๊ฑด์ ๊ณ์ ์๊ฐํ๋ฉด์ ๋ก์ง์ ๋ด์ผํฉ๋๋ค.
if (!๋ณต์กํ ์กฐ๊ฑด) {
return;
}
...๋ค์ํ ๋ก์ง๋ค
ํ์ง๋ง return์ด ๋๋ ์กฐ๊ฑด์ ๋จผ์ ๊ฒ์ฌํ๋ค๋ฉด ๋ก์ง์ ๋ณผ ๋ ์กฐ๊ฑด์ด ๋จธ๋ฆฌ์์ ์ฐจ์งํ๋ ๋ถ๋ถ์ด ์ค์ด๋ญ๋๋ค. ๋ช ํํ๊ฒ ์ค๋ช ํ ์๋ ์์ง๋ง ์ค์ ๋ก๋ ๊ทธ๋ ๊ฒ ๋๊ปด์ง๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฝ๋์ ๋์์ ์ง์คํ๋ ๊ฒ ์๋ ์ฝ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ค์ ์ ๋์ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.
๋ณ์๋ ๋ช ์ฌ ํํ, ํจ์๋ ๋์ฌ + ๋ช ์ฌ ํํ๋ก ์ง๋ ๊ฒ์ด ๊ธฐ๋ณธ์ ์ธ ๋ค์ด๋ฐ ๊ท์น์ ๋๋ค. ๋๋ฌด ๊ธฐ๋ฅ์ ์์ฑ์๋ง ์ด์ ์ ๋ง์ถ๋ฉด ์ด๋ฐ ๋ถ๋ถ๋ค์ ๊ฐ๊ณผํ๊ณ ์ฝ๋๋ฅผ ์์ฑํ ๋๊ฐ ์๋๋ฐ ํญ์ ๋ช ์ฌํ๋ฉด์ ์ฝ๋๋ฅผ ์์ฑํด์ผ๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ณ์์ ํจ์ ์ด๋ฆ์ ๊ธธ์ด์ ๋ํ ๊ณ ๋ฏผ์ ํ์ต๋๋ค. ์๋ฏธ๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ์์ฃผ ๊ธด ์ด๋ฆ์ด ์ฌ์ฉ๋๋ ๊ฒ๋ ๊ด์ฐฎ์์ง์ ๋ํ ๊ณ ๋ฏผ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ๊ด์ฐฎ๋ค๊ณ ๊ฒฐ๋ก ์ ๋ด๋ ธ์ต๋๋ค.
๋ฌผ๋ก ์ถฉ๋ถํ ์๊ฐ์ ๊ฑฐ์น ํ ์ ๋ง ๊ทธ๋ ๊ฒ ๊ธด ์ด๋ฆ์ด ์ฌ์ฉ๋์ด์ผ ํ ๋๋ง ์ฌ์ฉํด์ผํฉ๋๋ค. ์ต๋ํ ์ฝ๋๊ฐ ๋ํ๋ด๋ ๋ฐ๊ฐ ํ๋ถํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฏธ์ ์ ์ฒ์ ๋ฐ์์ ๋๋ ๋๋ฌด ์ฝ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ํ์ง๋ง ๊ทธ๊ฒ์ ์๋ง์ด์๊ณ , ์ด๋ฒ ๋ฏธ์ ์ ํตํด ์ญ๋์ ๋ถ์กฑํจ์ ๋ผ์ ๋ฆฌ๊ฒ ๋๋ ์ ์์์ต๋๋ค. ๐ฆ
๋จ์์ด ์๋๋ง ํ๋ ์ฝ๋์์ ๋ ๋์๊ฐ ์ข์ ์ฝ๋์ ๋ํ ๊ณ ๋ฏผ์ ํ๋ฉด์ ์ฝ๋ฉ์ ํ๋ ๊ฒ ์ผ๋ง๋ ํ๋ ์์ ์ธ์ง, ๋ค๋ฅธ ์บ ํผ๋ค์ ๊ตฌํ์ ๋ณด๋ฉด์ ๊ฐ์๊ฐ ๊ธฐ๋ฅ์ ๋ฐ๋ผ๋ณด๋ ์์ ์ ์ฐจ์ด๊ฐ ์ผ๋ง๋ ํฐ์ง ์์์ต๋๋ค.
์ด๋ ๊ฒ ๊ด์ ์ด ๋ค๋ฅธ ์ฌ๋๋ค๋ผ๋ฆฌ ๋ชจ์ฌ ํ์ ์ ์งํํ๋ฉด ๋ณธ์ธ์ด ์์ฑํ ์ฝ๋๊ฐ ๋ํ๋ด๋ ๋ฐ๊ฐ ๋ช ํํด์ผํฉ๋๋ค. ๊ฐ๋ ์ฑ ์ข์ ์ฝ๋, ๊ณต์ ๊ฐ๋ฅํ ์ฝ๋์ ๋ํด ํญ์ ์๊ฐํ๋ฉฐ ๋ค์ ์ฃผ ๋ฏธ์ ์ ์ํด์ผ๊ฒ ์ต๋๋ค.
๋ง์ด ๋ฐฐ์ฐ๊ณ ๊ฐ๋๋ค ์ฃผ์๋!