패스트캠퍼스 메가바이트스쿨 Day6 (2주차 월요일 - Web Programming 2)

ctaaag·2022년 4월 18일
0
post-thumbnail

Today Topic : Web Programming 2


🗝 Keywords

✅ JS와 Web

✅ JS의 Server 활용(node.js)

✅ Html 태그 사용의 중요성

✅ Html outline

✅ CSS가 중요한 이유



1. JS와 Web

🚀 자바스크립트가 웹에서 동작하는 방식 (1)

  • script태그를 통해 html 요소 값을 찾아 textContent라는 프로토타입 함수가 작동하는 코드 및 과정

🚀 자바스크립트가 웹에서 동작하는 방식 (2)

  • 렌더링 엔진 : 돔을 처리하는 엔진(doctype) 토큰 발행 html,css
  • js 엔진 : script 태그에 있는 것을 작동하는 토큰 발행

🚀 자바스크립트가 웹에서 동작하는 방식 (3)

  • js엔진이 자바스크립트 코드로 움직이는 단계
  • var a = 5;라는 코드를 입력하면 각각의 요소들을 쪼개서 UTF-8 사전을 이용해 2진수 형태로 저장
  • lexer로 자신의 규칙을 이용해 어떤 기호인지 기초적 의미 부여
  • ast 객체 : parser는 어셈블러 형식으로 수행하는데 이 때 트리구조를 사용함
  • 어셈블러 : ast를 이용해 어셈블러 형식으로 번역됨.
  • 머신코드 : cpu의 계산회로를 구동시킴
  • ecma script를 통해서 js엔진이 인간을 위한 기호적 표현을 cpu를 위한 기계적 명령으로 번역하여 작동시키는 과정으로 만드는 것
  • 기계명령으로 바꾸는 중간단계를 큰 트리구조(각 항목별로 묶는다)로 만든다


2. JS의 Server활용(node.js)

🚀 JS 엔진의 OS 작동

  • 자바스크립트는 브라우저 안에서 동작하도록 시작됐지만, js엔진이 바깥으로 나오면서 즉, os에 직접적으로 명령을 하면서 html없이 다양하게 사용할 수 있는 언어가 되었음.
  • 이로 인해서 js엔진으로 node.js를 사용할 수 있게 됨. 이로 인해서 모던한 자바스크립트를 사용할 수 있게 되었다고 봐도 무방함.
  • 일렉트론을 통해 설치하는 프로그램을 자바스크립트로 짜는 등의 행동이 가능함

JS로 로컬 서버만들어서 웹페이지 만들기

const http = require('http');
const fs = require('fs');
function mySet(req,res) {
    let url = req.url ;
    if (req.url === '/') {
        url = '/index.html';
    } 
    if (req.url === '/') {
        url = '/about.html';
    } 
    res.writeHead(200);
    let htmlFile = fs.readFileSync(__dirname + url);
    res.end(htmlFile);
};
var app = http.createServer(mySet);
app.listen(8080);
<!DOCTYPE html>
<html lang="en">
<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">
    <link rel="icon" href="data:;base64,iVBORw0KGgo=">
    <title>About</title>
</head>
<body>
    <h1>첫 페이지입니다.</h1>
    <img src='./door.png'>
</body>
</html>

🚀 JS로 서버만들기

  • 위와 같이 만들면 자바스크립트 서버를 자체적으로 만들 수 있음
  • node로 위의 자바스크립트를 실행하고, localhost : 8080 으로 접속하면 자바스크립트 내의 서버 활성화
  • 다만, 이런식으로 모든 서버를 하나씩 구동하기에는 시간이 많이 걸리니 웹페이지 서버 툴을 사용함
  • 그렇다고 해당 웹 서버가 어떤 형태로 만들어지는지 모르면 안됨


3. Html 태그 사용의 중요성


🚀 Html 태그 사용의 중요성

  • html의 태그는 잘 고민해서 사용해야함
  • 같은 h1 태그이더라도 검색엔진에 무엇을 노출시킬지 전략에 따라서 다르게 사용할 수 있음.
  • 돈이 되는 것은 h1, 돈이 안되는 것은
  • 프론트엔드 개발자는 psd->html로 옮기기만 하는 것이 아님
  • 데이터를 뿌리기 좋게 html 구조를 짜고, 의미화를 잘 할 수 있는 구조인지가 굉장히 굉장히 중요하다.
  • 그래서 html은 프론트엔드를 하면 할수록 어렵다.

🚀 Html내의 중요도에 따른 태그 구분

  • header,main,footer는 영향을 안주고
  • section, article,aside,nav는 섹셔닝 태그로서 의미구조에 영향을 미침


4. Html Outline

🚀 Naver, Toss의 Html outline 비교

  • html outline은 크롬 브라우저의 HTML5 Outliner 프로그램 설치 후 웹페이지를 보면 아웃라인이 어떻게 적용되어있는지 볼 수 있음
  • outline이 중요한 이유는 무엇에 따라서 html에서 목차로 적용하는지 알 수 있고, 이는 곧 html 구성요소 중 우선순위는 무엇에 있는지
  • 검색엔진은 무엇을 중심으로 할 것인지 구성할 수 있기 때문이다.

🚀 실습) 아웃라인을 고려한 Html 구조 설계하기

🚀 내가 짠 코드 리뷰

  • header,main,aside,footer 구분을 할 것.
  • h1을 검색엔진 상위노출을 위해 다른 것으로 할 수 있지만, 그럴 경우에는 나머지 태그들에 대해서 잘 정리를 해줘야함.
  • header와 footer는 웹페이지 내에 여러개로 만들어도 상관 없음. 한 묶음안에 header가 들어가기 보다는 다른 묶음들에서 header,footer 사용이 좋음
  • html 구조를 생각할 때는 1)seo 노출 2)협업 3)css 순서대로 고려해야함. css를 우선 고려할 필요는 없음. 왜냐? css는 어떻게든 만들 수 있기 때문. 그렇기에 css 실력이 중요한 것.


5.CSS가 중요한 이유

🚀 CSS 개발자도구로 확인하기

  • dom은 html이 만들고, css는 cssom을 만들어냄
  • dom은 프로퍼티, css는 computed에서 확인이 가능함.
  • 항상 웹페이지 만들고 개발자도구로 확인하는 습관을 들일 것!

🚀 CSS적인 사고하기

  • 프론트엔드 개발자는 1)css 매커니즘을 잘 이해하는 것 2) 상자를 머릿속으로 그릴 줄 아는 것. 두 가지의 능력이 필요함.
  • 오랜경력을 통해서 감으로 하는 것과, 정확하게 어떤 동작원리로 CSS를 만들어낼 수 있는지 아는 것은 굉장히 다름
  • 예를 들어, div 태그를 만들었을 때 생기는 태그의 여백은 왜? 16픽셀인지, 그런데 개발자도구로 확인하면 19픽셀인데 왜그러는지 아는가?
  • 현업에서 서비스를 a부터 z까지 설계해야할 때는 해당 부분에 대한 이해가 없다면 굉장히 난항을 겪을 것이기 때문에 기본 원리를 철저히 알아두도록 하자!
profile
프로그래밍으로 지속가능한 세상을 꿈꾸며

0개의 댓글

관련 채용 정보