API를 개발한다는 것의 의미
2024. 12. 21. 16:58ㆍCS
1. 어플리케이션 개발
어플리케이션은 전체 시스템이다.
- 정의: 특정 목적을 가진 소프트웨어를 개발하는 것. (웹 애플리케이션, 모바일 앱, 데스크탑 프로그램 등)
- 목적: 사용자에게 특정 서비스를 제공하는 완성된 시스템을 만드는 것. (쇼핑몰 웹사이트, 일정 관리 앱, SNS 등)
- 어플리케이션은 크게 프론트엔드와 백엔드로 나눠지며, 두 부분이 협력하여 동작한다.
- 프론트엔드는 사용자가 직접 보거나 상호작용하는 부분으로, UI(User Interface)를 설계하고 구현한다. 예를 들어, 웹 페이지나 앱의 디자인, 버튼, 메뉴 등 화면에 보이는 요소들을 포함한다.
- 백엔드는 서버, 데이터베이스, 그리고 비즈니스 로직을 처리하는 부분이다. 클라이언트(사용자)와 서버 간의 데이터 통신을 담당하고, 서버에서 클라이언트의 요청을 처리하며 데이터를 관리한다.
2. 백엔드 개발
백엔드 개발은 어플리케이션의 서버 측을 개발하는 것이다.
서버는 클라이언트의 요청을 받아 처리하고, 필요한 데이터를 제공하거나 저장한다.
- 서버 관리: 클라이언트의 요청을 처리할 수 있도록 서버 환경을 설정하고 운영한다.
- 데이터베이스 관리: 데이터를 효율적으로 저장하고 조회할 수 있도록 설계하고 관리한다.
- API 설계: 서버와 클라이언트 간의 데이터 통신을 위한 API를 설계하고 구현한다.
- 비즈니스 로직 처리: 어플리케이션의 핵심 기능을 서버에서 처리한다.
3. API 개발
API(Application Programming Interface) 개발은 백엔드 개발의 한 부분이다.
- 어플리케이션의 서버와 클라이언트 간 데이터 통신을 담당
- API는 클라이언트가 서버에 요청을 보내고, 서버가 이를 처리하여 응답을 보내는 방식으로 동작한다.
- API는 서버와 클라이언트 간, 혹은 서로 다른 서비스 간의 데이터 교환을 가능하게 하는 중요한 역할을 한다. 예를 들어, 웹사이트에서 사용자가 로그인할 때, 로그인 API를 호출하여 서버가 사용자의 인증 정보를 확인하고, 그에 맞는 응답을 반환한다.
- API 설계: 클라이언트와 서버 간의 데이터 요청과 응답을 정의하는 작업.
- API 구현: 실제로 API가 동작하도록 코드를 작성하여 데이터를 주고받을 수 있게 한다.
왜 API를 만들까?
- 클라이언트(앱, 웹 등)가 서버에서 데이터를 가져오거나, 서버로 데이터를 보내야 하잖아?
- 이때 클라이언트와 서버가 같은 규칙(API)을 따라야 서로 데이터를 원활히 주고받을 수 있어.
- 우리가 스프링으로 이 규칙(API)을 만들어주는 거지!
- 비유하자면 API는 통로야. 클라이언트와 서버가 데이터를 주고받는 길을 만드는 거지.
- 클라이언트와 서버 간 데이터를 주고받는 경로와 규칙을 설계하고 구현하는 것이 API를 만드는 목적
API를 만든다는 것의 실제 의미
- HTTP 요청을 처리하는 경로(URL)를 만든다.
- 예를 들어, 클라이언트가 /users로 요청을 보내면 그 요청을 처리할 코드를 작성하는 거야.
- 이때 @RestController, @GetMapping, @PostMapping 같은 어노테이션을 써서 경로와 메서드를 정의하지.
- 요청 데이터를 처리한다.
- 클라이언트가 보낸 요청에서 데이터를 추출하고, 필요한 작업(예: DB에서 데이터 조회)을 수행해.
- 응답 데이터를 반환한다.
- 작업 결과를 JSON, XML 같은 형식으로 반환해서 클라이언트가 사용할 수 있게 만들어.
"HTTP를 사용해서 API를 구현한다"
- HTTP는 API가 동작할 때 사용하는 통신 규약 (통신 프로토콜)
- API의 통신 규약으로 HTTP를 사용한다. 라는 의미
"API를 REST로 만든다"
- REST는 API를 설계하는 방식
- REST 방식을 따른 API를 설계하고 구현한다. 라는 의미
- RESTful API는 HTTP 프로토콜을 기반으로 클라이언트와 서버가 데이터를 주고받는 규칙을 따르지.
- REST 스타일을 따르는 API를 만든다는 건, 클라이언트와 서버 간의 통신을 RESTful한 방식으로 구현하겠다는 의미야.
- REST 말고도 API를 설계하는 방식은 다양하다. REST는 이 중 하나의 방식일 뿐이야. (예: GraphQL API → GraphQL이라는 다른 설계 방식을 사용하는 API.) 참고: https://hnjee.tistory.com/72