반응형

HTTP통신이란?

  • 컴퓨터끼리 네트워크 통신을 할 때 여러가지 방식으로 가능하며 이런 방식들을 묶어서 통신 프로토콜이라고 함
    • 웹 서버와 통신을 할 때 사용하는 HTTP 프로토콜, 메일을 주고 받을 때 사용하는 SMTP 프로토콜, 파일을 전송할 때 사용하는 FTP 프로토콜 등
  • HTTP 통신: HTTP 프로토콜을 활용한 통신
    • HTTP 프로토콜 - 브라우저가 웹 서버와 통신을 하기 위해 생긴 프로토콜
      • 대부분의 네트워크 통신에서 사용되는 대중적인 프토로콜
      • 개발한 웹, 서버는 전부 HTTP 프로토콜로 통신하게 됨
    • HTTP 통신은 기본적으로 요청(request)과 응답(response)으로 나눠서 이해할 수 있음
    • 요청과 응답 모두 공통적으로 아래와 같은 구조를 가짐

  • 요청 라인 -  URL, Method 같은 핵심 요청 정보가 들어가며 요청과 응답에 따라 구성 요소가 다름
  • Header - HTTP 관련 여러 설정 값이 들어감
  • Body - 통신에 필요한 데이터가 들어감(옵션)

 

HTTP 요청

  • HTTP 통신으로 서버에게 정보를 요청하기 위해선 몇가지 규칙을 지켜야 함
  1. 어떤 서버에게 요청할 것인지 URL이 있어야 함 (요청 라인)
  2. 어떤 방식으로 통신을 할 것인지 Method가 있어야 함 (요청 라인)

 

HTTP Method

  • 클라이언트가 서버에게 HTTP 요청을 할 때 URL 주소와 함께 HTTP Method를 정해야 함
    • HTTP Method에 따라 서버에서는 어떤 요청인지를 파악할 수 있음
    • 대표적으로 사용되는 GET, POST 외에도 PUT, DELETE 등 많은 Method가 있음
    • 서버의 세계에서는 같은 URL 주소로 서버에게 요청하더라도 method가 다르면 아예 다른 요청으로 간주

GET

  • 일반적으로 정보를 받아올 때 사용하는 Method
    •  HTTP 요청을 할 때 method를 설정하지 않으면 기본 메소드로 GET이 들어감
    • 일반적으로 웹 서버에서 웹을 다운받을 때 GET을 사용
  • 사용 예시
    • 웹 서버에서 웹을 다운받을 때
    • 내 상품 정보들을 받아올 때

POST

  • 새로운 자원을 생성할 때 POST를 많이 사용
  • 사용 예시
    • 로그인을 할 때 아이디, 패스워드를 담아야 함
    • 아티클을 만들 때 입력한 아티클 정보를 담아야 함

 

HTTP 요청에 정보 담기

  • 클라이언트가 HTTP 요청을 할 때 정보를 담아야 하는 경우가 많음
    • 회원가입을 할 때 회원 정보를 서버에게 보내줘야 함
    • 상품을 만들 때 상품 정보를 서버에게 보내줘야 함
    • 로그인을 할 때 아이디 패스워드를 담아야 함
  •  이때 Request method에 따라 정보를 담는 방식이 다름

GET

  • GET 방식은 서버에 데이터를 전송받아야 할 때 url 맨 뒤에 query를 붙임
    • query는 key=value 형태로 구성
    • POST도 마찬가지로 URL 뒤에 query를 붙일 수 있음

POST

  • POST 메소드의 경우 HTTP의 Body 부분에 데이터를 담을 수 있음
    • Body는 HTTP 통신에 구조적으로 데이터를 담아서 전송할 수 있게 도와줌
    • 대표적으로 로그인, 상품 업로드, 결제하기 등 우리의 정보를 담아서 보내야하는 경우 많이 사용됨
    • GET은 Body에 데이터를 담을 수 없음

 

HTTP 응답

  • 서버에서는 HTTP 요청을 받으면 열심히 일을 해서 응답을 해주며 이때 HTTP 응답의 규칙은 다음과 같음
  1. 응답이 어떤 상태인지를 나타내는 Status Code가 있어야 함 (요청 라인)
  2. 요청 결과를 Body에 담아야 함

  • 이때 Status Code는 200~ 500번까지 있으며 서버의 응답에 대한 상태를 표현

 

