πŸ“ RESTλž€ 무엇인가 ?

REST : Representational State Transfer

= μžμ›μ„ 이름(μžμ›μ˜ ν‘œν˜„)으둜 κ΅¬λΆ„ν•˜μ—¬ ν•΄λ‹Ή μžμ›μ˜ μƒνƒœλ₯Ό μ£Όκ³  λ°›λŠ” 것을 μ˜λ―Έν•œλ‹€.
= 즉, μžμ›(resourece) 의 ν‘œν˜„(representation)에 μ˜ν•œ "μƒνƒœ 전달"

  • μžμ›μ˜ ν‘œν˜„
    • μžμ› : ν•΄λ‹Ή μ†Œν”„νŠΈμ›¨μ–΄κ°€ κ΄€λ¦¬ν•˜λŠ” λͺ¨λ“  것 ( ex. κ·Έλ¦Ό, λ¬Έμ„œ, 데이터 λ“± )
    • μžμ›μ˜ ν‘œν˜„ : κ·Έ μžμ›μ„ ν‘œν˜„ν•˜κΈ° μœ„ν•œ 이름
  • μƒνƒœ(정보) 전달
    • 데이터가 μš”μ²­λ˜λŠ” μ‹œμ μ—μ„œ μžμ›μ˜ μƒνƒœ(정보)λ₯Ό μ „λ‹¬ν•œλ‹€.
    • JSON ν˜Ήμ€ XML을 톡해 데이터λ₯Ό μ£Όκ³  λ°›λŠ” 것이 λ³΄ν†΅μ˜ 전달 방식이닀.

WWW(World Wide Web) 와 같은 μ‹œμŠ€ν…œμ„ μœ„ν•œ μ†Œν”„νŠΈμ›¨μ–΄ 개발 μ•„ν‚€ν…μ²˜μ˜ ν•œ ν˜•μ‹μ΄λ‹€.

RESTλŠ” 기본적으둜 μ›Ήμ˜ κΈ°μ‘΄ 기술과 HTTP ν”„λ‘œν† μ½œμ„ κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ—, μ›Ήμ˜ μž₯점을 μ΅œλŒ€ν•œ ν™œμš©ν•  수 μžˆλŠ”
μ•„ν‚€ν…μ²˜ μŠ€νƒ€μΌμ΄λ‹€. RESTλŠ” λ„€νŠΈμ›Œν¬ μƒμ—μ„œ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ μ‚¬μ΄μ˜ 톡신 방식 쀑 ν•˜λ‚˜μ΄λ‹€.

 

πŸ’‘ REST의 ꡬ체적인 κ°œλ…

HTTP URI(Uniform Resource Identifier)을 톡해 μžμ›μ„ λͺ…μ‹œν•˜κ³ , HTTP Method(POST, GET, PUT, DELETE)λ₯Ό 톡해 ν•΄λ‹Ή μžμ›μ— λŒ€ν•œ CRUD Operation을 μ μš©ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.

  • RESTλŠ” μžμ› 기반의 ꡬ쑰(ROA) μ„€κ³„μ˜ 쀑심에 μžμ›μ΄ 있고, HTTP Methodλ₯Ό 톡해 μžμ›μ„ μ²˜λ¦¬ν•˜λ„λ‘ μ„€κ³„λœ 아킀텍쳐λ₯Ό μ˜λ―Έν•œλ‹€.

πŸ’‘ CRUD

  • Create : 생성(POST)
  • Read : 쑰회(GET)
  • Update : κ°±μ‹ (PUT)
  • Delete : μ‚­μ œ(DELETE)
  • HEAD : header 정보 쑰회(HEAD)

πŸ’‘ REST μž₯단점

