Front-end 개발

[멋쟁이사자처럼] 프론트엔드 스쿨 7기 - 3일차 기록 및 복습

로그 생성기 2023. 7. 5. 08:37

1. 수업 전 알아두기

1-1. 추천하는 확장도구

- (VSCode) Prettier : 코드 태그 자동생성

- (VSCode) Live Server : 실시간으로 Live Server 웹페이지를 열어 수정사항 확인 가능

   휴대폰과 PC가 동일한 와이파이로 연결되어 있다면 휴대폰에서도 서버 웹페이지를 동일하게 확인가능

VSCode 확장팩인 Liver Server 의 Host IP 설정

- (VSCode) vscode-icons : vscode 내 icon을 변경 가능 (setting > file theme 검색 > Icon Theme: VSCode Icons)

- (VSCode) ident-rainbow : tab 색깔 변경

- (VSCode) Gitmoji : Git 활용시 커밋 메시지에 이모지 적용

- (VSCode) Ayu Mirage Bordered : (미설치)

- (VSCode) Power Mode : 타이핑 시 이펙트를 적용 (Power Mode/Extention Settings > Enabled, Shake diabled)

- (크롬) HeadingsMap : 웹페이지 HTML(header) 목차를 확인

- (크롬) OpenWAX : (미설치)

1-2. 폴더 및 파일 작명 컨벤션 (규칙)

- 영어 소문자, 하이픈(-) 를 사용하기

- 구글 검색 엔진은 하이픈을 단어 구분자로 취급 (SEO)

- 공백, 언더바(_) 사용하지 않기

1-3. HTML/CSS 파일구조 및 파일 경로

- 상대경로, 절대경로

1-4. 크롬 개발자 도구

- F12

- 인프런 무료 개발자도구 강의 (제주코딩베이스캠프)

1-5. Web

- Internet 과 Web 은 다르다.

- Internet 에는 Web(HTTP/HTTPS), Email(SMTP/POP3/IMAP), FTP(파일전송, FTP/SFTP)) 등의 서비스가 있음

- 네트워크는 컴퓨터와 컴퓨터를 연결해주는 망. 네트워크와 네트워크가 모여 더 큰 네트워크인 인터넷이 됨

 

1-6. HTML (HyperText Markup Language), CSS (Cascading Style Sheets), JS(JavaScript)

- HyperText : 정해진 순서 없이, '참조'를 통해 한 문서에서 다른 문서로 접근할 수 있는 텍스트

- Hyper: 과도, 초과, 최고

- 종이에 인쇄된 텍스트 기술의 한계를 초월한 고차원적인 기술

- 마크업 언어 (Markup Language) : 태그 등을 이용하여 문서나 데이터의 구조를 표시하는 언어

- HTML 은 프로그래밍 언어가 아닌 콘텐츠의 구조를 정의하는 마크업 언어!

- 웹을 이루는 가장 기초적인 구성 요소, 웹 콘텐츠의 의미와 구조를 정의

- CSS는 웹페이지의 모양/표현

- JS는 웹페이지의 기능/동작

1-7. HTML 최신버전

- HTML5 라는 용어는 최신 웹 기술을 가리키는 유행어 (출처 mdn)

- HTML 4.01과의 차별화를 위한 용어

- 2019년 5월 28일부터는 WHATWG와 W3C에서 Living Standard를 HTML 의 유일한 버전으로 발표

- 즉, HTML Living Standard 가 최신 표준.

1-8. CSS 최신버전

- CSS3 이후 CSS 명세의 버전은 올리지 않고, 주기적으로 CSS 명세 안정판 스냅숏을 생성 中

- CSS 도 버전이 없다고 보면 됨

- <!DOCTYPE html> Tag 는 html로 작성된 문서임을 알려줌

2. HTML/CSS

2-1. HTML 요소(Elements) 분석

- 태그(Tag)

- 웹 문서에 정보를 정의해주는 형식

- 마크업 검사(Markup Validation Service) 습관을 들이자

- VSC 의 확장팩 W3C Validation 이 있음