Status Code

  • 요청 코드는 크게 나눠보면 아래와 같음
    • 200번대는 정상적으로 응답을 했을 때
    • 400번대는 클라이언트가 요청을 잘못했을 때
    • 500번대는 서버에서 에러가 발생했을 때

  • 대표적인 응답 코드
    • 200: 정상적으로 응답이 됨
    • 404: 해당 URL 요청을 처리할 수 없음
    • 500: 서버에서 알 수 없는 에러가 발생

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형

'비개발자의 개발 지식 스터디 > 개발 배경지식' 카테고리의 다른 글

URL  (0) 2023.07.25
API  (0) 2023.07.12
라이브러리 & 프레임워크  (0) 2023.07.12
네트워크  (0) 2023.07.12
Git & Github  (0) 2023.07.12
반응형

URL 구조 이해하기

  • URL 구성 요소를 보면 순서대로 아래와 같이 나눌 수 있음
  1. 프로토콜
  2. 호스트 주소
  3. 포트 번호
  4. 경로
  5. 쿼리

 

프로토콜

  • 프로토콜: 컴퓨터끼리 네트워크 통신을 할 때의 규격
    • 웹을 이용할 때는 HTTP 프로토콜을 이용
    • 요새는 HTTP에 보안을 더한 HTTPS 프로토콜이 많이 사용됨 (실제로 HTTP 프로토콜의 규격과 동일)
    • 이 외에도 이메일을 통신할 때 사용되는 SMTP, 컴퓨터 원격 통신에 사용되는 SSH 등 다양한 프로토콜이 존재

 

호스트 주소

  • 호스트 주소: 컴퓨터의 주소를 표시하는 영역으로 도메인 네임 혹은 IP 주소가 들어감

 

포트 번호

  • 포트 번호: 컴퓨터에서 실행되고 있는 수많은 프로세스들의 주소
    • 우리가 사용하는 URL을 보면 포트번호가 보이지 않음
    • 기본적으로 포트번호를 입력하지 않았을 때는 프로토콜이 가지고 있는 기본 포트번호가 적용됨
      • HTTP의 경우 80번, HTTPS의 경우 443번의 포트번호가 기본으로 적용됨

 

경로

  • 경로: 서버 프로그램 내에 짜인 로직으로 가는 영역
    • 보통 서버를 개발하는 개발자는 각 경로에 맞춰 코드를 작성함
    • 예를 들어 /products라는 경로는 상품을 화면에 전달하도록 로직을 설계하고 /profile이라는 경로는 프로필 화면을 전달하도록 개발을 함

 

쿼리

  • query: URL에서 추가적인 데이터를 표현할 때 사용됨
    • query는 Path 뒤에 ?를 기점으로 key=value 형태로 데이터를 표현
    • 실제로 유튜브 URL 'https://www.youtube.com/watch?v=nHk-AdY1588'에서 쿼리 데이터 v의 값에 따라 각기 다른 영상을 보여주는 걸 확인할 수 있음

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형

'비개발자의 개발 지식 스터디 > 개발 배경지식' 카테고리의 다른 글

HTTP  (0) 2023.07.25
API  (0) 2023.07.12
라이브러리 & 프레임워크  (0) 2023.07.12
네트워크  (0) 2023.07.12
Git & Github  (0) 2023.07.12
반응형

API

  • API는 프로그램과 프로그램 사이의 중개자 역할을 수행하며, 규칙들의 집합임
    • 프로그램 간 통신을 위해 개발자는 규칙을 설계하여 프로그램이 원활하게 통신할 수 있도록 해야함
      • API 개발은 중개해주는 프로그램을 대신해주는 것이므로 해당 프로그램을 충분히 이해하고 규격화해야함
      • API를 개발함으로써 클라이언트는 접근할 프로그램을 모르더라도 API에 따라 손쉽게 프로그램과 통신할 수 있음

  • API 서버는 API를 제공하는 서버
    • API 서버는 데이터베이스를 대신해서 규칙들을 정의(로그인하기, 상풍정보 보기, 결제하기 등) 
    • 클라이언트는 데이터베이스가 아닌 API 서버와 통신
  • API의 사용 사례로는 국가에서 기상청 API를 통해 날씨 데이터에 접근하거나, 회사의 데이터베이스에 대한 보안 때문에 API 서버를 두고 클라이언트와 통신하는 경우 등이 있음

 

API 문서

  •  API 사용법과 규격을 제공하는 문서

