Winnie The Pooh Bear

📕 독서 기록

[독서 기록📚] 비전공자를 위한 이해할 수 있는 IT지식 (1) : 프로그래밍 언어, 클라이언트, 서버, API, JSON

alwayshappydaysforever 2025. 2. 27. 20:05
반응형

이 이미지를 보고 해석할 수 있다면 이 책은 읽지 않으셔도 됩니다 ~


다음 대화를 무난히 이해해보자.

기획 : 혹시 저번에 말씀드린 아이콘 수정은 언제까지 될까요?
개발: 아 그게 서버에서 이미지 URL을 보내줘야 하는데, API가 미완성인 것 같아요. JSON에 아이콘 URL만 빠져있네요… 클라는 URL이 안 오면 기본값이 뜨게 해놨어요. 그런데 제가 임의로 만들어서 좀 이상하게 보일 겁니다.

 

개념 설명
클라이언트 서비스를 사용하는 유저들이 소유한 컴퓨터 (= 프론트 엔드)
서버 클라이언트의 요청에 응답하는 컴퓨터 (= 백 엔드)
API 클라이언트가 기능을 사용하기 위해 서버의 주소로 요청을 보내면 서버가 응답을 해주는 소프트웨어끼리의 체계
(서버 개발자가 개발)
SDK API를 제공해주는 ‘다른 소프트웨어’, 소프트웨어를 개발하기 위한 도구
JSON 클라이언트와 서버는 요청과 응답을 주고받고, 그 때 필요한 데이터들을 JSON 형식으로 주고받는다
API 문서 ex. 네이버에서 API 문서를 제공 : Open API

1. 프로그래밍 언어 & 운영체제

  • 컴퓨터(하드웨어) 구성
    다만 우리는, 컴퓨터(하드웨어)의 구성을 잘 몰라도 운영체제(OS)가 이 역할을 대신 해준다.
    • CPU
    • 메모리 : 보조기억장치와 CPU를 한데 두면 속도가 매우 느려져서 대체하기 위한 장치
      • 보조기억장치에 저장된 내용을 메모리로 올려 CPU가 활용할 수 있다.
    • 보조기억장치
  • 프로그래밍 언어를 구분하는 기준
    • 저수준 : 컴퓨터 친화적 언어 (배우기 어렵지만 컴퓨터 사양 낮아도 괜찮음) -> C 언어
    • 고수준 : 인간 친화적 언어 (배우기 쉽지만 컴퓨터 고사양이어야 함)파이썬
  • 각 운영체제에 따른 프로그래밍 언어가 존재
    • IOS : Objective-C
    • Android: JAVA, Kotlin
    • 단, 자바는 운영체제에 독립적인 언어
    • → JVM위에서 자바로만 프로그램을 만들어도 모든 운영체제에서 사용 가능

2. 네트워크, 클라이언트, 서버

  • 네트워크 : 각각의 IP 주소를 가짐 (ex. 1311.3333.5555.6666)
☝🏻 쉬운 예시
식당에 가면
1) 주문하는 사람 = 클라이언트
2) 종업원 = 서버 
  • 클라이언트 : 서비스를 사용하는 유저들이 소유한 컴퓨터 (= 프론트 엔드)
  • 서버 : 클라이언트의 요청에 응답하는 컴퓨터 (= 백 엔드)
    • 서버 프로그램은 ‘리눅스(= 서버 프로그램을 돌리는 운영체제)’ 위에서 돌린다.
      • 리눅스의 유명한 버전 중 하나는 ‘우분투’이다.
      • 서브 프로그램은 폴더, 휴지통 같은 ‘그래픽 UI’가 필요없고, 24시간 안정적으로 돌아가는 것이 더 중요하다.
    • 서버를 운영해주는 서비스가 나타나기 시작함 (ex. Cafe 24, 가비아, AWS,…)

3. API와 JSON

  • API(Application Programming Interface)
    : 클라이언트, 서버가 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계
 클라이언트가 기능을 사용하기 위해 서버의 주소로 요청을 보내면 서버가 응답을 해주는 소프트웨어끼리의 체계

 

  • 1)요청을 보내는 쪽과 2)응답을 주는 쪽으로 구성 
  • API를 통해 요청과 응답을 주고받을 때는 ‘데이터’도 같이 담긴다.
  • 이를 무사히 수행하려면 ‘정확한 곳’에 요청을 보내야 한다 (= 서버주소)
    • 이를테면, 서버주소/A라고 보내면 ‘로그인’을 서버주소/B라고 보내면 ‘회원가입’을 진행한다.
    • 서버 프로그램은 ‘서버 개발자’가 개발하고, 서버 주소 정의 역시 서버 개발자의 주도하에 이루어진다.
☝🏻 API는 서버 개발자가 개발하고, 클라이언트 개발자는 그 API를 사용한다.
  • 클라이언트 관점에서 바라보는 API

  • 서버 관점에서 바라보는 API 
    • 클라이언트의 요청에 서버가 생각할 수 있는 경우의 수
      • 잘 처리됐을 때 : 200번대 코드
      • 잘 처리되지 않았을 때
        • 클라이언트의 요청이 문제: 400번대 코드 (ex. 404 에러코드)
        • 서버가 문제: 500번대 코드
SDK (Software Development Kit): API를 제공해주는 ‘다른 소프트웨어’, 소프트웨어를 개발하기 위한 도구  

구글 지도 SDK를 설치하면 내 소프트웨어에서 구글 지도 기능을 넣을 수 있다. 해당 SDK에서 제공해주는 API를 통해 구글 지도에 요청을 보낼 수 있다.

  • JSON: 클라이언트와 서버는 요청과 응답을 주고받고, 그 때 필요한 데이터들을 JSON 형식으로 주고받는다
  • API 문서
    • 네이버에서 API 문서를 제공 : Open API
      • Open API 공개 이유
        • 많은 사람들이 방문하도록 유도
        • 비즈니스 모델로 활용 (일정 횟수 이상은 돈을 내야 함)
반응형