/samsung_clone

๐Ÿ’™ ์‚ผ์„ฑ์ „์ž์„œ๋น„์Šค ํด๋ก  ํ”„๋กœ์ ํŠธ - ์กด๊ฒฝํ•˜๋Š” ๋งˆ์Œ์œผ๋กœ ์˜ค๋งˆ์ฅฌ

Primary LanguageCSS

Samsung_clone

์‚ผ์„ฑ์ „์ž ํ™ˆํŽ˜์ด์ง€ ํด๋ก  ํ”„๋กœ์ ํŠธ

pptํ‘œ์ง€

- ๋ฐฐํฌ ๋งํฌ : https://firstproject-79ba9.firebaseapp.com/ (๋ฐ˜์‘ํ˜•, ์ „์ฒด ํŽ˜์ด์ง€ ์ค‘ ๋ฉ”์ธ)

๊ฐœ๋ฐœ ๋ชฉ์ 


  1. ์ˆœ์ˆ˜ HTML, CS, JS๋ฅผ ์ด์šฉํ•œ ํด๋ก  ์ฝ”๋”ฉ์œผ๋กœ UI์™€ ์ธํ„ฐ๋ž™์…˜ ๊ตฌํ˜„
  2. ์ฟ ํ‚ค์™€ ์„ธ์…˜ ๊ธฐ์ˆ ์„ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  3. ์›นํŒฉ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋ง์„ ํ†ตํ•œ ์ •์  ํŒŒ์ผ ์˜์กด์„ฑ ๊ด€๋ฆฌ

Deployment Architecture


๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ด์šฉ ํ”„๋กœ๊ทธ๋žจ
๊ฐœ๋ฐœ๋„๊ตฌ VS Code
DBMS MySQL
Server Express
Language HTML5, CSS3, JavaScript(ES6), node.js, SCSS
ํ”„๋ ˆ์ž„ ์›Œํฌ Mybatis
์˜์กด์„ฑ ๊ด€๋ฆฌ Webpack
๋””์ž์ธ ํˆด Adobe Illustrator
๋ฌธ์„œ ํˆด MS PowerPoint, MS Excel

DB Schema


DB shema_์ œ์ž‘

๊ตฌํ˜„ ๊ธฐ๋Šฅ


์ด 7 ํŽ˜์ด์ง€์˜ ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•˜์˜€์œผ๋ฉฐ ๋ฉ”์ธ์˜ ๊ฒฝ์šฐ ๋ชจ๋ฐ”์ผ์— ๋Œ€์‘ํ•œ ๋ฐ˜์‘ํ˜•์œผ๋กœ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์›น ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๊ณ  ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (Chrome, Edge)

- ๋ฉ”์ธ ํŽ˜์ด์ง€

๋ฉ”์ธ

- ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€

Screen Shot 2022-08-02 at 8 32 57 AM

export const $id = document.getElementById('id')
export const $password = document.getElementById('password')
export const $submit = document.getElementById('submit')

export function autofocus() {
  window.addEventListener('load', function () {
    $id.focus()
  })
}

export const $idmsg = document.getElementById('id-msg')
export const $pwmsg = document.getElementById('pw-msg')

export const ID_REGEX = new RegExp('^[a-z0-9_-]{5,20}$')
export const PW_REGEX = new RegExp('^[A-Za-z0-9]{8,16}$')

export const ID_ERROR_MSG = {
  required: 'ํ•„์ˆ˜ ์ •๋ณด์ž…๋‹ˆ๋‹ค.',
  invalid: '5~20์ž์˜ ์˜๋ฌธ ์†Œ๋ฌธ์ž, ์ˆซ์ž์™€ ํŠน์ˆ˜๊ธฐํ˜ธ(_),(-)๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.',
}

export const PW_ERROR_MSG = {
  required: 'ํ•„์ˆ˜ ์ •๋ณด์ž…๋‹ˆ๋‹ค.',
  invalid: '8~16์ž์˜ ์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž, ์ˆซ์ž๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.',
}

export const checkIdValidation = function (value) {
  let isValidId
  if (value.length === 0) {
    isValidId = 'required'
    $id.style.border = '1px solid red'
    $idmsg.innerText = ID_ERROR_MSG[isValidId]
  } else {
    isValidId = ID_REGEX.test(value) ? true : 'invalid' // test ๊ฒฐ๊ณผ๊ฐ€ true๋ฉด true๋ฅผ ์ฃผ๊ณ , false๋ฉด invalid
    console.log(isValidId)
    if (isValidId !== true) {
      $id.style.border = '1px solid red'
      $idmsg.innerText = ID_ERROR_MSG[isValidId] // ID_ERROR_MSG[invalid] or ID_ERROR_MSG[required]
    } else if (isValidId === true) {
      $id.style.border = '1px solid white'
      $idmsg.remove()
    }
  }
}

export function Idfocusout() {
  if ($id.value == null) {
    $id.addEventListener('focusout', () => checkIdValidation($id.value))
  } else {
    $id.addEventListener('focusout', () => checkIdCheck($id.value))
  }
}

export function Pwfocusout() {
  if ($password.value == null) {
    $password.addEventListener('focusout', () =>
      checkPasswordValidation($password.value)
    )
  } else {
    $password.addEventListener('focusout', () =>
      checkPasswordCheck($password.value)
    )
  }
}

export const checkPasswordValidation = function (value) {
  let isValidPw
  if (value.length === 0) {
    isValidPw = 'required'
  } else {
    isValidPw = PW_REGEX.test(value) ? true : 'invalid' // test ๊ฒฐ๊ณผ๊ฐ€ true๋ฉด true๋ฅผ ์ฃผ๊ณ , false๋ฉด invalid
    console.log(isValidPw)
    // ์ปค์Šคํ…€ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€
    // (1) ๋น„์–ด์žˆ์„ ๋•Œ (2) ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’์ผ๋•Œ
    // input ํƒœ๊ทธ์— border-red-600 class ์ถ”๊ฐ€ & **-msg div์— ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ถ”๊ฐ€
    if (isValidPw !== true) {
      // isValidId -> invalid, required
      $password.style.border = '1px solid red'
      $pwmsg.innerText = PW_ERROR_MSG[isValidPw] // ID_ERROR_MSG[invalid] or ID_ERROR_MSG[required]
    } else if (isValidPw === true) {
      $password.style.border = '1px solid white'
      $pwmsg.remove()
    }
  }
}

export const checkIdCheck = function (value) {
  const isValidIdCheck = 'n_uck' === $id.value
  console.log(isValidIdCheck)
}

export const checkPasswordCheck = function (value) {
  const isValidPwCheck = 'Z13508975z' === $password.value
  console.log(isValidPwCheck)
}

export function LoginSubmit() {
  $submit.addEventListener('click', (e) => {
    e.preventDefault() // submit์ด ๊ฐ€์ง„ ๊ณ ์œ ์˜ ๊ธฐ๋Šฅ ๋ง‰์•„์คŒ (form์˜ ๊ฐ’์„ ์„œ๋ฒ„์— ์ „์†กํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์•„์คŒ)
    console.log('๋กœ๊ทธ์ธ ์™„๋ฃŒ')
    checkIdValidation($id.value)
    checkIdCheck($id.value)
    checkPasswordValidation($password.value)
    checkPasswordCheck($password.value)

    if ($id.value == 'n_uck') {
      if ($password.value == 'Z13508975z') {
        window.open('http://192.168.0.119:5500/front-end/index_login.html')
      } else {
        alert('๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค.')
      }
    } else {
      alert('์•„์ด๋””๊ฐ€ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค.')
    }
  })
}