Ggoogle Clone Coding - Review

์—˜๋ฆฌยท2020๋…„ 7์›” 16์ผ
0

ํด๋ก ์ฝ”๋”ฉ(Clone Coding)

๋ชฉ๋ก ๋ณด๊ธฐ
2/2
post-thumbnail

" ๋…ธ๋งˆ๋“œ ์ฝ”๋”(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๋กœ ๊น”๋”ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ

๐Ÿ” 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 ์ž˜ ์ด์šฉํ•˜๊ธฐ..

๐Ÿ” 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 ์ž…๋ ฅ
๊นŒ์ง€ ํ•˜๋ฉด ๋์ด ๋‚œ๋‹ค.

โœ… ์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€

์ƒ๊ฐ๋ณด๋‹ค ์•„๋Š” ๋“ฏ ๋ชจ๋ฅด๋Š” ๋“ฏ ํ•˜๋Š” ๊ฒƒ๋“ค์ด ๋งŽ์•˜๋‹ค. ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ์ œ์ผ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๊ฑฐ๋‚˜ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ ๋œ ๊ฒƒ๋“ค๋งŒ ์ •๋ฆฌํ–ˆ๋Š”๋ฐ๋„ ์–‘์ด ๋งŽ๋‹ค. ์ข€ ๋” ๊ผผ๊ผผํ•˜๊ฒŒ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค..

profile
์ฝ”๋”ฉ์„ ๊ณต๋ถ€ํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค๐Ÿ˜‰

0๊ฐœ์˜ ๋Œ“๊ธ€