예시

  1. 웹에서 로그인 기능을 구현할 때 '카카오 로그인'을 많이 사용
  2. 클라이언트(개발자)는 카카오 서버 개발자가 개발한 서버 API를 활용
  3. 카카오 로그인 API 문서를 확인하면 요청을 보내야 할 위치(url), 전달해야 할 매개변수(Parameter), 그리고 응답으로 받을 수 있는 결과(Response) 등이 규칙으로 정해져 있음

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형

'비개발자의 개발 지식 스터디 > 개발 배경지식' 카테고리의 다른 글

HTTP  (0) 2023.07.25
URL  (0) 2023.07.25
라이브러리 & 프레임워크  (0) 2023.07.12
네트워크  (0) 2023.07.12
Git & Github  (0) 2023.07.12
반응형

라이브러리

  • 라이브러리는 프로그램의 특정 기능을 수행하기 위해 미리 작성된 코드 집합

  • 예를 들어, 개발자가 브라우저에서 영상을 보는 기능을 개발하려면 브라우저 대응, 해상도 변경, 배속 변경, HLS 대응 등 다양한하고 복잡한 코드 작업이 필요
    • 모든 작업을 직접 개발하는 것은 어렵고 시간이 오래 걸릴 수 있음
    • 브라우저 영상 라이브러리 안에는 이러한 작업을 미리 개발해놓았기 개발이 훨씬 용이
  • IT 서비스를 개발할 때는 실제로 많은 라이브러리를 사용해야 빠르고 쉽게 개발할 수 있음

 

프레임워크

  • 프레임워크는 코드의 큰 뼈대(Frame)를 제공하여 개발자가 그 뼈대에서 개발할 수 있도록 도와줌
    • 라이브러리와 마찬가지로 미리 작성된 코드

  • 개발할 때는 건축과 비슷하게 큰 틀(아키텍처)을 고려한 후 내부를 채워넣는데, 이때 프레임워크는 미리 구성된 틀을 제공
    • 웹 개발에서는 React, Angular, Vue 등의 프레임워크를 사용
    • 서버 개발에서는 JavaScript(Node.js)를 사용
    • Python에서는 Django, Flask 등의 프레임워크를 활용
  • 프레임워크 없이 개발하는 것도 가능하지만, 아키텍처와 틀을 직접 개발해야 하므로 시간과 노력이 많이 필요
  • 라이브러리와 프레임워크의 경계는 때로 모호할 수 있으므로 단순히 라이브러리라고 일반적으로 언급하는 것도 가능

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형

'비개발자의 개발 지식 스터디 > 개발 배경지식' 카테고리의 다른 글

URL  (0) 2023.07.25
API  (0) 2023.07.12
네트워크  (0) 2023.07.12
Git & Github  (0) 2023.07.12
프로그램 & 프로그래밍 언어  (0) 2023.07.11
반응형

네트워크의 기본

  • 네트워크는 컴퓨터와 컴퓨터 간의 연결을 의미

  • 대부분의 서비스는 네트워크를 통해 동작함
    • ex. 카카오톡은 네트워크를 통해 메시지를 주고받고 선물을 보낼 수 있음
  • 네트워크 연결을 위해서는 프로토콜, IP 주소, 포트라는 세 가지 요소가 필요
    • 어떤 방식으로(프로토콜), 어떤 컴퓨터(IP주소)에, 어떤 프로그램(Port)을 연결할 것인지가 중요

  • 정보를 송수신하기 위해서는 랜선이나 와이파이 공유기와 같은 네트워크 장치가 필요
    • 랜선은 광케이블을 사용하여 컴퓨터용 전기 신호를 빛으로 변환
    • 와이파이는 전자기파를 이용하여 정보를 전송
  • 컴퓨터에서 네트워크 장치를 사용하기 위해 랜카드가 필요
    • 일반적으로 컴퓨터는 무선과 유선 기능을 모두 가지기 때문에 무선 및 유선 랜카드가 필요

 

