์คํ์๊ณผ ์น๊ตฌ๋ค ์คํ์ ์ํ ์ํคํ ์ฒ ์ ์ง๋ณด์ ๋ฐ ๋ณด์์ฌํญ.
์๋์ ์ํคํ ์ฒ๋ ๋ค์ ์คํ์๊ณผ์น๊ตฌ๋ค์ด ๊ฐ๋ฐ์ ํ ์ ์๋๋ก ํ๊ธฐ ์ํด ํ์ํ ์์คํ ๋ค์ด๋ค.
- ๊ฒฐ์ ๊ฐ ๋ค ๋์๋ค๊ณ ํด์ ๋ฐ๋ก startUsingLocker()๋ฅผ ์คํํ์ง ์๋๋ค.
- ํ๋งค์๊ฐ ๋ฌธ์ ์ด ๋, ์ฃผ๋ฌธ ๋ฒํธ๊ฐ ์๋ locker์๋ง ๋ฌธ์ ์ด ์ ์๋๋ก ํ๋ค. (์ค๋จ์ฉ ๋ฐฉ์ง)
- ๋ฌธ์ด ๋ซํ์ ๋์ ์๋ฒ ์์ ๋ฉ์ธ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๋๋กํ๋ API๋ฅผ ๋ฉ์ธ์๋ฒ์ ๋ง๋ ๋ค.
- ๋ฌธ์ด ๋ซํ์ ๋์ ์๋ฒ -> ๋ฉ์ธ์๋ฒ๋ก ์์ฒญ์ ํ๊ณ (๋ฉ์ธ์๋ฒ์์๋ ๋ฌผ๊ฑด์ด ๋ค์ด์๋์ง์ ๋ํ ์ฌ๋ถ, ๋ผ์ปค ๋ฒํธ๋ฅผ ๋ฐ๋๋ค.)
- ๋ฌธ์ด ๋ซํ์ ๋ ํด๋น ๋ผ์ปค๊ฐ ์ฃผ๋ฌธ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ๋๊ธฐ์ค์ด๊ณ , ๋ฌผ๊ฑด์ด ๋ค์ด์๋ค๋ฉด, startUsingLocker()๋ฅผ ์คํํ๋ค (์ฆ ํด๋น locker๋ฅผ ์ฌ์ฉ์ค์ผ๋ก ์ ๋ฐ์ดํธ ์ํจ๋ค).
- ๋ฌธ์ด ๋ซํ์ ๋ ํด๋น ๋ผ์ปค๊ฐ ์ฃผ๋ฌธ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ฌ์ฉ์ค์ด๊ณ , ๋ฌผ๊ฑด์ด ๋ค์ด์์ง ์๋ค๋ฉด, returnLocker()๋ฅผ ์คํํ๋ค (์ฆ ํด๋น locker๋ฅผ ๋ฐํํจ์ผ๋ก์จ ๋ฏธ์ฌ์ฉ์ค์ผ๋ก ์ ๋ฐ์ดํธ์ํจ๋ค)
- ๋ฌธ์ด ๋ซํ์ ๋ ํด๋น ๋ผ์ปค๊ฐ ์ฃผ๋ฌธ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ฌ์ฉ์ค์ด๊ณ , ๋ฌผ๊ฑด์ด ๋ค์ด์๋ค๋ฉด, ์์ง ๋ฌผ๊ฑด์ ์ ๋๋ก ๊ฐ์ง๊ณ ๊ฐ์ง ์์์ผ๋ฏ๋ก openLocker()๋ฅผ ์คํํ๋ค (์ฆ ๋ค์ ๋ฌธ์ ์ฐ๋ค)
- ๋ฌธ์ด ๋ซํ์ ๋์ ์๋ฒ -> ๋ฉ์ธ์๋ฒ๋ก ์์ฒญ์ ํ๊ณ (๋ฉ์ธ์๋ฒ์์๋ ๋ฌผ๊ฑด์ด ๋ค์ด์๋์ง์ ๋ํ ์ฌ๋ถ, ๋ผ์ปค ๋ฒํธ๋ฅผ ๋ฐ๋๋ค.)
์ผ๋จ์ ์๋ฒ ๋๋ ์ฅ์น์ ์ฅ์น์ ๊ฐ๊ฐ ๋ฒํผ์ ํ๋์ฉ ๋จ๋ค. ๋ ๋ฌผ๊ฑด์ ๊ฐ์ง ํ๋ ์ผ์๋ ํ๋์ฉ ๋จ๋ค.
๊ทธ๋ฐ๋ฐ ๋ผ์ปค๊ฐ ๋ง์์ง๊ฒ ๋๋ค๋ฉด ๋ฌผ์ฒด๊ฐ์ง ์ผ์, ๋ฌธ ๋ซํ ์ธ์ ๋ฒํผ, ๋ฌธ ๊ฐํ์ฅ์น ๋ฑ์ ๋ชจ๋ ๋ค ํ๋์ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์ ์ฐ๊ฒฐ ํ ์ ์๊ธฐ ๋๋ฌธ์, ๋ง์ดํฌ๋กํ๋ก์ธ์(MCU) ์ด์ฉ์ ํตํด์ ์ฌ๋ฌ ๋ผ์ปค๋ฅผ ์ฐ๊ฒฐํด์ ์๋น์ค๋ฅผ ์งํํ๊ธฐ๋ฅผ ๋ฐ๋๋ค.
- ๋ฌผ๊ฑด์ ๊ตฌ๋งคํ ๋, ๋ฏธ๋ฆฌ ๊ธ์ก๊ถ๋ฑ์ ํ ์ค๋ก ๊ตฌ๋งคํด์ ๋ฌผ๊ฑด์ ์ฌ๋ ๋์๋ ํ ์ค ๋์ ํฌ์ธํธ๋ก ๊ฒฐ์ ํ ์ ์๊ฒ ํ๊ธฐ. (๋ค์ด๋ฒ ํฌ์ธํธ ๊ฐ๋ ) ์ด์ -> ์ ์ฌ์๊ฐ์ ํ์๋ค์ด ํด๋ํฐ์ ๋ธ ์ํ๋ก ์์.