반응형

DNS (Domain Name System)

DNS는 이름만 어렵지 개념은 쉽습니다.

DNS (Domain Name System)는 인터넷에서 도메인 이름을 IP 주소로 변환하는 시스템입니다.

이 시스템은 인터넷의 전화번호부와 같아서

사용자가 쉽게 기억할 수 있는 도메인 이름(예: www.google.com)으로

웹 사이트에 접속할 수 있게 해 줍니다.

컴퓨터나 인터넷에 연결된 모든 장치는 고유한 IP 주소를 가지고 있으며,

DNS 서버는 이 주소를 사용하여 데이터를 올바른 목적지로 전달합니다.

 

컴퓨터는 모두 자신의 이름과 같은

iP 주소를 갖고 있다고 말씀드렸습니다.

iP가 뭔지 모르신다면 아래 글을 확인해 주세요

https://jdcyber.tistory.com/27

 

iP 주소란 무엇일까? (쉬운 설명, 개념, 정의, 호스트 아이디, 네트워크 아이디, 서브넷 마스크)

iP 주소란 무엇인가요? 정답은 컴퓨터마다 가지고 있는 주소 즉 이름입니다. 192.168.123.132 위와 같은 형태의 아이피 주소를 많이 보셨을겁니다. 위와 같이 A컴퓨터 너의 이름은 오늘부터 192.168.123.1

jdcyber.tistory.com

 

iP 주소는 네트워크상에서 컴퓨터나 장치를 식별하는 데 사용되는 숫자로 이루어진 주소입니다.

이 주소는 일반적으로 네트워크 ID, 호스트 ID, 서브넷 마스크 등으로 구성되며,

각각의 장치는 고유한 IP 주소를 할당받습니다.

우리가 흔히 접속하는 네이버, 구글 같은 웹사이트부터

스마트폰 노트북 그리고 서버에 이르기까지

인터넷상의 모든 컴퓨터는 숫자를 이용하여

서로 소통하고 통신합니다.

인터넷 사이트 주소

원래는 긴 숫자 형태로 이루어져 있는데요

이 숫자를 매번 외워서 칠 수 없으니

우리는 쉽게 www.example.com의 형태

접속하여 편리하게 이용하고 있습니다.

그렇다면 긴 숫자로 이루어진 원래 주소 형태가

어떻게 www.example.com으로 매칭이 되는 걸까요?

이것이 바로 DNS 서버가 하는 일입니다.


사용자가 웹사이트에 접속하려고 할 때,

예를 들어 "www.example.com"을 브라우저에 입력하면,

사용자의 장치는 먼저 DNS 서버에 해당 도메인 이름에 대응하는 IP 주소를 요청합니다.

DNS 서버는 도메인 이름과 매칭되는 IP 주소를 찾아

사용자의 요청을 해당 IP 주소로 리디렉션하여 사용자가 웹사이트에 접속할 수 있게 합니다.

이 과정은 사용자에게는 보이지 않고 매우 빠르게 이루어집니다.

다시 한번 설명해보겠습니다.

예를 들어 유저가 브라우저에서

testsite.com을 검색했다면,

먼저 DNS 서버로 testsite.com이라는

도메인 주소가 전달이 됩니다.

(도메인 주소는 12.12 3.123.123이라고 가정합시다.)

그리고 서버 내부에서 도메인 주소를 토대로

testsite.com = 12.12 3.123.123이라는항목을 찾아내고

다시 브라우저에게 12.123.123.123의 IP 주소를 갖고 있는

호스팅 서버 (해당 웹사이트 데이터가 저장된 곳)으로 가라고 지시합니다.

그러면 브라우저가 IP 주소로 접속해서 웹사이트가 보이게 됩니다.

브라우저가 잠깐 사이에 이런 과정을 처리하는 것이죠.

 

이 요청을 쿼리라고 부릅니다.

쿼리 요청이란?

(작성 중)

그렇다면 DNS 서버는 누가 가지고 있을까요?

바로 ISP 업체입니다.

