fender
21k
2017-01-04 10:21:32
12
3916

요샌 가끔 'API'라는 용어를 'REST API'와 동일하게 이야기하는 경우가 있더군요


언젠가부터 맥락상 'REST API'를 이야기할 때 그냥 'API'라고 말씀하시는 분들이 종종 보이는 것 같더군요. 저 같으면 굳이 줄여 쓴다면 'REST'라고 할 건데 'API라고 하는 게 좀 어색해서 눈에 띄었습니다.

뭐랄까... '데이터베이스 서버'를 '데이터베이스'로 줄이는 대신 그냥 '서버'로만 부르는 느낌이랄까...

사소하긴 한데 왠지 우리나라 SI 관행과도 연관이 있을 것 같은 생각이 들어서 좀 씁쓸하긴 하더군요.

짐작이지만 자바나 스프링 API 문서 한 번 안보고 개발하시는 분도 많고, 실무에서도 객체지향을 전혀 사용하지 않으니 API 설계를 하거나 API를 놓고 협의를 할 일도 없고...

반면에 페이스북이나 구글 등을 연동할 일은 가끔 있는데 따라하기를 보면 '페이스북 API' 같은 것을 사용하라고 나오니까 그냥 그런 REST 서비스만 'API'로 부르는 것으로 착각하는 게 아닌가 하는 느낌이 들더군요.

혹시라도 초보 개발자분들 중에 API를 그런 의미로 알고 계신분들이 있다면 "API에 접속할 때 오류가 발생합니다" 같은 질문보다는'REST API'나 'REST 서비스'로 단어를 바꾸어 질문하시는 것을 권해드리고 싶습니다.

