" ๋
ธ๋ง๋ ์ฝ๋(Nomad Coders) - ์ฝ์ฝ์ํก ํด๋ก ์ฝ๋ฉ(KokoaTalk Clone Coding) ๋ณต์ต "
" ์ฑ
'Do it! HTML5 + CSS3' ์น ํ์ค์ ์ ์ ๋ ์ฐธ๊ณ ํ์ต๋๋ค."
์ฌ์ค ๊ธฐ๋ณธ ์ฝ๋ฉ์ ๊ดํ ํฌ์คํ
์ด ๋๋๊ณ ๋ค์ ํฌ์คํ
๋ถํฐ ์ด๋ค์์ผ๋ก ํด์ผ ํ ์ง ๊ณ ๋ฏผ์ด ๋ง์๋ค.
์ฌ๋ฌ๊ฐ์ง ํ๊ทธ๋ค์ ์๊ฐํ๋ฉด์ '์ด๊ฑด ์ด๊ฑฐ๊ณ ์ด๋ ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.' ๋ผ๋ฉฐ ํฌ์คํ
ํ๋ ๊ฒ๋ ๊ณต๋ถ๊ฐ ๋๊ฒ ์ง๋ง, ์๋๊ฒ ์์ด์ ํด๋ก ์ฝ๋ฉ์ ํ ๋ฒ์ด๋ผ๋ ๋ ํด๋ณด๋๊ฒ ๋ ํจ๊ณผ์ ์ด๋ผ ์๊ฐํ๋ค. ๊ทธ๋์ ํด๋ก ์ฝ๋ฉ ํ๋ฃจ, ๊ทธ ๋ด๋ ํท๊ฐ๋ฆฌ๊ฑฐ๋ ๋ชจ๋ฅด๋ ๋ถ๋ถ ๋ค์ ๋ณต์ตํ๋ฉด์ ๊ณต๋ถํ๊ธฐ๋ก ํ๋ค.
ํด๋ก ์ฝ๋ฉ(Clone Coding) ์ด๋, ์นด์นด์คํก, ์ธ์คํ๊ทธ๋จ, ์ ํ๋ธ ๋ฑ์ ์ค์ ์ด์ํ๋ ์๋น์ค๋ฅผ ์ต๋ํ ๋์ ๋ฐฉ๋ฒ์ผ๋ก ์ฝ๋ฉ์ ํ๋ฉด์ ๋๊ฐ์ด ๋ง๋ค์ด๋ณด๋ ๊ฒ์ด๋ค.
๋๋ ์ฌ์ค ์ฝ์ฝ์ํก ๊ฐ์ ์๊ฐํ ๋, ์ด๋ก ๋ณด๋ค๋ ์ค์ ๊ฐ์๋ค์ ๋ ์ฌ๋ฐ๊ฒ ์๊ฐํ๋ ๊ธฐ์ต์ด ์๋ค. ํด๋ก ์ฝ๋ฉ์ ํ๋ฉด์ ๋๊ผ๋ ๊ฑด ์๋ง์ด๋ผ๋ ํผ์ ๋ง๋ค์ด ๋ด์ผ ๋ชฐ๋๋ ๊ฒ๋ ๋ฐฐ์ฐ๊ณ , ๊ธฐ์ต์ ์ค๋ ๋จ๋๋ค. ๋ค์์ ๋ง๋ค ๋ ์ด์ฉ๋ฉด ์ข ๋ ๋์ ์ฝ๋๋ฅผ ์งค ์๋ ์๋ค. ๋๋ ์ด๋ก ์ ์ธ ๋ถ๋ถ์ ํ๋๋ ๋ชฐ๋์ด์ ๊ฐ์๋ ๊ฐ์ด ๋ณํํ๋๋ฐ, ์๋ฌด๋๋ ๊ฐ์๋ฅผ ๋ณด๋ฉด์ ๋ฐ๋ผ ๋ง๋๋ ๊ฒ์ ์์ ํ ๋ด ๊ฒ์ด ๋์ง ์๋๋ค. (๊ทธ๋ ์ง๋ง ์ด๋ก ์ ์ธ ๋ถ๋ถ์ ๊ณต๋ถํ ๋๋ ๊ฐ์๊ฐ ์ต๊ณ ๋ค.. ํนํ ๋์ฒ๋ผ ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ ๋ฌธ๊ณผ์ถ์ ๋น์ ๊ณต์์๊ฒ๐ญ๐ญ) ๊ทธ๋์ ์ค๋์ ๊ตฌ๊ธ ํด๋ก ์ฝ๋ฉ ๋ฆฌ๋ทฐ๋ฅผ ํ ๊ฒ์ด๋ค.
๐ ํด๋ก ์ฝ๋ฉ ๋ฆฌ๋ทฐ
๋ผ ์ฐ๊ณ ํท๊ฐ๋ ธ๋ ๊ฒ๋ค ์์ฃผ๋ก ๋ค์ ๊ธฐ๋กํ๊ธฐ.
1. HTML : <form>
, <input>
ํ๊ทธ.
2. CSS : <input>
๊ฒํ
๋๋ฆฌ, & link ๋ฐ์ค, ์์ ์์ ๊ธฐ.
3. CSS : box-shadow.
4. CSS : ์ ๋๋ฉ์ด์
.
5. ๊นํ๋ธ gh-pages ์ฌ์ฉํ์ฌ ์น ์ฌ์ดํธ ํธ์คํ
ํ๊ธฐ.
<form>
, <input>
ํ๊ทธ๐ HTML -
<input>
๋ก๊ทธ์ธ, ํ์๊ฐ์ , ๊ฒ์ ๋ฑ์ ์ฐ์ด๋ ๐ ์ด ๋น ๋ฐ์ค๋ฅผ ๋ง๋ค ์ ์๋ ํ๊ทธ์ด๋ค. ๋๋ ๊ฒ์์ฐฝ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅํ๋ค.
<input type="search">
<input>
: ๋ด์ฉ์ ์
๋ ฅํ๋ ๋ฐ์ค ์์ฑ.
<input type>
์ ์์ฃผ ์ ๊ฒฝ์ฐ text
๋ง๊ณ ๋ search
, email
, password
, checkbox
, radio
๋ฑ ๋ค์ํ ํ์
(์ถ์ฒ: w3schools.com)์ด ์์ผ๋, ํ์์ ๋ฐ๋ผ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ค์์ ๋ง์ด ์ฐ์ด๋ ์ ํ๋ค์ด๋ค.
1. input type="search"
2. input type="email( or password)"
3. input type="checkbox"
4. input type="radio"
5. input type="button"
๐ HTML -
<form>
<form>
: ์ ์ ๊ฐ ์
๋ ฅํ ๊ฒ๋ค์ ์๋ฒ์ ์ ๋ฌ.
์ฌ์ค ๋๋ ์ด๋ฒ ํด๋ก ์ฝ๋ฉ์ <form>
ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์์๋๋ฐ, ์ ๋๋ก ๋ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ง๋๋ ค๋ฉด ๊ผญ ์ฌ์ฉํด์ผ ํ๋ค. <form>
๊ด๋ จ ํ๊ทธ๋ค์ ๋๋ถ๋ถ ์ ๋ณด ์ ์ฅ, ๊ฒ์, ์์ ํ๋ ์ผ์ ํ๋ค. HTML ํ๊ทธ ๋ก ๊ฒ์์ฐฝ, ๋ฒํผ, ์ฒดํฌ๋ฐ์ค ๋ฑ์ ํํ๋ฅผ ๋ง๋ค๊ณ , PHP, ASP, JSP ๊ฐ์ ์๋ฒ ํ๋ก๊ทธ๋๋ฐ์ ์ด์ฉํ์ฌ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ๋ค.
๊ทธ๋์ ๋ด๊ฐ <form>
ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, <form action>
= search.php
๋ก ์
๋ ฅ ๐ ์ ์ ๊ฐ ๊ฒ์์ ๋๋ฅด๋ฉด ๊ทธ ๊ฐ์ด ์น ์๋ฒ์ ์๋ search.php ํ์ผ ๋ก ์ ์ก๋์ด ๊ฒ์์ฒ๋ฆฌ๊ฐ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ์น ๋ธ๋ผ์ฐ์ ๋ก ์ ๋ฌ๋์ด ๊ฒ์์ฐฝ์ผ๋ก ํ์๋ ๊ฒ์ด๋ค.
๐ CSS {none};
CSS๋ก ์์ ๊ณ ์ถ์ ๊ณณ์ ์์ ๋ณผ ๊ฒ์ด๋ค. ๋จผ์ ๊ฒ์์ฐฝ <input>
.
<input>
์ ์
๋ ฅํ์๋ง์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ณด๋ฉด ์ด๋ ๊ฒ ์์ ํ
๋๋ฆฌ๊ฐ ๋์ค๊ฒ ๋๋๋ฐ CSS๋ก ์์จ ์ ์๋ค.
<style> {
border:none;
}
</style>
<input type="search">
ํ๋ฉด ์ด๋ ๊ฒ ๊น๋ํ ๊ฒ์์ฐฝ์ด ์์ฑ๋๋ค. ๊ทธ๋ฆฌ๊ณ
<style> {
outline: none;
}
</style>
<input type="search">
์ ํ๋ฉด ๊ฒ์์ฐฝ ํด๋ฆญํ์ ๋ ํ ๋๋ฆฌ ์๊ธฐ๋ ๊ฒ์ ์์จ ์ ์๋ค.
๋ํ ๋งํฌ์์๋ none
์ ์ฌ์ฉํ๋ค. <a href="#">
๋ก ์ด์ฌํ ๋งํฌ๋ฅผ ๊ฑธ์ด๋์ผ๋ฉด ๋ฐ์ค๋ ์๊ธฐ๊ณ , ํด๋ฆญ ์ ์ ํ๋์, ํ ๋ฒ ํด๋ฆญํ๋ฉด ๋ณด๋ผ์์ผ๋ก ์์ด ๋ณํ๊ธฐ๊น์ง ํ๋ค. ์ด๊ฒ๋ค๋ CSS๋ฅผ ์ด์ฉํด์ ์์ ์.
<style> {
color: black; /* ํด๋ฆญ ํ ๋, ์ ํ ๋ ๋ชจ๋ ๊ฒ์ ์ ์ ์ง*/
text-decoration: none; /*๋ฐ์ค ์ฌ๋ผ์ง*/
}
</style>
๐ CSS : box-shadow
๋ง ๊ทธ๋๋ก ๋ฐ์ค ์ฃผ๋ณ์ ๊ทธ๋ฆผ์์ง๊ฒ ํ๋ ํจ๊ณผ๋ฅผ ๋ํ๋ด์ค๋ค.
<style>
box-shadow : 0 1px 6px 0 rgba(32,33,36,0.28);
</style>
๋งจ ์ผ์ชฝ๋ถํฐ ์ธ๋ก, ๊ฐ๋ก, blur, ์์์ ์์๋๋ก ์ ๋ ฅ๋์ด์๋ค.
๐ก rgba?
: red green blue alpha ๋ฅผ ์๋ฏธํ๋ค. ์ฆ, ๋นจ๊ฐ, ๋
น์, ํ๋ ์ผ์์์ผ๋ก ์์ ํํํ๋ ๋ฐฉ๋ฒ์ alpha(ํฌ๋ช
๋)๊น์ง ํฉ์น ์๋ฏธ์ด๋ค. alpha ๊ฐ์ 0: ์์ ํฌ๋ช
~ 1: ์์ ๋ถํฌ๋ช
๊น์ง๋ค.(rgba)
๐ CSS : animation
๊ตฌ๊ธ์ ์ ๋ณด๋ฉด e๊ฐ ์ด์ง ๋์๊ฐ์๋ค.
์ด๊ฒ์ ํํํ๊ธฐ ์ํด์ animation์ rotate๋ผ๋, ํด๋น ์์ฑ์ ์ํ๋ ๊ฐ๋๋งํผ ๋๋ ค์ฃผ๋ ์์ฑ์ด ์๋ค.
<style>
transform: rotate(45deg) /* ์ ์ ๊ฐ ์ํ๋ ๊ฐ๋ ์
๋ ฅ*/
</style>
ํ๋ฉด ๋น๋ค์ด์ง e๋ฅผ ๊ฐ์ง ๊ตฌ๊ธ์ด ๋๋ค. animation์ ์์ฑ์ ๋ฌด์งํ๊ฒ ๋ง์๋ฐ, ๋์ค์ animation ์์ฑ์ ๋ง์ด ์ด์ฉํ๋ ํด๋ก ์ฝ๋ฉ๋ ํ ๋ฒ ํด๋ด์ผ๊ฒ ๋ค..
๐ Github : gh-pages
๋๋ VSC (Visual Studio Code) ์๋ํฐ๋ฅผ ์ด์ฉํ์ฌ ์ฝ๋๋ฅผ ์ง๊ณ , ์ด ๋ชจ๋ ๊ฒ์ Git์ ์ด์ฉํด์ ๋ก์ปฌ ์ ์ฅ์์ ์ ์ฅ, ๊ทธ๋ฆฌ๊ณ Github์ ์ฌ๋ฆฐ๋ค. Github๋ ์คํ๋ ํด๋ผ์ฐ๋ ์๋ฒ์ด๋ค. ์ฆ, ์ฌ๋ฌ ์ฌ๋์ ์ฝ๋๋ฅผ ๋ค์ด๋ฐ์ ์๋, ๋์ ์ฝ๋๋ฅผ ์ ๋ก๋ ํ ์๋ ์๋ค. ์ฌ๊ธฐ์ ๋๋ ์์ฑ๋ ๊ฒ์ ํ๋์ ์น ๋ธ๋ผ์ฐ์ ๋ก ๋ง๋ค๊ณ ์ถ์๋๋ฐ, branch: gh-pages๋ฅผ ์ด์ฉํด์ ๋ง๋ค ์ ์๋ค.
1) New Repository๋ก ๋ด๊ฐ ๋ง๋ ์ฝ๋๋ฅผ ์ ์ฅํ๋ค.
2) Github Desktop์ ์ด์ฉํ์ฌ branch์ gh-pages๋ผ๋ ์๋ก์ด ๋ธ๋์น๋ฅผ ๋ง๋ ๋ค.
3) Branch -> update from master๋ฅผ ํด๋ฆญํ์ฌ master์ ์๋ ์ ๋ณด๋ฅผ gh-pages์ ๋ฎ์ด ์์ด๋ค.
4) ์ฃผ์ ์ฐฝ์ (๋ณธ์ธ์ ๊นํ๋ธ ์์ด๋).github.io/(๋ ํฌ์งํธ๋ฆฌ ์ด๋ฆ)/(ํ์ผ์ด๋ฆ).html ์
๋ ฅ
๊น์ง ํ๋ฉด ๋์ด ๋๋ค.
์๊ฐ๋ณด๋ค ์๋ ๋ฏ ๋ชจ๋ฅด๋ ๋ฏ ํ๋ ๊ฒ๋ค์ด ๋ง์๋ค. ๊ฒ์ํ๋๋ฐ ์ ์ผ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๊ฑฐ๋ ์๋กญ๊ฒ ์๊ฒ ๋ ๊ฒ๋ค๋ง ์ ๋ฆฌํ๋๋ฐ๋ ์์ด ๋ง๋ค. ์ข ๋ ๊ผผ๊ผผํ๊ฒ ๊ณต๋ถํด์ผ๊ฒ ๋ค..