컴퓨터 공학 기본/개발배경지식5 개발배경지식5) API와 REST API API (Application Programming Interface) API는 프로그램과 프로그램을 연결해주는 매개체이다. 네트워크를 통한 컴퓨터 간의 통신만큼, 프로그램 간의 통신 또한 굉장히 자주 이루어지곤 한다. 이때, 그 프로그램을 만드는 개발자는 해당 프로그램이 잘 통신할 수 있도록 규칙들을 잘 설계해야 한다. 여기서 다음 경우에 해당하는 경우에는 API가 프로그램 사이 중개자 역할을 해준다. 접근할 프로그램의 규칙이 복잡한 경우 프로그램 보안상 외부에서의 접근이 제한적이고 기능이 간접적으로 제공될 때 규칙들의 집합인 API는 프로그램의 기능을 대신해주기 때문에 해당 API가 제공하는 기능들을 미리 정리해서 규칙을 세워두면 클라이언트는 접근하고자 하는 프로그램에 대해서 자세히 알지 못하더라고 .. 컴퓨터 공학 기본/개발배경지식 2021. 11. 7. 개발배경지식4) 네트워크 네트워크 네트워크는 컴퓨터 간의 연결을 의미한다. 이러한 연결을 위해서는 크게 프로토콜, IP주소, PORT 가 필요하다. 각각은 How, Where, What을 의미한다. 즉, '어떤 방식으로(프로토콜), 어떤 컴퓨터에(IP주소), 어떤 프로그램을(PORT) 연결할 것인지'를 결정하는 것이 네트워크의 3요소라는 것이다. 프로토콜(Protocol) '약속', '규약', '협약'을 의미하는 단어로, 네트워크 분야 외에도 여러 분야에서 통용된다. 상호 간 원활한 소통을 위해 세우는 규칙의 의미로, 네트워크 분야에서는 각 기기마다 사전에 설정된 통신 협약을 의미한다. 인터넷 접속을 위한 기본 프로토콜인 TCP/IP부터 홈페이지를 띄우기 위한 HTTP, 여기에 데이터 암호화를 추가해 보안성을 강화한 HTTPS,.. 컴퓨터 공학 기본/개발배경지식 2021. 11. 5. 개발배경지식3) 라이브러리와 프레임워크 "Admin Page를 만들기 위해 백엔드 프레임워크는 무엇을 사용하는 게 좋을까? 그리고 그 안의 추가 기능을 위한 라이브러리는 무엇이 필요할까?" - 어느 웹개발자의 질문 - 개발자와 협업을 하다보면 프레임워크와 라이브러리란 용어를 자주 듣게 된다. 이것이 무엇이길래 이렇게 자주 언급되는 것일까? 그 개념에 대해 간략하게 알아보자. 프레임워크 (Framework) 프레임워크는 코드의 큰 틀(Frame)을 제공해주고, 그 틀 안에서 개발을 진행할 수 있도록 도와준다. 대표적인 웹프레임워크로는 프런트의 React, Vue, Angular 등이 있고, 백엔드의 node.js, django, Flask 등이 있다. 이러한 프레임워크는 개발에 필요한 아키텍처를 미리 구성하고 있기 때문에, 이를 따로 개발하지 .. 컴퓨터 공학 기본/개발배경지식 2021. 11. 4. 개발배경지식2) 프로그램과 프로그래밍 프로그램 프로그래밍 언어에 의해 짜인 코드가 컴파일되어 컴퓨터가 이해할 수 있는 형태로 바뀌어진 코드의 집합을 프로그램이라고 한다. 이러한 프로그램을 실행하게 되었을 때를 프로세스라고 한다. 프로세스 프로세스는 실행되고 있는 프로그램을 의미한다. 프로그램이 실행되면 이 프로그램은 메모리 위에 올라가게 되고, 이를 운영체제가 중재하는 역할을 한다고 이전 포스팅에서 언급한 바 있다. 이때 프로그램이 메모리에 올라가는 형태가 바로 프로세스이며, 이는 프로그램의 실행 정보, 코드, 그리고 실행되면서 사용되거나 생성되는 데이터 등으로 구성되어있다. 이 내용이 많을 경우 '무거운 프로그램'이라고 지칭하곤 한다. 실제 프로그램은 코드로 이루어져 있으며, 이러한 코드를 작성하는 행위를 프로그래밍이라고 한다. 그리고 이.. 컴퓨터 공학 기본/개발배경지식 2021. 11. 3. 개발배경지식1) 운영체제(OS)와 하드웨어 운영체제(OS) 운영체제(OS)는 프로그램들을 실행하는 메인 프로그램이다. 프로그램들을 실행시키기 위해서는 CPU, 메모리 등 하드웨어 Resource가 필요하다. 이때, 이러한 하드웨어 Resource와 응용 프로그램 사이 관리를 수행하는 것이 바로 운영체제(OS)이다. 컴퓨터 시스템의 핵심적인 부분으로, 누가 어떤 시스템을 어떻게 사용할 것인지를 전반적으로 관리한다. 하드웨어의 작업 순서와 워크로드 등을 계획하고 할당하는 일련의 복잡한 명령을 통해, 프로그램의 실행은 물론 파일 접근, 응용 프로그램 구동, 하드웨어 제어와 같은 작업 또한 처리할 수 있도록 도와준다. 또한 네트워크상에서 다른 컴퓨터와의 상호 작용을 제어하는 등의 통신 역할을 수행하기도 한다. 전 세계에서 가장 많이 쓰이는 OS는 Lin.. 컴퓨터 공학 기본/개발배경지식 2021. 11. 1. 이전 1 다음