[독서] 비전공자를 위한 이해할 수 있는 IT지식

ljkgb·2021년 4월 17일
0

독서

목록 보기
1/1

비전공자를 위한 이해할 수 있는 IT지식


1. 컴퓨터의 구성 요소

1) CPU(중앙처리장치): 컴퓨터의 머리 역할

  • 따로 데이터를 저장하지 않기 때문에 데이터를 연산하거나 처리하려면 저장된 데이터를 CPU로 보내줘야 함

2) RAM(주기억장치): CPU의 개인 작업공간 역할

  • CPU에 비해 HDD, SSD(보조기억장치)의 속도가 매우 느려 RAM에서 작업

3) HDD, SSD(보조기억장치): 컴퓨터의 창고 역할

  • 비휘발성 기억 장치

2. 네트워크와 운영체제

1) LAN(Local Area NEtwork): 컴퓨터가 연결된 작은 지역

2) MAN(Metropolitan Area Network): LAN의 집합체

3) WAN(Wide Area Network): MAN의 집합체

4) 클라이언트와 서버

  • 클라이언트: 요청을 보내는 쪽
  • 서버: 요청을 받는 쪽
  • 개인이 직접 서버를 운영할 경우 안정성 문제와 리스크가 발생할 위험이 높기 때문에 서버를 대신 운영해주는 호스팅 업체를 쓴다. 국내의 대표적 예로는 cafe24, 가비아 등의 회사가 있으며 해외에서는 아마존의 AWS를 꼽을 수 있다.

5) 운영체제

  • 우분투: 리눅스 운영체제의 여러 버전 중 하나
  • 레드햇(Red Hat) 리눅스: 리눅스를 개량해서 유료로 판매하는 회사(금융회사와 같이 안정적인 서버가 필요한 곳에서는 유료이지만 품질을 보장해주는 운영체제를 사용해야 할 수 있다.)
  • 안드로이드: 구글이 리눅스를 모바일 운영체제 형태로 개량하여 발전시킨 운영체제
  • 윈도우와 맥 OS와 같은 운영체제는 그래픽 UI가 붙어있어 직관적이고 사용하기 편하지만 그로인해 유료이기도 하다 그래서 보통 서버를 개발할 때에는 그래픽 UI가 없어 사용할때 명령어를 이용해야하고 직관성이 떨어지긴 하지만 리눅스를 많이 사용한다.

3. API와 JSON

1) API: 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계

  • API는 서버 개발자가 개발하며 클라이언트 개발자는 그 API를 사용함(서버 주소 정의는 서버 개발자의 주도하에서 이루어짐)
  • CRUD(Create, Read, Update, Delete): 데이터를 다루는 큰 틀로서 데이터를 볼때 항상 CRUD관점으로 생각해봐야 한다.(CRUD중 특정 기능이 없는 기획이라면 그 기획 의도가 명확해야 함)
  • REST(Representational State Transfer) API: 체계적인 API관리를 위한 사회 운동
    • Create: POST
    • Read: GET
    • Update: PUT(전체), PATCH(일부)
    • Delete: DELETE
  • Status Code: 클라이언트 요청에 서버 응답 코드 = HTTP 상태 코드
    • 200번대(성공): 요청을 성공적으로 받았으며 인식했고 수용했다.
    • 400번대(클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다.
    • 500번대(서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다.
      ... 그 외에도 있지만 가장 많이 사용하는 200, 400, 500번대의 내용만 알아보도록 한다.
  • SDK(Software Development Kit): 소프트웨어를 개발하기 위한 도구(ex. 구굴에서 제공하는 지도 SDK를 설치하면 자신의 소프트웨어에 구글 지도 기능을 넣을 수 있음, 이 SDK에서 제공하는 API를 통해 구글 지도에 요청을 보내는 것!)

2) JSON: 클라이언트와 서버가 요청과 응답을 주고받을 때 데이터를 넣을 수 있는 기능의 형식

  • 과거에는 XML이라는 형식이 많이 쓰였고 현재 가장 유명한 형식은 JSON임
  • {키(Key):값(Value)}
  • ['상품1', '상품2', '상품3']

4. 웹(Web)

1) 웹

  • 브라우저도 하나의 어플리케이션으로 브라우저의 버전마다 그 안의 구현방식이 다르다.
  • 브라우저 버전의 파편화: 개발자는 소비자의 브라우저 버전과 종류에 맞춰 정상적으로 동작할 수 있도록 해야함.

2) 웹과 어플리케이션

  • 웹: 코드수정 -> 원본 파일을 수정된 파일로 교체 -> 변경 완료
  • 어플리케이션: 코드수정 -> 모바일일 경우 마켓에 업로드(심사필요), 데스크톱일 경우 서버에 업로드 -> 사용자들이 각각 버전 업데이트 -> 변경 완료

내가 개발자라는 진로를 선택해서 처음으로 읽게 된 책이다. 책 리뷰를 보면 쉽다는 글이 많은데 정말 코딩에 ㅋ자도 모르고 네트워크에 ㄴ자도 아에 모르던 수준에서 읽기 좋았다. 모든 내용을 깊게 들어가진 않지만 컴퓨터의 구성요소부터 마지막엔 깃까지 훓으며 책을 다 읽고 나서는 낯선 개발 용어들에 조금은 가까워 질 수 있었다. 물론 더 깊게 공부할 예정이지만 큰 틀을 파악하기에는 아주 좋았다!

profile
🐹

0개의 댓글