클라이언트, 서버

  • 네트워크에서 정보를 요청하고 받는 쪽은 클라이언트(Client)
  • 정보를 제공해 주는 쪽은 서버(Server)
  • IT 서비스는 클라이언트와 서버를 구분하여 개발됨

  • 대표적인 클라이언트로는 웹과 앱이 있음
    • 클라이언트가 데이터를 요청하면 응답해주는 서버가 필요
  • 서버는 클라이언트에게 정보를 제공하는 프로그램이 실행되는 컴퓨터를 의미
    • 웹 서버는 웹을 전달하는 프로그램을 실행하는 컴퓨터
    • 서버 컴퓨터에는 목적에 맞는 정보를 제공하는 프로그램이 항상 실행됨
    • 서버는 웹 서버, API 서버, 이미지 서버, 비디오 서버 등과 같이 역할에 따라 여러 개가 실행될 수 있음
    • 최근에는 컴퓨터의 성능 향상으로 인해 하나의 컴퓨터에 여러 서버 프로그램을 동시에 실행하는 경우가 많아짐

 

프로토콜

  • 네트워크는 개인 또는 단체의 소유 개념이 아니며, 전세계적으로 통신 가능한 이유는 규격(규칙)이 존재하기 때문
    • 네트워크 통신을 위해 사용되는 규격을 통신 프로토콜이라고 함

  • HTTP 프로토콜은 네트워크 통신에서 가장 많이 사용되며, 브라우저를 통해 정보를 주고받을 때 사용됨
  • SSH 프로토콜은 원격 접속 시 사용되며, 이메일 전송에는 SMTP 프로토콜이 사용됨
  • HTTPS 프로토콜은 HTTP에 보안(s)을 강화한 프로토콜로, 대부분의 웹 사이트에서 사용됨
    • HTTP는 보안에 취약함

  • 네트워크 통신을 위해 컴퓨터의 운영체제는 여러 과정을 거쳐 신호를 특정 프로그램으로 전달함
    • 이러한 과정은 OSI 7계층으로 나뉘며, 각 계층마다 역할이 정해져 있음

 

IP

  • IP(Internet Protocol Address)는 네트워크 통신을 위한 주소
    • 이는 컴퓨터의 고유 주소가 아닌, 연결된 네트워크(와이파이, 랜선 등)를 기준으로 부여됨
    • IT 회사에서는 네트워크 공유기로 미리 IP 주소를 할당하고, 이후 회사 컴퓨터에 IP 주소를 할당하여 회사의 네트워크 보안과 관리를 용이하게 함

  • 기존의 IP 주소 형식은 IPv4로, 주소의 개수가 255의 4승만큼 가능함
    • 컴퓨터의 증가로 인해 IP 주소가 고갈되어 포화상태에 이른 상태로, IPv6가 개발되었고 주소 할당이 255의 6승만큼 가능해짐
    • Ipv6는 유심칩을 사용하는 스마트폰 등에서 주로 사용되는 주소 형식

 

Port

  • 포트는 컴퓨터 내의 프로세스에 도달하기 위한 주소
    • IP 주소가 컴퓨터 간 연결을 위한 네트워크 주소라면, 포트는 컴퓨터 내의 프로세스가 가지는 주소

  • 일반적으로 네트워크 주소에 IP 주소만 있다면 기본적으로 [프로토콜]의 기본 포트가 적용됨
    • 예를 들어, HTTP의 기본 포트는 80이고 HTTPS의 기본 포트는 443

  • 브라우저에서 웹사이트의 정보를 가져오려면 IP 주소와 함께 해당 포트 번호를 입력해야 함
    • 네트워크 통신 후 웹서버는 입력된 포트 번호를 사용하여 해당 프로세스로 웹을 전달
  • 컴퓨터들이 상호 연결된 경우 중요한 정보가 유출될 수 있으므로 네트워크 통신 시 보안은 중요한 요소 중 하나
    • 이를 위해 컴퓨터 간 네트워크 연결을 제한하는 방화벽을 설정함
    • 방화벽은 IP 주소, 포트 번호 등을 기반으로 네트워크 연결을 제한하는 역할을 함

 

도메인

  • 도메인 네임(Domain Name)은 사람이 쉽게 인식할 수 있는 네트워크용 영문 주소
    • 브라우저에 입력하는 영문 주소는 도메인 네임 서버에 등록된 주소

  • 도메인 네임을 사용하면 네임 서버(DNS)를 통해 IP 주소를 반환받는 작업이 필요
  • 도메인 네임은 웹 브라우저를 통해 웹에 접속할 때뿐만 아니라, 클라이언트가 서버(API 서버, 데이터베이스 서버)와 통신할 때도 사용됨
  • 서버에 도메인 네임을 사용하기 위해서는 호스팅 서비스(가비아, 후이즈 등)에서 도메인 네임을 구매해야 하며 구매 후, 도메인 네임 서버에 등록해야 적용됨

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형

