WIL(Weekly I Learned) 1월 3째주

2022. 1. 16. 21:43WIL(Weekly I Learned)

반응형

<배운 것>

 

1. API (Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)

 

(1) API란?

API를 본격적으로 알아보기 전에, 비유를 들어 쉽게 설명을 도와드리겠습니다. 여러분이 멋진 레스토랑에 있다고 가정해봅시다. 점원이 가져다준 메뉴판을 보면서 먹음직스러운 스테이크를 고르면, 점원이 주문을 받아 요리사에 요청을 할 텐데요. 그러면 요리사는 정성껏 스테이크를 만들어 점원에게 주고, 여러분은 점원이 가져다준 맛있는 음식을 먹을 수 있게 됩니다.

여기서 점원의 역할을 한 번 살펴보겠습니다. 점원은 손님에게 메뉴를 알려주고, 주방에 주문받은 요리를 요청합니다. 그다음 주방에서 완성된 요리를 손님께 다시 전달하지요. API는 점원과 같은 역할을 합니다.
API는 손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)를 정리하고, 주문(명령)을 받으면 요리사(응용프로그램)와 상호작용하여 요청된 메뉴(명령에 대한 값)를 전달합니다.

레스토랑 손님 -> 내가 만들고자 하는 프로그램

레스토랑 점원 -> API

레스토랑 주방 -> API 제공자 Ex) 기상청, 공공포탈 등 

쉽게 말해, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있습니다.

 

(2) API의 역할은? 

1. API는 서버와 데이터베이스에 대한 출입구 역할을 한다.
: 데이터베이스에는 소중한 정보들이 저장되는데요. 모든 사람들이 이 데이터베이스에 접근할 수 있으면 안 되겠지요. API는 이를 방지하기 위해 여러분이 가진 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해줍니다.

2. API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
: 여기서 애플리케이션이란 우리가 흔히 알고 있는 스마트폰 어플이나 프로그램을 말합니다. API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 합니다.

3. API는 모든 접속을 표준화한다.
API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있습니다. 쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있습니다.

 

(3) API유형은 어떤게 있을까?

1) private API
: private API는 내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행합니다. 따라서 제 3자에게 노출되지 않습니다.

2) public API
: public API는 개방형 API로, 모두에게 공개됩니다. 누구나 제한 없이 API를 사용할 수 있는 게 특징입니다.

3) partner API
:partner API는 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있습니다. 비즈니스 관계에서 사용되는 편이며, 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용됩니다.

 

(4) API 사용하면 뭐가 좋을까?

API를 사용하면 많은 이점들이 있는데요. Private API를 이용할 경우, 개발자들이 애플리케이션 코드를 작성하는 방법을 표준화함으로써, 간소화되고 빠른 프로세스 처리를 가능하게 합니다. 또한, 소프트 웨어를 통합하고자 할 때는 개발자들 간의 협업을 용이하게 만들어줄 수 있죠.
public API와 partner API 를 사용하면, 기업은 타사 데이터를 활용하여 브랜드 인지도를 높일 수 있습니다. 뿐만 아니라 고객 데이터베이스를 확장하여 전환율까지 높일 수 있지요.

 

(5) 요약

  • 개발자가 프로그램을 만드는데 필요한 어떤 기능을 직접 구현하지 않고 API 제공자들이 제공하는 데이터와 모듈 등을 갖다쓸 수 있게 해주는 게 API와 API 문서이다.
  • 예를 들어 내가 네이버를 통해 내 페이지를 네이버 서비스에 공유하고 싶다면 네이버에서 제공하는 공유하기 API를 문서에서 제시하는대로 맞춰서 쓰면 된다. 
  • API가 공개되지 않았다면 쓸 수 없다. 또 공개 API라고 하더라도 호출 횟수가 많아지면 비용을 지불해야 할 수도 있다.

2. JWT (Json Web Token)

 

쿠키, 세션, 토큰, JWT (tistory.com)

 

쿠키, 세션, 토큰, JWT

쿠키, 세션, 토큰에 대한 이해 참고: https://www.youtube.com/watch?v=tosLBcAX1vk(노마드코더) 참고: https://velopert.com/2350(벨로퍼트) Auth(인증)을 통해 서비스는 유저를 검증할 수 있는데, 이때 유저 인..

