본문 바로가기

Sparta

[Sparta] 02-1. 두번째날, 웹과 파이썬

2021-09-14

To-Do

  • 7시 기상
  • 아침식사
  • 오전운동 (하체)

  • 스파르탄 2일차, 오늘은 푹 잤다. 7시간 숙면. 눈떠보니 06시 30분. 우유300ml, 바나나 1송이, 프로틴 한스쿱 넣고 갈아 마셨다.. 으.. 너무 넘기기 힘들어.. 내일은 물을 좀 타봐야지

Today I Learned


1. 환경변수


환경변수라는 말은 예전부터 들어온 말이지만 애써 무시하고 있었다. (특히, 윈도우 프로그램에서) 오늘 수업에서 해당 단어가 나온김에 정리를 하려한다.


  • 소프트웨어 개발 시, 환경변수를 설정하면, 해당 소프트웨어를 실행하게 되면, 시스템에 저장되어 있는 환경변수를 불러와서 사용하게 됨.
  • 정의: 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임...(상당히 어렵다)
  • 환경변수는, "변수명"과 "값"으로 구성되며, 시스템의 기보 정보를 저장함
  • 환경변수는, 자식 프로세스에 상속됨
  • 환경변수는, 시스템 전반에 걸쳐 적용되는 "시스템 환경 변수"와 사용자 계정 내에서만 적용되는 "사용자 환경 변수"로 구분 됨

OS(Windows)에서 "자식프로세스"를 생성할때 참조하는 '변수들' 이라고 생각하자


근데, 프로세스가 뭐지...?


이전에 동시성과 병렬성을 공부 할 때, 정리해 둔 내용을 참고하면 다음과 같다.


  1. 프로그램

  - 작업을 수행하는 명령어 집합

  2. 프로세스

  - 실행중인 프로그램

  3. 스레드

  - 프로세스에서 실행되는 작업
  - 프로세스는 기본적으로 하나의 스레드로 구성
  - 경우에 따라서 여러개의 스레드로 구성이 가능하다. (멀티스레딩)

그러니까, 우리가 컴퓨터를 이용하는 모든 작업들은, OS라는 프로그램에 의해 실행되는 자식 프로세스들이다. 이때, OS가 이들을 원활히 실행시키기 위해 참조하는 변수가 환경변수라고 이해하면 될 것 같다.


그중에서도 PATH변수가 좀 어렵게 느껴지는데,

path변수는 운영체제가 어떤 프로세스를 실행시킬때, 그 경로를 찾는데 이용된다

라고 이해하면 되겠다.

참조 블로그

2. jQuery와 Ajax


어제와 오늘 '웹 프로그래밍 A-Z 기초 Training'에서 주구장창 배운 JQuery와 Ajax를 까먹기 전에 정리해 보겠다.


  • jQuery(제이쿼리)는 HTML의 클라이언트 사이드 조작을 단순화 하도록 설계된 크로스 플랫폼의 자바스크립트 라이브러리다. 존 레식이 2006년 뉴욕 시 바캠프(Barcamp NYC)에서 공식적으로 소개하였다.
    • 브라우저는 너무 많고, 인력은 한정적이다. jQuery만 임포트하여 js를 입력하면, jQuery가 알아서 각 브라우저에 맞게 파싱하여준다.

  • Ajax는 Asynchronous JavaScript And XML의 약자이다. JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 데이터를 주고받는 기술.
    • 웹 브라우저에 내용이 바뀔때 마다 새로고침을 해서 변경하지 않아도 Ajax는 브라우저와 서버가 내부적으로 데이터 통신을 하게해 주어서 변경된 결과를 웹 페이지에 프로그래밍적으로 반영하게 해준다.
$.ajax({
    type: "GET",
    url: "...",
    data: {},
    success: function (response) {
    }
})

위와 같이 사용 됨. url에 내가 원하는 API 서버 주소를 입력하고, 내가 원하는 동작을 아래 함수로 작성하며 된다.

3. GET과 POST


먼저 HTTP가 뭔지 알아야한다. HTTP는 HyperText Transfer Protocol의 약어로, 인터넷에서, 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용되는 통신 규약을 말한다. 클라이언트가 HTTP 프로토콜을 통해 서버에게 요청을 보내면 서버는 요청에 맞는 응답을 클라이언트에게 전송하게 되는데, 이 때, HTTP 요청에 포함되는 HTTP 메소드는 서버가 요청을 수행하기 위해 해야할 행동을 표시하는 용도로 사용된다. 이 HTTP 메소드 중 가장 많이 쓰이는 것 중 하나가 GET과 POST이다.


1. GET

통상적으로, 데이터 조회(Read)를 요청할 때 사용되는 메서드

  • GET방식의 특징

    • 데이터 전달 : URL 뒤에 물음표를 붙여 key=value로 전달
    • URL에 변수(데이터)를 포함시켜 요청한다.
    • 데이터를 Header(헤더)에 포함하여 전송한다.
    • URL에 데이터가 노출되어 보안에 취약하다.
    • 캐싱할 수 있다.

GET 방식은 간단한 데이터를 URL에 넣도록 설계된 방식으로 데이터를 보내는 양에 한계가 있고, 보안에 취약하다. 따라서 민감한 정보를 서버로 보낼 때가 아니라, 단순히 서버의 데이터를 가져올 때 주로 사용된다. (크롤링 등)


2. POST

통상적으로, 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때 사용되는 메서드

  • 리소스를 생성/변경하기 위해 설계되었기 때문에 GET과 달리 전송해야될 데이터를 HTTP 메세지의 Body에 담아서 전송

  • HTTP 메세지의 Body는 길이의 제한없이 데이터를 전송할 수 있기 때문에, POST는 GET과 달리 대용량 데이터를 전송할 수 있다.

  • 이처럼 POST는 데이터가 Body로 전송되고 내용이 눈에 보이지 않아 GET보다 보안적인 면에서 비교적 안전하지만, 크롬 개발자 도구, Fiddler와 같은 툴로 요청 내용을 확인할 수 있기 때문에 민감한 데이터의 경우에는 반드시 암호화해야 한다.

  • POST방식의 특징

    • 데이터 전달 : 바로 보이지 않는 HTML body에 key:value 형태로 전달
    • URL에 변수(데이터)를 노출하지 않고 요청한다.
    • 데이터를 Body(바디)에 포함시킨다.
    • URL에 데이터가 노출되지 않아서 기본 보안은 되어있다.
    • 캐싱할 수 없다.

참조 블로그
참조 블로그