인프런 커뮤니티 질문&답변

김상운님의 프로필 이미지
김상운

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

HTTP Status Code 제어

API란

해결된 질문

작성

·

700

0

안녕하세요 선생님!

웹 백엔드 개발자를 희망하는 대학생입니다. 선생님의 강의를 들으며 api를 설계하고 있는데 궁금증이 생겼습니다.

이전 까지 학습했던 spring 기반 웹 공부는 사용자의 요청에 따라 SSR를 통해 view를 응답해주는 것으로 알고 있는데 api는  uri와 http 메소드를 통해 json으로 응답해주는 것으로 알고 있습니다. 

궁금한 점은,  프로그래머가 아닌 일반 사용자가 view 에서가 아닌 api를 통해 json 형식으로  회원가입, 조회를 하지 않는거 같은데 api는 언제 쓰이는지 궁금합니다.

단순 개발자의 편의를 위해?

너무 두서가 없네요ㅠㅠ 아직 api의 감이 안잡혀서 그런거같습니다.. 본질적으로 왜 쓰이는지에 대해서 인지를 하고 학습을 하면 더 유용할 것 같습니다. 감사합니다^^

답변 2

3

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

api의 의미를 다시한번 살펴보면, Application Programming Interface입니다. 의미 그대로 애플리케이션이션 개발을 위한 프로그래밍에서 사용되는 인터페이스입니다. 여기에서 인터페이스라는 것은 서로간의 약속을 의미하며, 어떤 방식으로 호출해야 하는지, 전달되는 인자 값의 형태나 반환 받는 데이터의 형식 등을 지정하고 있습니다. 모든 메소드, 함수, 클래스 등을 사용할 때, 이렇게 서로 정해진 약속에 의해 호출하고 사용되는 것입니다. 말씀하신 것처럼 API가 단순하게 URI, HTTP 메소드나 JSON의 형식으로 응답한다기 보다는, 해당 작업을 위해 필요로 하는 Endpoint(URI), 호출해야하는 방식 (Http Method), 사용되는 데이터 포맷은 다양합니다. 쉽게 말해 URI, HTTP, JSON을 사용하는 것은 RESTful API 방식이라고 이해하는 것이 정확한 표현인 것 같습니다. RESTful API도 서비스를 제공하는 측(서버)이 가지고 있는 데이터의 상태를 표현하는 방법을 정의하는 것이고, 이러한 데이터의 상태를 사용하거나 변경하기 위한 방법을 정의한 인터페이스가 RESTful API입니다. 

모든 애플리케이션 개발에 있어서, 자신이 개발하고 있는 함수나 클래스 뿐만 아니라, 다른 개발자가 개발한 라이브러리 등을 사용하기 위해서도 해당 개발자 등이 정해 놓은 규칙에 맞게 사용해야 하고, 이렇게 정의한 것이 API입니다. 예를 들어, System.out.println()라는 메소드를 사용하기 위해 println()이라는 메소드에 전달되는 데이터의 종류나 개수 등을 정의하는 것이 API입니다. 

궁금하신 사항 있으시면 언제든지 글 남겨주셔요. 

감사합니다. 

0

김상운님의 프로필 이미지
김상운
질문자

감사합니다! 이제 감이 잡힌 것 같습니다!

김상운님의 프로필 이미지
김상운

작성한 질문수

질문하기