DNS 서버는 일반적으로 인터넷 서비스 제공업체(ISP)에 의해 관리됩니다.

KT, LG U+, SKT와 같은 대형 ISP는 자체 DNS 서버를 운영하며,

사용자는 이러한 서버를 통해 인터넷에 접속합니다.

또한, Google DNS와 같은 공개 DNS 서비스를 사용하는 것도 가능하며,

이는 때로 더 빠른 인터넷 속도나 우회 접속 등의 목적으로 사용됩니다.

 

ISP에 대해 모르신다면 아래 글을 참고해 주세요

(작성 중)

 

위 ISP 업체들이 갖고 있는 DNS 서버의 주소는 아래와 같습니다.

SKT
기본 DNS 서버 : 219.250.36.130
보조 DNS 서버 : 210.220.163.82
KT
기본 DNS 서버 : 168.126.63.1
보조 DNS 서버 : 168.126.63.2
LG
기본 DNS 서버 : 164.124.101.2
보조 DNS 서버 : 203.248.252.2
Google
기본 DNS 서버 : 8.8.8.8
보조 DNS 서버 : 8.8.4.4

이 시스템의 중요성은 인터넷 사용의 편리함을 크게 향상합니다.

복잡한 숫자로 이루어진 IP 주소를 기억할 필요 없이,

사용자는 도메인 이름을 통해 웹사이트에 쉽게 접근할 수 있습니다.

DNS는 따라서 인터넷의 기본적인 인프라로서,

모든 온라인 활동의 백본 역할을 합니다.


오늘은 DNS에 대해 알아봤는데요

알고 보면 쉬운데 대부분 개념을 잘 못 잡고

바로 공부에 들어가서

DNS 서버 설정부터 해버리니

어려우실 수밖에 없을 것 같습니다.

다음 글은 좀 더 쉽게 써보도록 노력하겠습니다.


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

이웃 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

지금까지 우리는 파이썬의 기본적인 설치 방법,

개발 환경 설정, 기본 명령어와 자료형,

그리고 기본적인 연산과 변수 사용법에 대해 배웠습니다.


못 보신 분들은 아래 글을 순차적으로 읽고 오는 것을 추천드립니다.

파이썬 독학 #1 파이썬 (Python)이란? 설치 (쉬운 설명, 정의, IDLE, IDE, 특징, M1)

파이썬 독학 #2 (쉬운 설명, 개발환경 설정, vscode, 기본 명령어, Hello world)

파이썬 독학 #3 기초 (쉬운 설명, 자료형, 사칙 연산, 인덱싱, 포맷팅, 슬라이싱, 변수)


이번 글에서는 진도를 더 나가는 것은 잠시 쉬어가면서

이러한 기초적인 개념들을 활용하여 간단한 프로그램을 작성하는 방법을 소개하고자 합니다.

이를 통해 여러분이 실제로 코드를 작성하고 실행하는 과정을 경험해 보며,

파이썬 프로그래밍에 대한 이해를 한층 더 깊게 할 수 있을 것입니다.


프로그램 1: 사용자의 이름과 나이를 입력받아 인사하기

 

첫 번째 프로그램에서는 사용자로부터 이름과 나이를 입력받아,

그 정보를 바탕으로 사용자에게 인사하는 간단한 스크립트를 작성해보겠습니다.

이 프로그램은 input 함수를 사용하여 사용자의 입력을 받고,

print 함수와 f-string을 사용하여 사용자에게 인사 메시지를 출력합니다.

# 사용자로부터 이름과 나이 입력받기
name = input("이름을 입력하세요: ")
age = input("나이를 입력하세요: ")

# 입력받은 정보로 인사 메시지 출력하기
print(f"안녕하세요, {name}님! 당신은 {age}살이군요!")
  • 입력: 이름 "홍길동", 나이 "20"
  • 출력: "안녕하세요, 홍길동님! 당신은 20살이군요!"
  • 사용된 함수: input(), print()
  • 설명:
    • input() 함수는 사용자로부터 이름과 나이를 입력받는 데 사용되며, 입력 받은 값을 변수에 저장합니다.
    • print() 함수와 f-string을 사용하여, 저장된 변수를 포함하는 인사 메시지를 화면에 출력합니다.