'비개발자의 개발 지식 스터디 > 개발 배경지식' 카테고리의 다른 글

API  (0) 2023.07.12
라이브러리 & 프레임워크  (0) 2023.07.12
Git & Github  (0) 2023.07.12
프로그램 & 프로그래밍 언어  (0) 2023.07.11
운영체제 & 하드웨어  (0) 2023.07.11
반응형

Git

  • 소스 코드의 버전을 관리하는 툴

  • 프로젝트 파일을 만들어 코드를 추가하는 방식으로 개발을 진행
  • Git은 개발자들이 프로젝트 코드를 다운로드하고 업로드하여 버전을 형성하는 것을 도와줌

  • 커밋(Commit)은 개발자가 자신의 코드를 Git에 업데이트하는 과정을 말함
  • 커밋을 푸시(push)하면 기존의 커밋에 쌓여서 버전이 형성됨
  • 다른 개발자는 마지막 커밋을 기준으로 패치(Fetch) 후 코드를 추가하여 작업을 진행

  • Git은 여러 개발자가 동시에 코드를 수정하여 충돌(Conflict)이 발생하는 경우 해결할 수 있는 도구

  • Git에는 브랜치(branch)가 있어 개발자들이 작업을 효율적으로 할 수 있음
    • 메인 브랜치(마스터 브랜치)와 복사한 브랜치에서 작업하고, 마지막에 병합(머지)하여 커밋을 합침
  • IT 회사에서는 Git 브랜치 전략을 사용하여 브랜치 사용과 관리 방법을 결정함
    • 대표적인 브랜치 전략으로는 git-flow, trunk-based 등이 있음
    • 여러 브랜치를 사용하여 코드를 관리함으로써 개발자들은 효율적으로 작업할 수 있음

 

Github

  • Github는 git이 적용된 원격 코드 저장소

  • Github는 전 세계에서 가장 많은 개발자들이 사용하는 서비스
    • 프로젝트를 Github에 올려서 관리하고 오픈소스를 공개할 때도 Github에 많이 올림

  • 개발자들은Git에 있는 커밋들을 사용하기 위해 원격 저장소가 필요
    • 커밋을 패치(fetch)한 후 새로운 코드를 작성하고, 작성한 커밋을 푸시(push)하기 위해서는 원격 저장소에 보내야 하며 이러한 원격 저장소 역할을 Github이 수행
  • Github는 코드 저장 기능 외에도 개발자들이 코드에 대해 논의할 수 있는 issue, pull request 등을 제공
    • 최근에는 소스코드를 올리면 자동으로 스크립트(특정 소스코드)를 실행시켜 주는 Github Actions 기능도 추가됨

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형

'비개발자의 개발 지식 스터디 > 개발 배경지식' 카테고리의 다른 글

API  (0) 2023.07.12
라이브러리 & 프레임워크  (0) 2023.07.12
네트워크  (0) 2023.07.12
프로그램 & 프로그래밍 언어  (0) 2023.07.11
운영체제 & 하드웨어  (0) 2023.07.11
반응형

프로그램

  • 프로그램: 개발자들이 짠 코드의 집합이 컴퓨터가 이해할 수 있는 코드들로 컴파일된 것
  • 프로세스: 실행되고 있는 프로그램
    • 프로그램(카톡, 엑셀, 브라우저 등)을 실행하면 메모리 위에 올라가게 되고 이를 운영체제가 중재하는 역할을 하는데 이렇게 실행되고 있는 프로그램을 프로세스라 함

  • 실제 프로그램은 코드(명령어)로 구성되어 있으며 코드를 바탕으로 프로그램을 실행시키는게 프로세스가 생성되는 것을 의미
    • 프로세스는 프로그램 실행 정보, 프로그래머가 짠 코드, 실행되며 쓰이는 데이터들로 구성
    • Stack, Heap은 프로그램이 실행되며 생기는 정보들을 저장하는 자료구조
  • 인터럽트: CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우에 CPU에게 알려 처리할 수 있도록 하는 것
    • 이 때 실행되고 있는 CPU 자원을 잠시 가져와 갑작스러운 신호들을 먼저 처리하며 CPU가 작업중인 프로세스는 대기 상태로 있게 됨
    • 이 순간이 매우 빠르기 때문에 프로그램이 멈춘다는 느낌을 받지 않음

 

