개발자
restAPI로 만든면 java와 python 코드 공유가 가능하다고 해서 물어봅니다
답변 1
인기 답변
안녕하세요! 시간이 많이 지나서 이미 답을 알고 계실 것 같지만 답변 남깁니다. API는 application programming interface의 약자입니다. 단순하게 설명하면 프로그램/앱끼리 서로 어떻게 상호작용할지 정해놓은 정의들과 통신 방식입니다. API는 특정 개발 언어에 국한되지 않고 아무 개발 언어로 구현 가능합니다. 음... 뭐랑 비교하면 와 닿을까요. 오케스트라/밴드를 보신적 있나요? 보통 연주를 시작하기전에 튜닝(음정을 맞추는 것)을 합니다. 그리고 합주자들끼리 튜닝할 때 기준점이 되는 음을 정합니다. 일반적으로 440Hz 주파수를 가지는 "라" 음을 한 악기가 연주하면, 나머지 악기들이 해당 음에 자신의 "라"음을 맞추는 방식입니다. 튜닝을 하는 이유는 하나의 음을 연주했을 때 모든 악기가 최대한 비슷한 음을 내야 곡을 의도한대로 연주할 수 있기 때문인데요. 여기서 `440Hz "라"에 음을 맞추자`라는 정의를 했기 때문에 그 어떤 악기로도 "라"음을 내면 음이 일관되게 들리고 연주 시 음정이 맞고 화음이 맞게된다고 볼 수 있습니다. `440Hz "라"음에 맞추자`가 일반적이지만 오케스트라에 따라서 기준 주파수가 440Hz가 아니라 443Hz, 435Hz 등 여러가지로 변할 수 있는데요. 하지만, 주파수에 상관없이 모든 악기가 `x 주파수가 "라"음이다`로 정의하고 튜닝을 하면 440Hz든 443Hz든 악보를 연주하는데 문제는 없습니다. 이 정의를 정하는 것을 API의 종류를 정하는 거라고 표현할 수 있을 것 같아요. 알고 계신 REST API외에도 SOAP, RPC, Websocket API 등 여러 종류의 API가 있습니다. REST API가 440Hz라면 SOAP은 443Hz, RPC는 435Hz라고 보면되고 어떤 방식을 채택하든 통신하는 앱끼리 같은 방식을 사용한다면 서로 상호작용하는데 문제없습니다. API 통신 방식의 종류는 검색을 통해 찾아보면 금방 나오니 직접 찾는걸 추천드려요. 바이올린, 비올라, 첼로, 오보에, 피아노 등 생긴건 달라도 여러 악기가 "라"음을 맞추기만 한다면 연주할때 의도한 화음이 나오듯이 API도 언어랑 상관없이 어떤 API인지 정하기만 한다면 통신하는데 문제없습니다. 그런 의미에서 "restAPI로 만든면 java와 python 코드 공유가 가능하다"라는 표현은 맞지 않고 정확히는 java로 만든 앱과 python으로 만든 앱이 REST API를 쓴다면 서로 통신할 수 있다로 해석할 수 있습니다. (기타를 트럼펫처럼 불어서 연주할 수 없듯이 언어가 다르면 코드 공유는 어렵습니다) 비유가 적절했는지 모르겠지만 이해를 하는데 도움이 되셨으면 좋겠네요 ㅎㅎ 보통 이런 개념들은 약간의 검색과 Chat GPT를 활용하면 좋은 정보들을 찾을 수 있으니 참고하시길 바랍니다. 개념을 처음 이해하는데 읽을만한 리소스 몇 개 첨부할게요 :) - https://aws.amazon.com/ko/what-is/api/ - https://aws.amazon.com/ko/what-is/restful-api/ - https://cloud.google.com/apis/design?hl=ko (이건 RPC입니다)
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 09월 16일
API는 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)의 줄임말로, 한 소프트웨어나 시스템이 다른 소프트웨어나 시스템과 상호 작용하는 방법을 정의한 것입니다. 이는 모듈, 클래스, 함수 등을 포함할 수 있으며, 어떤 동작을 수행하거나 재사용 가능한 컴포넌트에 접근하기 위한 방법들입니다. API의 종류에는 REST, SOAP, GraphQL 등이 있습니다. - REST(Representational State Transfer) API: 웹 서비스와 통신하는 방법 중 하나로 HTTP/HTTPS 프로토콜을 통해 서버 제공 기능을 사용할 수 있는 API입니다. 간결하고 유연한 구조가 장점입니다. - SOAP(Simple Object Access Protocol) API: 복잡한 기능을 제공할 때 사용되며, 메시지 전송과 같은 고급 옵션을 제공합니다. 안정적인 통신이 필요할 때 많이 사용되지만 복잡성이 높은 단점이 있습니다. - GraphQL: 클라이언트가 필요로 하는 데이터를 정확하게 요청하여 성능 최적화를 할 수 있는 API 스타일입니다. 각각의 클라이언트가 필요로 하는 데이터만 가져올 수 있어 효율적이지만, 복잡한 설계가 필요한 단점이 있습니다. API는 다양한 프로그래밍 언어로 작성될 수 있습니다. Java, Python, JavaScript(Node.js), PHP 등 다양한 언어로 REST API를 구현할 수 있습니다. 그러나 한번에 하나의 프로그래밍 언어로만 API를 작성하고 이를 다른 언어로 바꾸는 것은 일반적으로 쉽지 않습니다. 그리고 질문에서 말씀하신 "Java와 Python 간의 코드 공유"라는 부분은 직접적으로 두 언어 간의 코드 공유를 의미하는 것이 아니라, API를 통해 서버와 클라이언트 간에 데이터를 주고받을 때 사용되는 공통된 형식(JSON, XML 등)을 말하는 것일 가능성이 높습니다.API는 일종의 규칙셋이기 때문에 다른 시스템과 상호작용할 수 있는 '다리' 역할을 합니다. 따라서 Java로 작성된 서버와 Python으로 작성된 클라이언트가 RESTful API를 통해 소통하는 것은 가능합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!