본문 바로가기
반응형

비개발자의 개발 지식 스터디/개발 배경지식8

HTTP HTTP통신이란? 컴퓨터끼리 네트워크 통신을 할 때 여러가지 방식으로 가능하며 이런 방식들을 묶어서 통신 프로토콜이라고 함 웹 서버와 통신을 할 때 사용하는 HTTP 프로토콜, 메일을 주고 받을 때 사용하는 SMTP 프로토콜, 파일을 전송할 때 사용하는 FTP 프로토콜 등 HTTP 통신: HTTP 프로토콜을 활용한 통신 HTTP 프로토콜 - 브라우저가 웹 서버와 통신을 하기 위해 생긴 프로토콜 대부분의 네트워크 통신에서 사용되는 대중적인 프토로콜 개발한 웹, 서버는 전부 HTTP 프로토콜로 통신하게 됨 HTTP 통신은 기본적으로 요청(request)과 응답(response)으로 나눠서 이해할 수 있음 요청과 응답 모두 공통적으로 아래와 같은 구조를 가짐 요청 라인 - URL, Method 같은 핵심 요청.. 2023. 7. 25.
URL URL 구조 이해하기 URL 구성 요소를 보면 순서대로 아래와 같이 나눌 수 있음 프로토콜 호스트 주소 포트 번호 경로 쿼리 프로토콜 프로토콜: 컴퓨터끼리 네트워크 통신을 할 때의 규격 웹을 이용할 때는 HTTP 프로토콜을 이용 요새는 HTTP에 보안을 더한 HTTPS 프로토콜이 많이 사용됨 (실제로 HTTP 프로토콜의 규격과 동일) 이 외에도 이메일을 통신할 때 사용되는 SMTP, 컴퓨터 원격 통신에 사용되는 SSH 등 다양한 프로토콜이 존재 호스트 주소 호스트 주소: 컴퓨터의 주소를 표시하는 영역으로 도메인 네임 혹은 IP 주소가 들어감 포트 번호 포트 번호: 컴퓨터에서 실행되고 있는 수많은 프로세스들의 주소 우리가 사용하는 URL을 보면 포트번호가 보이지 않음 기본적으로 포트번호를 입력하지 않았을 .. 2023. 7. 25.
API API API는 프로그램과 프로그램 사이의 중개자 역할을 수행하며, 규칙들의 집합임 프로그램 간 통신을 위해 개발자는 규칙을 설계하여 프로그램이 원활하게 통신할 수 있도록 해야함 API 개발은 중개해주는 프로그램을 대신해주는 것이므로 해당 프로그램을 충분히 이해하고 규격화해야함 API를 개발함으로써 클라이언트는 접근할 프로그램을 모르더라도 API에 따라 손쉽게 프로그램과 통신할 수 있음 API 서버는 API를 제공하는 서버 API 서버는 데이터베이스를 대신해서 규칙들을 정의(로그인하기, 상풍정보 보기, 결제하기 등) 클라이언트는 데이터베이스가 아닌 API 서버와 통신 API의 사용 사례로는 국가에서 기상청 API를 통해 날씨 데이터에 접근하거나, 회사의 데이터베이스에 대한 보안 때문에 API 서버를 두고.. 2023. 7. 12.
라이브러리 & 프레임워크 라이브러리 라이브러리는 프로그램의 특정 기능을 수행하기 위해 미리 작성된 코드 집합 예를 들어, 개발자가 브라우저에서 영상을 보는 기능을 개발하려면 브라우저 대응, 해상도 변경, 배속 변경, HLS 대응 등 다양한하고 복잡한 코드 작업이 필요 모든 작업을 직접 개발하는 것은 어렵고 시간이 오래 걸릴 수 있음 브라우저 영상 라이브러리 안에는 이러한 작업을 미리 개발해놓았기 개발이 훨씬 용이 IT 서비스를 개발할 때는 실제로 많은 라이브러리를 사용해야 빠르고 쉽게 개발할 수 있음 프레임워크 프레임워크는 코드의 큰 뼈대(Frame)를 제공하여 개발자가 그 뼈대에서 개발할 수 있도록 도와줌 라이브러리와 마찬가지로 미리 작성된 코드 개발할 때는 건축과 비슷하게 큰 틀(아키텍처)을 고려한 후 내부를 채워넣는데, 이.. 2023. 7. 12.
네트워크 네트워크의 기본 네트워크는 컴퓨터와 컴퓨터 간의 연결을 의미 대부분의 서비스는 네트워크를 통해 동작함 ex. 카카오톡은 네트워크를 통해 메시지를 주고받고 선물을 보낼 수 있음 네트워크 연결을 위해서는 프로토콜, IP 주소, 포트라는 세 가지 요소가 필요 어떤 방식으로(프로토콜), 어떤 컴퓨터(IP주소)에, 어떤 프로그램(Port)을 연결할 것인지가 중요 정보를 송수신하기 위해서는 랜선이나 와이파이 공유기와 같은 네트워크 장치가 필요 랜선은 광케이블을 사용하여 컴퓨터용 전기 신호를 빛으로 변환 와이파이는 전자기파를 이용하여 정보를 전송 컴퓨터에서 네트워크 장치를 사용하기 위해 랜카드가 필요 일반적으로 컴퓨터는 무선과 유선 기능을 모두 가지기 때문에 무선 및 유선 랜카드가 필요 클라이언트, 서버 네트워크에서.. 2023. 7. 12.
Git & Github Git 소스 코드의 버전을 관리하는 툴 프로젝트 파일을 만들어 코드를 추가하는 방식으로 개발을 진행 Git은 개발자들이 프로젝트 코드를 다운로드하고 업로드하여 버전을 형성하는 것을 도와줌 커밋(Commit)은 개발자가 자신의 코드를 Git에 업데이트하는 과정을 말함 커밋을 푸시(push)하면 기존의 커밋에 쌓여서 버전이 형성됨 다른 개발자는 마지막 커밋을 기준으로 패치(Fetch) 후 코드를 추가하여 작업을 진행 Git은 여러 개발자가 동시에 코드를 수정하여 충돌(Conflict)이 발생하는 경우 해결할 수 있는 도구 Git에는 브랜치(branch)가 있어 개발자들이 작업을 효율적으로 할 수 있음 메인 브랜치(마스터 브랜치)와 복사한 브랜치에서 작업하고, 마지막에 병합(머지)하여 커밋을 합침 IT 회사에.. 2023. 7. 12.
프로그램 & 프로그래밍 언어 프로그램 프로그램: 개발자들이 짠 코드의 집합이 컴퓨터가 이해할 수 있는 코드들로 컴파일된 것 프로세스: 실행되고 있는 프로그램 프로그램(카톡, 엑셀, 브라우저 등)을 실행하면 메모리 위에 올라가게 되고 이를 운영체제가 중재하는 역할을 하는데 이렇게 실행되고 있는 프로그램을 프로세스라 함 실제 프로그램은 코드(명령어)로 구성되어 있으며 코드를 바탕으로 프로그램을 실행시키는게 프로세스가 생성되는 것을 의미 프로세스는 프로그램 실행 정보, 프로그래머가 짠 코드, 실행되며 쓰이는 데이터들로 구성 Stack, Heap은 프로그램이 실행되며 생기는 정보들을 저장하는 자료구조 인터럽트: CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우에 CPU에게 알려 처리.. 2023. 7. 11.
운영체제 & 하드웨어 운영체제 운영체제(OS): 프로그램들을 실행하는 메인 프로그램 프로그램들을 실행시키기 위해서는 하드웨어의 자원이 필요 -> 운영체제는 하드웨어의 자원들을 이용해 응용 프로그램을 관리 이 외에도 운영체제는 네트워크 통신, 입출력 장치 관리 등 우리가 컴퓨터 사용에 필요한 모든 것을 관리 운영체제(OS) 종류는 대표적으로 Window OS, Mac OS, Linux OS 등이 존재 전세계에서 가장 많이 쓰이는 OS는 Linux로 거의 모든 IT 회사에서 사용하는 서버는 Linux OS를 기반으로 동작 Linux OS 기반 운영체제는 Android OS, Ubuntu OS, Cent OS 등이 있음 커널: 하드웨어의 자원을 이용해 프로그램을 관리하는 역할 운영체제의 내부 구성요소 중 하나 보통 운영체제를 만들.. 2023. 7. 11.
반응형