๊ณํ ํ๊ณ ๋ ์ฒซ ๋ฒ์งธ ์์ ๋ฒ์ ์ ์ถ์ํ์ต๋๋ค. ์ด๋์ ํฐ๋ธ์ ์ผํ์ผ๋ก Django ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ Python์ผ๋ก ์์ฑ๋ ๋ฌด๋ฃ ์๋ฒ๊ฐ ๊ฐ๋ฐ๋๊ณ ์์ผ๋ฉฐ ์น ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์ ์๋ ์์ ๊ณผ ํ์บ์คํธ๋ฅผ ํธ์คํ ํ๊ณ ์์ต๋๋ค. Subsonic API ๋๋ ๊ธฐ๋ณธ Funkwhale API๋ฅผ ์ง์ํ๋ ํด๋ผ์ด์ธํธ๊ณผ Funkwhale์ ๋ค๋ฅธ ์ธ์คํด์ค์์์ฌ์ฉ ActivityPub ์ฐํฉ ๋คํธ์ํฌ ํ๋กํ ์ฝ.
์ค๋์ค์์ ์ฌ์ฉ์ ์ํธ ์์ฉ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฑ๋์ ์ฌ์ฉํ์ฌ ๋ฐ์ํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฌด์์๋ก ์์ฑ๋ UUID๋ฅผ ์ฃผ์๋ก ์ฌ์ฉํ๋ ์ฌ๋ฌ ์ํฐ์คํธ์ ๋ชจ์์ด๊ณ , ์ฑ๋์ ์ฌ๋์ด ์ฝ์ ์ ์๋ ์ฃผ์๊ฐ ๋ถ์ฌ๋ ๋จ์ผ ์ํฐ์คํธ์ ์๋ฐ์ ๋๋ค. ์ฑ๋์ ํ์บ์คํธ๋ฅผ ๊ฒ์ํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ตฌ๋ ์์ ์ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์์ ๊ณผ ์ ์ฌํฉ๋๋ค. PeerTube: ํด๋น ์ฌ์ฉ์์ ๋ณ๋๋ก ์์ฑ๋ ์ฑ๋์ ๋ชจ๋ ๊ตฌ๋ ํ ์ ์์ต๋๋ค. ์๋ฒ๋ ActivityPub ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์๋ํ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๊ตฌํ์์ ๊ตฌ๋ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ง ์คํค ะธ ํ๋ ๋ก๋ง.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฑ๋์ ๋ง๋ ํ ์์ ์ ์ ๋ก๋ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํ ํ์ผ ์ ์ฅ์ Amazon S3 ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ํ์ผ ์์คํ ์ ๋ํ ๋ด์ฅ ์ง์์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ๋๋ ์๊ฒฉ์ผ ์ ์์ต๋๋ค. ์ถ๊ฐ ๋ น์์ด๋ ํ์ง ์ ํ ์์ด ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ์์ ๋ชจ๋ ํ์ผ์ ์ ๋ก๋ํ ์ ์์ต๋๋ค(์๋ฅผ ๋ค์ด ์ค๋์ค ์ ๋ก๋๋ ์ง์ํ๋ PeerTube์์๋ ๊ฐ๋ฅ). Funkwhale์ ํ์ผ์ ํฌํจ๋ ์์ ๋ฉํ๋ฐ์ดํฐ์ ์ปค๋ฒ ์ํธ๋ฅผ ์ฝ๊ณ , ๋๋ฝ๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ์์ฑํฉ๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์๋ ๋ค์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. MusicBrainz Picard ์ ๋ก๋ํ๊ธฐ ์ ์ ์ฌ๋ฐ๋ฅธ ํ๊ทธ๋ฅผ ์์ฑํ์ธ์. ๋ค์ด๋ก๋ ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํธ์งํ๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ ์ ๊ณต๋๋ฉฐ, ๋ณ๊ฒฝ ๋ด์ญ์ ๋ณผ ์ ์๋ ๊ฐ์ ํ์์ผ๋ก ์๋ํฉ๋๋ค.
์ด๋ฏธ ๋ค์ด๋ก๋ํ ์์ ๋ถํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ฑ๋๊น์ง ์ฌ์ ๋ชฉ๋ก, ๋ผ๋์ค ๋ฐฉ์ก๊ตญ์ ๋ง๋ค๊ณ ํธ๋์ ์ฆ๊ฒจ์ฐพ๊ธฐ๋ก ํ์ํ ์ ์์ต๋๋ค. ์๊ฒฉ ์ฌ์ฉ์๋ ์๋ฒ์ ๊ฒ์ ํ์์ค์ ๋งํฌ๋ฅผ ๋ถ์ฌ๋ฃ๊ธฐ๋ง ํ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฑ๋์ ๋ํ ์ก์ธ์ค๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค. ์๋ฒ ์ค์ ์์ ํ์ฉ๋ ๊ฒฝ์ฐ ์ต๋ช ์ฌ์ฉ์๋ ์น ์ธํฐํ์ด์ค์์ ์์ ์ ๋ค์ ์ ์์ต๋๋ค. ๋ฑ๋ก๋ ๋ก์ปฌ ์ฌ์ฉ์๋ ๋ค์์ ํตํด ๋ก๊ทธ์ธํ์ฌ ์น ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ์๋ฒ์ ๋ชจ๋ ์์ ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. Subsonic API๋ฅผ ์ง์ํ๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ - ํ์ฌ ๋ ์ ๋ผ์ด์ผ์ค๊ฐ ์ ์ฉ๋๋ ๋ ๋ค๋ฅธ ์์ ์๋ฒ(๋ฌด๋ฃ ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ์ด์ ์ฝ๋๋ฒ ์ด์ค์ ๋ณ๋ ฌ ๊ฐ๋ฐ ๋ถ๊ธฐ ํฌํจ) - ๋๋ ๊ธฐ๋ณธ Funkwhale API(์: ์๋๋ก์ด๋์ฉ ์๋ฌ.
๋ํ ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ํธ๋์ ํธ๋์ค์ฝ๋ฉ๋ ๋ฒ์ ์ ์์ฒญํ ์๋ ์์ต๋๋ค(์: FLAC์์ ๋นํธ ์ ์ก๋ฅ ์ด ๋ฎ๊ณ ์ธํฐ๋ท ํธ๋ํฝ์ด ๋ ํ์ํ MP3๋ก).
์๋ฅผ ๋ค์ด ์ด๋ฏธ ์ธ๊ธ๋ ํ์บ์คํธ ๋ฑ์ RSS ํผ๋๋ฅผ ๊ตฌ๋ ํ ์ ์์ต๋๋ค.
์ด๋ฒ ๋ฆด๋ฆฌ์ค์ ๋ณ๊ฒฝ ์ฌํญ:
- ์ต์ ํ์ Python ๋ฒ์ ์ด 3.6์ผ๋ก ์ฆ๊ฐํ์ต๋๋ค.
- ํธํ์ฑ์ ๊นจ๋จ๋ฆฌ๋ ํด๋ผ์ด์ธํธ API์ ๋ณ๊ฒฝ ์ฌํญ
- OAuth๋ฅผ ์ ํธํ๋ JSON ํ ํฐ(JWT) ์ง์ ์ค๋จ
- ํ์ง ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์์ฑ์ ์ํ ํฅ์๋ ์๊ณ ๋ฆฌ์ฆ;
- ์๋ฒ ํ์ผ ์์คํ ์์ ์์ ์ ๊ฐ์ ธ์ค๊ธฐ ์ํ ๋ฒํผ์ด ์น ์ธํฐํ์ด์ค์ ์ถ๊ฐ๋์์ต๋๋ค.
- ํธ๋ ๋ฐ ์จ๋ฒ ๋ค์ด๋ก๋ ํ์ ํ์๊ฐ ๋ํ๋ฉ๋๋ค.
- ์๋ก์ด ๊ฒ์ ํ์ด์ง;
- ์ด์ ํธ๋๊ณผ ์จ๋ฒ์ "์ฌ์" ๋ฒํผ์ด ํธ๋์ ์ถ๊ฐํ๋ ๋์ ๋๊ธฐ์ด์ ๋์ฒดํฉ๋๋ค.
- Last.fm API v2๋ฅผ ์ฌ์ฉํ ์คํฌ๋กค๋ง ์ง์.
์ถ์ฒ : linux.org.ru