프로그래밍 언어

  • 프로그램은 사람이 프로그래밍 언어를 사용해서 만듬
    • CPU는 0,1만 읽을 수 있고, 개발자가 영어로 짠 코드는 읽을 수 없음

  • 컴파일: 개발자들이 짠 코드를 컴퓨터가 실행 가능한 코드로 변환해주는 과정 
    • 컴파일을 위해선 컴파일러가 필요

  • 프로그래밍 언어는 전부 고급언어이고, 컴파일러를 통해 저급언어(기계어)로 변환
    • 컴파일된 결과물이 반드시 기계어 혹은 어셈블리어인 것은 아니며 대표적으로 바이트코드라는 것이 있음
    • 컴파일된 결과물이 컴퓨터 하드웨어(CPU)에서 해석되는게 아닌 컴퓨터 소프트웨어에서 해석되는 경우로 Java, Python등이 있음
  • 빌드: 소스코드를 실행할 수 있는 소프트웨어 산출물로 만드는 행위
    • 최종적으로 개발자들이 짠 코드가 빌드를 통해 바로 실행할 수 있는 상태가 됨
    • 우리가 다운받는 프로그램들은 전부 빌드 과정을 거친 결과물
    • 컴파일도 빌드의 과정 중 하나
  • IDE(Integrated Development Environment): 코딩을 하고 디버깅, 컴파일 등의 전반적인 작업을 하나의 프로그램 안에서 한 번에 할 수 있게 제공해주는 프로그램

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형

'비개발자의 개발 지식 스터디 > 개발 배경지식' 카테고리의 다른 글

API  (0) 2023.07.12
라이브러리 & 프레임워크  (0) 2023.07.12
네트워크  (0) 2023.07.12
Git & Github  (0) 2023.07.12
운영체제 & 하드웨어  (0) 2023.07.11
반응형

운영체제

  • 운영체제(OS): 프로그램들을 실행하는 메인 프로그램
    • 프로그램들을 실행시키기 위해서는 하드웨어의 자원이 필요 -> 운영체제는 하드웨어의 자원들을 이용해 응용 프로그램을 관리
    • 이 외에도 운영체제는 네트워크 통신, 입출력 장치 관리 등 우리가 컴퓨터 사용에 필요한 모든 것을 관리
  • 운영체제(OS) 종류는 대표적으로 Window OS, Mac OS, Linux OS 등이 존재
    • 전세계에서 가장 많이 쓰이는 OS는 Linux로 거의 모든 IT 회사에서 사용하는 서버는 Linux OS를 기반으로 동작
    • Linux OS 기반 운영체제는 Android OS, Ubuntu OS, Cent OS 등이 있음
  • 커널: 하드웨어의 자원을 이용해 프로그램을 관리하는 역할
    • 운영체제의 내부 구성요소 중 하나 
    • 보통 운영체제를 만들 때 커널을 기본으로 해서 그 위에 다른 것들이 올라가게 됨

 

하드웨어

CPU

  • 컴퓨터 시스템을 통제하고 프로그램에서 돌아가는 모든 계산을 함
    • 모든 프로그램들이 실행된다는 건 CPU가 일을 하고 있다고 생각하면 됨

 

메모리

  • 전기적인 신호를 내부에서 임시적으로 저장하는 역할
  • 메모리의 대표적인 역할
    • CPU의 계산 결과 저장
      • CPU가 계산을 하면서 나오는 결과들을 메모리에 임시적으로 저장하고 이를 다시 CPU가 사용하는 방식
    • 프로그램이 실행되는 공간 제공
      • 프로그램이 실행되면 프로세스의 형태로 메모리 위에 올라가고, 프로그램이 종료되면 메모리에서 사라짐
  • 메모리의 용량이 크다는 건 많은 정보들을 처리할 수 있으며, 더 많은 프로그램을 띄울 수 있다는 걸 의미

 

디스크

  • 정보를 영구적으로 저장하는 역할
  • 메모리가 프로그램이 실행되는 과정을 책임진다면, 디스크는 프로그램을 컴퓨터에 저장하는 과정을 책임짐

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형

'비개발자의 개발 지식 스터디 > 개발 배경지식' 카테고리의 다른 글

API  (0) 2023.07.12
라이브러리 & 프레임워크  (0) 2023.07.12
네트워크  (0) 2023.07.12
Git & Github  (0) 2023.07.12
프로그램 & 프로그래밍 언어  (0) 2023.07.11

+ Recent posts