๐Ÿ“• [ TIL ] : 1์ผ์ฐจ_2022.04.18.(์›”)

[ 20220418(์›”)_์˜ค๋Š˜์˜ TIL ]

[ ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๋ฒ”์œ„ ]

  • ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ A-Z ๊ธฐ์ดˆ KDT ์‹ค๋ฌดํ˜•AI์›น๊ฐœ๋ฐœ์ž 2ํšŒ์ฐจ : 1์ฃผ์ฐจ (1-1~1-16) ~ 2์ฃผ์ฐจ (2-1~2-8)
  • ํŒŒ์ด์ฌ ๋ฌธ๋ฒ• ๊ธฐ์ดˆ KDT ์‹ค๋ฌดํ˜•AI์›น๊ฐœ๋ฐœ์ž 2ํšŒ์ฐจ : 1-1~1-15

โ“ Learn about ? : ์ƒˆ๋กœ ๋ฐฐ์šด ๊ฒƒ

์ด๋ฒˆ๋…„๋„ 3์›” ๊ฒฝ, ๋‚ด์ผ๋ฐฐ์›€๋‹จ ํ•ฉ๋ฅ˜ ์ „ ์›น๊ฐœ๋ฐœ, ์•ฑ๊ฐœ๋ฐœ ๊ณผ์ •์„ ์ˆ˜๊ฐ•ํ–ˆ์—ˆ๊ธฐ์— ์ด๋ฒˆ์— ์ƒˆ๋กœ ๋ฐฐ์šด ๊ฒƒ๋“ค๋งŒ ๋‹ค์‹œ ๋ณต๊ธฐ์ฐจ์›์—์„œ ์ ์–ด๋ณด์•˜๋‹ค. ์ž์„ธํ•œ ์ฝ”๋“œ๋Š” ๋‚˜์˜ GitHub_์— ๊ฒŒ์‹œํ•  ์˜ˆ์ •์ด๋‹ค.

vscode, mac, python3.x ํ™˜๊ฒฝ์—์„œ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.
๊ฐ€์ƒํ™˜๊ฒฝ์€ venv, anaconda ๋‹ค ์จ๋ดค๋Š”๋ฐ ์„ค์ •๋„ ๋‚˜์ค‘์— ํฌ์ŠคํŒ…ํ•ด์•ผ๊ฒ ๋‹ค.

์‚ฌ์šฉํ•œ Visual Studio Extension : live session, ๋‹จ์ถ•ํ‚ค โŒ˜L โŒ˜O

CSS : ๋ญ”๊ฐ€๋ฅผ ๊พธ๋ฏผ๋‹ค = ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์–ด์•ผ ๊พธ๋ฏธ๊ธฐ ๊ฐ€๋Šฅ

HTML : ์ค„๋งž์ถ”๊ธฐ ์ค‘์š”, ๋‹จ์ถ•ํ‚ค ์•ˆ๋จน์„๋• ์˜ํ•œ์ „ํ™˜

style ๋’ท๋ฐฐ๊ฒฝ ์„ธํŠธ ์ฝ”๋“œ : (๊ฐ™์ด ๋ชจ์—ฌ๋‹ค๋‹Œ๋‹ค)