프로그램 2: 간단한 계산기 만들기

 

두 번째 프로그램에서는 사용자로부터 두 개의 숫자와 수행하고 싶은 연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 입력받아

해당 연산의 결과를 출력하는 계산기 프로그램을 만들어보겠습니다.

이 프로그램은 사용자의 입력에 따라 조건문을 사용하여 적절한 연산을 수행하고, 그 결과를 출력합니다.

# 사용자로부터 두 숫자와 연산자 입력받기
num1 = float(input("첫 번째 숫자를 입력하세요: "))
num2 = float(input("두 번째 숫자를 입력하세요: "))
operator = input("연산자를 입력하세요(+, -, *, /): ")

# 입력받은 연산자에 따라 조건문을 사용하여 연산 수행
if operator == '+':
    result = num1 + num2
elif operator == '-':
    result = num1 - num2
elif operator == '*':
    result = num1 * num2
elif operator == '/':
    result = num1 / num2
else:
    print("지원되지 않는 연산자입니다.")

# 연산 결과 출력
print(f"결과: {result}")
  • 입력: "첫 번째 숫자 "10", 두 번째 숫자 "5", 연산자 "+"
  • 출력: "결과: 15.0"
  • 사용된 함수: input(), print()
  • 사용된 개념: 조건문 (if, elif, else), 형변환 (float())
  • 설명:
    • 사용자로부터 숫자와 연산자를 입력받기 위해 input() 함수가 사용됩니다.
    • 입력받은 숫자 문자열을 실수로 변환하기 위해 float() 함수가 사용됩니다.
    • 사용자가 입력한 연산자에 따라 적절한 연산을 수행하기 위해 if 조건문이 사용됩니다.
    • 연산 결과는 print() 함수를 사용하여 출력됩니다.

프로그램 3: 짝수와 홀수 판별기

 

사용자로부터 숫자를 입력받아,

그 숫자가 짝수인지 홀수인지 판별하는 간단한 프로그램입니다.

number = int(input("숫자를 입력하세요: "))

if number % 2 == 0:
    print(f"{number}는 짝수입니다.")
else:
    print(f"{number}는 홀수입니다.")
  • 입력: 숫자 "3"
  • 출력: "3는 홀수입니다."
  • 사용된 함수: input(), print()
  • 사용된 개념: 조건문 (if, else), 형변환 (int())
  • 설명:
    • 사용자로부터 숫자를 입력받기 위해 input() 함수가 사용되며, 이때 입력값은 int()를 사용하여 정수로 변환됩니다.
    • 숫자가 짝수인지 홀수인지 판별하기 위해 if 조건문과 나머지 연산자 %가 사용됩니다.
    • 판별 결과는 print() 함수를 사용하여 출력됩니다.

프로그램 4:간단한 할인율 계산기

 

사용자로부터 상품의 가격과 할인율을 입력받아,

할인된 가격을 계산하는 프로그램입니다.

price = float(input("상품의 원래 가격을 입력하세요: "))
discount = float(input("할인율을 입력하세요(%): "))

discounted_price = price * (1 - discount / 100)

print(f"할인된 가격은 {discounted_price}입니다.")
  • 입력: 상품 가격 "10000", 할인율 "20"
  • 출력: "할인된 가격은 8000.0입니다."
  • 사용된 함수: input(), print()
  • 사용된 개념: 산술 연산, 형변환 (float())
  • 설명:
    • 상품 가격과 할인율을 입력받기 위해 input() 함수가 사용되며, float()를 사용하여 입력값을 실수로 변환합니다.
    • 할인된 가격을 계산하기 위해 산술 연산자 *와 -가 사용됩니다.
    • 계산된 할인된 가격은 print() 함수를 사용하여 출력됩니다.

프로그램 5:간단한 퀴즈 프로그램

 

사용자에게 간단한 퀴즈를 제시하고,

