반응형
다음 대화를 무난히 이해해보자.
기획 : 혹시 저번에 말씀드린 아이콘 수정은 언제까지 될까요?
개발: 아 그게 서버에서 이미지 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 공개 이유
- 많은 사람들이 방문하도록 유도
- 비즈니스 모델로 활용 (일정 횟수 이상은 돈을 내야 함)
- Open API 공개 이유
- 네이버에서 API 문서를 제공 : Open API
반응형
'📕 독서 기록' 카테고리의 다른 글
[독서 기록📚] 그로스해킹 (1) - 그로스 해킹, PMF (0) | 2025.03.01 |
---|---|
[독서 기록📚] 비전공자를 위한 이해할 수 있는 IT지식 (3): 데이터베이스, 프레임워크와 라이브러리, 깃/브랜치/머지 (0) | 2025.03.01 |
[독서 기록📚] 비전공자를 위한 이해할 수 있는 IT지식 (2) : 애플리케이션과 웹 (1) | 2025.02.28 |
[독서 기록📚] 프로덕트 오너 (0) | 2025.02.25 |
[독서 기록📚] 그로스해킹ㅣ성장하는 서비스를 만들기 위한 방법 (1) | 2025.02.20 |