본문 바로가기
국비학원/수업기록

국비 지원 개발자 과정_Day46

by 루팽 2023. 2. 1.

<시험1-UI 디자인서술형(신)>

h태그의 종류와 큰 크기순으로 순서대로 작성

<h1>, <h2>, <h3>, <h4>, <h5>, <h6>

<h1>태그의 크기가 가장 크고 <h6>태그의 크기가 가장 작다

 

텍스트 노드가 있는 태그를 작성하는 구조

태그 사이에 적는 일반 문자열도 문서 트리 구조에서는 텍스트 노드라는 이름의 노드로 취급

<p>텍스트</p>

 

<br>태그

텍스트 안에 줄 바꿈을 생성하는 태그

 

ul태그에 대해 설명하고 작성방법

순서가 없는 HTML 리스트를 정의할 때 사용

<ul> 요소에 속하는 각 아이템은 <li> 요소를 사용하여 나타냄

<ul>
    <li>텍스트1</li>
    <li>텍스트2</li>
</ul>

 

표를 표현하는 태그가 무엇이고 사용방법

표는 table 태그로 만든다

th로 테이블의 타이틀, tr로 행을 나타내고 td로 각 행에 이어진 열을 나타낸다

<table border="1">
      <tr>
        <th>타이틀1</th>
        <th>타이틀2</th>
      </tr>
      <tr>
        <td>1행 1열</td>
        <td>1행 2열</td>
      </tr>
      <tr>
        <td>2행 1열</td>
        <td>2행 2열</td>
      </tr>
</table>

 

rowspan를 사용하는 태그와 용도를 작성

td태그의 행(row, 가로)을 합칠 때 사용

 

h1태그와 p태그를 이용해서 그림과 같은 페이지에 출력되도록 작성

<!DOCTYPE html>
<html>
  <body>
    <h1>My First Heading</h1>
    <p>My first paragraph.</p>
  </body>
</html>

 

input태그를 이용해서 그림과 같이 페이지에 출력되도록 작성

<!DOCTYPE html>
<html>
  <head> </head>
  <body>
    <h2>HTML input</h2>
    <form action="" method="get">
      <input
        type="text"
        id="user_id"
        name="user_id"
        placeholder="아이디입력"
        required
      />
      <br />
      <select name="title" id="title">
        <option value="">제목</option>
      </select>
      <input
        type="search"
        id="search"
        name="search"
        placeholder="검색어입력"
        required
      />
      <br />
      <input type="date" id="date" name="date" required />
    </form>
  </body>
</html>

 

 

<시험2-UI 디자인포트폴리오(신)>

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>공지사항 작성하기</title>
    <style>
      div{
        border: 1px solid black;
        padding-top: 15px;
        padding-left: 20px;
        margin-top:25px;
      }
      p{
        background-color: white;
        font: 14px black;
        position: absolute;
        top: 2px;
        left: 20px;
      }
      .text{
        font-size: 14px;
      }
      textarea{
        resize: none;
      }
      .btn-submit{
        margin: 20px 120px;
      }
    </style>
  </head>
  <body>
    <div>
      <p >공지사항 작성하기</p>
      <form action="insert.no" method="post">
        <table>
          <tr>
          <td class="text"><b>제목</b></td>
          <td>
            <input type="text" name="title" placeholder="제목을 입력하시오." size="25px" required>
          </td>
        </tr>
        <tr>
          <td class="text"><b>내용</b></td>
          <td>
            <textarea name="content" placeholder="내용을 입력하시오." cols="27px" rows="10px" required></textarea>
          </td>
        </tr>
        <tr>
          <td class="text"><b>첨부파일</b></td>
          <td>
            <input type="file" value="파일 선택" name="uploadFile">
          </td>
        </tr>
      </table>
      <input class="btn-submit" type="submit" value="작성하기"></input>
    </form>
  </div>
  </body>