입력받은 답변을 기반으로 점수를 계산하는 프로그램입니다.

score = 0

answer1 = input("파이썬의 창시자는 누구인가요? ")
if answer1.lower() == "귀도 반 로섬":
    score += 1

answer2 = input("파이썬이 처음 발표된 년도는? ")
if answer2 == "1991":
    score += 1

print(f"당신의 점수는 {score}/2입니다.")
  • 입력: 첫 번째 질문의 답 "귀도 반 로섬", 두 번째 질문의 답 "1991"
  • 출력: "당신의 점수는 2/2입니다."
  • 사용된 함수: input(), print()
  • 사용된 개념: 조건문 (if), 문자열 메소드 (lower())
  • 설명:
    • 퀴즈의 답을 입력받기 위해 input() 함수가 사용됩니다.
    • 입력받은 답이 정답과 일치하는지 비교하기 전, 모든 문자를 소문자로 변환하기 위해 lower() 메소드가 사용됩니다.
    • 점수 계산을 위해 조건문 if가 사용되며, 점수는 print() 함수를 사용하여 출력됩니다.

프로그램 6:간단한 ToDo 리스트

 

사용자로부터 할 일 항목들을 입력받아 리스트에 저장하고,

모든 할 일을 출력하는 프로그램입니다.

todo_list = []

while True:
    item = input("할 일을 입력하세요 (종료하려면 q를 입력): ")
    if item == 'q':
        break
    todo_list.append(item)

print("\n당신의 할 일 리스트:")
for item in todo_list:
    print(f"- {item}")
  • 입력: 할 일 항목들 "코딩 공부하기", "운동하기"
  • 출력: 당신의 할 일 리스트: - 코딩 공부하기 - 운동하기
  • 사용된 함수: input(), print()
  • 사용된 개념: 반복문 (while), 리스트 (list)
  • 설명:
    • 할 일 항목을 입력받기 위해 input() 함수와 while 반복문이 사용됩니다.
    • 입력받은 항목들은 리스트에 추가되며, list.append() 메소드가 사용됩니다.
    • 모든 할 일 항목들은 반복문을 사용하여 print() 함수로 출력됩니다.

프로그램 7:기온 변화기

 

섭씨온도를 화씨온도로 변환하는 간단한 프로그램입니다.

celsius = float(input("섭씨 온도를 입력하세요: "))
fahrenheit = (celsius * 9/5) + 32

print(f"화씨 온도는 {fahrenheit}입니다.")
  • 입력: 섭씨 온도 "25"
  • 출력: "화씨 온도는 77.0입니다."
  • 사용된 함수: input(), print()
  • 사용된 개념: 산술 연산, 형변환 (float())
  • 설명:
    • 섭씨 온도를 입력받기 위해 input() 함수가 사용되며, float()를 사용하여 입력값을 실수로 변환합니다.
    • 화씨 온도로 변환하기 위해 산술 연산이 수행되며, 변환된 온도는 print() 함수를 사용하여 출력됩니다.

이번 시간에는 파이썬의 기초 개념을 활용해 간단한 프로그램들을 작성하는 방법을 살펴보았습니다.

사용자 입력을 받는 input() 함수부터 조건문과 반복문,

그리고 기본적인 데이터 구조인 리스트까지,

이러한 개념들은 파이썬 프로그래밍의 기본을 이룹니다.

각 예제를 통해 이 개념들이 실제 코드에서 어떻게 활용되는지를 보여드렸으며,

이를 통해 여러분의 파이썬 실력이 한층 더 성장하기를 바랍니다.

 

파이썬 학습은 연습을 통해 더욱 발전할 수 있습니다.

오늘 배운 내용을 바탕으로 자신만의 작은 프로젝트를 시작해 보거나,

다양한 예제를 직접 코드로 작성해 보며 이해도를 높여가시길 권장합니다.

또한, 문제를 해결하면서 마주치는 오류나 난관들도 학습의 중요한 부분임을 잊지 마세요.

오류를 해결하는 과정에서 프로그래밍 실력은 크게 성장합니다.

 

