์ฝ์๊ฑฐ๋ฆฌ๋ ๋์๊ด ์ ๋ณด๋๋ฃจ์์ ์ ๊ณตํ๋ Open API๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ์์ ๋
์ ์ทจํฅ์ ๋ง๋ ๋์๋ฅผ ์ถ์ฒํ๊ณ , ์ ๊ตญ ๋์๊ด์ ๋์๋ฅผ ์กฐํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ iOS ๋
์ ํ๋ซํผ ์ฑ์
๋๋ค.
์ด์ ํจ๊ป, ์คํํก ๊ธฐ๋ฅ์ ํตํด ์ฌ์ฉ์ ๊ฐ์ ์์ ๋ก์ด ์๊ฒฌ ๊ต๋ฅ๋ฅผ ์ง์ํ๋ฉฐ, ๋
์ ๋ชฉํ ์ค์ ๋ฐ ๊ณต์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๊ธฐ๋ฅ ๊ตฌํ
- 2024.07.18. ~ 2024.08.30.
- ์ ์ง ๋ณด์ ๋ฐ ์
๋ฐ์ดํธ
- 2024.09.01. ~ ์งํ ์ค
- ใ2024 ๋์๊ด ๋ฐ์ดํฐ ํ์ฉ ๊ณต๋ชจ์ ใ (๊ตญ๋ฆฝ์ค์๋์๊ด ์ฃผ๊ด) - ์๋น์ค ์์ด๋์ด ๋ถ๋ฌธ ์ถํ์
๐ชTeam contact: [email protected]
iOS Developer | iOS Developer | Server Developer | Server Developer |
---|---|---|---|
@minnnidev | @rafa-e1 | @chanwoo7 | @hyeesw |
์ด์ฐฌ์ฐ | ๊นํ์ |
-
์ด์ฐฌ์ฐ
- JWT Access Token, Refresh Token ๊ธฐ๋ฐ ํ์ ์ธ์ฆ ๋ฐ Redis๋ฅผ ํ์ฉํ ํ ํฐ ์ฌ๋ฐ๊ธ ์๋น์ค ๊ตฌํ
- Spring Data JPA, Spring Security๋ฅผ ํ์ฉํ ํ์ ์ ๋ณด ๊ด๋ฆฌ ์๋น์ค ๊ตฌํ
- OIDC(OpenID Connect)๋ฅผ ํ์ฉํ ID Token ๊ธฐ๋ฐ ์นด์นด์ค, Apple ๋ก๊ทธ์ธ ๊ตฌํ
- ์ปค์คํ ํ์ด์ง๋ค์ด์ ๋ก์ง ๊ตฌํ ๋ฐ Open API ๊ธฐ๋ฐ ์ฅ๋ฅด ๋์ ์กฐํ API, ๋์๊ด ๊ฒ์ ๋ฐ ์ ์ฅ API ๊ตฌํ
- ๋ชฉํ CRUD API ๋ฐ ๋ชฉํ ๊ธฐ๋ก ์ถ๊ฐ API ๊ตฌํ
- ๋๋ฉ์ธ ๊ด๋ฆฌ ๋ฐ SSL ์ธ์ฆ์ ์ ์ฉ
-
๊นํ์
- AWS EC2 ์๋ฒ ๋ฐฐํฌ ๋ฐ Docker, Github-Actions, Portainer๋ฅผ ํ์ฉํด ์๋ฒ ๋ฐฐํฌ ์๋ํ
- ์ ๋ณด๋๋ฃจ Open API ํต์ ๋ก์ง ๋ฐ JSON ํ์ฑ ์ธํฐํ์ด์ค ๊ตฌ์ถ
- Open API ๊ธฐ๋ฐ ์ปค์คํ ์ธ๊ธฐ๋์ถ๋์, ์ฑ ๊ฒ์, ์ฑ ์์ธ, ๋์๊ด ์ฑ ๋์ถ ์ฌ๋ถ API ๊ตฌํ
- STOMP ํ๋กํ ์ฝ ๊ธฐ๋ฐ ์ค์๊ฐ ์ฑํ ๊ตฌํ (์คํํก)
์์คํ ์ํคํ ์ฒ |
CI/CD ์ํคํ ์ฒ |
์ด ๋ฌธ๋จ์ ๋ด์ฉ์
Readables-iOS
(ํ๋ก ํธ์๋) ๋ ํฌ์งํ ๋ฆฌ์ README์์ ๋ฐ์ทํ ๋ด์ฉ์ ๋๋ค.
-
์ ์ ๋ ์ ํ ๋ก๊ทธ์ธ, ์นด์นด์ค ๋ก๊ทธ์ธ ์ด 2๊ฐ์ ์์ ๋ก๊ทธ์ธ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ ๋ ฅ ํผ์์ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ฉด ํ์ ๊ฐ์ ์ด ์๋ฃ๋ฉ๋๋ค. (๋๋ค์๋ง ํ์ ์ ๋ ฅ)
-
ํ๋ฒ ๋ก๊ทธ์ธ์ ํ๋ฉด ์๋ ๋ก๊ทธ์ธ์ด ํ์ฑํ๋ฉ๋๋ค.
์ ํ ๋ก๊ทธ์ธ ์นด์นด์ค ๋ก๊ทธ์ธ ์ ๋ณด ๋ฑ๋ก
-
ํํ๋ฉด์์ ์ ์ ๋ ์ง๋๋ฌ ์ธ๊ธฐ ํค์๋๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
-
์ด๋ฒ์ฃผ ์ธ๊ธฐ ๋์, ์ ์ ๋์ด๋์์ ์ธ๊ธฐ ์๋ ๋์, ๋์ถ ๊ธ์์น ๋์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
-
์ ๋ณด ๋ฑ๋ก ์ ๋์ด๋ฅผ ์ ๋ ฅํ์ง ์์๋ค๋ฉด, ์ ์ฒด ๋์ด๋์ ์ธ๊ธฐ ์๋ ๋์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๊ธฐ๋ณธ ํํ๋ฉด1 ๊ธฐ๋ณธ ํํ๋ฉด2 ๋์ด๋ฅผ ์ ๋ ฅํ์ง ์์์ ๋
-
์ฑ ์ด๋ฆ ๋๋ ์๊ฐ ์ด๋ฆ์ผ๋ก ๊ฒ์์ ํ ์ ์์ต๋๋ค.
-
ํค์๋ ํ ๊ธ์ ์ผ์ ์ ๋ณด๋๋ฃจ์์ ์ ๊ณตํ๋ ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ํ ์ ์์ต๋๋ค.
์ผ๋ฐ ๊ฒ์ ํค์๋ ๊ฒ์
-
๋์๊ด ๋ชฉ๋ก์ ๊ฒ์ํ์ฌ ๋๋ง์ ๋์๊ด์ ์ต๋ 3๊ฐ๊น์ง ๋ฑ๋กํ ์ ์์ต๋๋ค.
-
์ง์ญ - ์ธ๋ถ ์ง์ญ์ ๋๋์ด ๊ฒ์ํ ์ ์๊ณ , ์ถ๊ฐ, ์ญ์ ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
-
๋ด ๋์๊ด ๋ฑ๋ก์ ์ถํ ๋์ฌ ๋์ ์์ธ ์ ๋ณด์์ ๋์ ๋์ถ ์ฌ๋ถ๋ฅผ ๋ํ๋ผ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
๋ด ๋์๊ด ๊ด๋ฆฌ ๋ด ๋์๊ด ์ญ์ ๋์๊ด ๋ฑ๋ก
-
๋์๋ฅผ ๊ฒ์ํ๊ณ ํด๋น ๋์์ ๋ํ ๋ชฉํ๋ฅผ ์ธ์ธ ์ ์์ต๋๋ค.
๋์์ ์ต์ข ํ์ด์ง ์๋ฅผ ์ ๋ ฅํ ๋ค, ํ๋ฃจ์ ์ฝ์ ์์ ๊ธฐ๋กํ๋ฉด ์ฝ์๊ฑฐ๋ฆฌ์์ ์ฐจํธ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. -
๋ชฉํ๋ฅผ ์ญ์ ํ๊ณ ์๋ฃ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋ชฉํ ์ถ๊ฐ ๋ชฉํ ํญ ๋ชฉํ ๊ธฐ๋ก
-
๊ด์ฌ์๋ ๋์์ ๋ํด ์์ ๋กญ๊ฒ ์คํํก์์ ๋ํํ ์ ์์ต๋๋ค.
-
์ฑํ ์ฌ์ด๋ ๋ฉ๋ด์์ ํด๋น ๋์์ ๋ชฉํ๋ฅผ ์งํ ์ค์ธ ์ฌ๋, ์๋ฃํ ์ฌ๋์ ํ์ธํ์ฌ ๊ฐ์ด ์ฑ ์ฝ๋ ๋ถ์๊ธฐ๋ฅผ ๋ง๋ค๊ณ ์ ํ์์ต๋๋ค.
-
ํด๋น ๋์์ ๋ํ ๋์ ๋ชฉํ ์งํ ์ฌ๋ถ์ ๋ฐ๋ผ ๋ชฉํ ์งํ๋์ ๋ชฉํ ์ถ๊ฐ๊ฐ ๋ํ๋๋๋ก ์ฒ๋ฆฌ๋์ด ์์ต๋๋ค.
์คํํก ์ง์ ์ฑํ ์ฑํ ์ฌ์ด๋ ๋ฉ๋ด1 ์ฑํ ์ฌ์ด๋ ๋ฉ๋ด2
-
์นดํ ๊ณ ๋ฆฌ ํญ์์๋ ๋์ฃผ์ ๋ฅผ ์ ํํ์ฌ, ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฒ์ฃผ ์ธ๊ธฐ ๋์์ ์ ์ ๋์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
-
๊ฐ ๋์ฃผ์ ์ ๋ํ ์์ฃผ์ ๋ฅผ ์ ํํ ์ ์์ผ๋ฉฐ, ๋ง์ฐฌ๊ฐ์ง๋ก ์ธ๊ธฐ ๋์์ ์ ์ ๋์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
-
์ ์ฒด๋ณด๊ธฐ๋ฅผ ํตํด ๊ฐ ์์ฃผ์ ์ ๋ํ ์ผ์ฃผ์ผ ์ธ๊ธฐ์, ํ๋ฌ ์ธ๊ธฐ์, ์ ์์, ๋๋ค์ ํํฐ๋ก ๋์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์นดํ ๊ณ ๋ฆฌ ์ง์ ์ธ๊ธฐ ๋์, ์ ์ ๋์ ์์ฃผ์ ์ ํ ํํฐ ์ด์ฉํ ์ ์ฒด ๋ณด๊ธฐ
-
๋์ ์์ธ ์ ๋ณด์์๋ ๊ธฐ๋ณธ์ ์ธ ๋์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
-
์์ธ ์กฐํ ํ์ด์ง์์ ํด๋น ์ฑ ์ ๋ํ ์คํํก์ ์ฐธ์ฌํ ์ ์์ต๋๋ค.
-
๋ฑ๋กํ ๋ด ๋์๊ด์์ ๋์ถ์ด ๊ฐ๋ฅํ์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋์ถ ๊ฐ๋ฅ, ๋์ถ ๋ถ๊ฐ๋ฅ์ ํ์ํฉ๋๋ค.
๋์ ์์ธ ์ ๋ณด(๋ด ๋์๊ด ๋ฑ๋ก ์ ํ ๊ฒฝ์ฐ) ๋์ถ ๋ถ๊ฐ์ผ ๋ ๋์ถ ๊ฐ๋ฅํ ๋
-
๋ก๊ทธ์ธ, ๋ก๊ทธ์์์ด ๊ฐ๋ฅํฉ๋๋ค. ์ ์ ์๊ฒ ํ๋ฒ ๋ ์์ฌ๋ฅผ ๋ฌผ์ด๋ณด๋๋ก ๊ตฌํํ์์ต๋๋ค.
์ค์ ๋ก๊ทธ์์ ํํดํ๊ธฐ
src/main/
โโโ java
โ โโโ com
โ โโโ book
โ โโโ backend
โ โโโ domain
โ โ โโโ auth
โ โ โโโ book
โ โ โโโ detail
โ โ โโโ genre
โ โ โโโ goal
โ โ โโโ library
โ โ โโโ message
โ โ โโโ oidc
โ โ โโโ openapi
โ โ โโโ opentalk
โ โ โโโ record
โ โ โโโ search
โ โ โโโ user
โ โ โโโ userBook
โ โ โโโ userOpentalk
โ โโโ exception
โ โโโ global
โ โโโ util
โโโ resources
โโโ sql
โโโ static