ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • "데이터베이스 연결 설정: 127.0.0.1 vs. localhost, 어떤 것을 선택해야 할까?"
    언어/Node.js 2024. 5. 22. 13:17
    const mariadb = require('mysql2');
    
    const connection = mariadb.createConnection({
        host: '127.0.0.1',
        user: '<user이름>',
        password: '<password>',
        database: '<db이름>',
        dateStrings : true
    });
    
    module.exports = connection

    위 코드 처럼 우리는 Node.js로 database를 연결할 수 있다.

     

    그런데 host : 자리에 127.0.0.1을 사용할 수도 있고 localhsot를 사용할 수도 있다.

     

    과연 둘의 차이는 뭐가 있을까?

     

    결론부터 말하자면 일반적으로 동일한 것으로 간주된다. 두 가지 모두 로컬 머신을 가리키는 데 사용된다.

    1. 속도: 127.0.0.1은 IP 주소이고 localhost는 호스트 이름입니다. 일부 운영 체제에서는 localhost를 해석하기 위해 추가적인 DNS 조회가 필요할 수 있으므로 약간의 오버헤드가 발생할 수 있습니다. 하지만 이 차이는 거의 무시될 정도로 작을 것입니다.
    2. 호스트 파일 설정: 대부분의 경우 두 가지 모두 동일한 IP 주소를 가리키도록 로컬 호스트 파일에 설정됩니다. 하지만 이 호스트 파일 설정은 변경될 수 있습니다. 예를 들어, 개발 환경이나 다른 설정에 따라 localhost가 다른 IP 주소를 가리킬 수 있습니다. 하지만 127.0.0.1은 보통 변경되지 않습니다.
    3. 보안 설정: localhost와 127.0.0.1은 기본적으로 동일한 것으로 간주되지만, 일부 보안 정책에서는 다를 수 있습니다. 예를 들어, 일부 데이터베이스 서버는 localhost에서의 연결을 허용하고 127.0.0.1에서의 연결을 거부할 수 있습니다. 이러한 정책은 서버의 보안 설정에 따라 다를 수 있습니다.

    예시로 

     

    우리가 www,google.com 인 도메인을 입력하면 웹브라우저는 DNS 조회를 통해 해당 도메인의 IP 주소를 조회한다.

    그런 다음 해당 IP 주소로 서버와 통신하여 웹 페이지를 요청하고 표시합니다.

     

    cf. DNS(Domain Name System) 조회는 컴퓨터 네트워크에서 도메인 이름을 IP 주소로 변환하는 프로세스입니다.

    인터넷에서 통신할 때, 컴퓨터는 도메인 이름을 사용하여 다른 컴퓨터와 통신합니다. 하지만 컴퓨터는 실제 통신할 때 IP 주소를 사용하므로, 도메인 이름을 IP 주소로 변환해야 합니다. DNS 조회는 이러한 변환을 담당합니다.

    그러면 localhost도 DNS 조회를 통해 127.0.0.1로 해석될까?

     

    결론은 아니다. DNS 없이 localhsot와 127.0.0.1 을 사용할 수 있다고 한다.

     

    각 컴퓨터에는 DNS 해결 규칙이 있는 hosts 파일이 있으며, 이 규칙에는 localhost를 127.0.0.1로 해석하는 규칙이 포함되어 있다. 

    원하는 대로 이름을 지정할 수 있다. 
    ex) kimhost와 같은 이름으로 사용하여 127.0.0.1로 해석할 수 있게 할 수 있다.

    127.0.0.1 를 google.com으로 한다면?
    > 본인 기기에만 해당되며, 다른 사람에겐 영향을 끼치지 않는다.

     

     

     

Designed by Tistory.