---
# System prepended metadata

title: Day15-학습정리
tags: [2020 Boostcamp]

---

###### tags: `2020 Boostcamp`
# Day15-학습정리

### 스스로 확인할 사항

- **URL 구성 체계에 대해서 이해하고 학습한다.**

  - `<스킴>://<사용자이름>:<비밀번호>@<호스트>:<포트>/<경로>?<질의>#<프레그먼트>`

  - Scheme

    - 사용할 프로토콜을 말하며, 리소스에 어떻게 요청, 접근할 것인지를 명시
    - 웹에서 주로 HTTP 프로토콜을 사용
    - 그 밖에 ftp, mailto(이메일), rtsp(스트리밍)과 같은 프로토콜을 사용 가능

  - Username & Password

    - 어떤 서버들은 자신이 가지고 있는 데이터에 접근하기 위해서 사용자의 이름과 비밀번호를 요구

      `ftp://admin:12345@호스트/afeg.xls`

    - 서버에서 사용자이름과 비밀번호를 요구하는 URL 스킴을 사용함에도 클라이언트가 이를 명시하지 않고 URL에 접근한다면, 기본값으로 "사용자 이름 : anonumous , 비밀번호는 브라우저에서 제공하는 기본 값"을 따르게 됨

  - Host & Port

    - 하나의 Host( 컴퓨터 )에는 여러 개의 Process가 각각의 Socket 을 사용하여 데이터 통신을 하고 있기 때문에, 각각의 소켓을 구분해야 함
    - 이 때 소켓을 구분하는 역할을 하는 것이 Port
    - HTTP 프로토콜에서 포트 번호를 명시하지 않으면, 80번 포트를 기본 값으로 사용

  - Path

    - 호스트에서 제공하는 자원의 경로를 의미

      ` https://movie.naver.com/movie/running/current.nhn`

  - Query

    - Query String (쿼리 스트링)이라고도 함

    - 클라이언트가 자원을 GET 방식으로 요청할 때, 필요한 데이터를 함께 넘겨 줄 목적으로 사용

    - 함수에 쓰이는 파라미터와 비슷한 개념

      ` http://localhost:3000/index?id=3&page=1`

  - Fragment

    - URL에 프래그먼트를 전달하면 페이지가 해당 id가 있는 곳으로 스크롤이 이동

      ` http://victorydntmd.tistory.com/287#bottom`

- **정규 표현식 다양한 문법을 종류를 학습하고 구현에 필요했던 내용을 중심으로 정리한다.**

  - 정규 표현식
    - 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어
    - 주로 Programming Language나 Text Editor 등 에서 문자열의 검색과 치환을 위한 용도로 쓰임
    - 코드가 간단한 만큼 가독성이 떨어져서 표현식을 숙지하지 않으면 이해하기 힘듬
    ![](https://i.imgur.com/SztFftj.png)
    - 문법
    ![](https://i.imgur.com/0JMIBPa.png)
    ![](https://i.imgur.com/ZTu3QhL.png)


- **파운데이션 URL 개발자 문서를 확인해서 구현한 내용과 비교한다.**

  - URL을 만들고 parts에 접근 할 수 있다는 점에서 유사함
  - init이 optional임
  - baseURL, fragment, relativePath, standardized 등의 다양한 property 존재
  - Bookmark Data를 다룰 수 있음
  - 해당 URL의 Reachability 를 체크할 수 있음

### 다같이 확인할 사항

- **URL Encoding 은 무엇이고, 왜 필요한지 자기만의 방식으로 설명한다.**
  - `URL Encoding`
    - 문자나 특수문자를 웹 서버와 브라우저에서 보편적으로 허용되는 형식으로 변화하는 메커니즘
    - ASCII 문자 집합을 사용하여 인터넷을 통해서만 전송 가능
    - URL은 유효한 ASCII 형식으로 변환되어야 함
    - 안전하지 않은 ASCII 문자를 "%" 다음에 두 개의 16진수로 대체
    - URL은 공백을 포함할 수 없음. URL 인코딩은 일반적으로 공백을 `더하기 (+) 기호` 또는` % 20`으로 바꿈
    - `"헬로우 WORLD" --> text=%ED%97%AC%EB%A1%9C%EC%9A%B0+WORLD`
  - 세상에 다양한 문자가 존재하고, 이를 일반화 시켜 web을 이용하기 위해선 인코딩이 불가피하다‼️
- **정규 표현식을 활용하는 다양한 사례를 찾아보고 비교해본다.**
  - 개인정보 유출 탐지
  - 웹 크롤링
  - 검색 엔진
  - Syntax highlighting
  - 데이터 검증





