์ค๋ผํด ๋ณํธ์ฌ๋ค์ ์๋๋ก์ด๋์ Java API๋ฅผ ๋ค์ ๊ตฌํํ ๊ฒ์ 'ํด๋ฆฌํฌํฐ'์ ๋ด์ฉ์ ๋ณต์ฌํ ๊ฒ๊ณผ ๋น๊ตํฉ๋๋ค.
๋ฏธ๊ตญ ๋๋ฒ์์ ์ฌํด ์ด ์ค์ํ ์ฌ๊ฑด์ ์ฌ๋ฆฌํ ์์ ์ด๋ค.
๋์์ Oracle์ ๋น์ฆ๋์ค๋ ์ฒ์์๋ IBM์ด ๊ฐ๋ฐํ SQL ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ตฌํ์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ผ๋ฉฐ ์ง๊ธ๋ ํ์ฌ๋ Amazon S3์ API๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ์์ผ๋ฉฐ ์ด๋ ์์ ํ ์ ์์
๋๋ค. API ์ฌ๊ตฌํ์ ์
๊ณ ์ด์ฐฝ๊ธฐ๋ถํฐ ์ปดํจํฐ ๊ณผํ ๋ฐ์ ์ ์์ฐ์ค๋ฌ์ด ๋ถ๋ถ์ด์์ต๋๋ค.
์ค๋ผํด์ Google์ด ๋ฌธ๋ฒ ๊ตฌ์กฐ์ ๊ด๋ จ๋ ๋ช
๋ช
๋ ๋ช
๋ น ๋ชฉ๋ก์ ํฌํจํ์ฌ Java API๋ฅผ ๋ถ๋ฒ์ ์ผ๋ก ๋ณต์ฌํ๋ค๊ณ ๋น๋ํ์ต๋๋ค. Android ์ด์ ์ฒด์ ๋ ํนํ Java API์ ํธํ๋๋ฏ๋ก Java ํ๋ก๊ทธ๋๋จธ๊ฐ ์ํํธ์จ์ด์ ์ง์์ ์๋ก์ด ํ๋ซํผ์ผ๋ก ๋ ์ฝ๊ฒ ์ ์กํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด Android๋ ํด๋น Java API ๋ช
๋ น๊ณผ ๋ฌธ๋ฒ ๊ตฌ์กฐ๋ฅผ ์ ํํ๊ฒ ๋ณต์ฌํ์ต๋๋ค.
๊ทธ๋ฌ๋ Java API๊ฐ ์ ์ผํ API๋ ์๋๋ฉฐ Android๊ฐ ์ ์ผํ ์ฌ๊ตฌํ๋ ์๋๋๋ค. ์ค๋๋ ์ IT ์ฐ์
์์ API๋ ์ด๋์๋ ์กด์ฌํ๋ฉฐ, ๋๊ธฐ์
์ ๋
์ ์ ๋ง๊ธฐ ์ํด ๊ฒฝ์์ ์ ์งํ๋ ค๋ฉด API ์ฌ๋์
์ด ๊ธฐ๋ณธ์
๋๋ค.
Duane์ ์ธ๊ธฐ ์๋ Amazon S3 ์คํ ๋ฆฌ์ง ํ๋ซํผ์ ์๋ฅผ ์ ์ํฉ๋๋ค. S3์์ ํ์ผ์ ์์ฑํ๊ณ ๊ฒ์ํ ์ ์๋๋ก Amazon์ ํฌ๊ด์ ์ธ,
GET /?Delimiter=Delimiter&EncodingType=EncodingType&Marker=Marker&MaxKeys=MaxKeys&Prefix=Prefix HTTP/1.1
Host: Bucket.s3.amazonaws.com
x-amz-request-payer: RequestPayer
Amazon์ ํด๋ผ์ฐ๋ ์๋น์ค ์์ฅ์ ํ์คํ ๋ฆฌ๋์ด๋ฉฐ ๊ฒฝ์์ ์ฒด๋ S3 API์ ์ฌ๊ตฌํ์ ์ ๊ณตํ์ง๋ง ๋ช ๋ น ์ด๋ฆ, ๋งค๊ฐ๋ณ์ ํ๊ทธ, ์ ํ ์ ๋์ฌ๋ฅผ ๋ชจ๋ฐฉํด์ผ ํฉ๋๋ค. x-amz, S3 API์ ๋ฌธ๋ฒ ๊ตฌ์กฐ ๋ฐ ์ผ๋ฐ ๊ตฌ์ฑ. ์ฆ, ์ค๋ผํด์ด ์ฃผ์ฅํ๋ ๋ชจ๋ ๊ฒ์ ์ ์๊ถ์ ๋ณดํธ๋ฅผ ๋ฐ์ต๋๋ค.
Amazon S3 API ์ฌ๋ณธ์ ์ ๊ณตํ๋ ํ์ฌ ์ค์๋ ๋ค์์ด ์์ต๋๋ค.
์ค๋ผํด์ ์์ฌ ํ์์ ํฉ๋ฒ์ฑ์ด ์ฝ๋์ ๋ฌด๋ฃ ๋ณต์ฌ ๋ฐ ์์ ์ ํ์ฉํ๋ ์คํ ์์ค Apache 2.0 ๋ผ์ด์ผ์ค์ ๊ธฐ๋ฐ์ ๋๊ณ ์๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด,
๊ทธ๋ฌ๋ ๋ฌธ์ ๋ ์ง์ ์ฌ์ฐ๊ถ๋ฒ์ด API ๊ฐ์ ๊ฒ์๋ ์ ์ฉ๋๋์ง ์ฌ๋ถ์ ๋๋ค. ์ด๋ ๋๋ฒ์์ด ํ๋จํด์ผ ํ ์ฌํญ์ด๋ค.
API๋ ๋๊ฐ ๋ฐ๋ช ํ๋์?
"์๋ธ๋ฃจํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ"๋ผ๋ ์ฉ์ด์ ๊ฐ๋
์ Herman Goldstein๊ณผ John von Neumann์ด ์ด ์ฑ
Planning and Coding Problems for an Electronic Computing Instrument - Part II, Volume III(Princeton University Institute of Advanced Study, 1948)์ ์ฒ์ ๋ฑ์ฅํ์ต๋๋ค.
์ด๊ฒ์ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ๋ก ์ ๋ํ ์ฒซ ๋ฒ์งธ ์ค๋ช
์
๋๋ค(์ด์ ์๋ ์กด์ฌํ์ง ์์์ต๋๋ค). ๊ทธ๊ฒ์ ๋น์ ์์ฒด ์ปดํจํฐ๋ฅผ ๋ง๋ค๋ ค๊ณ ๋
ธ๋ ฅํ๊ณ ์๋ ๋ํ์ ๋๋ฆฌ ๋ฐฐํฌ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ด ์ฑ
์ ๋ค์๊ณผ ๊ฐ์ ํต์ฌ ์์ด๋์ด๊ฐ ํฌํจ๋์ด ์๋ค๋ ๊ฒ์
๋๋ค. ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋จ์ ๊ณตํต ์์
์ ์ฌ์ฉํ๋ฉฐ ๋ฃจํด์ด ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๋ก์ด ์ฝ๋์ ์ค๋ฅ์ ์์ ์ค์
๋๋ค.. ์ด ์์ด๋์ด๋ Maurice Wilkes์ ์ํด ๋์ฑ ๊ฐ์ ๋์ด EDSAC ๊ธฐ๊ณ์์ ์คํ๋์์ผ๋ฉฐ, ์ด๋ก ์ธํด ๊ทธ๋ 1967๋
Turing Award๋ฅผ ์์ํ์ต๋๋ค.
EDSAC ์๋ธ๋ฃจํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ผ์ชฝ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ๋ Maurice Wilkes์ David Wheeler๊ฐ ์ ์ ๋์งํธ ์ปดํจํฐ๋ฅผ ์ํ ํ๋ก๊ทธ๋จ ์ค๋น(1951)์์ ํ๋ ๊ฒ์ฒ๋ผ ๊ณ ์ฐจ ๊ธฐ๋ฅ๊ณผ ์์ ํ ์ํํธ์จ์ด ์ธํฐํ์ด์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค.
์ฉ์ด ์์ฒด ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋จ ์ธํฐํ์ด์ค (API)๋ 60๋ ๋ ํ๋ฐ์ฏค์ ๋ฑ์ฅํ์ต๋๋ค.
ํ๋ ์ ํ
์ด์
์์ฑ์
API
์ฐฝ์กฐ์
๋
์ฌ๊ตฌํ
๋
ํฌํธ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
IBM
1958
์ ๋๋ฐ
1961
IBM S/360 ISA
IBM
1964
์๋ฌ ์ฃผ์ํ์ฌ
1970
ํ์ค C ๋ผ์ด๋ธ๋ฌ๋ฆฌ
AT&T/๋ฒจ ์ฐ๊ตฌ์
1976
๋งํฌ ์๋ฆฌ์์ค ์ฃผ์ํ์ฌ
1980
์ ๋์ค ์์คํ
ํธ์ถ
AT&T/๋ฒจ ์ฐ๊ตฌ์
1976
๋งํฌ ์๋ฆฌ์์ค ์ฃผ์ํ์ฌ
1980
VT100 Esc ์ํ์ค
12์
1978
ํฌ์คํท
1980
IBM PC ๋ฐ์ด์ค์ค
IBM
1981
ํผ๋์ค ํ
ํฌ๋๋ก์ง
1984
MS-DOS CLI
Microsoft
1981
ํ๋ฆฌ๋์ค ํ๋ก์ ํธ
1998
Hayes AT ๋ช
๋ น ์ธํธ
ํค์ด์ฆ ๋ง์ดํฌ๋ก
1982
์ต์ปค ์๋ํ
1985
ํฌ์คํธ ์คํฌ๋ฆฝํธ
์ด๋๋น ๋ฒฝ๋
1985
GNU/๊ณ ์คํธ์คํฌ๋ฆฝํธ
1988
SMB
Microsoft
1992
์ผ๋ฐ ํ๋ก์ ํธ
1993
Win32
Microsoft
1993
์์ธ ํ๋ก์ ํธ
1996
Java 2 ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ํ์
1998
๊ตฌ๊ธ/์๋๋ก์ด๋
2008
์น API ๋ง์๋
๋ง์๋
2003
ํ ๋ณด๋
2009
์ถ์ฒ :
API(๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ช ๋ น์ด ์ธํธ)๋ฅผ ๋ณต์ฌํ๊ณ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ ์ ํํ ๋ฟ๋ง ์๋๋ผ ์ปดํจํฐ ๊ณผํ์ ํ์ค์์ ์ง์ ์ ์ผ๋ก ๊ถ์ฅ๋๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ์ ๋๋ค. S3 ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค๋ฅผ ๋ณต์ฌํ๊ธฐ ์ ์๋ Oracle ์์ฒด์์๋ ์ด ์์ ์ ์ฌ๋ฌ ๋ฒ ์ํํ์ต๋๋ค. ๋์ฑ์ด Oracle์ ์ฌ์ ์ ์ฒ์์๋ IBM์ด ๊ฐ๋ฐํ SQL ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ตฌํ์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค. Oracle์ ์ฒซ ๋ฒ์งธ ์ฃผ๋ ฅ ์ ํ์ IBM System R์์ ๋๋ถ๋ถ ๋ณต์ฌํ DBMS์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ฐ๋ฆฌ๋ DBMS์ฉ "ํ์ค API"๋ก์ SQL์ ๋ค์ ๊ตฌํํ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค.
API์ ์ง์ ์ฌ์ฐ๊ถ์ ๋ถ์ฌํ๋ฉด ๋ชจ๋ ์ฌ๋์๊ฒ ์ํฅ์ ๋ฏธ์น๋ ๋ฒ์ ์ง๋ขฐ๋ฐญ์ด ์๊ธธ ์ ์์ต๋๋ค. API ๊ตฌํ ๋ฐ
์ด๋ฌํ ๊ด๋ฒ์ํ ๊ฒฐ๊ณผ๋ฅผ ํผํ๊ธฐ ์ํด Oracle๊ณผ ์์ ์ ์ฃผ์ฅ์ ์ง์งํ ํญ์ ๋ฒ์์ ์ ์๊ถ ์นจํด๋ฅผ ์๋ณธ๊ณผ "ํธํ๋์ง ์๋" ํน์ API ์ฌ๊ตฌํ์ผ๋ก ์ ํํ๋ ค๊ณ ์๋ํ์ต๋๋ค. ํ์ง๋ง ๋ถ๋ถ์ ์ธ ์ฌ๊ตฌํ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
์ค๋ผํด ์์ก์ ์ฃผ์ ์ํ์ ์๊ท๋ชจ ๊ธฐ์ ํ์ฌ๊ฐ S3์ ๊ฐ์ ์ฃผ์ ํ๋ซํผ๊ณผ ํธํ๋๋ ์์คํ ๋ฒ์ ์ ๋ง๋๋ ๊ฒ์ ๋ง์ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ํธํ์ฑ์ด ์์ผ๋ฉด ํ๋ก๊ทธ๋๋จธ๋ ์ด ํ์ฌ์ ์ ํ์ ํจ๊ณผ์ ์ผ๋ก ์ด์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
์
๊ณ ๋ํ์์ ๊ฐ๋ฐ์๋ ์ฌ๊ธฐ์ ์ด์ฑ์ด ์น๋ฆฌํ๊ธฐ๋ฅผ ๋ฐ๋ ๋ฟ์
๋๋ค.
์ถ์ฒ : habr.com