- 셀프 클로징 설정 (prettier 자동슬러시 생성을 막는 방법)

- 주석 처리 : 리액트 컴포넌트 분할 때, 요류 체크, 협업대화에 이점

- 부모, 형제, 자식, 자손

HTML 가계도

- <!DOCTIPE html> HTML Living Standard 문서라는 의미

- 해당 코드를 통해 어떤 모드로 페이지를 렌더링할지 경적. 작성 시 완전 표준 모드로 렌더링.

- DTD (Dcument type Definition) 라고 부르며 문서의 타입에 대한 정보를 제공

- <html> 문서의 루트, 최상단 요소. 언어설정 lang="ko-KR" 언어코드(소문자)-국가코드(대문자)

- <head> 기계가 식별할 수 있는 문서 정보(메타데이터: 어떤 목적을 위해 만들어진 데이터)를 담는다.

- 검색엔진를 위한 다양한 정보들이 담긴다. 제목(title), 파비콘(favicon), 뷰포트(viewport)

- <meta chartset="UTF-8"> 문자 깨짐 오류가 발생할 수 있으므로 문자 코드의 종료를 설정

- <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 브라우저 호환성을 위해 작성

- IE의 최신 표준 모드를 보여주겠다는 의미 (IE의 다양한 버전(6-11) 때문에 같은 페이지도 다르게 보여지는 경우가 있음)

- <meta name="" content=""> 문서 레벨의 메타데이터(viewport, description, author, ...) 를 제공

- <meta name="viewport" ... > 보여지는 메타데이터, 해당 속성을 사용해도 접근성을 위해 무시하는 브라우저도 있음

- <title> 문서 제목을 정의. 검색 결과로 노출되는 제목. 페이지마다 적절한 제목이 노출되도록 개발하는 것이 중요.

- 약 60자를 넘지지 않도록 한다. 하위페이지 정보를 읽어주고 상위 페이지 내용의 이름을 작성.

서울시청 홈페이지 Title

- <link> 외부 스타일 시트, 폰트, 파비콘(아이콘 형태)을 연결할 때 사용

- rel : relations 관계. 대상 파일의 속성을 나타탬

- href : hypter-reference 경로. 연결할 참조 파일의 경로를 나타냄.

- <body> 

2-2. CSS

- cascading 연속화

- cascade 폭포

- CSS에서 스타일이 적용될 때는, 우선순위를 가지고 적용됩니다. 이 우선순위가 적용되는 과정이 마치 폭포처럼 위에서 아래로 떨어지는 모양이기 때문에 Cascade라는 단어가 붙었습니다.

- 적용방법1 : 인라인 방식 (우선순위가 높다.)

- 적용방법2 : 내부 방식 (빠른 렌더링에 CSS 적용이 필요한 경우)

- 적용방법3 : 외부 방식 (HTML link 마지막 줄이 최종 적용됨)

- 다중 스타일 시트

- @import url(); 방식은 성능 측면에서 CSS를 파싱하기 위한 시간이 더 증가하기 때문에 권장하지 않음.

- import 로 가져온 CSS 파일을 병렬로 다운로드할 수 없으므로 렌더링 프로세스의 지연시간이 증가함

