IT 개발자를 희망하지만 기본적인 배경지식이 부족하다고 느껴 정리해야할 필요성을 느꼈다!
컨설턴트님의 추천으로 보게 된 게시글에서 필요한 부분을 요약하여 정리하였다.
※참고한 게시글 출처는 글 하단에!!!
💡 1. 운영체제 & 하드웨어
💻운영체제(OS)
운영체제(OS)는 프로그램들을 실행하는 메인 프로그램입니다.
운영체제의 종류
- Linux OS - 전세계에서 가장 많이 쓰이며 Android OS도 Linus OS 기반으로 만들어졌다.
- Ubuntu OS
- Cent OS 등
💻하드웨어
- CPU
- 메모리
- CPU의 계산 결과를 저장해준다.
- 프로그램이 실행되는 공간을 제공한다.
- 메모리의 용량이 크다 = 많은 정보들을 처리할 수 있다.(더 많은 프로그램을 띄얼 수 있다.)
- 디스크
- 정보를 영구적으로 저장하는 역할
- 프로그램을 컴퓨터에 저장하는 과정을 책임(cf 메모리는 프로그램이 실행되는 과정을 책임)
💡 2. About 프로그램
💻프로그램
-
개발자들이 작성한 코드들로 컴파일 된 것 = 따라서, 코드(명령어)로 구성되어있다.
-
프로그램을 실행하게 됐을 때 프로세스라고 한다.
💻프로세스
- 실행되고 있는 프로그램
- 프로그램(카톡, 브라우저 등)을 실행하면 메모리 위에 올라가게 되고 이것을 운영체제가 중재
💻프로그래밍 언어
-
프로그램은 프로그래밍 언어를 사용해서 만들어진다.
-
CPU는 0, 1만 읽을 수 있다. = 따라서 코드를 컴파일하는 과정이 필요하다.
- 컴파일을 위해서는 컴파일러가 필요하다. (컴파일러는 운영체제와 같이 중요한 시스템 프로그램 중 하나)
-
고급언어(우리가 사용하는 프로그래밍 언어) vs 저급언어(컴파일러를 통해 변한된 기계어)
💡 3. 네트워크
컴퓨터와 컴퓨터간의 연결을 의미
네트워크 연결을 위해서는 크게 프로토콜, IP 주소, PORT가 필요하다.
- 어떤 방식으로(어떤 프로토콜로), 어느 컴퓨터(IP주소)에, 어떤 프로그램(PORT)을 연결할 것인지가 중요
💻클라이언트, 서버
-
클라이언트(Client) : 네트워크에서 정보를 요구
- 웹, 앱에 해당
-
서버(Server) : 정보를 제공
- ex) 로그인 인증, 검색결과 제공
💻프로토콜
네트워크 통신이 기본적으로 전세계적으로 가능한 이유는 프로토콜이라는 규칙이 존재하기 때문
우리가 가장 많이 사용하는 프로토콜 HTTP - 페이지 주소 입력, 파일 다운로드 등
이 외에도 SSH, SMTP(메일 송신)이 있다.
HTTP는 네트워크 통신과정에서 보안에 취약한 단점이 있다.
→ 이를 보완하기 위해 HTTPS가 등장 - HTTP에 보안(Secure)을 강화한 프로토콜
따라서 대부분의 웹 사이트에서는 HTTP 프로토콜을 막고 HTTPS 프로토콜을 사용하는 것을 권장
💻IP
네트워크 통신을 위한 주소(주의 : 컴퓨터의 고유 주소가 아니다!)
연결하게 되는 네트워크(WiFi, LAN 등)를 기준으로 IP주소를 부여받는다.
💻PORT
컴퓨터 내에 프로세스가지고 있는 주소
cf) IP 주소는 컴퓨터끼리 연결을 위한 네트워크 주소
보통 네트워크 주소에 IP주소만 있으면 뒤에는 프로토콜의 기본 포트가 적용된다.
- http의 기본 포트는 80
- https의 기본 포트는 443
💻도메인
도메인 네임(Domain Name)은 사람이 쉽게 인식할 수 있는 네트워크용 영문 주소
브라우저에 입력하는 영문주소는 전부 (도메인) 네임 서버에 등록된 주소다.
따라서 도메인 네임을 이용하게되면 네임 서버를 거쳐서 IP를 반환 받는 작업이 필요하다.
💡 4. 라이브러리 & 프레임워크
💻라이브러리
프로그램의 특정 기능을 수행하도록 미리 짜여진 코드 뭉치(미리 작업하여 개발된 것들)
💻프레임워크
코드의 큰 뼈대(Frame)을 제공해줘서 그 뼈대에서 개발을 할 수 있도록 도와주는 것
라이브러리와 마찬가지로 개발자가 미리 만들어 놓은 코드이다.
ex) 웹을 개발할 때 보통 React, Angular, Vue 같은 프레임워크를 사용
ex) 서버 개발을 할 때는 JS(node.js)를 사용하면 express | Python을 사용하면 Django, Flask를 사용
※ 프레임워크 사용이 필수는 아니지만 아키텍쳐와 틀을 직접 개발하려면 시간과 비용이 많이 소비된다.
💡 5. API
프로그램과 프로그램을 연결시켜주는 매개체(프로그램들끼리 통신)
프로그램끼리 통신을 하기 위해선 프로그램을 만드는 개발자가 해당 프로그램이 잘 통신할 수 있도록 규칙들을 잘 설계하는게 중요하다.
- 접근할 프로그램의 규칙이 잘 짜여지지 않고 복잡한 경우
- 프로그램 보안 상 외부에서 누구나 사용할 수 없고 제한된 기능들을 간접적으로 제공하고 싶을 때
위와 같은 경우 API라는 것이 프로그램과 프로그램 사이의 중개자 역할을 해준다.
API(Application Programming Intergace)는 쉽게 규칙들의 집합을 의미한다.
API가 대신해주는 프로그램의 기능들을 미리 정리해서 규칙을 잘 세워두면 클라이언트는 접근할 프로그램을 모르더라도 API에 따라 손쉽게 통신을 할 수 있다.
API 개발 = 중개 프로그램을 대신해주는 것
따라서, 프로그램을 충분히 잘 이해하며 잘 규격화해야 한다.
API를 통해 클라이언트 프로그램은 접근해야 하는 프로그램에 직접 접근하지 않고 편하게 정보를 요청할 수 있다.
이 때 API 서버는 API를 제공하는 서버를 뜻한다.
API의 사용 사례
- 날씨 데이터같은 공공 데이터를 손쉽게 접근할 수 있도록 국가에서는 기상청 API를 제공한다.
- 회사의 데이터베이스의 보안 때문에 API 서버를 두고 클라이언트와 통신하게 한다.
- 카카오 로그인
- 클라이언트(개발자)들은 카카오 서버 개발자가 만든 서버 API를 이용
- '카카오 로그인 API 문서'를 보면 어디(url)에 무엇(Parameter)을 보내면 무슨 응답(Response)을 줄지에 대한 내용이 있다.
[출처] https://www.grabbing.me/8d9e92b19e084c5a8cb173a695aa81af#0473b646e4984f6db46ed6ad3384adfb
'CS' 카테고리의 다른 글
[CS] IT 지식 정리 (feat. '비전공자를 위한 이해할 수 있는 IT 지식') (0) | 2021.01.14 |
---|---|
애자일(Agile) (0) | 2020.12.31 |
댓글