방학 불태우기 14

김민석·2021년 8월 10일
0

방학

목록 보기
14/16

URL

URL은 Uniform Resource Locator의 약자로 네트워크 상에서 자원이 어디 있는지 알려주기 위한 규약이다.

쉽게 말해서, 웹 페이지를 찾기 위한 주소를 의미한다.

URL의 구조는 다음과 같다.

프로토콜은 scheme라고도 하며 자원에 접근할 방법을 정의한 것들이다. gopher, telnet, ftp, http 등이 있다.

그리고 프로토콜과 호스트 사이에 사용자정보가 존재하기도 하는데, 사용자의 아이디와 비밀번호를 나타내는 부분이다. https://user_name:pass-word@www.example.com/ 이런 식으로 프로토콜과 호스트 사이에 적을 수 있다.

호스트는 도메인을 나타내며 포트와 함께 나타낼 수 있다. 포트번호를 통해 웹서버에 접근할 수 있으며 보통 정해진 포트번호를 사용하기에 생략도 가능하다.(HTTP는 80, HTTPS는 443의 포트번호를 가짐)

경로는 웹서버에서 자원에 대한 경로를 나타낸다.

매개변수는 웹서버에 제공하는 추가 파라미터이다. ?변수=값&변수=값 처럼 활용하여 웹서버에 파라미터를 넘겨줄 수 있다.

부분식별자는 자원의 세부 부분을 지정할 때 사용한다. 북마크 느낌으로 특정 지점의 내용을 보여준다.
예를들어 https://ko.wikipedia.org/wiki/대한민국#문화 를 통해 위키피디아의 대한민국 문서에서 문화라는 세부 주제로 바로 갈 수 있다.
이 부분은 가치가 없어서 서버로 요청을 보내지 않는다고 한다.

참고: https://www.betterweb.or.kr/blog/url%EC%9D%B4%EB%9E%80/
https://developer.mozilla.org/ko/docs/Learn/Common_questions/What_is_a_URL

URL Encoding

URL 인코딩이란 URL에 URL로 사용할 수 없는 문자나, 사용할 수 있지만 의미가 왜곡될 수 있는 문자들을 16진수의 형태로 변환하는 것을 의미한다. URL에서 %xx 꼴로 나타내어 지는 것들이 인코딩 된 것들이다.


그림에서처럼 URL을 변화시키는 것을 인코딩, 복원하는 것을 디코딩이라고 한다.

URL 인코딩과 디코딩이 필요한 이유는 다음과 같다.

우선 인터넷을 통해 전송할 수 있는 문자는 ASCII 문자 뿐이기 때문이다. 위의 예시에 나온 한글과 더불어 다양한 문자들을 전송이 불가능하다. 따라서 이런 것들을 유니코드를 활용하여 나타내며 UTF-8을 따라서 인코딩 하여 전달하게 된다.

그리고 ASCII 문자라 하더라도 예약된 의미를 가지고 있는 문자의 경우 예약된 의미가 아닌 문자 자체의 의미를 전달하고 싶을 때 인코딩을 사용한다. 실제로 URL에서는 /,&,= 등 다양한 기호를 의미를 부여하여 사용하는데, 이 기호들의 문자 그대로의 의미를 전달하고 싶을 때 인코딩을 사용하여 전달하게 되는 것이다.

참고 : https://it-eldorado.tistory.com/143

정규표현식

참고 : https://beomy.tistory.com/21
https://j2doll.tistory.com/646
https://poiemaweb.com/js-regexp

모듈 의존성 관리 방법

복잡한 시스템을 개발하기 위해서는 하나의 파일로만 관리하기가 힘들다. 따라서 다양한 파일을 작성하여 모듈 단위로 파일을 분리한다. 이렇게 분리한 모듈을 필요한 곳에서 임포트 하여 사용할 수 있어야 한다.

CommonJS

Node.js에서의 모듈 시스템은 CommonJS를 사용한다.

var mod1 = require('./mod1.js');
var mod2 = require('./mod2.js');

function mod3(){};

module.exports = mod3;

위와 같이 필요한 모듈을 가지고 있는 파일로부터 require을 통해 모듈을 가져오고, module.exports를 통해 모듈을 내보낼 수 있다.

ES6 Module

ES6에서 정의한 표준 모듈 시스템으로는 ES6 Module이 있다.

// lib.js
export function sayHello() {
  console.log('Hello');
}
// index.js
import { sayHello } from './lib';
sayHello(); // Hello

ES6에서는 export와 import를 사용하여 모듈을 가져오고 내보낼 수 있다.

NPM

npm은 자바스크립트 패키지 저장소로 누구나 npm에 자신이 만든 패키지를 공개할수도, 남이 만든 패키지를 설치하여 사용할 수도 있다.

Package.json

package.json을 통해 여러 속성들을 관리할 수 있다.

참고 : http://tlog.tammolo.com/blog/JS-NPM-ca507e45-6a79-48d9-ae6b-108ed5e5163a/

더 알아보기

profile
김민석의 학습 정리 블로그

0개의 댓글