여러분들 검색하다 보면 API라는 말에 대해서 많이 들어보셨죠?
이번에는 API란 무엇인가에 대해서 설명 드리고 그것을 이용해 무엇을 할 수 있는지
알아보는 시간을 갖도록 하겠습니다.

 


그럼 API란 무엇일까요? Wiki에서는 다음과 같이 정의하고 있습니다.

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

 

이 내용으로 이해가 가시나요? 여러분이 알고 있는 API와 달라서 많이 당황하진 않으셨나요?
아무래도 복잡하시죠?

 

좀 더 상세히 설명해보도록 하겠습니다.
위에서 정의한 API의 내용은 어플리케이션(PC, Mobile) 개발에 적합한 정의입니다.
따라서 웹(web)에서의 API만을 생각하신다면 Wiki의 정의 자체가  이해 안될 수도 있습니다.

 

도대체 운영체제가 무엇이고 프로그래밍 언어가 무엇인지부터 헷갈리기 시작하죠!
그것도 웹(web)에서 말입니다. 하지만 하나하나 뜯어보면 별거 없습니다.

 

에서의 운영체제 IE, 크롬, 사파리와 같은 인터넷 브라우저입니다.

프로그래밍 언어는 HTML, Javascript, CSS 같은 클라이언트 언어와 PHP, JSP, ASP등과 같은 서버 스크립트 언어라고보시면 됩니다.

 

그렇다면 응용프로그램은 무엇일까요?
프로그래밍 언어를 통해서 웹에서 얻을 수 있는 결과물인 바로 여러분의 웹사이트가

응용 프로그램에 해당한다고 보시면 됩니다.

 

자, 그럼 마지막에 설명되어 있는 파일제어, 창제어, 화상처리, 문자제어 등을 위한 인터페이스를 제공한다고 했는데요~!!

이 부분은 무엇일까요?

 

예를 들어 회사에서 사용하려고 파일 제어(관리)하는 응용프로그램을 만들었다고 생각해보세요!
하지만 보안 우려가 있어 타인에게 해당 프로그램 소스를 공개하면 안됩니다.

그럼 회사 직원들이 이걸 사용하려면 어떻게 해야할까요?

바로 여기서 API가 필요한 것 입니다.
API를 통해 소스 공개는 하지 않으면서 특정권한으로 파일을 업로드/다운로드할 수 있는

기능(인터페이스)을 제공해주는 것 입니다. 바로 이것이 API가 하는 일입니다.

 

예시로 드린 설명은 데스크탑 응용프로그

램 관점에서의 API 역할입니다. 보통 웹에서의 API는 데이터를 요청하고 응답하는게 전부입니다.

그렇기 때문에 WiKi에서는 웹API를 아래와 같이 따로 정의해 놓았습니다.

 

“웹 API는 웹 애플리케이션 개발에서 다른 서비스에 요청을 보내고 응답을 받기 위해 정의된 
명세를 일컫는다.”

 

이렇듯 웹API는 오히려 더 간단하고 명확합니다.
웹에서 특정 하드웨어의 기능을 이용할 수 없기에 단순히 데이터만 주고 받는 것으로 

API가 정의될 수 있습니다.

 

자 그럼 웹API의 데이터를 가지고 무엇을 할 수 있을까요?

다양한 예시를 통해 알아보도록 하겠습니다.


1. 네이버 지도 API를 이용해 내 쇼핑몰에 약도를 넣는다.
2. 기상청 날씨 API를 이용해 내 쇼핑몰에 날씨를 넣고 싶다.
3. 네이버 가격비교 API를 이용해 내 쇼핑몰에 가격비교 정보를 넣고 싶다.
4. 페북이나 트위터 같은 소셜사이트에 콘텐츠를 공유하고 싶다.
5. 구글 웹로그분석 API를 이용해 쇼핑몰 관리자에 대시보드를 넣고 싶다.
6. 쇼핑몰에 동영상 등록시 자동으로 유투브에도 발행하고 싶다.
7. 마이피플을 사용하는 고객과 1:1 상담을 진행하고 싶다.
8. 카카오톡으로 공유하기 버튼을 넣고 싶다.

 