background-image: url(https://www.ancient-origins.net/sites/default/files/field/image/Agesilaus-II-cover.jpg);
                background-size: cover;
                background-position: center;

margin auto : ์ƒํ•˜์ขŒ์šฐ ์ตœ๋Œ€ํ•œ ๋ฏผ๋‹ค (๋ฐ”๊นฅ์—ฌ๋ฐฑ)

(๊ตฌ๊ธ€ ์›น ํฐํŠธ ์ด์šฉ)
ํฐํŠธ๋„ฃ๊ธฐ : ํƒ€์ดํ‹€ ์•„๋ž˜ link href= ~, <style * { font-family ~

CSS ํŒŒ์ผ ๋ถ„๋ฆฌ : cssํŒŒ์ผ ํ•˜๋‚˜๋ฅผ ๊ฐ™์€ ํด๋” ๋‚ด ๋งŒ๋“ค์–ด์ค€๋‹ค

<link rel="stylesheet" type="text/css" href = "(cssํŒŒ์ผ์ด๋ฆ„).css">

๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๊ฐ€์ ธ์˜ค๊ธฐ (๋ฒ„ํŠผ์— ๊ฐ€์ ธ์˜ฌ๋•?) : <button class=""~ >

display flex ์ด์šฉํ•˜๋ฉด flex์•ˆ ๋‚ด์šฉ๋ฌผ ์ •๋ˆ๋จ :
background, flex๋Š” ์ €๋ ‡๊ฒŒ 3์ค„, 4์ค„ ๋ชจ์—ฌ๋‹ค๋‹˜

<style>
          .mytitle {
              background-color: green;
              width: 100%;
              height: 250px;

              background-image: url(https://movie-phinf.pstatic.net/20210715_95/1626338192428gTnJl_JPEG/movie_image.jpg);
              background-position: center;
              background-size: cover;

              color: white;

              display: flex;
              flex-direction: column;
              justify-content: center;
              align-items: center;
          }
      </style>

mytitle ์•ˆ์˜ button์€ ์ด๋ ‡๊ฒŒ ํ‘œํ˜„ํ•˜์ž :
solid white : ์„ ๊ตต๊ธฐ๊ฐ€ ํฐ์ƒ‰์ด๊ณ  ์‹ค์„ ์ด๋‹ค
transparent : ํˆฌ๋ช…

.mytitle > button {
                width: 200px;
                height: 50px;

                background-color: transparent;
                color: white;
                border-radius: 50px;
                border: 1px solid white;
            }

hover : ๋งˆ์šฐ์Šค ์˜ฌ๋ฆฌ๋ฉด ์‹ค์„  ๋‘๊บผ์›Œ์ง€๋Š” ํšจ๊ณผ

.mytitle > button:hover {
              border: 2px solid white;
          }

์ด๋ฏธ์ง€ ์–ด๋‘์›Œ์ง€๊ฒŒ ์กฐ์ ˆ (0.5 ์ˆ˜์น˜ ์กฐ์ ˆํ•˜๋ฉด ๋ฐ๊ณ  ์–ด๋‘์›€ ์กฐ์ ˆ ๊ฐ€๋Šฅ)

background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),url(https://movie-phinf.pstatic.net/20210715_95/1626338192428gTnJl_JPEG/movie_image.jpg);
              background-position: center;
              background-size: cover;

๋งˆ์ง„ ์ƒํ•˜์ขŒ์šฐ ์กฐ์ •

.wrap {
              width: 1200px;
              margin: 20px auto 0px auto; 
          }

๋ง‰๊ฐ„ ์ด๋ชจํ‹ฐ์ฝ˜ ๋ชจ์Œ ๋งํฌ

๊ทธ๋ฆผ์ž ๋“ค์–ด๊ฐ„ ํฌ์ŠคํŠธ๋ฐ•์Šค CSS : box-shadow

.mypost {
              margin: 20px auto 0px auto;
              background-color: green;
              width: 500px;
              box-shadow: 0px 0px 3px 0px gray;
              padding: 20px;
              
          }

๋ฒ„ํŠผ ๋ฌถ์–ด์ค„๋•Œ ํ•˜๋‚˜์”ฉ ํ•ด์„œ flex๋กœ ๋ฌถ๊ธฐ
์˜ค๋ฅ˜ ์ฝ”๋“œ :

<div class="d-grid gap-2 d-md-block">
              <button class="btn btn-primary" type="button">๊ธฐ๋กํ•˜๊ธฐ</button>
              <button class="btn btn-primary" type="button">๋‹ซ๊ธฐ</button>
          </div>

๋ชจ๋ฐ”์ผ์ฒ˜๋ฆฌ : %

.wrap
max-width: 1200px;
              width: 95%;

.mypost
max-width: 500px;
              width: 95%;

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ : ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•Œ์•„๋“ค์„ ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด
alert ์ŠคํŽ ๋ง ์ฃผ์˜ (์˜คํƒ€๋กœ ๊ฝค๋‚˜ ์˜ค๋ฅ˜๋‚ฌ์—ˆ์Œ)
script ์•ˆ์— ์ญ‰ ~ ์จ๋‚ด๋ ค๊ฐ€๋Š”๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
์‚ฌ์‹ค์ƒ ์ฝ˜์†”์ฐฝ์ด ์Šคํฌ๋ฆฝํŠธ์ฐฝ์ด๋ž‘ ๋˜‘๊ฐ™์€ ๊ฒƒ
script๋ถ€๋ถ„์ด ํฐ ํ™”๋ฉด(๋กœ๋“œ ์•ˆ๋œ ํ™”๋ฉด)์—์„œ ๋จผ์ € ์ฝํž˜

1์ฃผ์ฐจ ์ˆ™์ œ > ๋‚˜์˜ ํ•œ๊ณ„๋Š”?
์ƒ˜ํ”ŒํŒŒ์ผ์ชฝ ์–‘์˜†๋„ˆ๋น„ ๊ตฌํ˜„์„ ์ž˜ ๋ชปํ–ˆ์—ˆ๋‹ค.

ํ”ผ๋“œ๋ฐฑ ํ›„

์ž์„ธํ•œ ์ฝ”๋“œ๋Š” ๋‚˜์˜_Git ์— ์˜ฌ๋ฆด ์˜ˆ์ •์ด๋‹ค. (์–ผ๋ฅธ ์˜ฌ๋ ค์•ผ๊ฒ ๋‹ค..!)

์ง.ํ™€์ˆ˜ ํŒ๋‹จ ๋ฐฉ๋ฒ• (javascript ๋ณต์Šต) > js, jQuery, Ajax๋ฌธ๋ฒ•์€ html ํŒŒ์ผ์˜ script์— ๋“ค์–ด๊ฐ€ ์š”๊ธดํ•˜๊ฒŒ ์“ฐ์ธ๋‹ค.

let even = 4;
console.log(even % 2); // 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 0์ž…๋‹ˆ๋‹ค.
let odd = 5;
console.log(odd % 2); // 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 1์ž…๋‹ˆ๋‹ค.

์ง.ํ™€์ˆ˜ onclick ํ•จ์ˆ˜
(ํ™€์ง๋ฒ„ํŠผ, onclick="hey()"๋ฅผ button ์†์„ฑ์— ๋„ฃ์–ด์ค€๋‹ค)
ํ•จ์ˆ˜๋Š” script์— ์ž‘์„ฑ
(์—ฌ๊ธฐ์— Ajax๊นŒ์ง€ ๋“ค์–ด๊ฐ€๋ฉด ๋ฒ„ํŠผ ์†์„ฑ์— id๊ฐ’๋„ ํ•„์š”ํ•˜๋‹ค! classํ•„์š”ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ)

<script>
      let count = 1;
      function hey() {
          if (count % 2 == 0) {
              alert('์ง์ง๐Ÿ‘');
          } else {
              alert('ํ™€ํ™€๐ŸŽ…');
          }
						count += 1;
      }
  </script>

jQuery ์‚ฌ์šฉ ์ „ html์— import๋ฅผ ๊ผญ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
(์‚ฌ์šฉํ•œ๋‹ค๋Š” ์„ ์–ธ)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

jQuery๊ฐ€ ๋ญ˜๊นŒ์š”?
js library = jQuery (js์˜ ๋”๋งŽ์€ ๊ธฐ๋Šฅ ๋ชจ์•„๋†“์€๊ฑฐ, CSS ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์ฒ˜๋Ÿผ)

โ“ ์Šค์Šค๋กœ ์งˆ๋ฌธ ๋ฐ ํ”ผ๋“œ๋ฐฑ

  • โ€˜์Šค์Šค๋กœ ์งˆ๋ฌธโ€™์„ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ• ๋•Œ ์˜†์— ์จ๋†“์•˜์—ˆ๋Š”๋ฐ ํ•œ ๊ณณ์— ๋ชจ์•„๋†“์•„์•ผ๊ฒ ๋‹ค.
  • ์ด๋ฒˆ ์Šค์Šค๋กœ ์งˆ๋ฌธ์€ ํŒŒ์ด์ฌ ๊ณต๋ถ€ํ• ๋•Œ ๋งŽ์ด ๋‚˜์™”๋‹ค. โ†’ ํŒŒ์ด์ฌ ๊ณต๋ถ€ํŒŒ์ผ์— ์ฒจ๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค.
  • ๊นƒํ—ˆ๋ธŒ ์— ํŒŒ์ผ์„ ์ปค๋ฐ‹ํ•˜์ž
  • velog TIL์„ ์“ฐ๋ฉด์„œ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋Š” ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”๊ฑด์ง€ ์ฐจ์ฐจ ์ตํ˜€๊ฐ€์ž
  • TIL ๋ง๊ณ ๋„ ๋‹ค๋ฅธ ๋‚ด์šฉ๋„ velog์— ๊ธฐ์ˆ ํ•ด๋ณด์ž โ†’ ์ด๋ฅผ ๋…ธ์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ‘œ๋กœ ์ •๋ฆฌํ•ด๋ณด์ž (์ง๊ด€์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ)

๐Ÿ“— ์˜ค๋Š˜์˜ ํ›„๊ธฐ

  • 1์ฃผ์ฐจ ํ›„๊ธฐ : ๋™๋ฌผ์˜ ์ˆฒ ์ง‘ ์ž๋ž‘ํ•˜๊ธฐ ์‚ฌ์ดํŠธ๋ฅผ ํŒฌ๋ช…๋ก html์„ ์‘์šฉํ•ด ๋งŒ๋“ค์—ˆ๋Š”๋ฐ (์‹ค์ œ๋กœ ๋™๋ฌผ์˜ ์ˆฒ ์„ฌ๊พธ๋ฏธ๊ธฐ ํ–ˆ์„ ๋‹น์‹œ ์ž˜ ๊พธ๋ฉฐ์ง„ ์„ฌ์˜ ์ƒ˜ํ”ŒํŒŒ์ผ์„ ์ฐพ์•„๋‹ค๋‹ˆ๋ฉด์„œ ๊ฐค๋Ÿฌ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๊ฝค๋‚˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์ด๋ผ) ์ถ”ํ›„ ์—ฌ๋Š ๊ฒŒ์ž„ ํ”ผ๋“œ๋ฐฑ ์‚ฌ์ดํŠธ(์–ด๋–ค ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”, ๋ฌด์Šจ ์—…๋ฐ์ดํŠธ ๋ฐ”๋ž๋‹ˆ๋‹ค ๋“ฑ)์ด๋‚˜ ์•„๋‹ˆ๋ฉด ์ž์‹ ์˜ ์ฟ ํ‚น๋ค ์™•๊ตญ(์™•๊ตญ, ๋ ˆ๋ฒจ์—… ๋“ฑ)์„ ์ž๋ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ํŒฌ(fan)์‚ฌ์ดํŠธ๋‚˜ (ํฌ๋กค๋ง์„ ์ด์šฉํ•œ) ์นดํ…Œ๊ณ ๋ฆฌ ๋ชจ์•„๋ณด๊ธฐ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค. ๋ฉ”์ธ ํ™”๋ฉด์— ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„, ๋‚ ์งœ๋ณ„ ๋ถ„๋ฅ˜ ๋ฒ„ํŠผ์ด๋‚˜ ๊ฒ€์ƒ‰๊ธฐ๋Šฅ์„ ๋„ฃ์–ด์„œ ์ž‘์„ฑ์ž๋กœ ์ฐพ๊ธฐ ๋“ฑ ํ˜น์€ ์—…๋ฐ์ดํŠธ๋‚ด์—ญ ๋ณผ์ˆ˜์žˆ๋Š”๊ณณ๋„ ์ถ”๊ฐ€ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค. ๊ณต๋žต์‚ฌ์ดํŠธ๋‚˜ ์—ฌ๋Ÿฌ ๊ฒŒ์ž„ ํŒ ๋“ฑ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ณ ์‹ถ๋‹ค.
  • 2์ฃผ์ฐจ ์ง„ํ–‰์ค‘ ํ›„๊ธฐ (~ing) : ์˜ค๋Š˜ ํ•ด๋ณธ ๊ฒƒ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•œ ํŽ˜์ด์ง€์˜ ์›€์ง์ž„ ๊ตฌํ˜„ ~ ing ํ›„๊ธฐ ) JQuery ๋ถ€๋ถ„์ด ๊ฐ€์žฅ ์–ด๋ ค์› ๋‹ค. (11์‹œ๊ฐ„ ๊ฒฝ๊ณผ ์ฆˆ์Œ์ด์—ˆ์–ด์„œ ์ง‘์ค‘๋ ฅ์ด ๋”์šฑ ํํŠธ๋Ÿฌ์กŒ์—ˆ๋‹ค) ๋‹ค์‹œ ๋ณต์Šตํ•˜๊ฒŒ ๋˜์–ด ์ฐธ ๋‹คํ–‰์ด๋‹ค..!

๐ŸŒฑ ๋งˆ์น˜๊ธฐ ์ „

ํŒ€์›๋ถ„๋“ค๋„ ์šด์˜์ง„๋ถ„๋“ค๋„ ๋ฉ˜ํ† ๋‹˜๋“ค๋„ ๋‹ค๋“ค ์„œ๋กœ ํŒŒ์ดํŒ… ํ•ด์ฃผ์…”์„œ ๊ธด ์‹œ๊ฐ„๋™์•ˆ (๋ฌด๋ ค 12์‹œ๊ฐ„!)์˜ ํ•™์Šต์„ ๋ฌด์‚ฌํžˆ ๋งˆ์น  ์ˆ˜ ์žˆ์—ˆ๋‹ค!! (์ฒซ๋‚ ์ด๋ผ ์•„์ง ์ ์‘์ด ์•ˆ๋˜์–ด์„œ ํž˜๋“ค๊ธฐ๋„ ํ–ˆ๋Š”๋ฐ, ๊ทธ๋งŒํผ ์ŠคํŒŒ๋ฅดํƒ€์‹ ์ฝ”๋”ฉ์€ ๋น ๋ฅธ ์ ์‘์ด ํ•„์š”ํ•œ ์ปค๋ฆฌํ˜๋Ÿผ์ด๊ตฌ๋‚˜๋ฅผ ๋‹ค์‹œํ•œ๋ฒˆ ๋Š๊ผˆ๋‹ค..!) ๋ฉ˜ํ† ๋‹˜์ด ์“ฐ๋Ÿฌ์ง€์ง€๋งŒ ๋ง๊ณ  ์ž˜ ๋”ฐ๋ผ์˜ค๋ผ๊ณ  ํ•ด์ฃผ์…จ๋‹ค..! (ํ—‰) ์•„์ง ๋งŽ์ด ๋ถ€์กฑํ•˜์ง€๋งŒ ์–ธ์  ๊ฐ€ ๋‹ค์‹œ ๋Œ์•„๋ณด๋ฉด ์„ฑ์žฅํ•  ๊ฒƒ์ด๋ผ ๋ฏฟ๊ณ  ์˜ค๋Š˜ ํ•˜๋ฃจ๋ฅผ ๋งˆ์นœ๋‹ค!

PS.๋น ๋ฅธ ์‹œ์ผ๋‚ด์— ๊นƒํ—ˆ๋ธŒ๋ฅผ ํ™œ์„ฑํ™”์‹œ์ผœ์„œ ์ปค๋ฐ‹ํ•ด์•ผ ํ•  ๊ฒƒ๋งŒ ๊ฐ™๋‹ค (ํŒŒ์ผ์ด ๋„˜์ณ๋‚œ๋‹ค..)

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