- 선택자: 전체선택자, 타입(유형/요소) 선택자, 아이디 선택자(#), 클래스(.) 선택자

- Class와 ID의 이름은 숫자로 시작하면 안됨, 하이픈(-)과 언더바(_) 그리고 문자로만 시작할 수 있음

- 보통 길게 이어지는 이름의 경우 캐밥(w-w) 케이스로 작성함

- 특성([]) 을 선택하여 적용할 수도 있음

- 그룹 선택자 (,)

- 복합 선택자1: 자손 선택자 section p {}, .sect .text {} (뛰어쓰기 없으면 두개 클래스 가진걸로 해석됨)

- 복합 선택자2: 자식 선택자 (직계자손) section>p {}, section>* {}

- 복합 선택자3: 일반 형제 선택자 (뒤에 나오는 형제만 됨) section~p {}

- 복합 선택자4: 인접 형제 선택자 (뒤에 하나의 형제, 앞은 안됨) section+p {}

- 선택자 학습하는 게임 사이트

2-3. CSS 상속

- section 아래 p를 선택안해도 아래의 p 태그에 속성값이 상속됨

- color 는 상속이 되는데, border 는 상속이 안됨

- 버튼이 section 아래 있어도 color 값을 상속 안함 (상속 받는게 있고 아닌게 있음)

- inherit : 상속받아서 특성을 가진다

- initial : 본연의 값을 사용함

2-4. 텍스트와 관련된 태그들

- 제목 태그 (Heading) : h1, h2, h3, h4, h5, h6

- <h> 테그는 순차적으로 작성해야 함 (크기는 CSS로 맞춘다.)

- h1은 페이지에 하나만 쓰도록 권장 (h1 크기는 자동 작아지도록 조정됨)
  (HTML Living Standard: section뿐만 아니라 article, aside, nav 안에서 h1, h2 크기는 같습니다.)

- <a> 를 통해서 페이지 이동, HTML 요소(ID)로 이동, 전화걸기, 메일 보내기, 다운로드

- <p> paragraph 문단. HTML 블록 요소로 이미지나 입력 폼 등 서로 관련 있는 콘텐츠는 무엇이나 될 수 있음.

- <br> (쉬고 읽는다는 의미) 연속해서 2개를 쓰지 말고 CSS를 활용해 줄간격을 조정하자

           의미가 없는, 시멘틱한 태그가 아님.

- <wbr> 브라우저가 크기에 따라 반응형으로 알아서 태그가 있는 곳을 줄 나눠주도록 함
   한국어는 .ko { word-break: keep-all} 를 같이 써야함

- <code> 짧은 코드 조각 (1줄)을 나타낼 때 사용함

- <pe> HTML 에 작성한 내용 그래도를 표현함. 여러줄 코드를 보여줄 때

- <strong> 강조, 긴급한 콘텐츠를 나타냄 (스크린 리더에서 강조해서 읽음. 단순 굵기는 CSS 처리하시오.)

- <b> 굵은 글씨. 하지만 사용하지 않는 것을 권고함.

- <em> (Emphasis 강조, 강한 어조) 강조해서 읽을 것. Itelic 체로 바꾸기 위해서 쓰는것이 아님.

- <i> Itelic 형태로 변경한다.

- <q> 따옴표를 넣는 짧은 인용문을 나타냄.

- <backquote> 긴 인용문

- <cite> 출처

- <address> 연락처 정보, 물리적 주소, URL 등. 연락처 외 정보는 적지 않는다.

- <mark> 현광팬, 하이라이트

- <abbr> abbreviation 약어를 나타냄. 

- <sup> 위 첨자 요소로 지수, 서수 표기를 위해 사용함

- <sub> 아래 첨자 요소로 각주, 변수, 화학식 등을 표기하기 위해 사용

- <Kbd> 키보드 입력, 음성 입력 등 임의의 장치를 사용한 사용자의 입력을 나타냄

2-5. HTML Validator Check

- 작성한 HTML 오류 검사 사이트를 통해 문법적 오류를 체크하는 습관을 들여야 함

- VSCode 상에서 HTML/CSS 문법적으로 오류가 있어도 에러없이 실행이 되기도 하기 때문

Markup Validation Service 의 HTML Checker

3. 오늘 배운 내용 Github 에 업로드 하기

3-1. Github 에서오늘자 새로운 폴더와 목차를 쓴 memo.txt 파일 생성

3-2. 수업 코드 로컬 폴더에서 터미널 열고 입력한 GIt 명령어 (VSCode 터미널)

- git remote add origin https://github.com/redcontroller/front_end_school_7.git

- git remote -v
  첫줄 (fetch), 두번째 줄(push) 가 나오면 Github (원격저장소와) 와 연결된 것

- git pull origin main

- git add .

- git commit -m "2023.07.05 수업"

- git push origin main

Git CLI 로 업로드 성공한 Github Repository