본문 바로가기
반응형

그랩 강의32

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.
로그 데이터 로그 데이터 컴퓨터의 처리 내용이나 이용 상황을 시간의 흐름에 따라 기록한 것 로그 데이터는 IT회사에서 필수로 필요 데이터를 바탕으로 사용자 분석 가능 현재 실행되고 있는 프로그램들의 상태 모니터링 가능 로그 데이터는 크게 클라이언트(유저) 로그, 서버 로그로 나눌 수 있음 클라이언트 로그 유저 행동을 시간의 흐름에 따라 기록한 것 일반적으로 IT 서비스는 유저의 행동을 분석해서 더 나은 서비스를 제공하고자 함 IT 제품(웹, 앱)을 통해 유저가 어디서 얼마나 머물렀고, 어디에 관심을 가지는지에 대한 전반적인 데이터를 수집 위와 같이 사용자가 스크롤을 하게 되면 특정 서버에 오른쪽 하단과 같은 정보를 전송 보통 클라이언트 로그를 활용하기 위해선 로그 데이터를 저장하는 데이터베이스, 로그 데이터를 처리하.. 2023. 7. 11.
프론트엔드 & 백엔드 프론트엔드 유저가 서비스를 이용하기 위해 사용하는 프로그램 프론트엔드는 폭넓은 의미로 웹, 앱 등을 전부 포함 보통 브라우저를 통해서 웹을 실행 실제로 웹이 브라우저에 보여지는 과정은 다음과 같음 브라우저가 웹 프로그램을 전달해주는 웹서버에게 요청 웹서버에서 (프론트엔드 개발자가 개발한) 웹을 전달 브라우저에서는 다운받은 웹을 실행 크롬에서 F12를 누르면 개발자도구가 열리며, 브라우저가 웹을 실행시키면서 나오는 정보들(네트워크 통신 기록, 프로그램 로그, HTML 소스 코드 등)을 확인할 수 있음 모바일 앱 스마트폰에서 사용되는 앱으로 Android와 ios가 대표적 앱은 오직 앱스토어에서만 다운받을 수 있음 앱은 웹과 마찬가지로 화면 구성 및 동작 로직을 구현하고, 서버와 통신하면서 데이터를 전달받음.. 2023. 7. 11.
프로그램 & 프로그래밍 언어 프로그램 프로그램: 개발자들이 짠 코드의 집합이 컴퓨터가 이해할 수 있는 코드들로 컴파일된 것 프로세스: 실행되고 있는 프로그램 프로그램(카톡, 엑셀, 브라우저 등)을 실행하면 메모리 위에 올라가게 되고 이를 운영체제가 중재하는 역할을 하는데 이렇게 실행되고 있는 프로그램을 프로세스라 함 실제 프로그램은 코드(명령어)로 구성되어 있으며 코드를 바탕으로 프로그램을 실행시키는게 프로세스가 생성되는 것을 의미 프로세스는 프로그램 실행 정보, 프로그래머가 짠 코드, 실행되며 쓰이는 데이터들로 구성 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.
반응형