몇 가지만 나열했지만 내가 이걸 다 써볼 수나 있을까 싶을 정도로 굉장히 많은 API들이 존재하고 있습니다.

어떤 API들이 있는지 좀 더 알아보고 싶으시다면 제가 자주 이용하는 사이트를 몇 개 추천해드리겠습니다.

http://www.programmableweb.com/apis
https://www.data.go.kr/
https://www.mashape.com/

 

 

혹시 이곳을 둘러보시면서 이런 생각 안드셨나요?
이 수많은 API들 중에서 내 사이트에는 어떤 API를 접목시켜야 내가 가진 콘텐츠의 가치가 높아질 수 있을까?

많은 사람들이 하고 있는 고민이기도 하지만 풀기 어려운 숙제이기도 합니다.

이런 걸 보통 매쉬업이라고 하는데요!
앞으로 쇼핑몰 운영하시면서 여러분들도 적극적으로 고민해보셔야 할 부분이라고 생각합니다.

 

혹 아시는지 모르겠지만, 고도에서도 제휴사들에게 오픈API를 제공하고 있습니다.
현재는 이 API를 이용해 다양한 주문채널을 하나로 수집해서 보다 쉽게 주문을 관리할 수 있게 도와주는

이지어드민(http://www.ezadmin.co.kr/)과 같은 서비스로 활용되고 있습니다.

 

당신의 가치있는 서비스와 상품들을 이 세상에 보다 쉽게 연결할 수 있도록 도와주는 API!


출처 : https://talk.godo.co.kr/view.php?cate=success&mode=success2&sno=767

1. 서블릿이란 무엇인가?

 

먼저 서블릿이라는 개념을 잘 이해하는 것이 중요하다고 생각한다. 개념을 이해하지 못한다면 뒤로 갈수록 동작 여부에만 만족하는 싸구려 개발자가 될 가능성이 크다. 하지만 이 서블릿이라는 놈은 개념 잡기가 매우 힘들었다. 자바의 어떤 한 기술을 말하는건지, 자바 클래스를 말하는건지 아니면 어떤 클래스를 상속 받아서 구현된 자바 프로그램들을 말하는건지... 즉, 어떤 기술을 서블릿이라고 부르는건지, 어떤 규칙을 지킨 하나의 웹 어플리케이션을 말하는건지 너무 햇갈렸다. 내 성격상 일단 받아들이고 천천히 이해하려는 성격은 아닌지라... 꽤 고생했다.

 

서블릿의 용어는 Server + Let 의 합성어라고 하는 사람들도 있고 Server + Applet 이라는 사람들도 있다. 뭔가 더 햇갈리는 느낌이 강하게 나지만 결국 "클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램" 이라고 이해하면 될 것 같다. 그렇게 타협했다. 물론 자바와 관련이 있으므로 당연히 JDK 가 필요하다. 즉 자바 API 와 이를 동작시키는 JVM 이 필요하다는 소리이다.

 

2. 서블릿 컨테이너

 

그렇다면 서블릿이라는 놈을 관리해주는 놈이 있어야 하지 않을까? 그냥 서버에 서블릿 만들어서 위치해 둔다고 클라이언트의 Request/Response 를 처리해줄리가 없다. 결론적으로 서블릿을 관리해주는 놈을 서블릿 컨테이너라고 한다. 서블릿 컨테이너는 서블릿의 생명주기를 관리하고 요청에 따른 스레드를 생성해준다. 또, 클라이언트의 Request 를 받아주고 Response 를 보낼 수 있게 웹 서버와 소켓을 만들어서 통신을 해준다. 자세한 서블릿 컨테이너의 역할은 아래와 같다.

 

  • 통신 지원
    서블릿과 웹 서버가 통신할 수 있는 손쉬운 방법을 제공한다. 우리가 통신을 한다고 생각할 때 소켓을 만들고, 특정 포트를 리스닝하고, 연결 요청이 들어오면 스트림을 생성해서 요청을 받는다고 알고있는데 이 과정을 서블릿 컨테이너가 대신 해주는 것이다. 서블릿 컨테이너는 이런 통신 과정을 API 로 제공하고 있기 때문에 우리가 쉽게 사용할 수 있다.
  • 생명주기 관리
    서블릿 컨테이너가 기동되는 순간 서블릿 클래스를 로딩해서 인스턴스화하고, 초기화 메서드를 호출하고, 요청이 들어오면 적절한 서블릿 메소드를 찾아서 호출한다. 만약 서블릿의 생명이 다하는 순간 가비지 컬렉션을 진행한다.
  • 멀티스레딩 관리
    서블릿 컨테이너는 해당 서블릿의 요청이 들어오면 스레드를 생성해서 작업을 수행한다. 즉 동시의 여러 요청이 들어온다면 멀티스레딩 환경으로 동시다발적인 작업을 관리한다.
  • 선언적인 보안관리
    서블릿 컨테이너는 보안 관련된 기능을 지원한다. 따라서 서블릿 코드 안에 보안 관련된 메소드를 구현하지 않아도 된다.
  • JSP 지원

 

 

3. 톰캣

 

톰캣이라면 프로그래밍을 하는 사람들은 다 들어봤을 이름이다. 하지만 솔직하게 말해서 나는 톰캣을 "오픈소스 웹 서버 아니야? 그거 돌리면 고양이 웹 페이지 뜨던데" 정도로 알고 있었다. 뭐... 어찌됐든 톰캣은 서블릿 컨테이너이다. 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바 서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다. 톰캣은 관리툴을 통해 설정을 변경할 수 있지만, XML 파일을 편집하여 설정할 수도 있다. 그리고, 톰캣은 HTTP 서버도 자체 내장하기도 한다. 보통 톰캣은 WAS 의 기능을 수행한다라고 말한다. 요즘 톰캣의 버젼이 올라가면서 웹 서버의 기능도 충분히 잘 수행하기 때문에 굳이 웹 서버와 WAS 를 나눠서 생각하지 않아도 되지만... 정확한 개념을 필요하는 사람은 여기를 참고하면 되겠다.



출처: http://breath91.tistory.com/entry/Servlet-이란-무엇인가 [숨[Breath]]

부산 여중생 사건을 계기로 정말 이런 무시무시한 범죄를 감싸주어서는 안됩니다.

미리 자수하면 감형 받는다. 아니면 여러가지 핑계를 대라 등 인터넷에 

청소년이 범죄를 저질렀을때 감형받는 방법들이 많이 돌아다닙니다.

이미 인천 여아 살인 사건만 봐도 알수 있습니다.

죄의식도 없고 미친척 연기해서 판정만 받으면 죄를 감면해주는

이런 말도 안되는 법은 사라져야 한다고 봅니다.

심신미약 우발적 술마시고 벌인 사건을 감형해 주는건 도대체 이해가 안갑니다.

예를 들어 사람 죽여놓고 술마시고서 아....술마시다 우발적이였어요.

OK 감형 !

사람 죽여놓고 저 정신병이 있어서요.

솔직히 정신병이라는게 너무나도 주관적이라 얼마든지 조작이 가능하죠.


아래 링크를 걸었습니다.

이글을 보신분들은 청와대 사이트에 접속하셔서 SNS공유 및 청소년법 폐지에 동의해주세요.


http://www1.president.go.kr/petitions/1785?navigation=petitions


청소년들이 법 무서운줄 알고 나쁜 행동을 하지 못하게 상기시켜야 합니다.

'이것저것 > 정보' 카테고리의 다른 글

자동차 리스 렌트 구매 비교  (0) 2017.09.07
살인자의 기억법 줄거리  (0) 2017.09.06
멜론 TOP100 실시간 스트리밍  (0) 2017.09.05
갤럭시노트8 발표  (0) 2017.08.24
갤럭시 노트8 스팩  (0) 2017.08.03

+ Recent posts