basic 12

API 문서 기본

API애플리케이션 간에 데이터를 주고받거나 기능을 사용할 수 있도록 하는 인터페이스클라이언트가 서버의 특정 엔드포인트로 요청을 보내면, 서버는 JSON 형태로 응답을 반환한다. API Key는 요청을 누가 보냈는지를 식별하는 비밀문자열이다.인증수단이나 key단위로 role을 분리 (업로드,리포트 제출 등 가능 등)하여 사용한다. # 반면 OAuth2는 해당 앱이 제한시간동안 허용된 행동을 토큰을 통해 API 호출을 한다. (Secret은 접근제어나 감사 로그 등의 기능을 하는 key vault나 secrets manager 등으로 관리 필요) 1) 엔드포인트GET https://api.example.com/v1/alerts/{id} 먼저 요청할 엔드포인트가 존재(api.openai.com/v1.....

basic/tutorial 2025.10.28

Nginx 리버스 프록시 +도메인 연결 + HTTPS + OpenAI 연동 (Flask)

호스팅 웹사이트를 공용 IP 주소나 도메인을 통해 인터넷에 배포하고 사용자가 접근할 수 있도록 하기 위해 서버 공간과 필요한 기술을 제공하는 서비스도메인과 웹 호스팅 서버의 IP 주소와 연결하여 웹 사이트에 접근할 수 있도록 도와준다. 자신의 웹사이트를 운영하려면 데이터를 저장할 서버 공간과 인터넷 연결이 필요=> 웹 호스팅은 이러한 자원과 기술을 제공하여 사용자가 복잡한 서버 관리 없이도 비용 효율적이고 안정적으로 공개가능 EC2 생성 프라이빗키는 로컬에 저장된다. SSH 접속 시 사용된다. 개인키가 있는 디렉토리에서 ssh 명령어 실행 서브도메인 생성 name에 api만 적어도 api 가 서브도메인으로 입력되고 value에 ec2에 연결된 public ip를 입력하면 생성이 완..

DNS

DNS (Domain Name System)인터넷에서 사용자가 입력한 도메인 이름을 IP 주소로 변환하는 시스템인터넷에 연결된 각 기기에는 다른 컴퓨터가 기기를 찾는 데 사용하는 고유한 IP 주소가 있다. Domain  인터넷 상의 특정 대상의 IP 주소 등의 정보와 맵핑되는 사람이 기억하기 쉬운 형태의 이름  -서브 도메인 : 도메인 중 스트링 앞에 추가 문자열이 붙은 도메인what.example.com -APEX 도메인(루트 도메인) : 도메인 중 앞에 추가 문자열이 없는 순수한 최상위 도메인example.com -Name server : DNS 쿼리를 Zone File(파일로 된 Domain Zone)이   기반으로 응답할 수 있는 서버Authoritative : DNS 정보의 원본을 가지고 있는 ..

basic/network 2024.09.30

HTTPS

대칭키하나의 키암호화/복호화 할 때 서로 키가 같은경우이다. =>  해당 키를 전달하기 위해 평문에 노출될 수 있는 단점 비대칭키(공개키) 한 쌍의 키 (두개)  => 하나는 암호화만 가능, 다른 하나는 복호화만 가능암호화할때와 복호화할 때 키가 서로 다른경우이다.(클라이언트가 A키, 서버가 B키 가지고 있을 때ㅡ  A키로 암호화한 경우 B키로만 복호화가 가능하고 B키로 암호화한 경우 A키로만 복호화가 가능하다.  /*공개키는 공개된 곳에 올려놓고 모두 가져가도록 해도 된다.공개키로 암호화해도 풀 수 있는 것은 개인키(비밀키)만 가능하기 때문이다.*/  HTTPS HTTP 프로토콜에서 암호구간(TLS/SSL)을 얹은 프로토콜TCP 3-way hand shake가 클라이언트와 서버 간에 연결을 설정하여 안..

basic/network 2024.09.30

Github 기본

Git 과 Github 1)Git - 로컬에서 관리되는 버전 관리 시스템 (시간에 따라 파일의 변경사항을 추적하고 기록)  - 로컬 저장소를 사용하기 때문에, 다른 사람이 나의 작업 내용을 알 수 없음   2)Github- 개인의 로컬 서버 밖에서 Git 버전 프로젝트를 공유하고 기록하는 온라인 데이터 베이스 - 원격저장소(서버에 있는 저장)를 깃허브에서 제공해주는 클라우드 서버를 이용- 클라우드 서비스기 때문에 다른 사람들과 협업 시 소스코드 공유가 가능하다.   Github  기본 용어 Repository프로젝트가 존재하는 저장 공간 Branchmaster branch에서 각 개발자나 기점 별로 새로운 branch를 만들어서 분업하는 기능 혹은 공간서로 다른 branch에 영향을 주지 않아 Repo에..

basic/tutorial 2024.09.25

OpenAI Assistant API 및 응답