μž₯점

  • μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈμ˜ 역할을 λͺ…ν™•ν•˜κ²Œ λΆ„λ¦¬ν•œλ‹€.
  • μ—¬λŸ¬κ°€μ§€ μ„œλΉ„μŠ€ λ””μžμΈμ—μ„œ 생길 수 μžˆλŠ” 문제λ₯Ό μ΅œμ†Œν™”ν•œλ‹€.
  • REST API λ©”μ‹œμ§€κ°€ μ˜λ„ν•˜λŠ” λ°”λ₯Ό λͺ…ν™•ν•˜κ²Œ λ‚˜νƒ€λ‚΄λ―€λ‘œ, μ˜λ„ν•˜λŠ” λ°”λ₯Ό μ‰½κ²Œ νŒŒμ•…ν•  수 μžˆλ‹€.
  • HTTP ν‘œμ€€ ν”„λ‘œν† μ½œμ— λ”°λ₯΄λŠ” λͺ¨λ“  ν”Œλž«νΌμ—μ„œ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.
  • HTTP ν‘œμ€€ ν”„λ‘œν† μ½œμ˜ ν‘œμ€€μ„ μ΅œλŒ€ν•œ ν™œμš©ν•˜μ—¬ μ—¬λŸ¬ 좔가적인 μž₯점을 ν•¨κ»˜ κ°€μ Έκ°ˆ 수 있게 ν•΄μ€€λ‹€.

단점

  • μ‚¬μš©ν•  수 μžˆλŠ” λ©”μ†Œλ“œκ°€ 4가지 밖에 μ—†λ‹€. (POST,GET,PUT,DELETE)
  • ν‘œμ€€μ΄ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.

πŸ’‘ κ·ΈλŸΌμ—λ„, RESTκ°€ μ™œ ν•„μš”ν•œκ°€ ?

  • λ‹€ν–₯ν•œ ν΄λΌμ΄μ–ΈνŠΈμ˜ λ“±μž₯
  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 뢄리 및 톡합

졜근 μ„œλ²„ ν”„λ‘œκ·Έλž¨μ€ λ‹€μ–‘ν•œ λΈŒλΌμš°μ €(chrome, Explorer, safari λ“±)와 μ•ˆλ“œλ‘œμ΄λ“œν°, 아이폰과 같은 λͺ¨λ°”일 λ””λ°”μ΄μŠ€μ—μ„œλ„ 톡신할 수 μžˆμ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

πŸ’‘ REST κ΅¬μ„±μš”μ†Œ

  • μžμ›(Resource) : URI
    • μ›Ή μ„œλ²„μ˜ μžμ›μ€ 각자 이름을 가지고 μžˆλ‹€.
    • λ”°λΌμ„œ, ν΄λΌμ΄μ–ΈνŠΈλŠ” μ΄λŸ¬ν•œ 이름을 톡해 μ›ν•˜λŠ” 정보λ₯Ό 찾을 수 μžˆλ‹€.
    • μ΄λ•Œ μ„œλ²„ μžμ›μ˜ 이름을 URI라고 ν•œλ‹€.
  • ν–‰μœ„(Verb) : HTTP Method
    • HTTP ν”„λ‘œν† μ½œμ€ GET,POST,PUT,DELETE와 같은 λ©”μ„œλ“œλ₯Ό μ œκ³΅ν•œλ‹€.
  • ν‘œν˜„(Representation of Resource)
    • ν΄λΌμ΄μ–ΈνŠΈκ°€ μžμ›μ˜ μƒνƒœ(정보)에 λŒ€ν•΄ μš”μ²­ν•˜λ©΄, μ„œλ²„λŠ” 이에 μ μ ˆν•œ 응닡을 λ³΄λ‚΄μ•Όν•œλ‹€.
    • REST의 ν•˜λ‚˜μ˜ μžμ›μ€ JSON, XML, TEXT, RSS λ“± μ—¬λŸ¬ ν˜•νƒœμ˜ μ‘λ‹΅μœΌλ‘œ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.
    • ν•˜μ§€λ§Œ, 보톡 JSON μ΄λ‚˜ XML을 톡해 데이터λ₯Ό μ£Όκ³  λ°›λŠ” 것이 μΌλ°˜μ μ΄λ‹€.

 

πŸ“ HTTP Method : [ POST ]

HTTP λ©”μ†Œλ“œ 쀑 POSTλŠ” μš”μ²­μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©μž(ν΄λΌμ΄μ–ΈνŠΈ)λ‘œλΆ€ν„° νŠΉμ • 양식(form)의 "데이터λ₯Ό μ•”ν˜Έν™”"ν•˜μ—¬ μ„œλ²„λ‘œ μ „μ†‘ν•˜λŠ” 방법이닀.

μ„œλ²„λŠ” POST λ°©μ‹μœΌλ‘œ 전달 받은 데이터λ₯Ό 톡해 νŠΉμ • λ™μž‘μ„ μˆ˜ν–‰ν•  수 μžˆλ‹€.
예둜 둜그인 μ˜ˆμ‹œλ₯Ό 보자.

<!-- login.html -->
<html>  
   <body>  
      <form action = "/login" method = "post">  
         <table>  
        <tr><td>아이디</td>  
        <td><input type ="text" name ="id"></td></tr>  
        <tr><td>λΉ„λ°€λ²ˆν˜Έ</td>  
        <td><input type ="password" name ="pass"></td></tr>  
        <tr><td><input type = "submit"></td></tr>  
    </table>  
      </form>  
   </body>  
</html>
# login.py

from flask import *  
# Flask μΈμŠ€ν„΄μŠ€ 생성
app = Flask(__name__) 


@app.route('/')
def hello():
    return render_template('login.html')


# login μ£Όμ†Œμ—μ„œ POST λ°©μ‹μ˜ μš”μ²­μ„ λ°›μ•˜μ„ λ•Œ
@app.route('/login',methods = ['POST'])  
def login():  
    id = request.form['id']  
    passwrd = request.form['pass'] 

    if id=="Elice" and passwrd=="Awesome!": 
        return "Welcome %s" % id  


if __name__ == '__main__':  
    app.run()

[ 좜처 : elice ]

μ΄λŠ”, login.html μ—μ„œ "아이디"와 "λΉ„λ°€λ²ˆν˜Έ"λ₯Ό μž…λ ₯ν•˜κ³ , "λ²„νŠΌμ„ λˆ„λ₯΄λ©΄" login.py μ—μ„œ 이λ₯Ό μΈμ‹ν•΄μ„œ
"Elice" 이고, λΉ„λ°€λ²ˆν˜Έκ°€ "Awesome!" 이면, "Welcome Elice" λΌλŠ” 문ꡬ가 λ‚˜νƒ€λ‚œλ‹€.

 

πŸ“ HTTP Method : [ GET ]

GET μš”μ²­ λ˜ν•œ μ‚¬μš©μž(ν΄λΌμ΄μ–ΈνŠΈ)λ‘œλΆ€ν„° νŠΉμ • 양식(form)의 데이터λ₯Ό μ„œλ²„λ‘œ μ „μ†‘ν•˜λŠ” 방법이닀.

κ°€μž₯ 큰 μ°¨μ΄λŠ” 정보λ₯Ό URL에 λΆ™μ—¬μ„œ λ³΄λ‚΄κ²Œ 되고, 즉, "데이터가 μ•”ν˜Έν™”λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” 점"이닀.

μ•žμ„  둜그인 μ˜ˆμ‹œλ₯Ό 톡해 보자.

<!-- login.html -->
<html>  
   <body>  
      <form action = "/login" method = "get">  
         <table>  
        <tr><td>아이디</td>  
        <td><input type ="text" name ="id"></td></tr>  
        <tr><td>λΉ„λ°€λ²ˆν˜Έ</td>  
        <td><input type ="password" name ="pass"></td></tr>  
        <tr><td><input type = "submit"></td></tr>  
    </table>  
      </form>  
   </body>  
</html>
# login.py

from flask import *  
# Flask μΈμŠ€ν„΄μŠ€ 생성
app = Flask(__name__)  


# login μ£Όμ†Œμ—μ„œ GET λ°©μ‹μ˜ μš”μ²­μ„ λ°›μ•˜μ„ λ•Œ
# @app.route()μ—μ„œ methods 인자의 κΈ°λ³Έ 값은 GET으둜 μƒλž΅ν•΄μ„œ μž‘μ„±ν•΄λ„ λ©λ‹ˆλ‹€.
@app.route('/login',methods = ['GET'])  
def login():  
      id = request.args.get['id']  
      passwrd = request.args.get['pass']  
      if id=="Elice" and passwrd=="Awesome!": 
          return "Welcome %s" % id  


if __name__ == '__main__':  
   app.run()

[ 좜처 : elice ]

 

GET이 POST 방식과 κ°€μž₯ 큰 차이점은 URL에 "https://localhost:8080/login?id=elice&pass=awesome" 으둜 ν‘œν˜„λœλ‹€.

즉, 둜그인 ν•  λ•Œ, URL에 아이디와 λΉ„λ°€λ²ˆν˜Έκ°€ ν‘œκΈ°λœλ‹€. ( = 데이터가 μ•”ν˜Έν™”κ°€ λ˜μ§€ μ•ŠλŠ”λ‹€. )
μ΄λŠ”, ν•œνŽΈμœΌλ‘œ μ •λ³΄λ³΄μ•ˆμ„ μœ μ§€ν•  수 μ—†λ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€.

λ”°λΌμ„œ, "둜그인"κ³Ό 같이 정보λ₯Ό κ°€λ €μ•Όν•  λ•ŒλŠ” GET이 μ•„λ‹Œ POST 방식을 μ‚¬μš©ν•˜λŠ” 것이 λ§žλ‹€.

 

πŸ“ HTTP - POST 예제

POST μš”μ²­μ€ λˆˆμ— νŒŒλΌλ―Έν„°κ°€ λ³΄μ΄λŠ” GETμš”μ²­κ³Ό 달리 μ „λ‹¬ν•˜λ €λŠ” 정보가 HTTP body에 ν¬ν•¨λ˜μ–΄ μ „λ‹¬λœλ‹€.

μ „λ‹¬ν•˜λ €λŠ” μ •λ³΄λŠ” form data, json strings 등이 μžˆλ‹€.

render_templates( ) λ©”μ†Œλ“œ = Flask μ—μ„œ html νŒŒμΌμ„ "λžœλ”λ§" ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•œλ‹€.
( λžœλ”λ§(Rendering) = μ›Ή λΈŒλΌμš°μ € μƒμ˜ 화면을 ν‘œν˜„ν•˜λŠ” κ³Όμ • )

POST둜 전달받은 "κ°’"은 request.form[ 'λ³€μˆ˜λͺ…' ]을 μ‚¬μš©ν•˜λ©΄ html의 formμ—μ„œ ν•΄λ‹Ή λ³€μˆ˜λͺ…에 만쑱 값을 μ‚¬μš©κ°€λŠ₯

from flask import Flask
from flask import request
from flask import render_template

app = Flask(__name__)

@app.route('/')
def hello():
    return render_template('index.html')


@app.route("/post", methods=['POST'])
def post():
    #1λ²ˆμ„ ν•΄λ³΄μ„Έμš”!
    value = request.form["input"]
    msg = "%s λ‹˜ ν™˜μ˜ν•©λ‹ˆλ‹€." % value
    return msg


if __name__ == '__main__':
    app.run()
<!-- μ‚¬μš©ν•˜λŠ” html νŒŒμΌλ“€μ€, λ°˜λ“œμ‹œ templates 디렉터리 μ•ˆμ— μžˆμ–΄μ•Όν•œλ‹€. !! -->
<!-- /templates/index.html -->


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>HTML for python flask</title>
</head>

<body>
    <form action = "/post" method="post">
        <p>
            이름 : 
            <input type="text" name = "input">
        </p>
        <p>
            이름을 μž…λ ₯ν•˜κ³  μ œμΆœλ²„νŠΌμ„ λˆ„λ₯΄μ„Έμš”.<br>
            <input type = "submit" value = "제좜" onclick = "alert('제좜 μ™„λ£Œ!')" />
        </p>
    </form>
</body>
</html>

아이디 μž…λ ₯λž€μ— 아이디λ₯Ό μž…λ ₯ν•˜κ³  μ œμΆœν•˜λ©΄, μ œμΆœμ™„λ£Œ ! 와 λ™μ‹œμ—
post λ°©μ‹μœΌλ‘œ, input에 "idλ‹˜ ν™˜μ˜ν•©λ‹ˆλ‹€." 좜λ ₯ 

 

πŸ“ HTTP - GET 예제

Flask μ—μ„œ GET λ˜λŠ” POST둜 전달받은 정보λ₯Ό request λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ—¬ ν™œμš©ν•  수 μžˆλ‹€.

GET λ°©μ‹μ˜ 경우 λͺ¨λ“  νŒŒλΌλ―Έν„°λ₯Ό URL둜 보내 μš”μ²­ν•˜λŠ” 방식이라고 ν–ˆλ‹€.

request λͺ¨λ“ˆμ—λŠ” GET λ°©μ‹μœΌλ‘œ URL의 인자λ₯Ό 'key = value' ν˜•νƒœλ‘œ μ „λ‹¬ν–ˆμ„ λ•Œ, λ‹€μŒ λ°©μ‹μœΌλ‘œ ν™œμš©ν•œλ‹€.

  • λ‹€μŒκ³Ό μ˜ˆμ‹œμ™€ 같은 μ£Όμ†Œλ₯Ό μž…λ ₯ν–ˆμ„ μ‹œ, number의 값은 = 1 (https://μ£Όμ†Œ.com/?key=1)
number = request.args.get('key`, μ΄ˆκΈ°κ°’)

μ΄ˆκΈ°κ°’μ€ key κ°’μœΌλ‘œ 아무 값도 λ„˜κ²¨λ°›μ§€ λͺ»ν–ˆμ„ λ•Œ ν™œμš©λ˜λŠ” 값이닀. μ΄ν›„μ—λŠ” URL을 톡해 '/?key=value' ν˜•νƒœλ‘œ
key값을 μ „λ‹¬λ°›μœΌλ©΄ ν•΄λ‹Ή 값을 μ‚¬μš©ν•œλ‹€.

μ—¬λŸ¬κ°œμ˜ key와 값을 μ „λ‹¬λ°›μœΌλ €λ©΄ λ‹€μŒ μ˜ˆμ‹œμ™€ 같이 '&' 기호λ₯Ό μž…λ ₯ν•˜μ—¬ μΆ”κ°€ν•  수 μžˆλ‹€. 

  • key의 값은 1, value의 값은 2 (https://μ£Όμ†Œ.com/?key=1&value=2)
from flask import Flask
from flask import request

app = Flask(__name__)

@app.route('/')     # DefaultλŠ”  HTTP methods = ['GET ']
def user_juso():
    temp1 = request.args.get("word1","Elice")   # GET λ°©μ‹μœΌλ‘œ, request.args.get() ν• λ•Œ, 
    temp2 = request.args.get("word2","Hello")   # μ£Όμ†Œμ— 값이 μ§€μ •μ•ˆλ˜λ©΄ 기본값은, λ‹€μŒκ³Ό κ°™μŒμ„ 의미
    return temp1 + "<br>" + temp2

if __name__ == '__main__':
    app.run()

GET 방식 -> URL에 값을 전달할 경우
      GET -> URL 에 값이 μ „λ‹¬λ˜μ§€ μ•Šμ„ 경우        = default κ°’μœΌλ‘œ λŒ€μ²΄

 

πŸ“ HTTP - GET & POST 예제

GETκ³Ό POSTλ₯Ό λ™μ‹œμ— μ‚¬μš©ν•΄μ„œ μ›Ή νŽ˜μ΄μ§€λ₯Ό λ™μž‘ μ‹œν‚¬ 수 μžˆλ‹€.

methodκ°€ GET이면 이름을 μž…λ ₯λ°›λŠ” μ›Ή νŽ˜μ΄μ§€λ₯Ό λ™μž‘μ‹œν‚€κ³ , POST라면 μž…λ ₯ 같은 값을 ν¬ν•¨ν•˜λŠ” λ¬Έμž₯을 좜λ ₯ν•œλ‹€.

<!-- templates/index2.html -->

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>HTML for python flask</title>
</head>

<body>
    <form action = "/" method="POST">
        <p>
            이름 :
            <input type="text" id = "input" name = "input">
        </p>
        <p>
            이름을 μž…λ ₯ν•˜κ³  μ œμΆœλ²„νŠΌμ„ λˆ„λ₯΄μ„Έμš”.
            <input type = "submit" value = "제좜" onclick = "alert('제좜 μ™„λ£Œ!')" />
        </p>
    </form>
</body>
from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/', methods=["GET","POST"]) # GET λ˜λŠ” POSTκ°€ 호좜될 수 μžˆλ‹€λŠ” 것
def post():
    if request.method == "POST":
        value = request.form["input"]   # index2.htmlκ°€μ„œ formνƒœν¬λ₯Ό 보면 μš”μ†Œμ— method = "POST" 일것이닀.
        return f"{value}λ‹˜ ν™˜μ˜ν•©λ‹ˆλ‹€."
    
    if request.method == "GET":
        return render_template("index2.html")

if __name__ == '__main__':
    app.run()

GET 
form μž…λ ₯, 즉 POST둜 데이터λ₯Ό 보내겠닀.
POST

 

πŸ“ API 와 End pointκ°€ 무엇인가 ?

APIλŠ” ν”„λ‘œκ·Έλž¨λ“€μ΄ μ„œλ‘œ μƒν˜Έμž‘μš©ν•˜λŠ” 것을 λ„μ™€μ£ΌλŠ” 맀체이닀.

μš°λ¦¬κ°€ μŒμ‹μ μ— 갔을 λ•Œ, μ•„λž˜μ™€ 같이 ν–‰λ™ν•œλ‹€. 점원은 μ†λ‹˜μ—κ²Œ 메뉴λ₯Ό μ•Œλ €μ£Όκ³ , 주방에 주문받은 μš”λ¦¬λ₯Ό μš”μ²­ν•œλ‹€.
κ·Έ λ‹€μŒ μ£Όλ°©μ—μ„œ μ™„μ„±λœ μš”λ¦¬λ₯Ό μ†λ‹˜μ—κ²Œ λ‹€μ‹œ μ „λ‹¬ν•œλ‹€.

  • μ†λ‹˜κ³Ό μš”λ¦¬μ‚¬λŠ” "End Point"
  • 점원은 이 λ‘˜ μ‚¬μ΄μ—μ„œ "API"

[ 좜처 : elice ]

APIλŠ” μ†λ‹˜(ν”„λ‘œκ·Έλž¨)이 μ£Όλ¬Έν•  수 있게 메뉴(λͺ…λ Ή λͺ©λ‘)λ₯Ό μ •λ¦¬ν•˜κ³ , μ£Όλ¬Έ(λͺ…λ Ή)을 λ°›μœΌλ©΄ μš”λ¦¬μ‚¬(μ‘μš©ν”„λ‘œκ·Έλž¨)와 μƒν˜Έμž‘μš©ν•˜μ—¬ μš”μ²­λœ 메뉴(λͺ…령에 λŒ€ν•œ κ°’)λ₯Ό μ „λ‹¬ν•œλ‹€.

 

πŸ’‘ API의 역할은 무엇인가 ?

1. APIλŠ” μ„œλ²„μ™€ λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•œ μΆœμž…κ΅¬ 역할을 ν•œλ‹€.

  • λ°μ΄ν„°λ² μ΄μŠ€μ—λŠ” 정보듀이 μ €μž₯λœλ‹€. 
  • λ”°λΌμ„œ, λͺ¨λ“  μ‚¬λžŒλ“€μ΄ 이 λ°μ΄ν„°λ² μ΄μŠ€μ— μ ‘κ·Όν•  수 있으면 μ•ˆλœλ‹€.
  • APIλŠ” 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ μš°λ¦¬κ°€ 가진 μ„œλ²„μ™€ λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•œ μΆœμž…κ΅¬ 역할을 ν•˜λ©°, ν—ˆμš©λœ μ‚¬λžŒλ“€μ—κ²Œλ§Œ 접근성을 λΆ€μ—¬ν•΄μ€€λ‹€.

2. APIλŠ” ν”„λ‘œκ·Έλž¨κ³Ό κΈ°κΈ°κ°€ μ›ν™œν•˜κ²Œ 톡신할 수 μžˆλ„λ‘ ν•œλ‹€.

  • μš°λ¦¬κ°€ ν”νžˆ μ•Œκ³  μ‚¬μš©ν•˜κ³  μžˆλŠ” 슀마트폰 μ–΄ν”Œμ΄λ‚˜ ν”„λ‘œκ·Έλž¨κ³Ό κΈ°κΈ°κ°€ 데이터λ₯Ό μ›ν™œνžˆ μ£Όκ³  받을 수 μžˆλ„λ‘ λ•λŠ” 역할을 ν•œλ‹€.

3. APIλŠ” λͺ¨λ“  접속을 ν‘œμ€€ν™”ν•œλ‹€.

  • APIλŠ” λͺ¨λ“  접속을 ν‘œμ€€ν™”ν•˜κΈ° λ•Œλ¬Έμ— κΈ°κΈ°λ‚˜ 운영체제 λ“±κ³Ό 상관없이 λˆ„κ΅¬λ‚˜ λ™μΌν•œ κΆŒν•œμ„ 얻을 수 μžˆλ‹€.

 

πŸ’‘ API Testing

API Testing 은 APIλ₯Ό ν…ŒμŠ€νŠΈν•˜μ—¬ κΈ°λŠ₯, μ„±λŠ₯, μ‹ λ’°μ„±, λ³΄μ•ˆ μΈ‘λ©΄μ—μ„œ κΈ°λŒ€λ₯Ό μΆ©μ‘±ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” ν…ŒμŠ€νŒ…μ˜ ν•œ μœ ν˜•

μ™„λ²½ν•˜κ²Œ μž‘λ™ν•˜λŠ” API만이 μ‹€μ œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ‚¬μš©ν•  수 μžˆλ‹€.
λ”°λΌμ„œ, μ •μƒμ μœΌλ‘œ μ™„λ²½ν•˜κ²Œ μž‘λ™ν•˜λŠ”μ§€ ν…ŒμŠ€νŠΈ ν•΄μ•Όν•œλ‹€.
API ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν•˜κ²Œ 되면 ν–₯ν›„ νŠΉμ • μ‹œμ μ—μ„œ λ°œμƒν•  수 μžˆλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ§Žμ€ λ¬Έμ œμ λ“€μ„ ν•΄κ²°ν•  수 μžˆλ‹€.

[ 좜처 : elice ]

728x90
λ°˜μ‘ν˜•

+ Recent posts