cooked-developer.tistory.com


<생각>

 

1월 10일 항해99를 시작하여 이제 1주차가 지나간다. 

코드의 코짜도 전혀 모른채, 그 흔한 코딩 강의한번, 코드 단 할줄도 써보지 않은채로... 도대체... 무슨 말도안되는 자신감이 있었는지 덜컥 항해99 홈페이지를 보고 지원을 하였다. 왠지 지금 도전하지 않는다면 내 인생에서 개발자라는 꿈을 꿀수가 없을 것만 같았다. 

12월 25일 새벽에 지원을 하여 당일 오후에 합격전화를 받고 부랴부랴 12월 27일 부터 시작된 사전 스터디. 

그리고 1월 10일 항해99를 시작하자마자 시작된 미니프로젝트와 이틀전부터 시작된 JAVA 알고리즘 스터디(프로그래머스라는 알고리즘 사이트의 문제를 조원끼리 돌아가면서 풀어보는 스터디다). 

항해99에 합격 후 지금까지 짧다면 짧고 길다면 길 수 있는 딱 3주가 지났다. 그 기간동안 총 3번의 팀이 지나쳐갔다. 그러면서 모든 과정들이 코딩을 처음 접하는 나에게는 무척 신기하면서도 즐거웠다. 이렇게 코드를 짜면 이런 기능이 작동을 한다니!!! 정말 신기하지 않은가. 무언가 새로운 것을 배우는 과정은 언제나 두려움과 설레임을 동시에 선사한다. 그러면서 드는 단 한가지의 생각.

조금만.

아주 조금만이라도.

미리 조금만이라도.

공부했더라면... 

하는 아쉬움이 든다. 그러면 이 과정을 더욱 즐길 수 있었을텐데. 시간은 한정되어있고, 이 과정을 더 공부하고 싶고 알아갈 때 쯤, 다음 과정으로 간다. 나에게는 정신이 없는 하루하루다. 뭔가 한가지에 마무리를 다 못한 채 또 다른 것을 하는 ... 공부를 해도 기본이 안되어 있는 현재의 나에게 그리고 과거의 나에게 화가난다. 미리 조금만이라도... 다른 팀원들 만큼만이라도 공부를 조금이라도 했더라면... 지금 더욱 즐거울텐데...이렇게 출발점이 다르지는 않을텐데...라는 아쉬움이 많이 든다.

하지만 출발점이 다르다고 하더라도 누가 상관하겠나. 나 혼자만의 개인 사정인걸. 최소한 팀의 민폐가 되지 않기위해, 일단 당장의 팀원으로서 내가 해야하는 일에만 집중을 하고있다. 

이제 이 아쉬움을 뒤로한채 어떻게든 묵묵하게 걸어나가려고 한다. 항해99를 시작한 첫날부터 큰 벽같은 장애물에 많이 좌절도 하고, 나와는 차원이 다른 팀원들의 실력에 기도 많이 죽었었다. 아무리 아닌척을 하려해도 차이가 나는 건 나는거다. 그래도 일단 시작한거 절대 포기란 없다. 그리고 이제 그 차이를 알기 때문에 방법은 단 한가지 뿐이란 걸 안다.

그냥 하는거.

그 차이를 인정하고 받아들이는 거.

그래서 그냥 하기로 했다. 이것저것 안따지고.

천천히 걸어도 멈추지만 않으면, 멈춘 사람보다는 빠르니까 말이다. 

노력은 기본이고, 최선은 당연하다. 그저 오뚜기처럼 쓰러져도 일어나고 쓰러져도 일어나련다. 

이 글을 항해99를 마치고 취업을 한 후 읽으면 너무 재미있을 것 같다라는 생각이 스쳐지나간다.

아무리 아쉽다고 해도, 개발에 대해 알아가면 알아갈수록 너무 재미있다. 특히 이렇게 했는데 이런 기능이 작동한다는 것이 너무 신기하다. 마치 로봇의 심장을 뛰게 한 것 같은 느낌? 단지 못해서 그렇지 잘하면 할수록 더욱 재미있을 것 같다. 이번주는 이렇게 아쉽게 흘러갔지만, 다음주부터는 더욱 재미있게 보내야겠다. 화이팅!

반응형