Coding 공부/Big data & Python

[Big data & Python] JSON, 가상환경, MongoDB, API, CSV, GET과 POST 차이

CBJH 2024. 4. 2.
728x90
반응형

1. JSON(JavaScript Object Notation)

 

  • 이론 링크 : https://just-record.github.io/python/python-json/
  • JSON은 간결하고 가벼운 데이터 교환 형식입니다.
  • 사람이 읽고 쓰기 쉬우며, 기계가 구문 분석하고 생성하기 쉽습니다.
  • 명령 프롬프트창을 열어 # pip install json 입력한다. >> jason 모듈 설치
  • jason 문자열을 파이썬에서 객체로 만들거나(디코딩) 파이썬 객체를 jason 문자열(인코딩)으로 만들 수 있다.
  • request 모듈을 설치해서 ( # pip install requests)  web에서 제공하는 api를 jason 문자열로 받을 수 있다.

 

2. 가상환경(Virtual Environment)

  • 가상환경이란 파이썬 인터프리터, 라이브러리, 스크립트 등이 포함된 독립된 파이썬 실행 환경을 의미하며 프로젝트마다 서로 다른 버전의 패키지가 필요 때 가상환경으로 분리하여 관리할 수 있습니다.
  • 일반적으로 새로운 프로젝트를 시작할 때마다 가상환경을 생성하여 작업합니다.

  2.1 가상환경 설정 방법

  • 명령프롬프트 창을 연다.
python -m venv myenv
myenv\Scripts\activate
  • myenv는 가상환경 이름이다. 원하는대로 변경해서 사용하자.
  • 가상 환경 창이 열리면 프롬프트 앞에 가상환경 이름이 표시된다. (myenv) $ 
pip install pandas
pip list
deactivate
  • 가상환경에서 pip list를 확인해보면 내가 지금까지 설치한 pip가 아닌 방금 명령어로 pip install pandas 했던 것들만 추가된 것을 확인할 수 있다.
pip install beautifulsoup4==4.9.3
pip install requests==2.25.1
  •  이퀄 기호를 두번 써서 모듈을 원하는 버전으로 설치할 수 있다. 

  2.2 requirements.txt 

  • 'requirements.txt’ 파일은 프로젝트에 필요한 패키지 목록을 저장하는 파일이다. 
  • 보통 이 텍스트 파일에 원하는 모듈의 이름과 버전을 적어두고 다른 프로젝트를 시작해서 가상환경을 만들 때, 활용한다.
  • pip install -r requirements.txt 명령을 사용하여 한 번에 패키지를 설치할 수 있다.

 

3. MongoDB 

 

3.1 MongoDB 란?Permalink

MongoDB는 JSON 문서 기반 NoSQL 데이터베이스입니다.

3.2 NoSQL 이란?Permalink

NoSQL은 관계형 데이터베이스 대신 키-값, 문서, 열 지향, 그래프 등의 데이터 모델을 사용하는 비관계형 데이터베이스입니다.

 

3.3 이론 내용 링크 

https://just-record.github.io/mongodb/python-mongodb/

 

  • MongoDB를 사용해서 비 관계형 데이터베이스를 저장하고 관리할 수 있다. 
  • 파이썬의 ‘pymongo’ 모듈을 설치해서 데이터베이스, 콜렉션에 접근해 원하는 컬럼 값의 데이터를 받아오거나 값을 수정하거나 행을 추가할 수 있다.

 

 

4. API (Application Programming Interface)

 

API는 소프트웨어나 시스템 간에 상호작용할 수 있도록 정의된 규칙이나 명세의 집합입니다. API는 한 프로그램이 다른 프로그램의 기능이나 데이터를 사용할 수 있도록 해주는 중간 매개체 역할을 합니다. 예를 들어, 소셜 미디어 플랫폼에서 사용자 데이터를 불러오거나, 지도 서비스에서 위치 데이터를 표시하거나, 결제 시스템을 통해 온라인 결제를 처리하는 것 등이 API를 통해 이루어집니다.

API는 크게 두 가지로 분류될 수 있습니다:

  1. 웹 API: HTTP 프로토콜을 사용하여 인터넷을 통해 데이터를 주고받는 API입니다. 웹 API는 보통 JSON이나 XML 형식으로 데이터를 교환합니다. 예를 들어, REST API, SOAP API, GraphQL API 등이 있습니다.
  2. 라이브러리/프레임워크 API: 특정 프로그래밍 언어나 플랫폼에서 제공하는 API로, 개발자가 특정 기능을 구현할 때 재사용할 수 있는 코드의 집합입니다. 예를 들어, Java의 JDK, Android SDK, iOS SDK 등이 있습니다.

 

 

5. CSV (Comma-Separated Values)

CSV는 각 데이터 필드가 쉼표로 구분되는 텍스트 파일 포맷입니다. 매우 간단하면서도 널리 사용되는 데이터 교환 형식으로, 스프레드시트 프로그램(예: Microsoft Excel, Google Sheets)과 데이터베이스 관리 시스템에서 데이터를 쉽게 임포트하고 익스포트할 수 있게 해줍니다.

 

연도,제조사,모델,설명,가격
1997,Ford,E350,"ac, abs, moon",3000.00
1999,Chevy,"Venture ""Extended Edition""","",4900.00
1999,Chevy,"Venture ""Extended Edition, Very Large""",,5000.00
1996,Jeep,Grand Cherokee,"MUST SELL!air, moon roof, loaded",4799.00

 

6. GET과 POST 차이

1) 데이터 전송 방식

  • GET: URL의 일부로 데이터를 전송합니다. URL에 쿼리 문자열(query string)을 추가하여 데이터를 서버에 전송합니다. 예: http://example.com/page?param1=value1¶m2=value2
  • POST: 데이터를 HTTP 메시지의 본문(body)에 포함시켜 전송합니다. 이는 URL에 노출되지 않으므로 GET보다 더 많은 양의 데이터를 보낼 수 있고, 민감한 데이터를 전송할 때 더 안전합니다.

