๐ ์ด๋ฆ ๊ธฐ๋ฐ ๊ฐ๋ช ์์ฑ๊ธฐ (Name-based Alias Generator)
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ํ๊ธ ์ด๋ฆ์ ๊ตฌ์กฐ๋ฅผ ๋ถ์ํ์ฌ ๊ท์น ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๊ตญ์ ๊ฐ๋ช ์ ์์ฑํ๋ ์น ์๋น์ค์ ๋๋ค.
๋จ์ ๋๋ค ๋ฌธ์์ด ์์ฑ์ด ์๋ ์ด๋ฆ ๊ธธ์ดยท์ค๊ฐ ๊ธ์ยท์ฑ๋ณ ์กฐ๊ฑด์ ๋ฐ์ํด ๊ฐ๋ช ์ ์์ฑํ๋๋ก ์ค๊ณํ์ต๋๋ค.
๐ ์ฃผ์ ๊ธฐ๋ฅ
์ด๋ฆ ๊ตฌ์กฐ ๋ถ์
์ ๋ ฅ๋ ์ด๋ฆ์์ ์ค๊ฐ ๊ธ์๋ฅผ ์ถ์ถ
4๊ธ์ ์ด์์ผ ๊ฒฝ์ฐ ๊ฐ์ด๋ฐ 2๊ธ์ ์ค 1๊ธ์๋ฅผ ๋๋ค ์ ํ
ํ๊ตญ์ ์ฑ์จ ์ ์ฉ
๊น, ์ด, ๋ฐ ๋ฑ ๋จ์ฑ(1๊ธ์ ์ฑ)
๋จ๊ถ, ์ ๊ฐ, ์ ์ฐ ๋ฑ ๋ณต์ฑ(2๊ธ์ ์ฑ) ํฌํจ
์ฑ๋ณ ๋ถ๋ฆฌ ๋ก์ง
์ฑ๋ณ(F/M)์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ์ด๋ฆ ๋ ๊ธ์ ํ๋ณด๊ตฐ ์ฌ์ฉ
์ค์ ํ๊ตญ ์ด๋ฆ์์ ์์ฃผ ์ฌ์ฉ๋๋ ์์ ๊ธฐ๋ฐ ์ค๊ณ
์น UI ์ ๊ณต
๋ธ๋ผ์ฐ์ ์์ ์ด๋ฆ ์ ๋ ฅ โ ๋ฒํผ ํด๋ฆญ์ผ๋ก ๊ฐ๋ช ์์ฑ
FastAPI ์๋ฒ์ ๋น๋๊ธฐ ํต์ (fetch API)
๐ ๊ธฐ์ ์คํ Backend : Python, FastAPI Frontend : HTML, CSS, Vanilla JavaScript API : RESTful POST API (/nickname) Server : Uvicorn (local development)
๐ API ๊ตฌ์กฐ POST /nickname
Request Body
{ "name": "์ค๋์ฐ", "gender": "F" }
Response
{ "ok": true, "alias": "๊น๋์", "input_name": "์ค๋์ฐ", "gender": "F" }
์ค๊ณ ํฌ์ธํธ
์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์ง ์๊ณ , ๋ฌธ์์ด ๊ธธ์ด์ ์์น ๊ธฐ๋ฐ ์กฐ๊ฑด ๋ถ๊ธฐ ๋ก์ง์ ์ ์ฉ
๋์ผํ ์ ๋ ฅ์ด๋ผ๋ ์กฐ๊ฑด(์ฑ๋ณ, ์ด๋ฆ ๊ธธ์ด)์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋๋ก ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ
ํ๋ก ํธ์๋์ ๋ฐฑ์๋์ ์ญํ ์ ๋ถ๋ฆฌํ์ฌ API ์ค์ฌ ๊ตฌ์กฐ๋ก ๊ตฌํ
๐ ์คํ ๋ฐฉ๋ฒ (๋ก์ปฌ)
venv\Scripts\activate
python -m uvicorn main:app --reload
๋ธ๋ผ์ฐ์ ์ ์:
๐ก ํฅํ ๊ฐ์ ์ฌํญ
๋์ผํ ์ ๋ ฅ์ ๋ํด ๊ฒฐ๊ณผ๋ฅผ ๊ณ ์ ํ๋ deterministic ๋ชจ๋ ์ถ๊ฐ
๋ฐฉ๋ฌธ์ ์ ๋ฐ ์์ฒญ ํ์ ํต๊ณ API ๊ตฌํ
ํด๋ผ์ฐ๋ ํ๊ฒฝ(Render ๋ฑ) ๋ฐฐํฌ
๐ ํ๋ก์ ํธ ์์
์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋จ์ํ ๋๋ค ์ฒ๋ฆฌํ์ง ์๊ณ , ์กฐ๊ฑด ๊ธฐ๋ฐ ๋ฌธ์์ด ๋ถ์ ๋ก์ง์ ์ง์ ์ค๊ณํ์ฌ ๊ท์น ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์์ฑ API๋ฅผ ๊ตฌํํ ์ฒซ ๋ฐฑ์๋ ํ๋ก์ ํธ์ ๋๋ค.