본문 바로가기
생각정리

Api 와 라이브러리에 대한 나의 생각

by 개발_블로그 2021. 9. 14.
반응형

Api와 라이브러리는 비슷하다고 생각이 되면서도 다르다 . 

이 차이점이 무잇일까에 대한 나의 생각을 적어놓아야겠다

API(Application Programming Interface)

응용 프로그램에서 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

 

필요한 부분을 요청하여 응답을 받는 서비스간의 다리와 같은 역할

  • 구현과 독립적으로 사양만 정의 되어있음
  • 접근권한을 부여받아야함
  • 말그대로 인터페이스, 안에는 무엇이 들어있는지 알 수 없음.

쉽게말해서 api란 = 어떤 서버 문서의 코드를 불러와서 내 데이터를 넣어서 내가 사용할 수 있게 만드는것 
ex) 네이버의 로그인 api를 쓴다고 할때 네이버의 승인을 받고(네이버에서 요구하는 인증을 거치고 내 앱을 등록하는 과정이 필요 ) 로그인 api (네이버 서버의 로그인 페이지 문서)를 가져와서 나의 앱에서 내 데이터를 넣고 사용한다 .

 

그래서 이런식으로 네이버 서버의 코드(api 문서)를 가지고와서 내 앱에 맞게 사용하는 것이 가능하다

   val callback: (OAuthToken?, Throwable?) -> Unit = { token, error ->
        if (error != null) {
            Log.e(TAG, "로그인 실패", error)
        }
        else if (token != null) {
            Log.i(TAG, "로그인 성공 ${token.accessToken}")
            // 토큰 정보 보기
            UserApiClient.instance.accessTokenInfo { tokenInfo, error ->
                if (error != null) {
                    Log.e(TAG, "토큰 정보 보기 실패", error)
                }
                else if (tokenInfo != null) {
                    Log.i(TAG, "토큰 정보 보기 성공" +
                            "\n회원번호: ${tokenInfo.id}" +
                            "\n만료시간: ${tokenInfo.expiresIn} 초"+
                            "\n카카오토큰: ${tokenInfo.appId}")
                    user_token=tokenInfo.appId.toString()



                }
            }

 

 

라이브러리 (Library)

응용 프로그램 개발을 위해 필요한 기능을 모아 놓은 소프트웨어

  • 응용프로그램이 능동적으로 라이브러리를 사용 : 기능들을 어떻게 사용할지 사용자가 결정
  • 부품이 되는 소프트웨어의 집합
  • 작은 기능들을 함수 단위로 만들어 제공
  • 기능들을 어떻게 사용할지 사용자가 결정
  • 대체가능한 다른것을 찾기 쉬움


라이브러리란 = 어떤 기능이 담긴 소프트웨어 

(도서관(라이브러리) 에서 내가 읽고싶은 책을 찾아서 읽듯이 라이브러리도 내가 쓰고싶은기능을 찾아서 사용하면 된다)


ex) glide를 사용하여서 사진을 불러온다 . glide에는 여러가지 기능이 있지만 내가 사용하고 싶은 메서드만 가져와서 사용한다.   

 

그래서 이런식으로 라이브러리를 사용하고 별도의 코드 없이  나에게 필요한 메서드를 찾아 사용해서 나의 앱에 적용하면된다.  



 

틀린부분이 많이 있을 수 있으니 틀린게있다면 댓글 달아주세요~

 

참고블로그 

https://velog.io/@tjdud0123/API-vs-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-vs-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC

반응형