๐๋ฌด์์ ์ํธ ์์ฑ๊ธฐ
10216 ๋จ์ด beginnerswebdevcssjavascript
๋ค์์ ์ต์ข ์ ํ์ ๋๋ค.
์ด ํ๋ก์ ํธ์ ์ ์ฒด ์์ด๋์ด๋ ๋ฒํผ์ ํด๋ฆญํ๋ฉด 4๊ฐ์ ์์ ๋น๋ฐ๋ฒํธ๊ฐ ์์ฑ๋์ด UI์ ํ์๋๋ ๊ฒ์ ๋๋ค.
๋จผ์ HTML๋ก ์์ํ์ต๋๋ค. HTML์ ๋ช ๊ฐ์ ์ ๋ชฉ, ๋จ๋ฝ ๋ฐ 4๊ฐ์ ๋น ์ ๋ ฅ 4๊ฐ ํ๋๋ก ๊ตฌ์ฑ๋์์ต๋๋ค. ์๋ ํ๋ก์ ํธ์์๋ ํ๋๊ฐ ๋น์ด์์ ๋ ์์ด์ฝ์ด ์์ด์ผํ์ง๋ง ๊ทธ ๋น์์๋ ๊ทธ ๋ถ๋ถ์ ํ์ ํ ์ ์์์ต๋๋ค! ๐ ๊ทธ๋์ ๋์ ์ ์กฐ๊ธ ๋ค๋ฅธ ๊ฒ์ ์ถ๊ฐํ์ต๋๋ค!
๋ค์์ผ๋ก CSS ์์ ์ ํ์ต๋๋ค. ๋ด๊ฐ ์ฌ์ฉํ ๋ง์ CSS๋ ์ด ํ๋ก์ ํธ๊ฐ ์์ ๊ธฐ๋ณธ ์คํ์ผ ๊ฐ์ด๋์์ ๋ค์ ๊ฐ์ ธ์จ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ๋ด๊ฐ ํ ๊ฒ์ CSS ๋ณ์๋ฅผ ๋ณ๊ฒฝํ ๊ฒ์ ๋๋ค.
body {
background: var(--backgroundColor);
font-family: var(--bodyFont);
font-weight: 400;
line-height: 1.75;
color: var(--textColor);
}
p {
margin-top: 0;
margin-bottom: 1.5rem;
max-width: 40em;
}
ํ์ผ ๋งจ ์์ ๋ชจ๋ CSS ๋ณ์๊ฐ ์ ์๋์ด ์์ผ๋ฏ๋ก ๋์ค์ ์ฝ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. CSS ๋ณ์๋ฅผ ์ฌ์ฉํ ๊ฒ์ ์ด๋ฒ์ด ์ฒ์์ด์๊ณ ์ด๊ฒ์ด ์ผ๋ง๋ ์ ์ฉํ ์ ์๋์ง ๋ง์นจ๋ด ์ดํดํ๊ฒ ๋์์ต๋๋ค! JavaScript๋ก ์ด๋ํ๊ธฐ ์ ์ ์ธ๊ธํ๊ณ ์ถ์ ํ ๊ฐ์ง๋ CSS๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฒ์์ NOT ์คํํฐ ํ์ผ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฒ์ ์์ํ ๋ ํ์ํ ๋ง์ ๊ทผ์ก ๊ธฐ์ต์ ์ ๊ฑฐํฉ๋๋ค. ๋ช ๊ฐ์ง ํ๋ก์ ํธ๋ฅผ ์ง์ ๊ตฌ์ถํ๋ค๋ฉด ๊ฐ์ธ ๋๋ ํ๋ฆฌ๋์ ํ๋ก์ ํธ๋ฅผ ์ํ ํ๋ก์ ํธ ์คํํฐ ํ์ผ์ ๋ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค! ๋ค์ John์ ์์ ์ ์ฑ๋์์ ์ด์ ์ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์ค๋ช ํฉ๋๋ค. ๊ทธ์ ๋น๋์ค๋ฅผ ๋ณธ ํ์ ๋๋ ํ์ผ์ ํธ์งํ๊ณ ๋ด ์ทจํฅ์ ๋ง๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ดํดํฉ๋๋ค. ๊ทธ์ ๋น๋์ค๋ ์กฐ๊ธ ๊ธธ์ง๋ง ๊ทธ๋งํ ๊ฐ์น๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ์ฝ์ํฉ๋๋ค! ํ๋ก์ ํธ๋ฅผ ๋น ๋ฅด๊ฒ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ค๋ ๊ฒฝ์ฐ! ์ด์ ์ผ๋ถ JavaScript๋ก ๋์ด๊ฐ ์ ์์ต๋๋ค!
let letter = "abcdefghijklmnopqrstuvqaxyz"
letter += letter.toUpperCase()
letter += "@#$&*(){}?|!^-+=/"
const lettersArray = Object.assign([], letter)
let pw1 = document.getElementById("pw1")
pw1.value = "Cake"
let pw2 = document.getElementById("pw2")
pw2.value = "is"
let pw3 = document.getElementById("pw3")
pw3.value = "a"
let pw4 = document.getElementById("pw4")
pw4.value = "Lie"
๋น๋ฐ๋ฒํธ์ ๋ด๊ฐ ์ํ๋ ๋ชจ๋ ๊ฐ๋ฅํ ๊ฐ์ผ๋ก ๋ฌธ์์ด์ ๋ง๋ค์์ต๋๋ค. ๋ด์ฅ JavaScript ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋๋ฌธ์๋ฅผ ๊ฐ์ ธ์จ ๋ค์ ๋์ผํ ๋ฌธ์์ด์ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ผ๋ถ ํน์ ๋ฌธ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ Assign์ด๋ผ๋ ๋ฉ์๋๋ฅผ ์ฐพ์์ต๋๋ค. ์ค๋ช ํ ์๋ ์์ง๋ง ๋งํฌ๋ฅผ ํตํด mdn ๋ฌธ์๋ก ์ด๋ํฉ๋๋ค! (๐) ๋ง์นจ๋ด ์ฐ๋ฆฌ๋ ๊ทธ๊ฐ Password ๋ฉ์๋๋ฅผ ์์ฑํ๋๋ก ํ์ต๋๋ค!
function generatePassword(){
var message1 = ""
var message2 = ""
var message3 = ""
var message4 = ""
for(let i = 0; i < 13; i++){
message1 += lettersArray[Math.floor(Math.random() * letter.length)]
message2 += lettersArray[Math.floor(Math.random() * letter.length)]
message3 += lettersArray[Math.floor(Math.random() * letter.length)]
message4 += lettersArray[Math.floor(Math.random() * letter.length)]
}
pw1.value = message1
pw2.value = message2
pw3.value = message3
pw4.value = message4
}
์ด ๋ฉ์๋๋ ๋ฒํผ์ ํด๋ฆญํ ๋๋ง๋ค ํธ์ถ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ 13์๋ก ํ๋ ์ฝ๋ฉํ์ต๋๋ค. ์๋ง๋ ํฅํ ์ ๋ฐ์ดํธ์์ ์ฌ์ฉ์๊ฐ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํ๋ ๊ธฐ๊ฐ์ ์ ํํ ์ ์๋๋ก ํ์ฉํ ๊ฒ์ ๋๋ค!
์ด๊ฒ์ผ๋ก ์ด ํ๋ก์ ํธ๋ฅผ ๋ง์น๊ฒ ์ต๋๋ค! ๋ด๊ฐ ๋ฐฐ์ด ๊ฒ ์ค ๊ฐ์ฅ ์ข์ํ๋ ๊ฒ์!
์ค๋์ ์ฌ๊ธฐ๊น์ง์ ๋๋ค ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๋ด๊ฐ ์์ ํ๊ณ ์๋ ํ๋ก์ ํธ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๊ฒ์ํ ์ ์๋ ํธ์ํฐ์ Dev Vlog๊ฐ ์๋ YouTube ์ฑ๋์ ๋ํ ๋งํฌ๋ฅผ ๋จ๊ธธ ๊ฒ์ ๋๋ค. ๋ค์ ํธ์์ ๋ง๋์!
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐๋ฌด์์ ์ํธ ์์ฑ๊ธฐ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/jobsoncodes/random-password-generator-aooํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค