๊ธฐ๋ฐ ๊ฐ๋
- Web Service : ์ด๋์๋ ์ ๊ทผ ๊ฐ๋ฅํ ์๋น์ค (์ด๋์๋ ๋ฌด์ธ๊ฐ๋ฅผ ํด์ฃผ๋ ์ฃผ์ฒด)
- Web Service API : Web Service ์ ์ ๊ทผ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์ด์ฃผ๋ ์ง๊ฒ๋ค๋ฆฌ
์ฐ๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก Rest ๊ธฐ๋ฐ Web Service ๋ฅผ ๊ตฌ์ถํ๊ฑฐ๋ ์ ๊ทผํ ๊ฒ. ์ด์ ๋ฐ๋ผ REST ๊ฐ ๋ฌด์์ธ์ง ๋ฐฐ์๋ณด์.
- REST : ์น ์๋น์ค์ ์ํคํ
์ฒ ์คํ์ผ. ์น ๋ฆฌ์์ค์ ๋ํ CRUD(Create, Read, Update, Delete) ์์
์ ์ํํ๊ธฐ ์ํ ํ์ค ๊ท์ฝ์ ์ ๊ณต. ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ
์ฒ (๊ตฌ์กฐ) ์์ฒด๋ฅผ ์๋ฏธ. ์ํ ์์, ์บ์ ๊ฐ๋ฅ, ๊ณ์ธตํ๋ ์์คํ
, ์ฝ๋ ์จ ๋๋งจ๋, ์ผ๊ด๋ ์ธํฐํ์ด์ค ๋ฑ์ ์์น์ ๊ฐ์ง.
- REST API : "์ํ์ ๊ดํ ์ ๋ณด๊ฐ ํฌํจ๋ ๊ฐ๋ณ์ ์ธ ๋ฆฌ์์ค๋ค์ ์ก์์ ํ ์ ์๋๋ก" ๋ง๋ค์ด์ง API.
- RESTful Web Service : REST ์ํคํ ์ฒ ์คํ์ผ์ ๋ฐ๋ฅด๋ Web Service ๋ฅผ ์๋ฏธ. ์ฝ๊ฐ ๋ง์ง ์์ง๋ง, Rest API ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง Web Service ๋ผ๊ณ ๋ณด์๋ ๋ ๋ฏ.
RESTful Web Service ๋ฅผ ๊ตฌ์ถํ ๋, ์ฐ๋ฆฌ๋ ํด๋น Web Service ์ ๋ค๋ฅธ Client ๊ฐ์ ๋คํธ์ํฌ ์ํต๋ฐฉ์ (ํ๋กํ ์ฝ) ์ผ๋ก, HTTP ๋ฅผ ๋ง์ด ์ฌ์ฉ. HTTP ์ ๋ํด ๋ฐฐ์๋ณด์.
- HTTP : ์น์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ํ๋กํ ์ฝ. ์น ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ ๊ฐ์ ํต์ ์ ์ํด ์ฌ์ฉ.
- ์น ๋ธ๋ผ์ฐ์ ์ Request ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก, ์น ์๋ฒ์ Response ๋ฅผ ๋ฐ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ. Request์๋ Header, Contents ๋ฐ ๊ธฐํ ๋ฑ๋ฑ์ ๋ด์ฉ์ด ๋ค์ด๊ฐ. Response ๋ํ ๋ง์ฐฌ๊ฐ์ง.
- Request : url / Content ๊ฐ ๊ธฐ๋ณธ. ์ด์ธ Header ๋ฑ์ ํตํด ์ถ๊ฐ์ ์ธ ์ค์ ์ด ๊ฐ๋ฅ.
- HTTP METHOD : ์น ์๋ฒ์๊ฒ ์ด๋ค ์ข
๋ฅ์ ๋์์ ์ํ๋์ง๋ฅผ ๋ํ๋ด๋ ๋ฐฉ๋ฒ. (==์์ ์ด ๋ด๋ฆฌ๋ ๋ช
๋ น(Request) ์ ์ ํ(์ ๋ณด๋ฅผ ๋ฐํํด๋ผ / ๋ฐ์๋ผ / ์
๋ฐ์ดํธํด๋ผ / ์ง์๋ผ) ์ ์๋ฏธํจ.== ํ์ง๋ง, ์ค์ Server ์์ ์ด HTTP Method ์ ๊ตฌ๋ถ์ ๋ฐ๋ผ, ์ค์ ํจ์๊ฐ ๋๋ ์ง ๊ฑธ ์๊ฐํ๋ฉด, ==์น ์๋ฒ์๊ฒ ์ด๋ค ์ข
๋ฅ์ ๋์์ ์ํ๋์ง๋ฅผ ์์ฑํ Request ์ ์ผ๋ถ==๋ผ๋ ๊ฒ๋ ์๋ฏธ์ ๋์ผ.) HTTP ํ๋กํ ์ฝ์ ํต์ฌ ๋ถ๋ถ์ด๋ฉฐ, ์น ๋ธ๋ผ์ฐ์ ์ ์๋ฒ ๊ฐ์ ์ํธ ์์ฉ์ ์ ์ํ ๋ ์ฌ์ฉ.
- GET / POST / PUT / DELETE ๋ค ๊ฐ์ง ์ข ๋ฅ๊ฐ ๋ํ์ ์.
- ์น ๋ธ๋ผ์ฐ์ ์ Request ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก, ์น ์๋ฒ์ Response ๋ฅผ ๋ฐ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ. Request์๋ Header, Contents ๋ฐ ๊ธฐํ ๋ฑ๋ฑ์ ๋ด์ฉ์ด ๋ค์ด๊ฐ. Response ๋ํ ๋ง์ฐฌ๊ฐ์ง.
์ด์ REST ์ HTTP ์ฌ์ด ๊ฐ๋ ์ ๋ํด์ ํผ๋์ด ์์๋ ๋งํผ, ์ด ๋ ๊ฐ๋ ์ ์ฐจ์ด์ ๋ํด ์์๋ณด์.
- REST ์ HTTP ์ฌ์ด์ ์ฐจ์ด :
- ๋ฒ์ฃผ / ์ข ๋ฅ๋ก์์ ์ฐจ์ด : HTTP๋ ํ๋กํ ์ฝ (์ ํด๋ ๊ท์น์ด๋ ๊ท์ฝ) ์ด๋ฉฐ, REST๋ ์ํคํ ์ฒ ์คํ์ผ (Web Service ์ ๊ตฌ์กฐ ํ์ต์ ๋ํ๋ด๋ ๊ฐ๋ ์.)
- ๋ชฉ์ ์ผ๋ก์์ ์ฐจ์ด : HTTP๋ ๋ฐ์ดํฐ ์ ์ก ๋ฐฉ๋ฒ ์ ์๋ฅผ, REST๋ ์น ์๋น์ค ๋์์ธ ์ ์๋ฅผ ๋ชฉ์ ์ผ๋ก ํจ.
HTTP๋ฅผ ์ฌ์ฉํ ๋ ์ถ๊ฐ์ ์ผ๋ก ์์์ผ ํ๋ ๊ฐ๋ ์ ๋ํด ์์๋ณด์. ์ผ๋ฐ์ ์ผ๋ก HTTP ๋ฅผ ์ด์ฉํ๋ ๊ฒฝ์ฐ, Client ๋ก์, Server ์ Request ํ ๋ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋ ํ ๋ฐ, ์ด ๊ณผ์ ์ ๊ธฐ๋ฐ์ผ๋ก, ์ฃผ์ ๊ฐ๋ ์ ์ดํด๋ณด์.
- HTTP Method - CRUD (GET / POST / PUT / DELETE) ์ค์
- HTTP Method : ์๋ฒ๊ฐ ์ฃผ์ด์ง Resource ์ ๋ํด์ ์ํํ๊ธธ ์ํ๋ ๋์์ ์ง์ ํ๋ ๊ฒ.
- Header / URL (์น ์์ ์์น๋ฅผ ์๋ณํด์ฃผ๋ ์ฃผ์ = ์๋ณ์) / Contents ์
๋ ฅ
- Header : ์์ฒญ ๋๋ ์๋ต์ ๋ํ "๋ถ๊ฐ์ ์ธ" ์ ๋ณด๊ฐ ๋ด๊ธด ๊ณณ.
- URL : ๋คํธ์ํฌ ์์์ ์์์ด ์ด๋ ์๋์ง๋ฅผ ์๋ ค์ฃผ๊ธฐ ์ํ ๊ฒ. ๊ท์ฝ / ์ฃผ์ ๋ ๋ค ์๋ฏธ.
- Contents : ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ทธ ์์ฒญ ๋ฐ ์๋ต์์, ๋ด๋ถ์ ๋ค์ด์๋ ์ค์ Data. (REST ์์ , ์ด Data ๋ฅผ Resource ๋ผ๊ณ ํํํ๋ค.)
- HTTP Request ์ ์ก ๋ฐ, Server ๋ก๋ถํฐ Response ๋ฅผ ๋ฐํ ๋ฐ์.
- ์ด ๋ฐํ๋ฐ์ Response ์๋ ๋ฌผ๋ก , Header ์ Contents ๊ฐ ํฌํจ๋์ด ์๋ค.
- ๋ฐํ๋ฐ์ Response ๋ฅผ ์ฒ๋ฆฌ
Accesing Web Serivce in Unity
Client ์์ HTTP Request ๋ฅผ ๋ณด๋ด๋ ๋ฐฉ๋ฒ / HTTP Response ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ
Server ๋จ์์๋ ๋ณดํต, HTTP Request ๋ฅผ ๋ฐ๊ณ , ์ด๋ฅผ ์ฒ๋ฆฌํ์ฌ Response ๋ฅผ ๋ค์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ๋ค. ํ์ง๋ง, ์ด ํํธ์์๋ Client ์์ HTTP Request ๋ฅผ ์ด๋ป๊ฒ ๋ณด๋ด๊ณ , Server ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ Response ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ์ ์์๋ณด์.
์ผ๋ฐ์ ๊ณผ์
- HTTP Method - CRUD (GET / POST / PUT / DELETE) ์ค์
- HTTP Method : ์๋ฒ๊ฐ ์ฃผ์ด์ง Resource ์ ๋ํด์ ์ํํ๊ธธ ์ํ๋ ๋์์ ์ง์ ํ๋ ๊ฒ.
- Header / URL (์น ์์ ์์น๋ฅผ ์๋ณํด์ฃผ๋ ์ฃผ์ = ์๋ณ์) / Contents ์
๋ ฅ
- Header : ์์ฒญ ๋๋ ์๋ต์ ๋ํ "๋ถ๊ฐ์ ์ธ" ์ ๋ณด๊ฐ ๋ด๊ธด ๊ณณ.
- URL : ๋คํธ์ํฌ ์์์ ์์์ด ์ด๋ ์๋์ง๋ฅผ ์๋ ค์ฃผ๊ธฐ ์ํ ๊ฒ. ๊ท์ฝ / ์ฃผ์ ๋ ๋ค ์๋ฏธ.
- Contents : ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ทธ ์์ฒญ ๋ฐ ์๋ต์์, ๋ด๋ถ์ ๋ค์ด์๋ ์ค์ Data. (REST ์์ , ์ด Data ๋ฅผ Resource ๋ผ๊ณ ํํํ๋ค.)
- HTTP Request ์ ์ก ๋ฐ, Server ๋ก๋ถํฐ Response ๋ฅผ ๋ฐํ ๋ฐ์.
- ์ด ๋ฐํ๋ฐ์ Response ์๋ ๋ฌผ๋ก , Header ์ Contents ๊ฐ ํฌํจ๋์ด ์๋ค.
- ๋ฐํ๋ฐ์ Response ๋ฅผ ์ฒ๋ฆฌ
- HttpClient : HttpCliientBuilder.Create().Build()
- HttpGet : new HttpGet("Path for GET")
- HttpGet๋ณ์.setHeader("Accept", "application/html") // response ๋ฐ๋ ๋ด์ฉ์ด view ์ html ์ผ ๊ฒ์ด๋ฏ๋ก ์ด์ ๊ฐ์ด ์ค์ .
- HttpResponse : HttpClinet๋ณ์.execute(HttpGet ๋ณ์)
- Response ์๋ ๋ฐํ๋ Resources ์ ๋ํ ์ ๋ณด๊ฐ ๋ค์ด์์.
- HttpResponse ๋ณ์ ์ฒ๋ฆฌํ๊ธฐ (Statusline ๋ฑ์ด ๋ค์ด์๊ฑฐ๋ ํจ.)
- EntityUtil.toString(HttpResponse๋ณ์.getEntity())
- HttpResponse๋ณ์.getEntity() ๊ฐ HttpResponse ๋ด์ฉ๋ฌผ์ ์ค์ฒด.
- HttpGet = UnityWebRequest
- SetHeader = SetRequestHeader
- execute -> HttpResponse = SendWebRequest
- getStatusCode = Switch(result)
- EntityUtil.toString(response.getEntity()) = downloadRes~.text
์์ค ๋ค์ฌ์ฐ๊ธฐ์ ์ซ์๋ ์ด๋ฐ ๊ฑฐ ๋ค ๋ ๋ผ๊ฐ๋ค. PDF ์ฒจ๋ถํจ.
https://ajouackr-my.sharepoint.com/:f:/g/personal/hwi7586_ajou_ac_kr/Eiw3U0PsRN5AjowqBWTU6goBnfOAlH4RKu4KSPvfUSvETg?e=rwm6TI
ํน์
๋งํฌ ์ ๋๋ฉด ๋งํด์ฃผ์ธ์!! PDF ์ฒจ๋ถ๊ฐ DC ์์ ์ ๋๋คใ
๊ฐ์ถ ๊ฐ์ถ