</html>

 

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>공지사항 테이블</title>
    <style>
      * {
        padding: 2px;
      }
      .header {
        background-color: rgb(253, 153, 117);
        color: white;
      }
      .header.top {
        height: 45px;
      }
      .content {
        background-color: rgb(252, 252, 223);
      }
      .title {
        width: 400px;
      }
      .btn {
        width: 60px;
      }
      .userId {
        width: 100px;
      }
      .date {
        width: 110px;
      }
      .content {
        background-color: lightgoldenrodyellow;
      }
    </style>
  </head>
  <body>
    <table border="1px white">
      <tr class="header top">
        <th>번호</th>
        <th colspan="2">제목</th>
        <th>작성자</th>
        <th>작성일</th>
        <th>조회수</th>
      </tr>
      <tr class="content">
        <td>9</td>
        <td class="title">공지사항 제목 9</td>
        <td class="btn"><input type="button" value="바로가기" /></td>
        <td class="userId">user01</td>
        <td class="date">2021-03-29</td>
        <td>34</td>
      </tr>
      <tr class="content">
        <td>6</td>
        <td>공지사항 제목 6</td>
        <td><input type="button" value="바로가기" /></td>
        <td>answ445</td>
        <td>2021-03-12</td>
        <td>67</td>
      </tr>
      <tr class="content">
        <td>3</td>
        <td>공지사항 제목 3</td>
        <td><input type="button" value="바로가기" /></td>
        <td>testg12</td>
        <td>2021-03-01</td>
        <td>98</td>
      </tr>
      <tr class="content">
        <td>2</td>
        <td>공지사항 제목 2</td>
        <td><input type="button" value="바로가기" /></td>
        <td>palwe3</td>
        <td>2021-01-02</td>
        <td>85</td>
      </tr>
      <tr class="content">
        <td>1</td>
        <td>공지사항 제목 1</td>
        <td><input type="button" value="바로가기" /></td>
        <td>xml23</td>
        <td>2020-12-24</td>
        <td>124</td>
      </tr>
      <tr class="header">
        <th colspan="4">전체공지사항 갯수</th>
        <th colspan="2">5개</th>
      </tr>
    </table>
  </body>
</html>

 


 

<변수>

console.log("3"); // 3

/* 
변수
특정 데이터 값을 임시로 저장하는 공간

사용 이유
반복 사용(일괄처리), 자주 사용
반복적인 구문에서 여러 코드에 걸쳐서 사용될 때

변수 선언 방식
ES5 - 호이스팅이슈(기술면접 주요 질문)

let, const(ES6 - ECMAScript2015)
let: 변경될 수 있는 값을 저장할 때
const: 변경되지 않는 값을 저장할 때

변수 작성시 주의사항
1. 숫자로 시작 불가
2. 특수문자 삽입 불가(언더스코어, $)
3. 예약어 사용 불가
4. 대소문자 구분

변수의 유효범위
1. 전역변수 - window
코드블록 밖에서 선언된 변수
해당 코드 전역에서 접근 가능
여러 개의 서로 다른 함수들이 같은 값을 공유해야될 때(중요)
전역변수가 많아지면 전역변수 오염 발생

2. 지역변수 - 코드블록 안에서만 사용
코드블록 안에서 선언된 변수
해당 코드 블록 안에서만 접근 가능
변수 값을 해당 코드 블록안에서만 사용 가능
*/

const 한글 = "10";
console.log(한글); // 10

 

<호이스팅, 즉시실행함수>

console.log(text); // undefined
text = "hello";
var text;
console.log(text); // hello

/* 
호이스팅(hoisting)
블록안에서 선언된 지역변수가 코드 블록 밖으로 끌어 올려지면서
강제로 전역변수화 되는 현상
*/

const btns = document.querySelectorAll("ul li");
// 즉시 실행 함수 - 함수가 자기자신을 정의하자마자 즉시 자신을 호출함
// 특정 원하는 공간으로 빠져나가지 않게 하기위해서 사용(캡슐화됨)

/* 
괄호가 2개 들어감
첫번째 괄호 - 함수의 선언부 의미
두번째 괄호 - 함수 호출하는 괄호
익명함수 형태인데 호출이 되는 이유 -> 두번째 괄호가 있기 때문에 가능함
*/
for (var j = 0; j < btns.length; j++) {
  ((index) => {
    btns[j].addEventListener(
      "click",
      () => {
        console.log(index);
      } // end of click event
    );
  })(j);
} // end of for

 

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script defer src="./호이스팅.js"></script>
  </head>
  <body>
    <ul>
      <li>button1</li>
      <li>button2</li>
      <li>button3</li>
    </ul>
  </body>
</html>

 

<프로토타입>

function Person() {}

Person.prototype.eyes = 2;
Person.prototype.nose = 1;
Person.prototype.see = function (pic) {
  console.log(pic);
};

const kim = new Person();
const park = new Person();

console.log(kim.eyes); // 2
kim.see("사진"); // 사진
console.log(park.nose); // 1

/* 
프로토타입 기반 언어
JavaScript는 흔히 프로토타입 기반 언어(prototype-based language)라 불린다
모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 프로토타입 객체(prototype object)를 가진다는 의미
프로토타입 객체도 또 다시 상위 프로토타입 객체로부터 메소드와 속성을 상속 받을 수도 있고 그 상위 프로토타입 객체도 마찬가지
이를 프로토타입 체인(prototype chain)이라 부르며 다른 객체에 정의된 메소드와 속성을 한 객체에서 사용할 수 있도록 하는 근간이다
정확히 말하자면 상속되는 속성과 메소드들은 각 객체가 아니라 객체의 생성자의 prototype이라는 속성에 정의되어 있음
*/

댓글