OpenAI Assistant APIOpenAI의 Assistants API는 애플리케이션 내에 AI 기반 어시스턴트를 만들 수 있는 Toolkit 개발자들은 코드 해석기(Code Interpreter), 검색(Retrieval), 기능 호출(Function calling)과 같은 Tool을 이용하여 사용자의 요구사항을 이해하고, 반응을 예측하며, 상호작용적으로 참여하는 AI 어시스턴트를 구축할 수 있다. 이 API는 자연어 처리 기능을 통해 사용자의 입력을 이해하고, 적절한 작업을 수행할 수 있는 AI 어시스턴트를 제작하는 데 필요한 모든 기능을 제공한다.=> AI 어시스턴트를 특정한 용도를 정하고 해당 용도에 맞는 데이터를 제공할 수 있다. Assistants API의 Tools 1) 코드 해석..

GET,POST 그리고 Content-type / Postman

GET / POST MethodGETPOST목적서버에서 데이터를 조회 시 사용데이터 생성 및 업데이트 시 사용데이터전송방식HTTP 패킷 Header에 데이터를 담아URL의 query string을 통해 전송HTTP 패킷 Body에 데이터를 담아URL에 포함되지 않고 Body를 통해 전송멱등성데이터를 조회할 때 사용하므로여러 번 요청하더라도 응답이 같다.데이터를 생성하고 업데이트 시 사용하므로 서버(안 데이터)가변경될 수 있어 여러 번 요청 시 결과가 달라질 수 있다.데이터크기간단한 데이터큰 데이터보안URL에 데이터가 노출URL에 노출되지 않아 상대적으로 안전캐싱브라우저에 캐시가능하다.브라우저에 캐시되지 않는다.예시/sendMessage?user_input=hello/sendMessage (바디에 담겨..

basic/network 2024.09.04

Python Flask 웹 서버 실행

웹페이지 틀을 구성하는 프론트 엔드페이지에 대한 데이터를 Logic에 맞게 넣어주는 백엔드 및 데이터베이스 등=> REST API를 사용해서 이러한 컴퓨터들 사이에서 http 데이터 요청을 해서 응답 데이터를 화면에 출력시키는 구조다. Flask 플라스크는 파이썬으로 작성된 마이크로 웹 프레임워크웹 애플리케이션을 구축하는 데 필요한 핵심 기능을 제공하는 데 중점을 둔 단순하고 미니멀한 디자인 특정 도구나 라이브러리를 강요하지 않는다는 점에서 '마이크로'라는 원칙을 따른다.나머지 기능은 자신이 원하는 다른 라이브러리나 프레임워크를 확장해 사용  __name__? 파이썬에서 디폴트로 있는 해당 변수는 모듈로서 실행될 때 모듈(라이브러리)의 이름이 저장된다. (abc.py이면 abc)모듈이 아닌 실행되는 코드..

basic/tutorial 2024.08.26

0.웹에 관한 중요 키워드

웹 브라우저Chrome, Safari, Opera 등 웹 사이트를 볼 떄 사용하는 소프트웨어서버서비스를 제공하는 컴퓨터(서비스에 따라서 앞에 웹, DB 등 붙을 수 있다.)클라이언트서버에게 서비스를 제공받는 컴퓨터( 언제든 서버가 될 수 있고 클라이언트가 될 수 있다.)HTTP클라이언트와 서버가 HTML을 주고받기 위해 생긴 통신하는 프로토콜, 요즘에는 HTML 이외에 많은 데이터를 주고받을 수 있다.IP컴퓨터의 집 주소DomainIP의 별명DNS (Domain Name System)도메인과 IP 주소를 매칭해놓은 서버(웹 브라우저가 서버의 집주소를 DNS 서버에게 먼저 물어본다.)nslookup 시 여러 개의 주소가 나오는 이유는 부하분산을 위한 것Port서비스마다 고유의 번호를 설정해놓은 것서비스 설..

basic 2024.07.02

계층별 프로토콜

프로토콜 = 통신규약통신을 하기 위해 서로 정한 약속​ 7계층7-1. HTTP Hyper text transfer protocolhttp는 서버 클라이언트 모델에 따라 데이터를 주고받기 위한 프로토콜인터넷에서 보여지는 여러가지 이미지 텍스트 정보들을 제공​ 암호화가 아닌 평문을 이용해서 통신한다는 취약성80번 포트 사용​7-2. HTTPS는 개인정보,금융정보등 민감정보를 다루는 페이지에서 적용 그 외에는 HTTP를 통해서 운영하고 있는 페이지들이 존재 443번 포트 사용SSL이라는 인증서를 사용하여 암호화된 통신을 한다.(네트워크 패킷들을 확인할 때 HTTP로 통신을 하면 모든 패킷이 평문으로 보여진다.HTTPS로 통신을 하면 IP와 포트 번호는 보이지만 그 안에 해당하는 데이터 영역은 암호화 되어 있어..

basic/network 2023.01.08