다음 시간에는 파이썬의 더 심화된 주제나,

여러분이 실제로 활용할 수 있는 더 다양한 프로그래밍 기법을 다룰 예정입니다.

지금까지 배운 기초가 튼튼하다면,

앞으로 배울 내용들을 더 쉽게 이해하고 자신의 것으로 만들 수 있을 겁니다.

계속해서 호기심을 갖고,

새로운 것을 배우려는 자세를 유지해 주세요.

그럼 다음 시간에 또 만나요.

Happy Python Programming!
https://jdcyber.tistory.com/70

 

파이썬 독학 #5: 데이터 구조 마스터하기 - 튜플, 딕셔너리, 집합

지금까지 우리는 파이썬의 기본적인 설치 방법, 개발 환경 설정, 기본 명령어와 자료형, 그리고 기본적인 연산과 변수 사용법에 대해 배우고,해당 내용을 응용하여 간단한 프로그램 작성까지 해

jdcyber.tistory.com


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

HTTP
(HyperText Transfer Protocol)

 

HTTP는 HyperText Transfer Protocol의 약자로,

인터넷에서 데이터를 주고받을 수 있는 프로토콜입니다.

웹 서버와 클라이언트(웹 브라우저) 간에 통신을 가능하게 합니다.

웹브라우저를 사용하거나 개발할 때 클라이언트와 서버가 정보를 교환하는

가장 기본적인 프로토콜입니다.

HTTP (HyperText Transfer Protocol)는 웹 상에서 정보를 주고받을 때 사용하는 규칙인데,
'무상태(Stateless) 프로토콜'이라고 불립니다.
이 말은 HTTP를 사용할 때, 웹 서버가 사용자의 이전 활동이나 상태를 기억하지 않는다는 것을 의미합니다.
간단히 말해서, 서버는 각 요청을 완전히 새로운 것으로 처리하고, 이전 요청과의 연결을 유지하지 않습니다.

하지만, 웹사이트가 사용자의 정보나 선호도를 기억하는 것이 필요할 때가 있습니다. 
예를 들어, 온라인 쇼핑을 하면서 장바구니에 상품을 담거나, 로그인을 유지하는 경우 등이 이에 해당합니다. 
이런 경우, HTTP '쿠키(Cookies)' '세션(Sessions)'이라는 방법을 사용합니다. 
쿠키는 사용자의 컴퓨터에 작은 정보를 저장하는 것이고, 세션은 서버 측에서 사용자의 정보를 일정 시간 동안 유지하는 방법입니다. 
이를 통해 웹사이트는 사용자의 정보를 일시적으로 기억하고,  개인화된 사용자 경험을 제공할  있게 됩니다.

 

HTTPS
(HyperText Transfer Protocol Secure)

 

HTTPS는 HyperText Transfer Protocol Secure의 약자로,

HTTP에 데이터 암호화 기능을 추가한 보안 프로토콜입니다.

쉽게 말해,

SSL을 사용하는 HTTP 프로토콜의 보안 버전입니다.

HTTPS 프로토콜을 사용하면 웹 사이트 사용자가 인터넷을 통해 신용 카드 번호,

은행 정보 및 로그인 자격 증명과 같은 중요한 데이터를 안전하게 전송 있습니다.


HTTP와 HTTPS의 주요 차이점

1. HTTPS는 SSL/TLS를 통해 전송되는 데이터를 암호화하여 보안을 강화하는 반면, HTTP는 이러한 보안 조치가 없습니다.

2. 일반적으로 HTTP는 80번 포트를 사용하고, HTTPS는 443번 포트를 사용합니다.

3. 초기에는 HTTPS가 HTTP보다 느리다고 여겨졌으나, 현대의 기술 발전으로 이러한 차이는 크게 줄어들었습니다.

4. HTTPS는 웹사이트의 신뢰성을 높여주며, 많은 브라우저에서는 HTTPS를 사용하지 않는 사이트에 대해 경고를 표시합니다.

궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

이웃 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형

+ Recent posts