[Day63] Node.js - URI, URN, URL (part 2)

Validator·2023년 9월 13일
0

URI, URL, URN의 실용적인 측면과 웹 개발에서의 적용

웹 개발에서 URI/URL의 중요성

  1. 자원 접근의 표준화: URI/URL은 웹에서 자원에 접근하는 표준 방식을 제공한다. 웹 브라우저, 서버, API 등 모든 것이 이 표준을 따른다.

  2. 동적 콘텐츠 생성: URL을 통해 서버는 사용자의 요청에 따라 동적으로 콘텐츠를 생성하고 제공할 수 있다. 예를 들어, 쿼리 문자열을 사용해 데이터베이스 검색 결과를 필터링하거나 정렬할 수 있다.

  3. 사용자 친화적인 경로: URL을 잘 구성하면 사용자가 웹사이트 내에서 쉽게 탐색할 수 있다. 예를 들어, www.example.com/products/shoes는 사용자에게 이 URL이 신발 제품에 관한 페이지임을 명확하게 알려준다.

웹 개발에서 URI/URL 사용 예시

  • RESTful API: REST 아키텍처 스타일에서 URL은 자원의 위치와 해당 자원에 수행할 행동을 나타낸다. 예를 들어, GET /users는 모든 사용자를 조회하고, POST /users는 새 사용자를 생성한다.

  • 웹 라우팅: 웹 애플리케이션에서 URL 경로는 특정 페이지나 기능으로 사용자를 안내한다. 예를 들어, Express.js에서 라우팅을 설정할 때 URL 패턴을 사용한다.

    const express = require('express');
    const app = express();
    
    app.get('/users', function(req, res) {
        res.send('Users List');
    });
    
    app.get('/users/:userId', function(req, res) {
        res.send('Profile of User ' + req.params.userId);
    });
    
    app.listen(3000, function() {
        console.log('Server is running on port 3000');
    });

    이 코드는 /users 경로와 /users/:userId 경로에 대한 라우트를 설정한다. 여기서 :userId는 동적 매개변수다.

URL과 쿼리 문자열의 사용

쿼리 문자열은 URL의 일부로, 키-값 쌍으로 이루어진 데이터를 전달하는데 사용된다. 이를 통해 서버는 사용자의 요청을 더 세부적으로 처리할 수 있다.

// URL: http://www.example.com/search?query=javascript&sort=recent

app.get('/search', function(req, res) {
    let query = req.query.query;  // 'javascript'
    let sort = req.query.sort;    // 'recent'
    
    // 검색 쿼리와 정렬 옵션에 따라 결과 처리
});

위 코드는 사용자가 제공한 쿼리 문자열을 사용해 특정 조건으로 데이터를 검색하고 정렬하는 방법을 보여준다.

URN의 실용적 사용 사례

URN은 일반적으로 웹 개발에서 자주 사용되지는 않지만, 특정 산업이나 도메인에서는 중요할 수 있다. 예를 들어, 전자책의 고유 식별자(URN)을 사용하여 전 세계 어디에서나 동일한 책을 참조할 수 있다.


URL 인코딩과 디코딩

URL에 사용할 수 없는 문자를 안전하게 전송하기 위해 인코딩이 필요하다. 이는 특수 문자를 “%” 뒤에 그 문자의 ASCII 코드를 나타내는 두 자리 16진수로 변환하는 과정을 말한다.

예시: JavaScript에서 URL 인코딩 및 디코딩

let originalText = "이것은 테스트 문자열입니다!";
let encodedText = encodeURIComponent(originalText);
let decodedText = decodeURIComponent(encodedText);

console.log(encodedText); // %EC%9D%B4%EA%B2%83%EC%9D%80%20%ED%85%8C%EC%8A%A4%ED%8A%B8%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9E%85%EB%8B%88%EB%8B%A4%21
console.log(decodedText); // 이것은 테스트 문자열입니다!

HTTP와 HTTPS

HTTP는 웹에서 데이터를 전송하는 데 사용되는 프로토콜이다. HTTPS는 HTTP에 보안 기능을 추가한 것으로, 데이터 전송 시 암호화를 제공한다. 이는 URL의 스킴 부분에서 httphttps로 나타난다.

RESTful API와 URL 구조

RESTful API는 웹 서비스를 제공하는 일반적인 방법으로, URL을 통해 자원을 표현하고 HTTP 메소드(GET, POST, PUT, DELETE 등)를 사용하여 자원에 대한 작업을 정의한다.

예시: Node.js/Express에서 RESTful API 구현

const express = require('express');
const app = express();

app.get('/api/products', (req, res) => {
    // 모든 제품 목록 반환
});

app.post('/api/products', (req, res) => {
    // 새 제품 추가
});

app.put('/api/products/:id', (req, res) => {
    // 제품 정보 업데이트
});

app.delete('/api/products/:id', (req, res) => {
    // 제품 삭제
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

URL과 SEO (Search Engine Optimization)

URL은 검색 엔진 최적화(SEO)에 중요한 역할을 한다. 명확하고 의미 있는 URL 구조는 검색 엔진이 사이트의 콘텐츠를 더 잘 이해하고 인덱싱하는 데 도움이 된다.

  • 짧고 의미 있는 URL: 사용자와 검색 엔진 모두에게 유용하다.
  • 키워드 사용: URL에 관련 키워드를 포함시켜 검색 엔진에 콘텐츠의 관련성을 나타낸다.

URL의 보안 측면

  • 데이터 노출 방지: URL에 민감한 데이터(예: 비밀번호, 개인정보)를 포함시키지 않도록 주의한다.
  • 암호화된 연결 사용: HTTPS를 통해 데이터를 암호화하여 전송한다.

실무에서의 URN 사용

URN은 일상적인 웹 개발에서는 드물게 사용되지만, 문서, 도서, 특허 등을 일관되게 식별해야 하는 경우에 중요하다. 예를 들어, 도서관 시스템에서는 ISBN을 URN으로 사용하여 책을 고유하게 식별할 수 있다.

0개의 댓글