# 개발 배경지식

Doozuu·2022년 9월 16일
0

CS

목록 보기
1/5

1. 운영체제 & 하드웨어

운영체제(OS) : 프로그램을 실행하는 메인 프로그램

👉🏻 상위 개념: Linux(전세계에서 가장 많이 쓰는 OS), Window, UNIX
👉🏻 하위 개념: Android, Ubuntu, Mac

하드웨어:

  • CPU: 컴퓨터 시스템 통제, 계산 (과정)
  • 메모리: 정보를 임시적 으로 저장 (결과)
    CPU의 계산 결과 저장, 프로그램 실행 공간 제공
  • 디스크: 정보를 영구적 으로 저장



2. 프로그램 & 프로세스

프로그램

: 개발자들이 짠 코드가 컴퓨터가 이해할 수 있는 코드들로 컴파일 된 것
컴파일: 사람이 짠 코드를 CPU가 읽을 수 있게(0,1) 변환해주는 과정

프로세스

: 실행되고 있는 프로그램

💡인터럽트: 새로운 프로그램을 실행할 때, 기존에 작업중인 프로세스를 대기상태로 두고 새로운 작업을 처리할 수 있게 해줌
🏗빌드: 코드를 실행할 수 있는 소프트웨어로 만드는 행위
📄 IDE(Integrated Development Environment): 코딩 & 컴파일을 하나의 프로그램 안에서 한 번에 할 수 있게 제공해주는 프로그램



3. 네트워크

: 컴퓨터 간의 연결

네트워크 연결을 위해 필요한 3가지: 프로토콜, IP주소, PORT

  • 프로토콜: 통신 방식, 규칙
    가장 많이 사용하는 프로토콜: HTTP/HTTPS
    HTTP = stateless protocol
    (이전 데이터 요청과 다음 데이터 요청이 서로 관련 없음.
    -> 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 성능 상의 이점이 생김.)
    HTTP: 네트워크 통신 과정에서 보안에 취약 -> HTTPS: 보안 강화

  • IP(Internet Protocol Address): 컴퓨터끼리 연결을 위한 네트워크 주소
    ⚠️ 컴퓨터의 고유 주소 아님!
    연결하는 네트워크(와이파이, 랜선)를 기준으로 IP 주소 부여받음.

  • PORT: 컴퓨터 내에 프로세스가 가지고 있는 주소
    네트워크 주소에 IP주소만 있다면 뒤에는 프로토콜의 기본 포트가 적용됨.



도메인 네임(URL)

: 사람이 쉽게 인식할 수 있는 네트워크 영문 주소

도메인 네임을 입력하면 네임 서버에서 IP로 반환받아서 사용.
DNS(Domain Name System) : 도메인 주소를 IP주소로 변환
도메인 네임을 붙이기 위해서는 호스팅 서비스에서 도메인 네임을 구매함.

클라이언트: 네트워크에서 정보를 요구해서 받는 쪽
ex) 웹, 앱
서버: 정보를 제공해주는 쪽
ex) 이미지 서버, API 서버, 웹 서버
호스트: 서버의 넓은 의미

💡 서버 요청 리퀘스트 방식

  • GET: 존재하는 자원에 대한 요청
  • POST: 새로운 자원을 생성
  • PUT:존재하는 자원에 대한 변경
  • DELETE:존재하는 자원에 대한 삭제
    ⚠️ 요청 메서드와 URL은 프론트엔드에서 설정해야하는 정보!

💡 HTTP 상태 코드: 서버에서 설정해주는 응답 정보
2XX: response (성공)
3XX: redirection
4XX: 클라이언트 에러
- 400 : bad request(잘못된 요청)
- 403 : Forbidden(서버에서 해당 자원에 대해 접근 금지)
5XX: 서버 에러
-501 : not implemented(요청한 동작에 대해 서버가 수행할 수 없는 경우)
-503 : service unavailable(서버가 과부하 또는 유지 보수로 내려간 경우)



4. 라이브러리 & 프레임워크

라이브러리: 프로그램의 특정 기능을 수행하도록 미리 짜여진 코드 뭉치
ex) 브라우저에서 영상 보는 기능 구현: 브라우저 대응, 해상도 변경, 배속 변경 등의 작업 필요 -> 영상 라이브러리 활용!

프레임워크: 코드의 뼈대 제공
ex) React, Angular, Vue



5. API

: 프로그램 간의 중개자 역할

보안 상의 문제로 제한된 기능을 간접적으로 제공하고 싶을 때.
어디(url)에 무엇을(Parameter)을 보내면 어떤 응답 (Response)을 응답할지 전부 약속되어 있음.
ex) 카카오 로그인 기능: 카카오 API 활용



6. Git & Github

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

버전: 프로젝트의 과거 작업 내역들

작업 과정
1. 개발자들은 마스터 브랜치를 복사해서 새로운 브런치를 만듦.
2. 그 안에서 커밋들을 쌓으며 작업.
3. 마지막에 해당 브랜치를 메인 브런치로 머지(병합)시켜서 커밋들을 합침.


💡git 브랜치 전략: git-flow, trunk-based

Git 시작하기

Github: Git이 적용된 원격 코드 저장소

CLI: command line interface
GUI: graphical user interface




출처: https://www.grabbing.me/8d9e92b19e084c5a8cb173a695aa81af#171215d0045b49e2affaf9e3c6eef635

profile
모든게 새롭고 재밌는 프론트엔드 새싹

0개의 댓글