- ์ํ ์๋ฆฌ์ฆ ์คํธ๋ฆฌ๋ฐ์ ์ํ ๊ตฌ๋ ์๋น์ค REST API (Server)
- ์ฐธ์ฌ ์ธ์ : ์๋ฒ 2๋ช / ํ๋ก ํธ์๋ 1๋ช
- ํ๋ก์ ํธ ๊ธฐ์ ์คํ์ ๊ดํ ํฌ์คํ
์ ๋ฆฌ (โก ํด๋น ๊ธฐ์ ์ ํ ์ด์ , ์ ์ฉ ๊ณผ์ )
โ๏ธ ๋๋ ํ ๋ฆฌ ๋งต
netflix-test-server-bon-zeze
โโsrc
โโmain
โ โโjava
โ โ โโcom
โ โ โโexample
โ โ โโdemo
โ โ โ DemoApplication.java
โ โ โ
โ โ โโconfig
โ โ โ โ BaseException.java
โ โ โ โ BaseResponse.java
โ โ โ โ BaseResponseStatus.java
โ โ โ โ Constant.java
โ โ โ โ
โ โ โ โโsecret
โ โ โ Secret.java
โ โ โ
โ โ โโsrc
โ โ โ โ WebSecurityConfig.java
โ โ โ โ
โ โ โ โโaccount
โ โ โ โ โ AccountController.java
โ โ โ โ โ AccountDao.java
โ โ โ โ โ AccountProvider.java
โ โ โ โ โ AccountService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ Account.java
โ โ โ โ PatchAccountReq.java
โ โ โ โ PatchPasswordReq.java
โ โ โ โ PostAccountRes.java
โ โ โ โ PostLoginReq.java
โ โ โ โ
โ โ โ โโalarm
โ โ โ โ โ AlarmController.java
โ โ โ โ โ AlarmDao.java
โ โ โ โ โ AlarmProvider.java
โ โ โ โ โ AlarmService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ Alarm.java
โ โ โ โ GetAlarmRes.java
โ โ โ โ SetAlarmReq.java
โ โ โ โ
โ โ โ โโassessment
โ โ โ โ โ AssessmentController.java
โ โ โ โ โ AssessmentDao.java
โ โ โ โ โ AssessmentProvider.java
โ โ โ โ โ AssessmentService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ Assessment.java
โ โ โ โ
โ โ โ โโbookmark
โ โ โ โ โ BookmarkController.java
โ โ โ โ โ BookmarkDao.java
โ โ โ โ โ BookmarkProvider.java
โ โ โ โ โ BookmarkService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ Bookmark.java
โ โ โ โ BookmarkReq.java
โ โ โ โ GetBookmarkRes.java
โ โ โ โ PatchBookmarkReq.java
โ โ โ โ
โ โ โ โโcategory
โ โ โ โ โ CategoryController.java
โ โ โ โ โ CategoryService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ MainCategory.java
โ โ โ โ
โ โ โ โโcharacter
โ โ โ โ โ CharacterDao.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ Character.java
โ โ โ โ
โ โ โ โโemail
โ โ โ โ โ EmailController.java
โ โ โ โ โ EmailService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ EmailDto.java
โ โ โ โ EmailNotificationReqDto.java
โ โ โ โ VerificationReqDto.java
โ โ โ โ
โ โ โ โโgenre
โ โ โ โ โ GenreController.java
โ โ โ โ โ GenreDao.java
โ โ โ โ โ GenreProvider.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ Genre.java
โ โ โ โ
โ โ โ โโgoogleAccount
โ โ โ โ โ ConfigUtils.java
โ โ โ โ โ GoogleAccountController.java
โ โ โ โ โ GoogleAccountDao.java
โ โ โ โ โ GoogleAccountProvider.java
โ โ โ โ โ GoogleAccountService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ GoogleAccount.java
โ โ โ โ
โ โ โ โโkakaoAccount
โ โ โ โ โ KakaoAccountController.java
โ โ โ โ โ KakaoAccountDao.java
โ โ โ โ โ KakaoAccountService.java
โ โ โ โ โ KakaoOAuth.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ KakaoAccount.java
โ โ โ โ PostKakaoAccount.java
โ โ โ โ
โ โ โ โโlineAccount
โ โ โ โ โ LineAccountController.java
โ โ โ โ โ LineAccountDao.java
โ โ โ โ โ LineAccountProvider.java
โ โ โ โ โ LineAccountService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ LineAccount.java
โ โ โ โ
โ โ โ โโnaverAccount
โ โ โ โ โ NaverAccountController.java
โ โ โ โ โ NaverAccountDao.java
โ โ โ โ โ NaverAccountProvider.java
โ โ โ โ โ NaverAccountService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ NaverAccount.java
โ โ โ โ
โ โ โ โโprofile
โ โ โ โ โ ProfileController.java
โ โ โ โ โ ProfileDao.java
โ โ โ โ โ ProfileProvider.java
โ โ โ โ โ ProfileService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ PatchProfileReq.java
โ โ โ โ PostProfileReq.java
โ โ โ โ PostProfileRes.java
โ โ โ โ Profile.java
โ โ โ โ
โ โ โ โโprofilePhoto
โ โ โ โ โ ProfilePhotoController.java
โ โ โ โ โ ProfilePhotoDao.java
โ โ โ โ โ ProfilePhotoProvider.java
โ โ โ โ โ ProfilePhotoService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ GetProfilePhotoRes.java
โ โ โ โ PatchProfilePhotoReq.java
โ โ โ โ ProfilePhoto.java
โ โ โ โ
โ โ โ โโsearch
โ โ โ โ โ SearchDao.java
โ โ โ โ โ SearchProvider.java
โ โ โ โ โ SearchService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ Search.java
โ โ โ โ
โ โ โ โโsms
โ โ โ โ โ SmsController.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ MessagesReqDto.java
โ โ โ โ SendSmsResDto.java
โ โ โ โ SendVerificationNumberResDto.java
โ โ โ โ SmsRequest.java
โ โ โ โ SmsRequestDto.java
โ โ โ โ VerificationReqDto.java
โ โ โ โ
โ โ โ โโtest
โ โ โ โ TestController.java
โ โ โ โ
โ โ โ โโvideo
โ โ โ โ โ VideoController.java
โ โ โ โ โ VideoDao.java
โ โ โ โ โ VideoProvider.java
โ โ โ โ โ VideoService.java
โ โ โ โ โ
โ โ โ โ โโdomain
โ โ โ โ GetVideoRes.java
โ โ โ โ Video.java
โ โ โ โ VideoContent.java
โ โ โ โ VideoDetail.java
โ โ โ โ
โ โ โ โโvideoPlay
โ โ โ โ VideoPlayController.java
โ โ โ โ VideoPlayDao.java
โ โ โ โ VideoPlayProvider.java
โ โ โ โ VideoPlayService.java
โ โ โ โ
โ โ โ โโdomain
โ โ โ VideoPlay.java
โ โ โ
โ โ โโutils
โ โ AES128.java
โ โ JwtService.java
โ โ ValidationRegex.java
โ โ
โ โโresources
โ application.yml
โ logback-spring.xml
โ
โโtest
โโjava
โโcom
โโexample
โโdemo
DemoApplicationTests.java
.gitignore
build.gradle
gradlew
gradlew.bat
README.md
settings.gradle
โ๏ธ ๊ธฐ๋ฅ ๋ชฉ๋ก
-
๊ณ์ (Account)
-
์์ฑ
- ํ์ ๊ฐ์ ๋จ๊ณ ์กฐํ
- ํ์ ๋ฑ๋ก
- ์ด๋ฉ์ผ ์ธ์ฆ
- ๊ฒฐ์ ์๋จ ๋ฑ๋ก
-
๋ณ๊ฒฝ
- ์ด๋ฉ์ผ, ๋น๋ฐ๋ฒํธ, ํด๋ํฐ๋ฒํธ, ๋ฉค๋ฒ์ฝ
-
ํํด
-
์ ์ฒด ํ์ ์กฐํ ๋๋ membership์ผ๋ก ๊ฒ์ ์กฐํ
-
์๋ณ์๋ก ํ์ ์กฐํ
-
๋ก๊ทธ์ธ
- ์ผ๋ฐ ๋ก๊ทธ์ธ
- ์์
๋ก๊ทธ์ธ
- ๋ค์ด๋ฒ, ์นด์นด์คํก, ๊ตฌ๊ธ, ๋ผ์ธ
-
๋ก๊ทธ์์
-
๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ
- ๋ฌธ์ ๋ณด๋ด๊ธฐ
- SMS ์ธ์ฆ
-
-
ํ๋กํ(Profile)
- ์์ฑ(1๊ณ์ ๋น 5๊ฐ ๊ฐ๋ฅ)
- ๋ณ๊ฒฝ
- ์ ์ฒด ๋ณ๊ฒฝ (์ธ์ด,์ด๋ฆ,์๋์ฌ์์ค์ )
- ์ฌ์ง ๋ณ๊ฒฝ
- ์ญ์
- ๋ชฉ๋ก ์กฐํ
- ์กฐํ
- ๋๋ค์ ์กฐํ
-
๋น๋์ค(Video)
- ๋ชฉ๋ก ์กฐํ (1๊ฐ์ API)
- TOP 10 ์ฝํ ์ธ ๋ชฉ๋ก ์กฐํ
- ๋ด๊ฐ ์ฐํ ์ฝํ ์ธ ๋ชฉ๋ก ์กฐํ
- ์ธ๊ธฐ ์ฝํ ์ธ ๋ชฉ๋ก ์กฐํ
- ์ ๊ท ์ฝํ ์ธ ๋ชฉ๋ก ์กฐํ
- ์์ฒญ์ค์ธ ์ฝํ ์ธ ๋ชฉ๋ก ์กฐํ
- ์ฅ๋ฅด๋ณ ์ฝํ ์ธ ๋ชฉ๋ก ์กฐํ
- ์ฅ๋ฅด ๋๋ถ๋ฅ ๋ชฉ๋ก ์กฐํ (์ํ, ์๋ฆฌ์ฆ ๋ด๋ถ ๊ธฐ๋ฅ)
- ํ๋์ ์ํ ๋๋ ์๋ฆฌ์ฆ์ ๋ฐฉ์๋ถ (ํ์ฐจ)๋ชฉ๋ก ์กฐํ
- ์์ธ์ ๋ณด ์กฐํ(์ํ์ ๋ณด, ํด๋น ์ํ์ ์ํ ๋ชจ๋ ์ถ์ฐ์, ์ฅ๋ฅด, ํน์ง, ์ด๋ง๋ผ ์กฐํ)
- ์ํ์ ์ถ์ฐ์ ์กฐํ (์ถ์ฐ์ ์ด๋ฆ ํด๋ฆญ)
- ์ถ์ฐ์๊ฐ ์ฐธ์ฌํ ์ํ ๋ชฉ๋ก ์กฐํ (์ถ์ฐ์ ์ด๋ฆ ํด๋ฆญ)
- ์ํ์ ํน์ง ์กฐํ (์ํ/์๋ฆฌ์ฆ ํน์ง ํด๋ฆญ)
- ํน์ง๋ณ ์ํ ๋ชฉ๋ก ์กฐํ (์ํ/์๋ฆฌ์ฆ ํน์ง ํด๋ฆญ)
- ์ฅ๋ฅด๋ณ ์์์ ์ปจํ ์ธ ์กฐํ (์ํ/์๋ฆฌ์ฆ ๋ชจ๋)
- ์ต๋ค ๊ฒ์ ์ปจํ ์ธ ์กฐํ (์ํ/์๋ฆฌ์ฆ ๋ชจ๋)
- ์์ธํ์ด์ง ์ฒซํ๋ฉด ๋์์ ์ฌ์์ ์ ๋ณด ์กฐํ
- ๋ชฉ๋ก ์กฐํ (1๊ฐ์ API)
-
๋ถ๋งํฌ(Bookmark)
- ๋ถ๋งํฌ ๋๋ฅด๊ธฐ
- ๋ถ๋งํฌ ๋ณ๊ฒฝ
- ๋ถ๋งํฌ ์กฐํ
-
์ข์์(Assessment)
- ์ข์์ ๋๋ฅด๊ธฐ
- ์ข์์ ๋ณ๊ฒฝ
- ์ข์์ ์กฐํ
-
์์ ์์ฒญ์ ์ํ ์ ๋ณด(Play)
- ์์ฑ
- ๋ณ๊ฒฝ
- ์กฐํ
-
์๋ฆผ(Alarm)
- ์์ฑ
- ๋ณ๊ฒฝ
- ์กฐํ
-
๊ฒ์(Search)
- ๊ฒ์(์ ๋ชฉ/์ฌ๋/์ฅ๋ฅด) ์ฝํ ์ธ ๋ชฉ๋ก ์กฐํ
-
๊ฐ๋ (Director)
- ๊ฐ๋ ์ด ์ ์ํ ์ํ ๋ชฉ๋ก ์กฐํ
- ์ํ ์ ์์ ์ฐธ์ฌํ ๊ฐ๋ ๋ชฉ๋ก ์กฐํ
-
๊ธฐํ(ETC)
- ์ฑ์ธ์ธ์ฆ ํ์ ์ฌ๋ถ ๊ฒ์ฆ ์กฐํ
-
๐ ์ ์์ผ ํ๋ก์ธ์ค๋ฅผ ์ฐจ์ฉํ์ฌ ํ๋ก์ ํธ ๋ง์ผ์คํค ์งํ
- GitHub Project ํ์ฉํ์ฌ ์คํ๋ฆฐํธ ๊ด๋ฆฌ
- ๋ฐ์ผ๋ฆฌ ํ๊ณ , ์ํด๋ฆฌ ์คํฌ๋ผ์ ์งํํ๋ฉฐ ์คํ๋ฆฐํธ์ ๋ง๊ฒ ํ๋กํ ํ์ ์ ๊ตฌํ ๋ฐ ๊ฐ์
- GitHub Project ํ์ฉํ์ฌ ์คํ๋ฆฐํธ ๊ด๋ฆฌ
ย ๐ ๊ฐ๋ฐ ์ผ์ง
2022.03.19 ๊ฐ๋ฐ ์ผ์ง
- ๊ธฐํ์ ์์ฑ ๋ฐ ERD ์ค๊ณ์ ๊ธฐ๋ฅ API ์ ๋ฆฌ๋ฅผ ์ํ ํ์
- EC2, RDS ์๋ฒ ๊ตฌ์ถ
- ์๋ธ ๋๋ฉ์ธ(dev, prod) ์ ์ฉ
- prod ํด๋์ ์คํ๋ง ํ ํ๋ฆฟ ์ ์ฉ
- ์๋ธ๋๋ฉ์ธ(dev, prod)์ ๊ฐ๊ฐ SSL ์ ์ฉ(By CertBot)
ํ์ ํ์ ๋ด์ฉ
ํ์ ํ๊ณ ๋ก
- ํ์ฌ๋ก ๊ตฌํ ๊ฐ๋ฅํ API ๊ธฐ๋ฅ๊ณผ ํ ์ด๋ธ์ ์ ๋ฆฌํ๊ณ , ๋ค์ ํผ๋๋ฐฑ๊น์ง ์๋ก ๋ถ๋ดํ์ฌ ์งํํ๊ธฐ๋ก ํ๋ค. (์์ญ : Account์ Profile ์ ๋ฐ)
- ์์ง ์๊ฒฌ์ด ํ๋๊ฐ ๋์ง ๋ชปํ๋ ์ฌ์์ ๋ํด์๋, ์ฐจํ์ ๋ค์ ์ด์ผ๊ธฐ๋ฅผ ๋๋์ด ๊ฐ๋ณด๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
- ์ดํ ๊ตฌํ ๊ฐ๋ฅํ API, ๋ค๋ง ์์ง์ ์ฐ์ ์์์ ๋์ค์ธ ๊ฒ๋ค์ ๋ํด ์ด์ผ๊ธฐ ํด ๋ณด์๋ค.
- ์ถ์ฐ ๋ฐฐ์ฐ์ ๋ํ API
- ํน์ ๋ฐฐ์ฐ๊ฐ ์ถ์ฐํ ๋ชจ๋ ์ํ/์๋ฆฌ์ฆ ์ํ์ ์กฐํ
- ํน์ ๋ฐฐ์ฐ๊ฐ ์ถ์ฐํ ๋ชจ๋ ์ํ/์๋ฆฌ์ฆ ์ํ์ ๊ฒ์
- ์ถ์ฐ ๋ฐฐ์ฐ์ ๋ํ API
ํ์ํ๋ ๋ถ๋ถ
-
Q : API ๊ธฐ๋ฅ ์ค, ๋ทํ๋ฆญ์ค ์ํ/์๋ฆฌ์ฆ ์ข์์ ๋ฐ ์ซ์ด์์ ๋ํ API๋ฅผ ๊ตฌํ์ ๋ํ ์๊ฒฌ
- ๋ณธ : ์ข์์ ๋๋ ์ซ์ด์ ๋ฒํผ์ ๋๋ฅผ๋๋ง๋ค ํด๋น ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ธก DB์ ์ ์ฅ API(POST),
ํน์ ์ํ์๋ฆฌ์ฆ๋ ํน์ ํ๋กํ์ ๋ํ ์ข์์ ๋๋ ์ซ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ป์ด์ค๋ API(GET)๊ฐ ํ์ํ๋ค๊ณ ์๊ฐ - ์ ์ : ์ข์์ ๋๋ ์ซ์ด์ ๋ฒํผ์ ๋ทํ๋ฆญ์ค์ ๋ฅ๋ฌ๋(์ฌ์ฉ์ ๊ด์ฌ ๋ถ์)์ ์ํ ์์คํ
์ด๋ผ๊ณ ์๊ฐ
๋ถ๋งํฌ ๊ธฐ๋ฅ์ด ๋ฐ๋ก ์กด์ฌํ์ฌ, ์ข์์๋ฅผ ํ๋ค๊ณ ํด๋ ์ฌ์ฉ์์๊ฒ ํ์ฌ ์ข์์๋ฅผ ๋๋ ๋ค๋ ๊ธฐ๋ฅ ์ธ์๋ ์ค์ ์๋น์ค๋ก ๋ฐ์ ๋ ์ ์๋ ๋ถ๋ถ์ด ์๋ค๊ณ ์๊ฐ
ํ์ ์ฌ๋ถ์ ๊ดํ์ฌ ์๊ฐํด๋ณด์ผ ํ ์ ์ด๋ผ๊ณ ์๊ฐ
- ๋ณธ : ์ข์์ ๋๋ ์ซ์ด์ ๋ฒํผ์ ๋๋ฅผ๋๋ง๋ค ํด๋น ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ธก DB์ ์ ์ฅ API(POST),
-
Q : createdAt, updatedAt, status๋ฅผ ๋ชจ๋ ํ ์ด๋ธ ์ปฌ๋ผ์ ๋ฃ์ด์ผ ํ๋์ง์ ๋ํ ์๊ฒฌ
- ๋ณธ : ๋ชจ๋ ๋ฃ๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐ
- ์ ์ : ์ฌ์ฉ์๊ฐ ์ด์ฉํ๊ธฐ์ ํ์ํ ํ ์ด๋ธ์๋ง ๋ฃ๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐ
-
Q : ์ฌ์ฉ์๊ฐ ์ด์ฉํ๋ ์๋น์ค ๋ฒ์ ๋ฐ์ ํ ์ด๋ธ ๋ด ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ API์ ๋ํ ์๊ฒฌ (์ : ์ํ๋ ์๋ฆฌ์ฆ์ ๋ ์ฝ๋ ์์ฑ)
- ๋ณธ : ๊ด๋ฆฌ์๋ฅผ ์ํ API๋ ํ์ํ๋ฏ๋ก ํ์ํ API๋ผ๊ณ ์๊ฐ
- ์ ์ : ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ์๋น์ค ๊ธฐ์ค์ผ๋ก ํ์ํ์ง ์์ API๋ผ๊ณ ์๊ฐ
-
Q : ๋ทํ๋ฆญ์ค ๊ฐ ์ํ์ ์ธ๋ฌผ, ์นด๋ฐ๊ณ ๋ฆฌ๋ฑ์ ๋ฐ๋ก ํ ์ด๋ธ๋ก ๋นผ์ผํ๋๊ฐ์ ๋ํ ์๊ฒฌ
- ๋ณธ : ์ํ ํ
์ด๋ธ์ ์ธ๋ฌผ ์ต๋ 20๋ช
๊น์ง(์์) ์ปฌ๋ผ ์๋ฅผ ๋๋ ค์ ์ํ์์ ํ๋ฒ์ ๋ค๋ฃจ์ด์ผ ํ๋ค๊ณ ์๊ฐ
join ์ ๋ฌด๊ฒ๊ธฐ ๋๋ฌธ์ ๋น์ ๊ทํ๊ฐ ๋ ์ ํฉํ๋ค๊ณ ์๊ฐ - ์ ์ : ํ ํ
์ด๋ธ์ ์ธ๋ฌผ20๋ช
,์นดํ
๊ณ ๋ฆฌ5๊ฐ,๊ธฐํ...๋ฑ๋ฑ์ ์ปฌ๋ผ์ ๋ชจ๋ ์ถ๊ฐํ๋ฉด ํ
์ด๋ธ์ด ๋๋ฌด ๋ฌด๊ฒ๋ค๊ณ ์๊ฐ
์ ๊ทํ๋ฅผ ์ง์ผ์ ํ ์ด๋ธ๋ก ์์ฑํ๋๊ฒ ์ข๋ค๊ณ ์๊ฐ - ํ์ : ์ฐ์ ์ TEXT ๋ก ์ธ๋ฌผ์ string ๊ฐ์ผ๋ก ํ๋์ ์ปฌ๋ผ์ ์ ์ด์ ๊ฐ๋ฐํด ๋ณธ ํ ์ถํ์ ์ฌํ์
- ๋ณธ : ์ํ ํ
์ด๋ธ์ ์ธ๋ฌผ ์ต๋ 20๋ช
๊น์ง(์์) ์ปฌ๋ผ ์๋ฅผ ๋๋ ค์ ์ํ์์ ํ๋ฒ์ ๋ค๋ฃจ์ด์ผ ํ๋ค๊ณ ์๊ฐ
- ์๋ฒ ๊ฐ๋ฐ 2์ธ ๋ชจ๋๊ฐ ๋ฉ๋์ ํด์ผ ERD ์ค๊ณ์ API ๊ธฐ๋ฅ ์ ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
- ๊ทธ๋์ ์๊ฐ์ด ์ ๋ฒ ๋๋ ์ด ๋์์ผ๋, ๋ ๋ชจ๋ ํ์ ์ด ์ฒ์์ด์๊ธฐ์ ์คํ๋ ค ์ ์๋ฏธํ๋ค.
- ์์ง ์๊ฒฌ์ด ํ๋๊ฐ ๋์ง ๋ชปํ๋ ์ฌ์์ ๋ํด์๋, ์ฐจํ์ ๋ค์ ์ด์ผ๊ธฐ๋ฅผ ๋๋์ด ๊ฐ๋ณด๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
- ERD ๋ฅผ ์ค๊ณํ๋ฉฐ ์๋ก ๋ค๋ฅธ ์คํ์ผ์ ๋ง์ถฐ๋๊ฐ๋ฉฐ ํ์ ํ์ฌ ERD๋ฅผ ์ค๊ณํ๋ ๊ฒฝํ์ ์์ ์ ์์๋ค.
2022.03.20 ๊ฐ๋ฐ ์ผ์ง
- ๋๋ฉ์ธ ์ฐ๊ฒฐ
- ๊ณ์ (Account) ๊ด๋ จ ๊ธฐ๋ฅ API ๊ตฌํ
- ํ์ ๊ฐ์ ,ํํด API
- ํ์ ๋ก๊ทธ์ธ, ๋ก๊ทธ์์ API
- ํ์ ์ ๋ณด (์ด๋ฉ์ผ,๋น๋ฐ๋ฒํธ,ํด๋ํฐ,๋ฉค๋ฒ์ฝ) ๋ณ๊ฒฝ API
- ํ์ ๋ชฉ๋ก ์กฐํ API ๊ตฌํ(์ ์ฒด ๋ชฉ๋ก ์กฐํ, queryString์ผ๋ก membership ์กฐ๊ฑด ์กฐํ)
- ํ์ ์กฐํ API ๊ตฌํ(accountIdx๋ก ๊ฒ์)
-
SMS ๋ฌธ์ ๋ฐ์ก ์๋น์ค
- SMS ๋ฉ์์ง ์ ์ก API ๊ตฌํ
- SMS ์ธ์ฆ๋ฒํธ ์ ์ก API ๊ตฌํ (6์๋ฆฌ ๋์ ์์ฑ ํ client์๊ฒ ์ ์ก, client๋ response์ ํด๋ํฐ๋ฒํธ๋ก ๋ฐ์ก๋ ๋ฒํธ๊ฐ ์ผ์นํ๋์ง ๋์กฐ)
-
AWS ์๋ฒ์ ํ๋ ฅ์ IP๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ
-
์๋ธ ๋๋ฉ์ธ(dev, prod) ์ธ ๋ณ๋์ ๋ํ ๋๋ฉ์ธ(teamflix.shop) ์ ์๋ฒ์ ์ ์ฉ
-
9000๋ฒ ํฌํธ์์ ์๋์ค์ธ Spring boot ์๋ฒ๋ฅผ prod ๋๋ฉ์ธ๊ณผ ๋ํ ๋๋ฉ์ธ์ด ๊ฐ๋ฆฌํค๋๋ก ์ธํ
-
AWS ์๋ฒ ๋ด๋ถ ์๋ฌ ๋ฐ์
- ์๋์ error log์ ์ด๋ฏธ์ง ์ฐธ์กฐ
-- Unit nginx.service has begun starting up. Mar 20 08:46:49 ip-172-31-41-81 nginx[23645]: nginx: [emerg] open() "/etc/nginx/sites-enabled/dir" failed Mar 20 08:46:49 ip-172-31-41-81 nginx[23645]: nginx: configuration file /etc/nginx/nginx.conf test failed Mar 20 08:46:49 ip-172-31-41-81 systemd[1]: nginx.service: Control process exited, code=exited status=1 Mar 20 08:46:49 ip-172-31-41-81 sudo[23642]: pam_unix(sudo:session): session closed for user root Mar 20 08:46:49 ip-172-31-41-81 systemd[1]: nginx.service: Failed with result 'exit-code'. Mar 20 08:46:49 ip-172-31-41-81 systemd[1]: Failed to start A high performance web server and a reverse pr -- Subject: Unit nginx.service has failed -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- Unit nginx.service has failed. -- -- The result is RESULT.
- ๋ฐ์ ๋ฐฐ๊ฒฝ
-
dev, prod ์ด์ธ ๋ณ๋์ ์๋ฒ ๋ํ ๋๋ฉ์ธ ์ ์ฉ์ ์ํด server ๋ธ๋ก์ ๋ง๋ค์ด nginx ์ธํ ๋์ค ์์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
-
ํด๊ฒฐ์ ์ํด ์๋ํด ๋ณธ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
- certbot ์ธ์ฆ ์๋จ ์ ์ฒด ์ ๊ฑฐ
- certbot ์ญ์ ํ ์ฌ์ค์น & ์ฌ์ ์ฉ
- default ํ์ผ ์ญ์ ํ ์ฌ๊ตฌ์ฑ
- ์๋ธ๋๋ฉ์ธ(dev, prod)์ server ๋ธ๋ก์ ์ญ์
- Apache2์ ์คํ ์ค๋จ
- Apache2์ 80๋ฒ ํฌํธ kill
- Apache2 ์์ ํ ์ญ์
- proxy pass์ ์ํฅ์ด ์์ ์ ์๋ ํ์ผ์ ํ์(nginx.conf ๋ฑ)ํด ๋ณด์์ผ๋ ํน๋ณํ ์ด์์ ๋ฐ๊ฒฌํ์ง ๋ชปํ๋ค.
-
- ํด๊ฒฐํ ๋ฐฉ๋ฒ
- nginx๋ฅผ ์์ ํ ์ญ์ ํ๊ณ ๋ค์ ์ค์นํ๋ค.
- ์๋ธ๋๋ฉ์ธ ์ ์ฉ์ ์ํด ์๋ฒ ๋ธ๋ก์ ๋๋๊ณ SSL ์ ์ฉ์ ์ํ certificaton ๋ชจ๋์ ์คํ& ์ ์ฉํ์๋ค.
- ์์ ํ ์ญ์ ํ ์ฌ์ค์น, ์ฒ์๋ถํฐ ๋ชจ๋ ์ผ๋ จ์ ๊ณผ์ ์ ์ ์ฉํ๊ณ ๋๋ ๋ฌธ์ ์์ด ์๋ํ๋ ๊ฒ์ด ํ์ธ๋์๋ค.
- Git ์์ ํ์ ํ๋ฉฐ ๊ฐ๋ฐํ๋ ๊ฒฝํ์ ์์ ์ ์์๋ค.
- ์๋ก ์ฝ๋ ์คํ์ผ, ๊ท์ฝ๋ฑ์ ๋ง์ถฐ์ผ ํ ํ์์ฑ์ ๋๋ ์ ์์๋ค.
- ๋ฐ์ดํฐ ๊ฐ์ ๋ฃ์ ๋ ์๋ก ๊ณต์ ํ์ง ์์ผ๋ฉด ํผ๋์ด ์ฌ ์ ์์์ ๋๊ผ๋ค.
2022.03.21 ๊ฐ๋ฐ ์ผ์ง
- ๊ณ์ (Account)๊ด๋ จ ๊ธฐ๋ฅ API ๊ตฌํ
-
๊ธฐ์กด์ ํ์ ๊ฐ์ API ๋ฆฌํฉํฐ๋ง
-
ํ๋ก ํธ์๋ ํ์๊ณผ ํ์ ํ ํด๋น ์กฐ๊ฑด์ ๋ง๋ ์ ๊ท API 2์ข ์ถ๊ฐ -> ๋ทํ๋ฆญ์ค์ ํ์๊ฐ์ flow๋ฅผ ๊ทธ๋๋ก ๋ฐ๋ฆ
- ๋ทํ๋ฆญ์ค ํ์๊ฐ์ ๋จ๊ณ ์กฐํ API ๊ตฌํ
- ์ด๋ฉ์ผ์ form ์ผ๋ก ์ ์ถํ๋ฉด ์ธ๊ฐ์ง ์ ํ ์ํ๊ฐ ๋ฐ์ (๋ฏธ๊ฐ์ ๊ณ์ or ์ด๋ฉ์ผ&๋น๋ฐ๋ฒํธ๋ง ๋ฑ๋ก๋ ๊ณ์ or ๊ฒฐ์ ์๋จ๊น์ง ๋ชจ๋ ๋ฑ๋ก๋ ๊ณ์ )
- ์ด๋ฉ์ผ์ ์๋ฒ์ ๋๊ธฐ๋ฉด ์๋์ ์ธ ๊ฐ์ง ๊ฒฝ์ฐ์ค ํ๋๋ฅผ ๋ฆฌํด
1. ์ฒ์๋ณด๋ ์ด๋ฉ์ผ 2. ์ด๋ฉ์ผ๊ณผ ๋น๋ฒ์ ์ค์ (๊ฐ์ )์ด ๋์ด์๋๋ฐ ๊ฒฐ์ ๊ฐ ์๋์ด์๋ ๊ฒฝ์ฐ 3. ๊ฐ์ ๊ณผ ๊ฒฐ์ ๊ฐ ๋ค ๋์ด์๋๊ฒฝ์ฐ
-
- ํ๋กํ(Profile)๊ด๋ จ ๊ธฐ๋ฅ API ๊ตฌํ
- ํ๋กํ ์์ฑ API ๊ตฌํ
- ํ๋กํ ์ฌ์ง ๋ฑ๋ก,๋ณ๊ฒฝ API ๊ตฌํ
ํ์ ๋ก๊ทธ์์ API JWT ์ ์ฒด ๊ตฌํ ๋ฆฌํฉํ ๋งโ์งํ์ค
-
API ๋ช ์ธ์์ ์ต์ ํ
-
ํ๋ก ํธ ์๋ ํ์์ ์์ฒญ์ ๋ง๊ฒ API๋ฅผ ๊ณ ์ํ์ฌ ์๋์ ๊ฐ์ด ์ด์์ ์์ฑ ํ ๊ณต์ ๋ฐ ๋ ผ์
- ํ์๊ฐ์
- GET : ํ์๊ฐ์ ๋จ๊ณ ์กฐํ
- request item : ์ด๋ฉ์ผ - response item: 0/1/2 (case code)
- POST : ์ฒ์๋ณด๋ ์ด๋ฉ์ผ์ผ ๋ ๊ณ์ ์์ฑ
- request item : ์ด๋ฉ์ผ, ๋น๋ฐ๋ฒํธ - response item : ๊ณ์ ์๋ณ์, ํ ํฐ
- PATCH : ๊ฒฐ์ ์๋จ ๋ฑ๋ก
- request item : ํ ํฐ, ๊ณ์ ์๋ณ์, ๋ฉค๋ฒ์ฝ ์ ํ - response item : ๊ณ์ ์๋ณ์, ํ ํฐ
- ํ์๊ฐ์
-
ERD Profile ๊ด๋ จ ๋ณ๊ฒฝ
- ํ์๊ฐ์ ์ email๊ณผ password๋ง ์์ผ๋ฉด ํ์ ๋ฑ๋ก์ด ์ด๋ฃจ์ด์ง๋ฏ๋ก ๋๋จธ์ง ์ปฌ๋ผ์ ํ์ ํ๋๊ฐ ์๋ Nullableํ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ
- -> id ๋น๋ฐ๋ฒํธ๋ก ๊ณ์ ์ ๋ฑ๋กํ๊ณ , ์ด์ธ ์ ๋ณด์ ์ ๋ ฅ ๊ณผ์ ์ ์ฐจํ ํ์๊ฐ์ ๋จ๊ณ๋ณ ์งํ์ ํตํด ๋ณ๋๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ.
- Git ์ถฉ๋ ๋ฐ์ ํด๊ฒฐ -> mock-rc4#48 (comment)
- ํ๋ก ํธ์๋ ํ์๊ณผ API ํํ์ ๋ํด ์ํตํ๋ฉฐ ๋ง์ถฐ์ผํ ์ ๋ค์ ๋ ผ์ํ์๋ค.
- ์๊ตฌ์ฌํญ์ 100% ๋ฐ์ํ ์ ์๋๋ก API๋ฅผ ์ค๊ณํ ๊ตฌํํด ๋ณด๋ ๊ณผ์ ์ ๊ฐ์ก๋ค.
- ๊ธด๋ฐํ ํ์๋ฅผ ํตํด ์์ผ๋ก๋ ์ด์ ๊ฐ์ด ๋ฐ์ํด ๊ฐ ์ ์์ผ๋ฉด ์ข๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
2022.03.22 ๊ฐ๋ฐ ์ผ์ง
-
์์ ๋ก๊ทธ์ธ ์๋น์ค WORKFLOW mock-rc4#70 (comment)
-
๋ค์ด๋ฒ ์์ ๋ก๊ทธ์ธ ์๋น์ค API
-
ํ๋ผ๋ฉํฐ๋ฅผ ์กฐํฉํ์ฌ ๋ค์ด๋ฒ ๋ก๊ทธ์ธ URL์ ๋ถ๋ฌ์ค๋ API ๊ตฌํ
-
๋ค์ด๋ฒ ๋ก๊ทธ์ธ์ฐฝ์์ ์์ด๋์ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ์ ๋ค์ด๋ฒ ์์ธ์ค ํ ํฐ ๋ฐํ API ๊ตฌํ
-
๋ค์ด๋ฒ ๊ณ์ ์ ๋ํ ์ ๋ณด ์กฐํ ๊ธฐ๋ฅ API ๊ตฌํ
-
๋ค์ด๋ฒ ๊ณ์ ์ผ๋ก ํ์๊ฐ์ ๊ธฐ๋ฅ API ๊ตฌํ
-
๋ค์ด๋ฒ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ ๊ธฐ๋ฅ API ๊ตฌํ
-
๋ค์ด๋ฒ ๊ณ์ ๋ง์ผ๋ก ๋ก๊ทธ์์(์ฐ๊ฒฐ๋๊ธฐ) ๊ธฐ๋ฅ API ๊ตฌํ
-
ํ๋กํ ์ญ์ API ๊ตฌํ
-
ํ๋กํ ์ ์ฒด ๋ณ๊ฒฝ API ๊ตฌํ
-
ํ๋กํ ์ฌ์ง ์กฐํ API ๊ตฌํ
-
ํ์ ๋ก๊ทธ์ธ API
-
๊ณ์ ์๋ณ์๋ฅผ ํตํด ํ๋กํ ๋ชฉ๋ก์ ์กฐํํ๋ API ๊ตฌํ
-
ํ๋กํ์ ์กฐํํ๋ API ๊ตฌํ
-
nohup ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ์ผ๋ก Spring Boot Server๋ฅผ ์ ์์ ์ผ๋ก ์ด์ํ ์ ์์๋ ์ด์๋ฅผ ํด๊ฒฐ.
- ํ๋จ ISSUE๋ ์ฐธ์กฐ.
-
NETFLIX ์ฌ์ดํธ ์ค ์๋น์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก API๋ฅผ ๋ชจ๋ธ๋ง ํ๊ธฐ ์ํด ์ฌ์ดํธ ๋ด๋ถ ๊ธฐ๋ฅ ์ฌ์ฉ ์๋ (์์ ๋ก๊ทธ์ธ, ๋ก๊ทธ์ธ ๋ฑ)
- ํ์ด์ค๋ถ ๊ณ์ ์ ๋ณด๋ก Netflix์ ๊ณ์ ์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ๊ตฌ๋ฅผ ๋ฐํ
-> ์ฐธ๊ณ ํ์ฌ ๋ค์ด๋ฒ ์์ ๋ก๊ทธ์ธ ์๋น์ค๋ ๊ฐ์ Workflow๋ฅผ ๋ฐ๋ฅด๋๋ก ์ค๊ณํ๋ค.
์ฌ์ฉ ์ค์ด์ ํ์ด์ค๋ถ ๊ณ์ ์ด ์์คํ ๊ธฐ๋ก์ ์๋ ๊ณ์ ๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. Netflix ์ด๋ฉ์ผ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธํด ์ฃผ์ธ์.
- ํ์ด์ค๋ถ ๊ณ์ ์ ๋ณด๋ก Netflix์ ๊ณ์ ์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ๊ตฌ๋ฅผ ๋ฐํ
-
๋ค์ด๋ฒ ์์ ๋ก๊ทธ์ธ์ ๋ํ workflow๋ฅผ ์์ ํ ์ดํดํ๊ณ ์ต๋ํ์ฌ ์ถํ ํ์๋ค์๊ฒ ์ ๋ฌํ ๋ด์ฉ์ ์ ๋ฆฌ
-
์์ธํ ๊ฑด https://developers.naver.com/docs/login/api/api.md ๋ค์ด๋ฒ REST ๋ก๊ทธ์ธ API ๋ช ์ธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ๊ตฌํํ๋ค.
-
์ด์ ์ ๊ตฌํํด๋ณธ ์นด์นด์ค REST API ๋ก๊ทธ์ธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Documents๋ฅผ ์ฐธ๊ณ ํด ๊ตฌํํด ๋ณผ ์ ์์์ผ๋ฉฐ,
-
๋จ์ง ๊ธ๋ฒ ์งํํ๋ ํํ๋ก์ ํธ๋ฅผ ์ํ ์ต์ ์ ๋ก์ง ์ค๊ณ์ ๋ํด ๊ณ ๋ฏผํ๋ ์๊ฐ์ ๊ฐ์ก๋ค. -> ์ด๋ป๊ฒ ํ๋ฉด ๊ฐ์ฅ ์ปดํฉํธํ๊ณ ์ฌํํ๊ฒ ํ์ํ ๊ฐ์ ์ ๋ฌ ํ ์ ์๋๊ฐ?
-
๋ค์ด๋ฒ ์์ ๋ก๊ทธ์ธ์ ๋ชจ๋ ๋ค์ด๋ฒ ๊ณ์ ์๊ฒ ํ์ฉํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ฒ์ ์ฌ์ฌ๋ฅผ ๋ฐ์์ผ ํ๋ค.
-
naver developers ๋ค์ด๋ฒ ๋ก๊ทธ์ธ ์ฌ์ ๊ฒ์ ๊ฐ์ด๋ ๋ฌธ์ (https://developers.naver.com/docs/login/verify/verify.md)
-
์ฐ๋ฆฌ ํ์ ๋ทํ๋ฆญ์ค์ ๋์ผํ ํ๋ฆ์ ์๋น์ค ๊ฐ๋ฐ์ ์งํฅํ๊ณ ์๋ค.
-
๋ทํ๋ฆญ์ค ํ์๋ฑ๋ก์ ์ด๋ฉ์ผ๊ณผ ๋น๋ฐ๋ฒํธ ์ค์ ์ ํตํด ์ด๋ฃจ์ด์ง๋ค.
-
๋ฐ๋ผ์ ๋ค์ด๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ ๊ฒ์์ ์ค์์ฌํญ, ์ ์กฐํญ์ ์๋ฐฐ๋๋ค.
-
๊ฒ์ ์ฌ์ฌ๋ฅผ ๋ฐ์ง ์์ ๊ฒฝ์ฐ, ๊ฒ์ ์๊ฑด์ ๋ถํฉ๋์ง ์๋ ๊ฒฝ์ฐ
-
๋ค์ด๋ฒ ๋ก๊ทธ์ธ API๋ ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ์ ๋ชจ๋ ์๋น์ค๋ฅผ ํ์ฉ๋ ๋ค์ด๋ฒ ID์๊ฒ๋ง ๊ฐ๋ฅํ๊ฒ ํ๋ค.
-
๋ฌ๋ฆฌ ๋งํ๋ฉด Application ๋ฑ๋ก์๊ฐ ํ์ฉํ ๋์์ผ๋ก ์ฒ๋ฆฌํ ๋ค์ด๋ฒ ๊ณ์ ๋ง์ด ํด๋น ๊ธฐ๋ฅ์ ์ด์ฉํ ์ ์๋ค.
-
ํ์๋ค์ ๋ค์ด๋ฒ ๊ณ์ ID๋ฅผ ์์ฒญํด์, ๋ค์ด๋ฒ ์์ ๋ก๊ทธ์ธ ์๋น์ค๋ฅผ ์ด์ฉํด ๋ณผ ์ ์๋๋ก ์ค๊ณํ๋ค.
-
-
- ERD ๋ณ๊ฒฝ
-
AWS ์๋ฒ๋ด nohub ๋ช ๋ น์ผ๋ก ๋ฐฑ๊ทธ๋ผ์ด๋ ๋์์ ์ต์ ๋น๋๊ฐ ๋ฐ์ ๋์ง ์์
- ํด๊ฒฐ ๋ฐฉ๋ฒ
- aws ์ธ์คํด์ค๋ฅผ ์ค์งํ ์์ -> ์ ์์ ์ผ๋ก ๋ฐ์๋จ
- PID KILL์ผ๋ก ํด๊ฒฐ
- ์คํ์ ํ๊ณ ๋๋ฉด, ๋ช ๋ น์ด๋ฅผ ์คํํ ๊ฒฝ๋ก์ nohup.out์ด๋ผ๋ ํ์ผ์ด ์๊ธฐ๋ฉฐ, program ์ด๋ผ๋ ํ๋ก์ธ์ค๊ฐ ๋ฟ์ด๋ด๋ ๋ก๊ทธ๋ค์ ์ฐ๊ฒ ๋๋๋ฐ, ์ดํ์ ํด๋น ํ๋ก์ธ์ค๋ฅผ killํ๊ฑฐ๋ ์ฌ์คํ ํ๊ธฐ ์ํด์๋, ํ๋ก์ธ์ค๋ฅผ ์ผ์ผํ pid๋ฅผ ์์๋ด์ kill ํ์
- ํด๊ฒฐ ๋ฐฉ๋ฒ
-
ํ๋ก ํธ & ๋ฐฑ ๊ฐ์ CORS(Cross Origin Resource Sharing) ์๋ฌ ๋ฐ์
-
Pull Request์ Complex Conflicts
- ๋ฌด๊ฑฐ์ด SPring Boot์ ๋น๋์ ๋ํ๋๋ ๊ณผ๋ถํ ์ด์๋๋ฌธ์ ๋ก์ปฌ ๋น๋ํ์ผ์ ์ฌ๋ฆฐ ๊ฒ์ด ๋ฌธ์ ์ ์์ธ.
- ๋ ํฌ์งํ ๋ฆฌ์ Build๋ฅผ ์ฌ๋ ธ์ ๋, build ํด๋์ .build ํด๋ ๋ด๋ถ์ ๋ฐ์ด๋๋ฆฌ ํ์ผ ๋ฑ์ด origin/dev -> origin/main์ผ๋ก merge ์๋์ complexive conflicts์ผ์ผํด
- ๊นํ์ Pull Request์์ complexive conflicts๋ผ์ ์๋ ๋จธ์ง์ด ์๋๊ณ , ๋ฐ์ด๋๋ฆฌ ํ์ผ๋ค, ๋ก๊ทธ ํ์ผ๋ค์ด
====>> HEAD
์๊ฐ์ ํํ๋ก ๋งํน๋จ .gitignore
์์๋ค๊ฐ gradle ๊ด๋ จ ๊ฒ๋ค์ ์ถ๊ฐ ํ, ์ฑ๊ณต์ ์ผ๋ก ๋ณํฉ ์ฒ๋ฆฌ๋ฅผ ๋ง๋ฌด๋ฆฌ
-
Git ์ถฉ๋ ๋ฐ์ ํด๊ฒฐ -> mock-rc4#48 (comment)
- Git ๋ธ๋์น ์ ๋ต์ ๋ํ ํ์์ฑ ๋ ผ์
2022.03.23 ๊ฐ๋ฐ ์ผ์ง /ํผ๋๋ฐฑ
- ๋ชจ๋ ํ ์ด๋ธ์๋ createdAt, updatedAt, status ์ปฌ๋ผ์ด ๋ค์ด๊ฐ๋ ๊ฒ์ด ์ข์
- ๊ด๋ฆฌ์ API๋ณด๋ค๋ ์ฌ์ฉ์API์ ์ง์คํ์ฌ ๊ตฌํํ๋ ๊ฒ์ด ์ข์
- ERD ํ
์ด๋ธ์ ๊ดํ์ฌ ์ฌ์ค๊ณ ํ์
- ์ํ,์๋ฆฌ์ฆ ๋์ ๋น๋์ค๋ก ํต์ผ
- ์ํ์ ์ธ๋ฌผ์ ๋ฃ๋ ๊ฒ์ด ์๋ ๋ฐฐ์ฐ ํ ์ด๋ธ์ ๋ฐ๋ก ์์ฑ
- ๊ฐ ํ์๋ค ์ ์์ด ํ์ฌ๊น์ง ์งํ ์ํฉ์ ๋ํ ๋ณด๊ณ
- ์ค์ ์๋น์ค์ ๊ฐ๊น์ด ํํ๋ก ์ด๋ป๊ฒ ๊ตฌํํ ์ ์์์ง์ ๋ํ ํ ๋ก
- ํ๋ก ํธ ํ์๋ค์ ๊ฐ๋ฐ ์งํ์๋๊ฐ ๋๋ ค์(ํ์๊ฐ์ ๋จ๊ณ ์งํ์ค์ธ ์ํ) ์ดํ์ ์์ฒญ์ฌํญ์ด ์์ ๋ ๋์ค์ฝ๋๋ฅผ ํตํด ์ํตํ๊ธฐ๋ก ์๊ฒฌ์ ๋ชจ์ผ๊ณ ๋ง๋ฌด๋ฆฌ.
- ๊ธฐ๋ฅ API ๋ชฉ๋ก ์ฌ์ ๋ฆฌ
- ERD 2์ฐจ ์ค๊ณ
- ์ํ&์๋ฆฌ์ฆ๋ฅผ Video ๋ก ํตํฉ
- Github Repository์ Projects, Issues ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์
- ๋น๋์ค, ์ํ ๋๋ ์๋ฆฌ์ฆ ํ๊ฐ ์๋น์ค ์ฝ๋ ๊ณจ๊ฒฉ ๊ตฌํ
- ์ํ ๋๋ ์๋ฆฌ์ฆ ํ๊ฐ ์ถ๊ฐ API ๊ตฌํ
- ์ํ ๋๋ ์๋ฆฌ์ฆ ํ๊ฐ ์กฐํ API ๊ตฌํ
- API uri ๋ฆฌํฉํ ๋ง (ํผ๋๋ฐฑ ๋ฐ์)
2022.03.24 ๊ฐ๋ฐ ์ผ์ง
- ์ํ ๋๋ ์๋ฆฌ์ฆ ํ๊ฐ ๋ณ๊ฒฝ API
- ์ํ ๋๋ ์๋ฆฌ์ฆ ์ฅ๋ฅด๋ณ ๋ชฉ๋ก ์กฐํ API
- ํ ์ํ ๋๋ ์๋ฆฌ์ฆ์ ๋ฐฉ์๋ถ ๋ชฉ๋ก ์ ์ฒด ์กฐํ API
- ์ฌ์ ๊ธฐ๋ก ์ถ๊ฐ, ์กฐํ, ๋ณ๊ฒฝ API
- ํ๋์ ์ํ ๋๋ ์๋ฆฌ์ฆ์ ๋ฐฉ์๋ถ ๋ชฉ๋ก์ ์์ฆ ๋ฒํธ๋ก ์กฐํ API
- ์ฐํ๊ธฐ ์ถ๊ฐ, ๋ณ๊ฒฝ API
- Spring Boot BUild Issue - aws ์๋ฒ์์์ build๊ฐ ๋ถ๊ฐ๋ฅํ ๋ฌธ์ ํด๊ฒฐ์ ์ํ ์๋
- IntelliJ remote development ์ฐ๋์ build๋ฅผ ํ๋ ๊ธฐ๋ฅ์ด ์์
- SSL์ ์ฌ์ฉํ Jetbrain Gateway ์ฐ๊ฒฐ์ ์๋ํ์ผ๋ timeout expired ์ ํจ๊ป ์ ์์ด ์คํจ
- ๋๊ฐ์ ์๋๋ฅผ ์ฌ๋ฌ๋ฒ ํด๋ดค์ง๋ง ์ ์ ์คํจ ํ AWS ์๋ฒ๊ฐ ๋ค์ด๋๋ ํ์์ด ๊ณ์ํด์ ๋ฐ์, AWS ์ธ์คํด์ค ์ค์งํ ์์์ผ๋ก ๋ณต๊ตฌ
- WinSCP๋ฅผ ํตํด ๋ก์ปฌ ๋น๋ demo-0.0.1-SNAPSHOT.jar ํ์ผ์ AWS ์๋ฒ์ ์ ์กํ ๊ตฌ๋ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ!!
- BUILD ERROR :
java.lang.NoClassDeFoundError
ํด๊ฒฐ -> mock-rc4#50 (comment)
- ์ํด๋ฆฌ ์คํฌ๋ผ์ ๋ฐ์ํ๊ณ , Issue ๋ ผ์
2022.03.25 ๊ฐ๋ฐ ์ผ์ง
- ์๋ฆฌ์ฆ์ ์์ฆ๊ณผ ํ์ฐจ ๊ฐฏ์ ๋ชฉ๋ก ์กฐํ API
- ๊ตฌ๊ธ ์์
๋ก๊ทธ์ธ ์๋น์ค API
- ํ๋ผ๋ฉํฐ๋ฅผ ์กฐํฉํ์ฌ ๊ตฌ๊ธ ๋ก๊ทธ์ธ URL์ ๋ถ๋ฌ์ค๋ API
- ์์ ๋ก๊ทธ์ธ WORKFLOW mock-rc4#70 (comment)
- ์ฅ๋ฅด ๋๋ถ๋ฅ, Top10, ์ธ๊ธฐ, ์์ฒญ์ค์ธ, ์ฅ๋ฅด๋ณ, ์ ๊ท, ์ฐํ๊ธฐ ์ปจํ ์ธ ์กฐํ API
- ํ๋กํ ๋๋ค์ ์กฐํ API
- Git ์ถฉ๋ ๋ฐ์ ํด๊ฒฐ -> mock-rc4#48 (comment)
- ๊ฐ ํ
์ด๋ธ๋ง๋ค ์ข
์์ ์ธ ํํ๋ค์ ์ด๋ป๊ฒ ์ถ๊ฐํ๋ฉด ์ข์์ง์ ๋ํ ๊ณ ๋ฏผ๊ณผ ๋
ผ์
- DB์ ํ๋์ ์ํ์ ๋ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํ ๊ณผ์ ์ด ๋น๋ฒํ ์์์ ์ด ์๊ตฌ๋๋ค.
- ํธ์์ฑ์ ์ํ ๊ด๋ฆฌ์์ฉ API๋ฅผ ๊ณ ๋ คํ์์ผ๋ ์ฌ์ฉ์๋ฅผ ์ํ API ๊ฐ๋ฐ์ด ์ฐ์ ์ด๋ฏ๋ก ์ข์ ๋์์ด ์๋์ ์ง์ ํ ๋ต๋ณ์ ํตํด ํ๋จ
- ์ฌ์ฉ์ ์ ์ฅ์์ ๋จผ์ ๊ตฌํํด๋ณด๋๋ก ํ์.
2022.03.26 ๊ฐ๋ฐ ์ผ์ง
- ์์
๋ก๊ทธ์ธ ๊ณจ๊ฒฉ ๋ฆฌํฉํฐ๋ง
- Facebook์ Social Login์ด Javascript Documents ์ด๋ฏ๋ก ์ด์ธ์ Social Login ์๋น์ค๋ฅผ ์ ๊ณตํ๋ Google, Line์ REST Login API๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธ ๊ด๋ จ ์๋น์ค๋ฅผ ๊ตฌํ
- Google REST LOGIN API
- ์์ ๋ก๊ทธ์ธ WORKFLOW mock-rc4#70 (comment)
- ํ๋ผ๋ฉํฐ๋ฅผ ์กฐํฉํ์ฌ Google ๋ก๊ทธ์ธ ์ฐฝ URL์ ๋ฐํ
- Google ID์ ์ก์ธ์ค ํ ํฐ ๋ฐํ
- Google Account ์กฐํ
- Google Account๋ก ํ์๊ฐ์
- Google Account๋ก ๋ก๊ทธ์ธ
- Line REST LOGIN API
- ์์ ๋ก๊ทธ์ธ WORKFLOW mock-rc4#70 (comment)
- ํ๋ผ๋ฉํฐ๋ฅผ ์กฐํฉํ์ฌ Line ๋ก๊ทธ์ธ ์ฐฝ URL์ ๋ฐํ
- Line ID์ ์ก์ธ์ค ํ ํฐ ๋ฐํ
- Line Account ์กฐํ
- Line Account๋ก ํ์๊ฐ์
- Line Account๋ก ๋ก๊ทธ์ธ
- ๋ค์ด๋ฒ ์์ ๋ก๊ทธ์ธ ํจ์ค์๋ ์ํธํ, ์์ ๋ก๊ทธ์ธ ์ ํ ๊ฒ์ฌ(DAO) ์ ์ฉ, ์ค๊ฐ๊ฒฉ ๋ฆฌํฉํ ๋ง ๋ฑ
- ๋ฉ์ธ ํ์ด์ง์ ์นดํ ๊ณ ๋ฆฌ(Top10,์ธ๊ธฐ,์ฅ๋ฅด ๋ฑ) uri ๋ชฉ๋ก ์กฐํ API ๊ตฌํ
- ๊ฒ์ ์กฐํ API ๊ตฌํ
์งํ์ค
- ERD 3์ฐจ ์ค๊ณ
- ์๋ฆผ, ๊ฒ์ ํ ์ด๋ธ ์ถ๊ฐ
- ๋น๋์ค ํ ์ด๋ธ์์ ์ปฌ๋ผ ์ถ๊ฐ
- Git ์ถฉ๋ ๋ฐ์ ํด๊ฒฐ -> mock-rc4#48 (comment)
- ์๋, ๊ฒ์, ๊ธฐํ ์กฐํ์ API ํ์์ฑ ๋ ผ์ ํ API ๊ธฐ๋ฅ ๋ช ์ธ์ ์ฌ์ ๋ฆฌ
- ์๋, ๊ฒ์๊ณผ ๊ด๋ จํ ERD 3์ฐจ ์ค๊ณ ๋ฐ ๋ ผ์
2022.03.27 ๊ฐ๋ฐ ์ผ์ง
- ๋ฐฐ์ฐ(Actor), ํน์ง(Character) ์ํ ๋ชฉ๋ก ์กฐํ API
- ์ํ์ ์ถ์ฐํ๋ ๋ฐฐ์ฐ ๋ชฉ๋ก์ ์กฐํ API
- ์ํ์ ์ํ ์ฅ๋ฅด ์ข ๋ฅ ๋ชฉ๋ก์ ์กฐํ API
- ์ํ์ด ๊ฐ์ง๋ ํน์ง ๋ชฉ๋ก์ ์กฐํ API
- ์ํ์ ๊ธฐํ ์์ธ ์ ๋ณด๋ฅผ ์กฐํ API
- ์ฑ์ธ์ธ์ฆ ํ์์ฌ๋ถ ๊ฒ์ฆ (true or false)
- ํ๋กํ ์๋ฆผ ์กฐํ API
- ๊ฒ์(์ ๋ชฉ/์ฌ๋/์ฅ๋ฅด) ์กฐํ API
- ๊ฒ์ ๊ธฐ๋ก ์ ์ฅ ๋ก์ง ๊ตฌํ
- ERD 3์ฐจ ์ค๊ณ ์๋ชป๋ ๋ถ๋ถ ์์ &๋ณด์
JdbcTemplate - SQL Injection ์ํ -> mock-rc4#47 (comment)
- ERD 3์ฐจ ์ค๊ณ ์๋ชป๋ ๋ถ๋ถ ๋ฐ๊ฒฌ์ ๋ํ ๋ ผ์ ํ ๋ฐ์
2022.03.28 ๊ฐ๋ฐ ์ผ์ง
- ERD ๋ณ๊ฒฝ
- Account : membershipStartDate ์ปฌ๋ผ ์ถ๊ฐ -> ์ ๊ธฐ ๊ฒฐ์ ์ผ์ ํ์ํ๊ณ , ๋ฉค๋ฒ์ฝ์ ๋ฐ๋ฅธ ์์ฒญ ๊ถํ์ ๊ฐ์ง๋๋ก ํด์ผํ๋ฏ๋ก.
- ์ต๋ค ๊ฒ์ ์ปจํ
์ธ ์กฐํ API
- ๊ฐ์ฅ ๋น๋ฒํ ๊ฒ์๋ ํค์๋๋ฅผ ํตํด ์ํ ๋ชฉ๋ก์ ์กฐํ
- ์์์ ์ฅ๋ฅด๋ณ ์ปจํ
์ธ ์กฐํ API
- ์ฅ๋ฅด๋ณ ์์ ์ด๋ ฅ์ด ์๋ ์ํ ๋ชฉ๋ก์ ์กฐํ
- ์์ธํ์ด์ง ์ฒซํ๋ฉด ๋์์ ์ฌ์์ ์ ๋ณด ๋ถ๋ฌ์ค๊ธฐ ์กฐํ API
- ์ฒซํ๋ฉด ์ฌ์์ ์ด์ ๊ธฐ๋ก์ผ๋ก๋ถํฐ ํ์ฌ ์ฌ์์๊ฐ์ ๋ถ๋ฌ์ค๊ณ , ์ํผ์๋ ์๋ณ์๋ฅผ ๋ฐํ
- ์๋ ์ค์ , ์กฐํ API
- ์ด๋ฒ์ฃผ, ๋ค์์ฃผ ๊ณต๊ฐ ์ปจํ ์ธ ๋ชฉ๋ก ์กฐํ API
- Code Review ๋ฐ์ํ์ฌ ๋ฆฌํฉํ ๋ง #44 (comment)
- ๊ตฌํํ๋ API๋ฅผ ๋ทํ๋ฆญ์ค ์ค์ ์๋น์ค์ ๋ง์ถฐ์ ์ด๋ป๊ฒ ์์ , ๋ณด์ํ ์ ์์์ง ํ์
2022.03.29 ๊ฐ๋ฐ ์ผ์ง
- ๊ฐ๋ ์ ์ ์ํ ๋ชฉ๋ก ์กฐํ API
- ์ํ์ ์์ ์ฐธ์ฌํ ๊ฐ๋ ๋ชฉ๋ก์ ์กฐํ API
- ์ฐํ๊ธฐ ์กฐํ API
- ๋ถํ์ํ ํ๋ผ๋ฉํฐ ์ ๊ฑฐ ๋ฆฌํฉํฐ๋ง
- API ์ต์ ํ
- Director, DirectorParticipate ํ ์ด๋ธ ์ถ๊ฐ
- ์๋ฆฌ์ฆ ์ํ ์ ๋ณด ๋ฐ์ดํฐ ์ถ๊ฐ
- ๊ด๋ จ ํ ์ด๋ธ ํ์ํ ๋ชจ๋ ํ ์ดํฐ ์ถ๊ฐ(์ฅ๋ฅด, ํน์ง, ์ถ์ฐ์ง, ๊ฐ๋ ๋ฐ์ดํฐ์ ์ด๋ฅผ ์๋ ๊ด๊ณ ํ ์ด๋ธ์ ๋ฐ์ดํฐ)
โํด๋น ISSUE ์กฐํํ๊ธฐ (mock-rc4#65 (comment))
- ๋ฐ์ดํฐ๊ฐ ๋ถ์กฑํ์ฌ ๊ตฌํํ API๋ค์ด ํ๋ก ํธ์์ ์ ์ ์ฉ๋์๋์ง ํ์ธ์ด ์ด๋ ต๋ค๋ ๊ฒ์ ํ์ธ
2022.03.30 ๊ฐ๋ฐ ์ผ์ง /ํผ๋๋ฐฑ
- Git์ ๊ดํ์ฌ Issue๋ ๋ธ๋์น ์ ๋ต์ ์ธ์์ ์ ๋ฆฌํ์๋ ๋ ์ข์
- ๋ชจ๋ ๋ฉ์๋์ try, catch๋ฌธ์ ์ฐ๊ธฐ๋ณด๋จ ์์ธ ์ฒ๋ฆฌ๋ฌธ์ ๋ฐ๋ก ๊ตฌํํ๋ ๋ฐฉ๋ฒ ๊ตฌ์
- API ์ ๊ดํด ํ๋ฒ์ ๋ณด๋ด๋ ์ฐ์ต์ ํด๋ณด๋ ๊ฒ๋ ์ข์
- ๊ฐ ํ์๋ค ์ ์์ด ํ์ฌ๊น์ง ์งํ ์ํฉ์ ๋ํ ๋ณด๊ณ
- ํ๋ก ํธ ํ์๊ป์ ๊ฐ์ข ์กฐํ API์์ ํ์ํ ๊ณตํต์ ๋ฐ์ดํฐ๋ฅผ ๋ ์ถ๊ฐํ๊ธฐ๋ฅผ ํฌ๋งํ๋ค๋ ์๊ฒฌ
- ํ๋ก ํธ ํ์๋ค์ ๊ฐ๋ฐ ๋จ๊ณ๊ฐ ์ํ ๋ชฉ๋ก์ ์กฐํํ๋ ์์ค์ ์ด๋ฅด๋ฌ์ ์กฐํํ๋ ๋ฐฉ๋ฒ, ๋ณด์ฌ์ง๋ ํํ ๋ฑ์ ๋ํด์ ๋ ผ์
- ๋ง๊ฐ๊น์ง ๋จ์ ์๊ฐ๋์ ๊ฐ๋ฅํ ๋ฒ์์์์ ๋ฆฌํฉํ ๋ง์ ๊ณ์ํ ์ ์๋๋ก ํ์ํ ๋๋ง๋ค ๋์ค์ฝ๋๋ก ์ฐ๋ฝ์ ์ฃผ๊ณ ๋ฐ๊ธฐ๋ก ํ๊ณ ๋ง๋ฌด๋ฆฌ.
- ๊ฐ์ข ์กฐํ API์์ ํ์ํ ๊ณตํต๋ ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ธ ๋ ์ถ๊ฐํ ๊ฒ
- ๋ด์ผ ์ ๋ ์ด์ ์คํ๊น์ง ์์ , ๋ณด์์ ๋ํ ํฌ๋ง์ฌํญ์ ํ๋ก ํธ ํ์๋ค๋ก๋ถํฐ ๊ณต์ ๋ฐ์ ์์
- ์ธ๋ถ API ์ฌ์ฉ์ ์ํ baseURL ๋ณ๊ฒฝ ๋ฆฌํฉํฐ๋ง
- Validation & ์๋ฌ์ฝ๋ ์ถ๊ฐ ๋ฆฌํฉํฐ๋ง
- ์ธ๋ถ API ์ฌ์ฉ์ ์ํ baseURL ๋ณ๊ฒฝ, ํ๋ผ๋ฉํฐ ์ถ๊ฐ, Validation & ์๋ฌ์ฝ๋ ์ถ๊ฐ ๋ฑ ๋ฆฌํฉํฐ๋ง
- ํ๋กํ ์ญ์ ์ jwt๋ฅผ header์์ ์๊ตฌํ์ง ์์์ ํ์ธ ํ ๋ฆฌํฉํฐ๋ง
- profile ๋ชฉ๋ก๊ณผ profile ์กฐํ์ profilePhotoIdx -> profilePhotoUrl์ผ๋ก ๋ฆฌํดํ๋๋ก ์ฟผ๋ฆฌ ๊ตฌ์กฐ ๋ณ๊ฒฝ ๋ฆฌํฉํฐ๋ง
- ๋ก๊ทธ์ธ์ ๋ฉค๋ฒ์ฝ ๋ฐ์ ์ ์ฉ ๋ฆฌํฉํ ๋ง
- ํ์ ํธ๋ํฐ๋ฒํธ ๋ณ๊ฒฝ ๋ฆฌํฉํ ๋ง
- ํ๋กํ ์์ฑ์ jwt ๋ฏธ์ ์ฉ ๋ฆฌํฉํ ๋ง
2022.03.31 ๊ฐ๋ฐ ์ผ์ง
- ์ด๋ฉ์ผ๋ก ๋ฉ์ธ์ง ๋ณด๋ด๊ธฐ API
- ์ด๋ฉ์ผ๋ก 6์๋ฆฌ ์ธ์ฆ๋ฒํธ ๋ณด๋ด๊ธฐ API
- ์นด์นด์ค ์์ ๋ก๊ทธ์ธ API
- Top10 ์กฐํ์์๋ ๊ฐ๋ก ์ฌ์ง์ด ์๋ ์ธ๋ก ์ฌ์ง ๋ฐํํ๋๋ก ๋ฆฌํฉํฐ๋ง
- ์ฟผ๋ฆฌ๋ฌธ์ ์๋ชป ์์ฑํ์ฌ ์ผ๋ถ API๊ฐ ์ค์๋ ํ๋๊ฒ์ ๋ฐ๊ฒฌํ์ฌ ๋ฆฌํฉํฐ๋ง ํ ์๋ฒ ๋ฐ์
- ํ๋ก ํธ ํ์์ ์์ฒญ์ ํด๊ฒฐ : ์ถฉ๋ถํ ์์ ๋ฐ์ดํฐ๊ฐ ํ์
- ์ฝ 1์ฒ๊ฑด์ ๋ฐ์ดํฐ๋ฅผ mysql procedure๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ จ์ ๊ท์น์ ๋ฐ๋ผ ์ถ๊ฐ
- ๋น๋์ค ๋ฐฉ์๋ถ ์ ๋ณด ๋ฐ์ดํฐ
- ๋น๋์ค์ ์ฅ๋ฅด๊ฐ ๊ด๊ณ ์ ๋ณด ๋ฐ์ดํฐ
- ์ฝ 1์ฒ๊ฑด์ ๋ฐ์ดํฐ๋ฅผ mysql procedure๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ จ์ ๊ท์น์ ๋ฐ๋ผ ์ถ๊ฐ
- ๊ทธ๋์ ๊ณต๋ถํ๋ฉฐ ๋ชจ์ผ๊ณ ๊ธฐ๋กํด์๋ ๋ด์ฉ์ ์ ๋ฆฌํ์ฌ issue์ ์
๋ก๋
- Validation์ ์ํด ์์ฑํ์๋ ์ ๊ท์ ๋ฏ์ด๋ณด๊ธฐ mock-rc4#72 (comment)
- Spring ๊ณต๋ถ ์ ๋ฆฌ mock-rc4#71 (comment)
- (๋ค์ด๋ฒ, ๊ตฌ๊ธ, ๋ผ์ธ)์์ ๋ก๊ทธ์ธ ์๋น์ค WORK FLOW mock-rc4#70 (comment)
- ์๋ฐ๋ก ํ๋ HTTP ์์ฒญ ์ฌ์ฉ๊ณผ ์คํ๋ง ์ปจํธ๋กค๋ฌ ์ด๋ ธํ ์ด์ ์ ๋ฆฌ mock-rc4#69 (comment)
- Mysql Procedure ๊ณต๋ถ์ ์ค์ ๋ฐ์ดํฐ ์ฐ์ฐ์ ์ ์ฉํ๊ธฐ mock-rc4#65 (comment)
- ๋ธ๋ก๊ทธ ํ๋ก์ ํธ ์๋ฆฌ์ฆ ์ ๋ฆฌ ์ฐธ์กฐ