2) 데이터 크기

  • GET: URL 길이에 제한이 있으므로 보낼 수 있는 데이터의 양이 제한적입니다. 브라우저나 서버에 따라 최대 URL 길이가 다르지만, 일반적으로 수천 바이트로 제한됩니다.
  • POST: 이론상으로는 데이터 크기에 제한이 없습니다. 실제 제한은 서버 설정에 따라 다릅니다.

3) 캐싱

  • GET: GET 요청은 브라우저에 의해 캐시될 수 있으며, 이를 통해 동일한 요청에 대한 응답 속도를 높일 수 있습니다.
  • POST: 일반적으로 POST 요청은 캐시되지 않습니다.

4) 즐겨찾기와 기록

  • GET: GET 요청은 URL에 데이터가 포함되므로, 요청한 URL을 즐겨찾기에 추가하거나 브라우저 기록에서 찾을 수 있습니다.
  • POST: POST 요청은 이러한 방식으로 즐겨찾기에 추가하거나 기록에서 직접 찾기 어렵습니다.

5) 안전성과 멱등성

  • GET: "안전한" 메소드로 간주되어야 하며, 서버의 데이터를 변경하지 않는 조회용도로 사용됩니다. GET은 멱등성(idempotent)을 갖습니다. 즉, 같은 요청을 여러 번 반복해도 결과가 동일합니다.
  • POST: 데이터를 서버에 제출하여 새로운 자원을 생성하거나 수정할 때 사용됩니다. 멱등하지 않으므로 같은 POST 요청을 여러 번 보내면 여러 개의 자원이 생성될 수 있습니다.

6) 요약

  • GET은 주로 데이터를 조회할 때 사용되며, 데이터를 URL에 포함시켜 전송합니다. 빠르고 캐시가 가능하지만, 데이터 양에 제한이 있고 보안에 취약할 수 있습니다.
  • POST는 주로 서버에 데이터를 생성하거나 변경할 때 사용됩니다. 데이터를 HTTP 본문에 포함시켜 전송하므로 더 안전하고, 더 많은 데이터를 전송할 수 있지만, 캐싱이 되지 않습니다.

 

7. db관리 프로그램

 

다운로드 링크 : https://dbeaver.io/download/

사용법이나 자세한 내용은 다음~ 수업에서 설명해주실 예정.

 

 

 

 

 

 

 

 

 

댓글