0
  • 댓글 12

  • zepinos
    20k
    2017-01-04 10:43:06

    100% RESTful 하게 구성하는 것도 어려워서 전 그냥 RESTful 스럽게 만든다고 하는데...RESTful 의 모든 개념을 다 써야 RESTful 하다고 하는 것도 아니고...그냥 몇 가지 관행의 불합리성을 지적하고 이렇게 구성하는게 좋다...고 제안한 수준이라고 생각이 들어서 그냥 RESTful 스럽게 만든다고 합니다.


    이거...어찌 쓰다보니 점점 ㄹ혜스럽게 글이 적히네요. 왜 이러지...


    어쨌든, API 라는게 전통적으로 앱이나 라이브러리 간의 규약이었다가 온라인으로 넘어오면서 HTTP 가 많이 쓰이게 되고, RESTful 로 좀 체계를 잡았다...정도의 이해조차 안하고 쓰는 사람들이 많다는 의미라면, 저도 찬성합니다.


  • dsms
    851
    2017-01-04 10:51:19

    정확하게 공부하는 사람이 많아져야 프로그래머의 질도 진입장벽도 상승하겠지요

  • de
    2017-01-04 11:06:08 작성 2017-01-04 11:08:09 수정됨

    음.... 아리송하네요 

    보통 컨트롤러작업 하는걸 API라고 하는데 저도 입에 붙었군요 -__-;;;

    bo 만 있고 api 는 아직만드는중입니다~ 이런식으로 많이 쓰는데.. 흠 아리송하네요 .. 

    100% restful 은 아니라서 ..

    API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.

    -----

    위키 내용인데 저희는 프론트랑 완전히 구별되어서 

    프론트엔드에서 데이터를 가져오거나 뭐 사용할수 있도록 만들어놓은걸 api 라고 부릅니다.. 

    다른가여.. 흠흠



  • 졸리다
    1k
    2017-01-04 11:26:36

    http://egloos.zum.com/killins/v/3092502

    혹시 저처럼 rest를 모르는분들을 위해 찾아봤어요 

  • 가가멜리
    1k
    2017-01-04 11:39:36 작성 2017-01-04 11:40:04 수정됨

    제대로 알고 용어를 사용하는 경우도 흔치 않고..

    제대로 개발된 것도 보기 힘든거 같아요.. 

    restful 을 100% 만들기는 어려워도 알고 고려하고 최대한 노력햇으면..

    restful로 만들었다 라고 하셧어도 괜찮을 것 같아요.


    사실... 저도 2년전 정도에 그랫다는 게 함정 ㅎㅎ

  • zepinos
    20k
    2017-01-04 11:49:11
    일단, 저의 경우 게임 클라이언트와 통신을 하는데 있어서 RESTful 스럽게 하려고 노력하는데, RESTful 에서 많이 강조하는 "캐시" 의 개념은 게임 서버-클라이언트 통신에서는 무의미합니다. 캐시가 필요한 데이터는 클라이언트에서 1회만 전송받고 다시 요청하지 않는 경우가 대부분이고, 서버 역시 내부의 캐시를 통해서 DB 조회 없이 전송할 뿐더러...브라우져 통신이 아니기 때문에 게임 클라이언트의 통신 모듈이 캐시를 지원할지도 의문입니다. 그렇기 때문에 URL 구성에 있어서 디렉토리에 값을 넣는 형태의 구성이 무의미합니다. 게다가 몇 겹의 암호화를 해놓기 때문에 POST 에 암호화한 채로 데이터를 주고받기 보다는 그냥 GET 주소에 위조방지 기술을 걸어놓는게 보통이구요. 그 외에도 몇가지 다른 점이 있지만...모든 HTTP 통신이 웹브라우져를 통해서 이루어지거나, 동일한 내용을 반복적으로 조회하는 형태가 아닌 이상 RESTful 스럽게 반드시 하긴 쉽지 않습니다.


  • fender
    21k
    2017-01-04 11:49:27

    뭐랄까... 휴대전화가 일반화된 이후로 '휴대전화' 대신 그냥 '전화기'로 부르는 건 괜찮은데, 그렇다고 유선 전화를 '전화기'로 인식하지 못하는 건 좀 이상하게 보인다 정도의 느낌인 것 같습니다.

    맥락상 HTTP 서비스 API만 있다면 어떻게 줄여써도 문제가 아니겠지만, 스프링 API를 사용해서 MVC를 구축하고, 마이바티스 API를 사용해서 데이터베이스와 연동하고 'List.add()' 같은 자바 컬렉션 API를 통해 데이터를 조작하는데, HTTP API만 API인 것처럼 용어를 사용하는 것은 이래저래 혼동의 소지가 있는 습관인 것 같다는 생각은 듭니다.


  • charlatan
    3k
    2017-01-04 13:05:31

    웹서비스도 비슷한 경우죠. 웹사이트를 구축한다를 웹서비스를 개발한다, 웹서비스를 만든다 등등으로 말하는데 사실 웹서비스라는 건 전혀 다른 걸 의미할 수도 있으니까요.

    그러고 보니 웹서비스 == Restful 이 아닌데 전에 인터페이스할때 과거의 WSDL 방식으로 해야 하는데 Restful을 말해서 커뮤니케이션이 안되었던 적이 있었네요.


  • fender
    21k
    2017-01-04 13:14:18

    freestyle // 그렇죠... 다만 그런 의미의 '웹 서비스'는 애초에 이름을 잘못 지었다는 생각이 강하게 들긴 하더군요.

    앞으로 모든 웹 기반 어플리케이션 연동이 그 스펙을 따를 것이라는 자신감이었는지 이미 있는 일반적인 용어를 특정 기술의 이름으로 정해버렸으니... ㅎㅎ

  • kenu
    52k
    2017-01-04 13:17:55

    RESTful (Representational State Transfer) 는 API의 한 형태로 보고 있어서, 컨텍스트와 샘플 또는 스펙문서만 있으면 그닥 문제되지 않을 것이라 생각합니다.

    조금 다른 얘기인데, 저장(Save)아이콘이 아직은 플로피디스크로 되어 있어서, 이게 언제 바뀔까 생각해 봅니다.


  • twinmoon
    1k
    2017-01-04 13:27:36

    저는 웹서비스는 WSDL 등을 사용한 XML 형태의 통신으로 생각하고 웹 API를 RESTful 로 생각하고 이야기 합니다.

    그냥 API라고 하면 자바 API 같이 생각하게 되는데 제가 일하는 영역에서는 API를 RESTful 로 생각하는 분은 없는거 같아요.

  • 덕구
    590
    2017-01-04 16:02:50 작성 2017-01-04 16:09:08 수정됨

     zepinos 님과 같은 생각을 저역시 하고 있습니다.

    제 주변도 그렇고 저도 그렇고 '인지는 하고 있으나 퉁쳐서 API'라고 말할 떄가 많습니다.

    물론 이는 대화에서의 얘기이며 이유는 여러가지가 있지만 대체적으로 발음상의 문제가 가장 크네요.

    어떠한 API를 언급하는지에 대해선 대화에서 유추가 되다 보니 커뮤니케이션 문제는 아직까진 없습니다.

    예를 들으신 휴대전화에 관해서 생각해 보면 스마트폰을 폰이라고 말하는 것과 비슷한 맥락이라 봅니다.

    말씀하시는 실무에 관한 이야기는 저도 동감하는 바이지만, 이 문제에 대해 심층적으로 생각해볼 문제까지는 아니란 생각이 듭니다.

  • 로그인을 하시면 댓글을 등록할 수 있습니다.