Skip to content

๐Ÿ–ฅ ์˜ํ™” ์‹œ๋ฆฌ์ฆˆ ๊ตฌ๋… ์„œ๋น„์Šค (RESTful API)

Notifications You must be signed in to change notification settings

yyy96/TeamFlix-server

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


image


๐Ÿ“ Introduction

  • ์˜ํ™” ์‹œ๋ฆฌ์ฆˆ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์œ„ํ•œ ๊ตฌ๋… ์„œ๋น„์Šค REST API (Server)
  • ์ฐธ์—ฌ ์ธ์› : ์„œ๋ฒ„ 2๋ช… / ํ”„๋ก ํŠธ์—”๋“œ 1๋ช…

๐Ÿ›  Structure

โš™๏ธ Architecture

  • ํ”„๋กœ์ ํŠธ ๊ธฐ์ˆ  ์Šคํƒ์— ๊ด€ํ•œ ํฌ์ŠคํŒ… ์ •๋ฆฌ (โžก ํ•ด๋‹น ๊ธฐ์ˆ  ์„ ํƒ ์ด์œ , ์ ์šฉ ๊ณผ์ •)
    image

โš™๏ธ ERD ๊ตฌ์„ฑ

final_Netflix


โš™๏ธ ๋””๋ ‰ํ† ๋ฆฌ ๋งต
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 ์ฝ˜ํ…์ธ  ๋ชฉ๋ก ์กฐํšŒ
      • ๋‚ด๊ฐ€ ์ฐœํ•œ ์ฝ˜ํ…์ธ  ๋ชฉ๋ก ์กฐํšŒ
      • ์ธ๊ธฐ ์ฝ˜ํ…์ธ  ๋ชฉ๋ก ์กฐํšŒ
      • ์‹ ๊ทœ ์ฝ˜ํ…์ธ  ๋ชฉ๋ก ์กฐํšŒ
      • ์‹œ์ฒญ์ค‘์ธ ์ฝ˜ํ…์ธ  ๋ชฉ๋ก ์กฐํšŒ
      • ์žฅ๋ฅด๋ณ„ ์ฝ˜ํ…์ธ  ๋ชฉ๋ก ์กฐํšŒ
    • ์žฅ๋ฅด ๋Œ€๋ถ„๋ฅ˜ ๋ชฉ๋ก ์กฐํšŒ (์˜ํ™”, ์‹œ๋ฆฌ์ฆˆ ๋‚ด๋ถ€ ๊ธฐ๋Šฅ)
    • ํ•˜๋‚˜์˜ ์˜ํ™” ๋˜๋Š” ์‹œ๋ฆฌ์ฆˆ์˜ ๋ฐฉ์˜๋ถ„ (ํšŒ์ฐจ)๋ชฉ๋ก ์กฐํšŒ
    • ์ƒ์„ธ์ •๋ณด ์กฐํšŒ(์ž‘ํ’ˆ์ •๋ณด, ํ•ด๋‹น ์ž‘ํ’ˆ์— ์†ํ•œ ๋ชจ๋“  ์ถœ์—ฐ์ž, ์žฅ๋ฅด, ํŠน์ง•, ์ด๋ง๋ผ ์กฐํšŒ)
    • ์ž‘ํ’ˆ์˜ ์ถœ์—ฐ์ž ์กฐํšŒ (์ถœ์—ฐ์ž ์ด๋ฆ„ ํด๋ฆญ)
    • ์ถœ์—ฐ์ž๊ฐ€ ์ฐธ์—ฌํ•œ ์ž‘ํ’ˆ ๋ชฉ๋ก ์กฐํšŒ (์ถœ์—ฐ์ž ์ด๋ฆ„ ํด๋ฆญ)
    • ์ž‘ํ’ˆ์˜ ํŠน์ง• ์กฐํšŒ (์˜ํ™”/์‹œ๋ฆฌ์ฆˆ ํŠน์ง• ํด๋ฆญ)
    • ํŠน์ง•๋ณ„ ์ž‘ํ’ˆ ๋ชฉ๋ก ์กฐํšŒ (์˜ํ™”/์‹œ๋ฆฌ์ฆˆ ํŠน์ง• ํด๋ฆญ)
    • ์žฅ๋ฅด๋ณ„ ์ˆ˜์ƒ์ž‘ ์ปจํ…์ธ  ์กฐํšŒ (์˜ํ™”/์‹œ๋ฆฌ์ฆˆ ๋ชจ๋‘)
    • ์ตœ๋‹ค ๊ฒ€์ƒ‰ ์ปจํ…์ธ  ์กฐํšŒ (์˜ํ™”/์‹œ๋ฆฌ์ฆˆ ๋ชจ๋‘)
    • ์ƒ์„ธํŽ˜์ด์ง€ ์ฒซํ™”๋ฉด ๋™์˜์ƒ ์žฌ์ƒ์‹œ ์ •๋ณด ์กฐํšŒ
  • ๋ถ๋งˆํฌ(Bookmark)

    • ๋ถ๋งˆํฌ ๋ˆ„๋ฅด๊ธฐ
    • ๋ถ๋งˆํฌ ๋ณ€๊ฒฝ
    • ๋ถ๋งˆํฌ ์กฐํšŒ
  • ์ข‹์•„์š”(Assessment)

    • ์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
    • ์ข‹์•„์š” ๋ณ€๊ฒฝ
    • ์ข‹์•„์š” ์กฐํšŒ
  • ์˜์ƒ ์‹œ์ฒญ์„ ์œ„ํ•œ ์ •๋ณด(Play)

    • ์ƒ์„ฑ
    • ๋ณ€๊ฒฝ
    • ์กฐํšŒ
  • ์•Œ๋ฆผ(Alarm)

    • ์ƒ์„ฑ
    • ๋ณ€๊ฒฝ
    • ์กฐํšŒ
  • ๊ฒ€์ƒ‰(Search)

    • ๊ฒ€์ƒ‰(์ œ๋ชฉ/์‚ฌ๋žŒ/์žฅ๋ฅด) ์ฝ˜ํ…์ธ  ๋ชฉ๋ก ์กฐํšŒ
  • ๊ฐ๋…(Director)

    • ๊ฐ๋…์ด ์ œ์ž‘ํ•œ ์ž‘ํ’ˆ ๋ชฉ๋ก ์กฐํšŒ
    • ์ž‘ํ’ˆ ์ œ์ž‘์— ์ฐธ์—ฌํ•œ ๊ฐ๋… ๋ชฉ๋ก ์กฐํšŒ
  • ๊ธฐํƒ€(ETC)

    • ์„ฑ์ธ์ธ์ฆ ํ•„์š” ์—ฌ๋ถ€ ๊ฒ€์ฆ ์กฐํšŒ


๐Ÿ“ข How We Worked

  • ๐Ÿ“… ์• ์ž์ผ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฐจ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ๋งˆ์ผ์Šคํ†ค ์ง„ํ–‰

    • GitHub Project ํ™œ์šฉํ•˜์—ฌ ์Šคํ”„๋ฆฐํŠธ ๊ด€๋ฆฌ
    • ๋ฐ์ผ๋ฆฌ ํšŒ๊ณ , ์œ„ํด๋ฆฌ ์Šคํฌ๋Ÿผ์„ ์ง„ํ–‰ํ•˜๋ฉฐ ์Šคํ”„๋ฆฐํŠธ์— ๋งž๊ฒŒ ํ”„๋กœํ† ํƒ€์ž…์„ ๊ตฌํ˜„ ๋ฐ ๊ฐœ์„ 
ย  ๐Ÿ“ ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.19 ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.19 ๊ฐœ๋ฐœ ์ผ์ง€

Work

  • ๊ธฐํš์„œ ์ž‘์„ฑ ๋ฐ ERD ์„ค๊ณ„์™€ ๊ธฐ๋Šฅ API ์ •๋ฆฌ๋ฅผ ์œ„ํ•œ ํšŒ์˜
  • EC2, RDS ์„œ๋ฒ„ ๊ตฌ์ถ•
  • ์„œ๋ธŒ ๋„๋ฉ”์ธ(dev, prod) ์ ์šฉ
  • prod ํด๋”์— ์Šคํ”„๋ง ํ…œํ”Œ๋ฆฟ ์ ์šฉ
  • ์„œ๋ธŒ๋„๋ฉ”์ธ(dev, prod)์— ๊ฐ๊ฐ SSL ์ ์šฉ(By CertBot)

๋ฐ์ผ๋ฆฌ ํšŒ๊ณ 

ํ˜‘์—… ํšŒ์˜ ๋‚ด์šฉ

ํšŒ์˜ ํšŒ๊ณ ๋ก

  • ํ˜„์žฌ๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ API ๊ธฐ๋Šฅ๊ณผ ํ…Œ์ด๋ธ”์„ ์ •๋ฆฌํ•˜๊ณ , ๋‹ค์Œ ํ”ผ๋“œ๋ฐฑ๊นŒ์ง€ ์„œ๋กœ ๋ถ„๋‹ดํ•˜์—ฌ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. (์˜์—ญ : Account์™€ Profile ์ „๋ฐ˜)
  • ์•„์ง ์˜๊ฒฌ์ด ํ•˜๋‚˜๊ฐ€ ๋˜์ง€ ๋ชปํ•˜๋Š” ์‚ฌ์•ˆ์— ๋Œ€ํ•ด์„œ๋Š”, ์ฐจํ›„์— ๋‹ค์‹œ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„์–ด ๊ฐ€๋ณด๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.
  • ์ดํ›„ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ API, ๋‹ค๋งŒ ์•„์ง์€ ์šฐ์„ ์ˆœ์œ„์ƒ ๋‚˜์ค‘์ธ ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ ํ•ด ๋ณด์•˜๋‹ค.
    • ์ถœ์—ฐ ๋ฐฐ์šฐ์— ๋Œ€ํ•œ API
      • ํŠน์ • ๋ฐฐ์šฐ๊ฐ€ ์ถœ์—ฐํ•œ ๋ชจ๋“  ์˜ํ™”/์‹œ๋ฆฌ์ฆˆ ์ž‘ํ’ˆ์„ ์กฐํšŒ
      • ํŠน์ • ๋ฐฐ์šฐ๊ฐ€ ์ถœ์—ฐํ•œ ๋ชจ๋“  ์˜ํ™”/์‹œ๋ฆฌ์ฆˆ ์ž‘ํ’ˆ์„ ๊ฒ€์ƒ‰

ํ˜‘์˜ํ•˜๋˜ ๋ถ€๋ถ„

  • Q : API ๊ธฐ๋Šฅ ์ค‘, ๋„ทํ”Œ๋ฆญ์Šค ์˜ํ™”/์‹œ๋ฆฌ์ฆˆ ์ข‹์•„์š” ๋ฐ ์‹ซ์–ด์š”์— ๋Œ€ํ•œ API๋ฅผ ๊ตฌํ˜„์— ๋Œ€ํ•œ ์˜๊ฒฌ

    • ๋ณธ : ์ข‹์•„์š” ๋˜๋Š” ์‹ซ์–ด์š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์ธก DB์— ์ €์žฅ API(POST),
      ํŠน์ • ์˜ํ™”์‹œ๋ฆฌ์ฆˆ๋‚˜ ํŠน์ • ํ”„๋กœํ•„์— ๋Œ€ํ•œ ์ข‹์•„์š” ๋˜๋Š” ์‹ซ์–ด์š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์˜ค๋Š” API(GET)๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ
    • ์ œ์ œ : ์ข‹์•„์š” ๋˜๋Š” ์‹ซ์–ด์š” ๋ฒ„ํŠผ์€ ๋„ทํ”Œ๋ฆญ์Šค์˜ ๋”ฅ๋Ÿฌ๋‹(์‚ฌ์šฉ์ž ๊ด€์‹ฌ ๋ถ„์„)์„ ์œ„ํ•œ ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ์ƒ๊ฐ
      ๋ถ๋งˆํฌ ๊ธฐ๋Šฅ์ด ๋”ฐ๋กœ ์กด์žฌํ•˜์—ฌ, ์ข‹์•„์š”๋ฅผ ํ•œ๋‹ค๊ณ ํ•ด๋„ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ˜„์žฌ ์ข‹์•„์š”๋ฅผ ๋ˆŒ๋ €๋‹ค๋Š” ๊ธฐ๋Šฅ ์™ธ์—๋Š” ์‹ค์ œ ์„œ๋น„์Šค๋กœ ๋ฐ˜์˜ ๋  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐ
      ํ•„์š” ์—ฌ๋ถ€์— ๊ด€ํ•˜์—ฌ ์ƒ๊ฐํ•ด๋ณด์•ผ ํ•  ์ ์ด๋ผ๊ณ  ์ƒ๊ฐ
  • Q : createdAt, updatedAt, status๋ฅผ ๋ชจ๋“  ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ์— ๋„ฃ์–ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์˜๊ฒฌ

    • ๋ณธ : ๋ชจ๋‘ ๋„ฃ๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐ
    • ์ œ์ œ : ์‚ฌ์šฉ์ž๊ฐ€ ์ด์šฉํ•˜๊ธฐ์— ํ•„์š”ํ•œ ํ…Œ์ด๋ธ”์—๋งŒ ๋„ฃ๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐ
  • Q : ์‚ฌ์šฉ์ž๊ฐ€ ์ด์šฉํ•˜๋Š” ์„œ๋น„์Šค ๋ฒ”์œ„ ๋ฐ–์˜ ํ…Œ์ด๋ธ” ๋‚ด ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” API์— ๋Œ€ํ•œ ์˜๊ฒฌ (์˜ˆ : ์˜ํ™”๋‚˜ ์‹œ๋ฆฌ์ฆˆ์˜ ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ)

    • ๋ณธ : ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ API๋„ ํ•„์š”ํ•˜๋ฏ€๋กœ ํ•„์š”ํ•œ API๋ผ๊ณ  ์ƒ๊ฐ
    • ์ œ์ œ : ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค ๊ธฐ์ค€์œผ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์€ API๋ผ๊ณ  ์ƒ๊ฐ
  • Q : ๋„ทํ”Œ๋ฆญ์Šค ๊ฐ ์˜ํ™”์˜ ์ธ๋ฌผ, ์นด๋ฐ๊ณ ๋ฆฌ๋“ฑ์„ ๋”ฐ๋กœ ํ…Œ์ด๋ธ”๋กœ ๋นผ์•ผํ•˜๋Š”๊ฐ€์— ๋Œ€ํ•œ ์˜๊ฒฌ

    • ๋ณธ : ์˜ํ™” ํ…Œ์ด๋ธ”์— ์ธ๋ฌผ ์ตœ๋Œ€ 20๋ช…๊นŒ์ง€(์˜ˆ์‹œ) ์ปฌ๋Ÿผ ์ˆ˜๋ฅผ ๋Š˜๋ ค์„œ ์˜ํ™”์—์„œ ํ•œ๋ฒˆ์— ๋‹ค๋ฃจ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐ
      join ์€ ๋ฌด๊ฒ๊ธฐ ๋•Œ๋ฌธ์— ๋น„์ •๊ทœํ™”๊ฐ€ ๋” ์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐ
    • ์ œ์ œ : ํ•œ ํ…Œ์ด๋ธ”์— ์ธ๋ฌผ20๋ช…,์นดํ…Œ๊ณ ๋ฆฌ5๊ฐœ,๊ธฐํƒ€...๋“ฑ๋“ฑ์˜ ์ปฌ๋Ÿผ์„ ๋ชจ๋‘ ์ถ”๊ฐ€ํ•˜๋ฉด ํ…Œ์ด๋ธ”์ด ๋„ˆ๋ฌด ๋ฌด๊ฒ๋‹ค๊ณ  ์ƒ๊ฐ
      ์ •๊ทœํ™”๋ฅผ ์ง€์ผœ์„œ ํ…Œ์ด๋ธ”๋กœ ์ƒ์„ฑํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐ
    • ํ˜‘์˜ : ์šฐ์„ ์€ TEXT ๋กœ ์ธ๋ฌผ์„ string ๊ฐ’์œผ๋กœ ํ•˜๋‚˜์˜ ์ปฌ๋Ÿผ์— ์ ์–ด์„œ ๊ฐœ๋ฐœํ•ด ๋ณธ ํ›„ ์ถ”ํ›„์— ์žฌํ˜‘์˜
  • ์„œ๋ฒ„ ๊ฐœ๋ฐœ 2์ธ ๋ชจ๋‘๊ฐ€ ๋‚ฉ๋“์„ ํ•ด์•ผ ERD ์„ค๊ณ„์™€ API ๊ธฐ๋Šฅ ์ •๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ–ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ ์‹œ๊ฐ„์ด ์ œ๋ฒ• ๋”œ๋ ˆ์ด ๋˜์—ˆ์œผ๋‚˜, ๋‘˜ ๋ชจ๋‘ ํ˜‘์—…์ด ์ฒ˜์Œ์ด์—ˆ๊ธฐ์— ์˜คํžˆ๋ ค ์œ ์˜๋ฏธํ–ˆ๋‹ค.
  • ์•„์ง ์˜๊ฒฌ์ด ํ•˜๋‚˜๊ฐ€ ๋˜์ง€ ๋ชปํ•˜๋Š” ์‚ฌ์•ˆ์— ๋Œ€ํ•ด์„œ๋Š”, ์ฐจํ›„์— ๋‹ค์‹œ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„์–ด ๊ฐ€๋ณด๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.
  • ERD ๋ฅผ ์„ค๊ณ„ํ•˜๋ฉฐ ์„œ๋กœ ๋‹ค๋ฅธ ์Šคํƒ€์ผ์„ ๋งž์ถฐ๋‚˜๊ฐ€๋ฉฐ ํ˜‘์—…ํ•˜์—ฌ ERD๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฒฝํ—˜์„ ์Œ“์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

2022.03.20 ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.20 ๊ฐœ๋ฐœ ์ผ์ง€

Work

  • ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ
  • ๊ณ„์ •(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 ๋„๋ฉ”์ธ๊ณผ ๋Œ€ํ‘œ ๋„๋ฉ”์ธ์ด ๊ฐ€๋ฆฌํ‚ค๋„๋ก ์„ธํŒ…

ISSUE

  • 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 ๋“ฑ)ํ•ด ๋ณด์•˜์œผ๋‚˜ ํŠน๋ณ„ํ•œ ์ด์ƒ์„ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.
    • ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•
    1. nginx๋ฅผ ์™„์ „ํžˆ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ–ˆ๋‹ค.
    2. ์„œ๋ธŒ๋„๋ฉ”์ธ ์ ์šฉ์„ ์œ„ํ•ด ์„œ๋ฒ„ ๋ธ”๋ก์„ ๋‚˜๋ˆ„๊ณ  SSL ์ ์šฉ์„ ์œ„ํ•œ certificaton ๋ชจ๋“ˆ์„ ์‹คํ–‰& ์ ์šฉํ•˜์˜€๋‹ค.
    3. ์™„์ „ํ•œ ์‚ญ์ œ ํ›„ ์žฌ์„ค์น˜, ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  ์ผ๋ จ์˜ ๊ณผ์ •์„ ์ ์šฉํ•˜๊ณ  ๋‚˜๋‹ˆ ๋ฌธ์ œ ์—†์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ด ํ™•์ธ๋˜์—ˆ๋‹ค.

๋ฐ์ผ๋ฆฌ ํšŒ๊ณ 

  • Git ์—์„œ ํ˜‘์—…ํ•˜๋ฉฐ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝํ—˜์„ ์Œ“์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์„œ๋กœ ์ฝ”๋“œ ์Šคํƒ€์ผ, ๊ทœ์•ฝ๋“ฑ์„ ๋งž์ถฐ์•ผ ํ•  ํ•„์š”์„ฑ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋„ฃ์„ ๋•Œ ์„œ๋กœ ๊ณต์œ ํ•˜์ง€ ์•Š์œผ๋ฉด ํ˜ผ๋™์ด ์˜ฌ ์ˆ˜ ์žˆ์Œ์„ ๋Š๊ผˆ๋‹ค.

2022.03.21 ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.21 ๊ฐœ๋ฐœ ์ผ์ง€

Work

  • ๊ณ„์ •(Account)๊ด€๋ จ ๊ธฐ๋Šฅ API ๊ตฌํ˜„
    • ๊ธฐ์กด์˜ ํšŒ์› ๊ฐ€์ž… API ๋ฆฌํŒฉํ„ฐ๋ง

    • ํ”„๋ก ํŠธ์—”๋“œ ํŒ€์›๊ณผ ํ˜‘์˜ ํ›„ ํ•ด๋‹น ์กฐ๊ฑด์— ๋งž๋Š” ์‹ ๊ทœ API 2์ข… ์ถ”๊ฐ€ -> ๋„ทํ”Œ๋ฆญ์Šค์˜ ํšŒ์›๊ฐ€์ž… flow๋ฅผ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ฆ„

      1. ๋„ทํ”Œ๋ฆญ์Šค ํšŒ์›๊ฐ€์ž… ๋‹จ๊ณ„ ์กฐํšŒ API ๊ตฌํ˜„
      • ์ด๋ฉ”์ผ์„ form ์œผ๋กœ ์ œ์ถœํ•˜๋ฉด ์„ธ๊ฐ€์ง€ ์œ ํ˜• ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒ (๋ฏธ๊ฐ€์ž… ๊ณ„์ • or ์ด๋ฉ”์ผ&๋น„๋ฐ€๋ฒˆํ˜ธ๋งŒ ๋“ฑ๋ก๋œ ๊ณ„์ • or ๊ฒฐ์ œ์ˆ˜๋‹จ๊นŒ์ง€ ๋ชจ๋‘ ๋“ฑ๋ก๋œ ๊ณ„์ •)
      • ์ด๋ฉ”์ผ์„ ์„œ๋ฒ„์— ๋„˜๊ธฐ๋ฉด ์•„๋ž˜์˜ ์„ธ ๊ฐ€์ง€ ๊ฒฝ์šฐ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฆฌํ„ด
        1. ์ฒ˜์Œ๋ณด๋Š” ์ด๋ฉ”์ผ
        2. ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฒˆ์€ ์„ค์ •(๊ฐ€์ž…)์ด ๋˜์–ด์žˆ๋Š”๋ฐ ๊ฒฐ์ œ๊ฐ€ ์•ˆ๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ
        3. ๊ฐ€์ž…๊ณผ ๊ฒฐ์ œ๊ฐ€ ๋‹ค ๋˜์–ด์žˆ๋Š”๊ฒฝ์šฐ 
        
  • ํ”„๋กœํ•„(Profile)๊ด€๋ จ ๊ธฐ๋Šฅ API ๊ตฌํ˜„
    • ํ”„๋กœํ•„ ์ƒ์„ฑ API ๊ตฌํ˜„
    • ํ”„๋กœํ•„ ์‚ฌ์ง„ ๋“ฑ๋ก,๋ณ€๊ฒฝ API ๊ตฌํ˜„
  • ํšŒ์› ๋กœ๊ทธ์•„์›ƒ API JWT ์ „์ฒด ๊ตฌํ˜„ ๋ฆฌํŒฉํ† ๋ง โ†’ ์ง„ํ–‰์ค‘
  • API ๋ช…์„ธ์„œ์˜ ์ตœ์‹ ํ™”

  • ํ”„๋ก ํŠธ ์—”๋“œ ํŒ€์›์˜ ์š”์ฒญ์— ๋งž๊ฒŒ API๋ฅผ ๊ณ ์•ˆํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ์ดˆ์•ˆ์„ ์ž‘์„ฑ ํ›„ ๊ณต์œ  ๋ฐ ๋…ผ์˜

    • ํšŒ์›๊ฐ€์ž…
      1. GET : ํšŒ์›๊ฐ€์ž… ๋‹จ๊ณ„ ์กฐํšŒ
       - request item : ์ด๋ฉ”์ผ
       - response item: 0/1/2 (case code)
      
      1. POST : ์ฒ˜์Œ๋ณด๋Š” ์ด๋ฉ”์ผ์ผ ๋•Œ ๊ณ„์ • ์ƒ์„ฑ
       - request item : ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ
       - response item : ๊ณ„์ • ์‹๋ณ„์ž, ํ† ํฐ
      
      1. PATCH : ๊ฒฐ์ œ ์ˆ˜๋‹จ ๋“ฑ๋ก
       - request item : ํ† ํฐ, ๊ณ„์ • ์‹๋ณ„์ž, ๋ฉค๋ฒ„์‰ฝ ์œ ํ˜•
       - response item : ๊ณ„์ • ์‹๋ณ„์ž, ํ† ํฐ
      
  • ERD Profile ๊ด€๋ จ ๋ณ€๊ฒฝ

    • ํšŒ์›๊ฐ€์ž…์‹œ email๊ณผ password๋งŒ ์žˆ์œผ๋ฉด ํšŒ์› ๋“ฑ๋ก์ด ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ ๋‚˜๋จธ์ง€ ์ปฌ๋Ÿผ์„ ํ•„์ˆ˜ ํ•„๋“œ๊ฐ€ ์•„๋‹Œ Nullableํ•œ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ
    • -> id ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๊ณ„์ •์„ ๋“ฑ๋กํ•˜๊ณ , ์ด์™ธ ์ •๋ณด์˜ ์ž…๋ ฅ ๊ณผ์ •์€ ์ฐจํ›„ ํšŒ์›๊ฐ€์ž… ๋‹จ๊ณ„๋ณ„ ์ง„ํ–‰์„ ํ†ตํ•ด ๋ณ„๋„๋กœ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ.

    ใ…œใ…œใ…œ

ISSUE

๋ฐ์ผ๋ฆฌ ํšŒ๊ณ 

  • ํ”„๋ก ํŠธ์—”๋“œ ํŒ€์›๊ณผ API ํ˜•ํƒœ์— ๋Œ€ํ•ด ์†Œํ†ตํ•˜๋ฉฐ ๋งž์ถฐ์•ผํ•  ์ ๋“ค์„ ๋…ผ์˜ํ•˜์˜€๋‹ค.
  • ์š”๊ตฌ์‚ฌํ•ญ์„ 100% ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก API๋ฅผ ์„ค๊ณ„ํ›„ ๊ตฌํ˜„ํ•ด ๋ณด๋Š” ๊ณผ์ •์„ ๊ฐ€์กŒ๋‹ค.
  • ๊ธด๋ฐ€ํ•œ ํ˜‘์˜๋ฅผ ํ†ตํ•ด ์•ž์œผ๋กœ๋„ ์ด์™€ ๊ฐ™์ด ๋ฐ˜์˜ํ•ด ๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

2022.03.22 ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.22 ๊ฐœ๋ฐœ ์ผ์ง€

Work

  • ์†Œ์…œ ๋กœ๊ทธ์ธ ์„œ๋น„์Šค 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๋ฅผ ๋ชจ๋ธ๋ง ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์ดํŠธ ๋‚ด๋ถ€ ๊ธฐ๋Šฅ ์‚ฌ์šฉ ์‹œ๋„ (์†Œ์…œ ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์ธ ๋“ฑ) bxzvb

    • ํŽ˜์ด์Šค๋ถ ๊ณ„์ • ์ •๋ณด๋กœ Netflix์˜ ๊ณ„์ •์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ๊ตฌ๋ฅผ ๋ฐ˜ํ™˜
       ์‚ฌ์šฉ ์ค‘์ด์‹  ํŽ˜์ด์Šค๋ถ ๊ณ„์ •์ด ์‹œ์Šคํ…œ ๊ธฐ๋ก์— ์žˆ๋Š” ๊ณ„์ •๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
       Netflix ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธํ•ด ์ฃผ์„ธ์š”.
      
      -> ์ฐธ๊ณ ํ•˜์—ฌ ๋„ค์ด๋ฒ„ ์†Œ์…œ ๋กœ๊ทธ์ธ ์„œ๋น„์Šค๋„ ๊ฐ™์€ Workflow๋ฅผ ๋”ฐ๋ฅด๋„๋ก ์„ค๊ณ„ํ–ˆ๋‹ค.
  • ๋„ค์ด๋ฒ„ ์†Œ์…œ ๋กœ๊ทธ์ธ์— ๋Œ€ํ•œ 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)

      • ์•„๋ž˜์˜ ์กฐํ•ญ์„ ๋ณด์ž. image

      • ์šฐ๋ฆฌ ํŒ€์€ ๋„ทํ”Œ๋ฆญ์Šค์™€ ๋™์ผํ•œ ํ๋ฆ„์˜ ์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ์ง€ํ–ฅํ•˜๊ณ  ์žˆ๋‹ค.

      • ๋„ทํ”Œ๋ฆญ์Šค ํšŒ์›๋“ฑ๋ก์€ ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค.

      • ๋”ฐ๋ผ์„œ ๋„ค์ด๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‚ฌ์ „ ๊ฒ€์ˆ˜์‹œ ์ค€์ˆ˜์‚ฌํ•ญ, ์œ„ ์กฐํ•ญ์— ์œ„๋ฐฐ๋œ๋‹ค.

      • ๊ฒ€์ˆ˜ ์‹ฌ์‚ฌ๋ฅผ ๋ฐ›์ง€ ์•Š์€ ๊ฒฝ์šฐ, ๊ฒ€์ˆ˜ ์š”๊ฑด์— ๋ถ€ํ•ฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

      • ๋„ค์ด๋ฒ„ ๋กœ๊ทธ์ธ API๋Š” ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ์˜ ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ํ—ˆ์šฉ๋œ ๋„ค์ด๋ฒ„ ID์—๊ฒŒ๋งŒ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.

      • ๋‹ฌ๋ฆฌ ๋งํ•˜๋ฉด Application ๋“ฑ๋ก์ž๊ฐ€ ํ—ˆ์šฉํ•  ๋Œ€์ƒ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ ๋„ค์ด๋ฒ„ ๊ณ„์ •๋งŒ์ด ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

      • ํŒ€์›๋“ค์˜ ๋„ค์ด๋ฒ„ ๊ณ„์ • ID๋ฅผ ์š”์ฒญํ•ด์„œ, ๋„ค์ด๋ฒ„ ์†Œ์…œ ๋กœ๊ทธ์ธ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•œ๋‹ค.

  • ERD ๋ณ€๊ฒฝ
    • ์†Œ์…œ ๋กœ๊ทธ์ธ idx๋ฅผ ๋„ˆ๋ฌด ์ž‘์€ ์šฉ๋Ÿ‰์œผ๋กœ ์„ธํŒ…ํ•ด๋†”์„œ VARCHAR(30)- > VARCHAR(50)์œผ๋กœ ๋ณ€๊ฒฝ image

    • Current Status on 2022.03.23

      ใ…ใ…ใ…

ISSUES

  • AWS ์„œ๋ฒ„๋‚ด nohub ๋ช…๋ น์œผ๋กœ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™์ž‘์‹œ ์ตœ์‹  ๋นŒ๋“œ๊ฐ€ ๋ฐ˜์˜ ๋˜์ง€ ์•Š์Œ

    • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
      1. aws ์ธ์Šคํ„ด์Šค๋ฅผ ์ค‘์ง€ํ›„ ์‹œ์ž‘ -> ์ •์ƒ์ ์œผ๋กœ ๋ฐ˜์˜๋จ
      2. PID KILL์œผ๋กœ ํ•ด๊ฒฐ
    • ์‹คํ–‰์„ ํ•˜๊ณ ๋‚˜๋ฉด, ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฝ๋กœ์— nohup.out์ด๋ผ๋Š” ํŒŒ์ผ์ด ์ƒ๊ธฐ๋ฉฐ, program ์ด๋ผ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฟœ์–ด๋‚ด๋Š” ๋กœ๊ทธ๋“ค์„ ์ฐ๊ฒŒ ๋˜๋Š”๋ฐ, ์ดํ›„์— ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ killํ•˜๊ฑฐ๋‚˜ ์žฌ์‹คํ–‰ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ์ผํžˆ pid๋ฅผ ์•Œ์•„๋‚ด์„œ kill ํ•„์š”
  • ํ”„๋ก ํŠธ & ๋ฐฑ ๊ฐ„์— CORS(Cross Origin Resource Sharing) ์—๋Ÿฌ ๋ฐœ์ƒ

  • Pull Request์˜ Complex Conflicts image

    • ๋ฌด๊ฑฐ์šด 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 ๊ฐœ๋ฐœ ์ผ์ง€ /ํ”ผ๋“œ๋ฐฑ

2022.03.23 ๊ฐœ๋ฐœ ์ผ์ง€

1์ฐจ ํ”ผ๋“œ๋ฐฑ

  • ๋ชจ๋“  ํ…Œ์ด๋ธ”์—๋Š” createdAt, updatedAt, status ์ปฌ๋Ÿผ์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์ข‹์Œ
  • ๊ด€๋ฆฌ์ž API๋ณด๋‹ค๋Š” ์‚ฌ์šฉ์žAPI์— ์ง‘์ค‘ํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ
  • ERD ํ…Œ์ด๋ธ”์— ๊ด€ํ•˜์—ฌ ์žฌ์„ค๊ณ„ ํ•„์š”
    • ์˜ํ™”,์‹œ๋ฆฌ์ฆˆ ๋Œ€์‹  ๋น„๋””์˜ค๋กœ ํ†ต์ผ
    • ์˜ํ™”์— ์ธ๋ฌผ์„ ๋„ฃ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ฐฐ์šฐ ํ…Œ์ด๋ธ”์„ ๋”ฐ๋กœ ์ƒ์„ฑ

1์ฐจ ์œ„ํด๋ฆฌ ์Šคํฌ๋Ÿผ ํšŒ์˜๋ก

  • ๊ฐ ํŒ€์›๋“ค ์ „์›์ด ํ˜„์žฌ๊นŒ์ง€ ์ง„ํ–‰ ์ƒํ™ฉ์— ๋Œ€ํ•œ ๋ณด๊ณ 
  • ์‹ค์ œ ์„œ๋น„์Šค์— ๊ฐ€๊นŒ์šด ํ˜•ํƒœ๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„์ง€์— ๋Œ€ํ•œ ํ† ๋ก 
  • ํ”„๋ก ํŠธ ํŒ€์›๋“ค์˜ ๊ฐœ๋ฐœ ์ง„ํ–‰์†๋„๊ฐ€ ๋Š๋ ค์„œ(ํšŒ์›๊ฐ€์ž… ๋‹จ๊ณ„ ์ง„ํ–‰์ค‘์ธ ์ƒํƒœ) ์ดํ›„์— ์š”์ฒญ์‚ฌํ•ญ์ด ์žˆ์„ ๋•Œ ๋””์Šค์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์†Œํ†ตํ•˜๊ธฐ๋กœ ์˜๊ฒฌ์„ ๋ชจ์œผ๊ณ  ๋งˆ๋ฌด๋ฆฌ.

Work

  • ๊ธฐ๋Šฅ API ๋ชฉ๋ก ์žฌ์ •๋ฆฌ
  • ERD 2์ฐจ ์„ค๊ณ„
    • ์˜ํ™”&์‹œ๋ฆฌ์ฆˆ๋ฅผ Video ๋กœ ํ†ตํ•ฉ
  • Github Repository์˜ Projects, Issues ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •
  • ๋น„๋””์˜ค, ์˜ํ™” ๋˜๋Š” ์‹œ๋ฆฌ์ฆˆ ํ‰๊ฐ€ ์„œ๋น„์Šค ์ฝ”๋“œ ๊ณจ๊ฒฉ ๊ตฌํ˜„
  • ์˜ํ™” ๋˜๋Š” ์‹œ๋ฆฌ์ฆˆ ํ‰๊ฐ€ ์ถ”๊ฐ€ API ๊ตฌํ˜„
  • ์˜ํ™” ๋˜๋Š” ์‹œ๋ฆฌ์ฆˆ ํ‰๊ฐ€ ์กฐํšŒ API ๊ตฌํ˜„
  • API uri ๋ฆฌํŒฉํ† ๋ง (ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜)

2022.03.24 ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.24 ๊ฐœ๋ฐœ ์ผ์ง€

Work

  • ์˜ํ™” ๋˜๋Š” ์‹œ๋ฆฌ์ฆˆ ํ‰๊ฐ€ ๋ณ€๊ฒฝ API
  • ์˜ํ™” ๋˜๋Š” ์‹œ๋ฆฌ์ฆˆ ์žฅ๋ฅด๋ณ„ ๋ชฉ๋ก ์กฐํšŒ API
  • ํ•œ ์˜ํ™” ๋˜๋Š” ์‹œ๋ฆฌ์ฆˆ์˜ ๋ฐฉ์˜๋ถ„ ๋ชฉ๋ก ์ „์ฒด ์กฐํšŒ API
  • ์žฌ์ƒ ๊ธฐ๋ก ์ถ”๊ฐ€, ์กฐํšŒ, ๋ณ€๊ฒฝ API
  • ํ•˜๋‚˜์˜ ์˜ํ™” ๋˜๋Š” ์‹œ๋ฆฌ์ฆˆ์˜ ๋ฐฉ์˜๋ถ„ ๋ชฉ๋ก์„ ์‹œ์ฆŒ ๋ฒˆํ˜ธ๋กœ ์กฐํšŒ API
  • ์ฐœํ•˜๊ธฐ ์ถ”๊ฐ€, ๋ณ€๊ฒฝ API

ISSUES

  • Spring Boot BUild Issue - aws ์„œ๋ฒ„์ƒ์—์„œ build๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ์‹œ๋„
    1. IntelliJ remote development ์—ฐ๋™์€ build๋ฅผ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†์Œ
    2. SSL์„ ์‚ฌ์šฉํ•œ Jetbrain Gateway ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ–ˆ์œผ๋‚˜ timeout expired ์™€ ํ•จ๊ป˜ ์ ‘์†์ด ์‹คํŒจ
    3. ๋˜‘๊ฐ™์€ ์‹œ๋„๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ํ•ด๋ดค์ง€๋งŒ ์ ‘์† ์‹คํŒจ ํ›„ AWS ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜๋Š” ํ˜„์ƒ์ด ๊ณ„์†ํ•ด์„œ ๋ฐœ์ƒ, AWS ์ธ์Šคํ„ด์Šค ์ค‘์ง€ํ›„ ์‹œ์ž‘์œผ๋กœ ๋ณต๊ตฌ
  • WinSCP๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ ๋นŒ๋“œ demo-0.0.1-SNAPSHOT.jar ํŒŒ์ผ์„ AWS ์„œ๋ฒ„์— ์ „์†กํ›„ ๊ตฌ๋™ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ!!
  • BUILD ERROR : java.lang.NoClassDeFoundError ํ•ด๊ฒฐ -> mock-rc4#50 (comment)

๋ฐ์ผ๋ฆฌ ํšŒ๊ณ 

  • ์œ„ํด๋ฆฌ ์Šคํฌ๋Ÿผ์„ ๋ฐ˜์˜ํ•˜๊ณ , Issue ๋…ผ์˜

2022.03.25 ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.25 ๊ฐœ๋ฐœ ์ผ์ง€

Work

  • ์‹œ๋ฆฌ์ฆˆ์˜ ์‹œ์ฆŒ๊ณผ ํšŒ์ฐจ ๊ฐฏ์ˆ˜ ๋ชฉ๋ก ์กฐํšŒ API
  • ๊ตฌ๊ธ€ ์†Œ์…œ ๋กœ๊ทธ์ธ ์„œ๋น„์Šค API
    • ํŒŒ๋ผ๋ฉ”ํ„ฐ๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ URL์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” API
    • ์†Œ์…œ ๋กœ๊ทธ์ธ WORKFLOW mock-rc4#70 (comment)
  • ์žฅ๋ฅด ๋Œ€๋ถ„๋ฅ˜, Top10, ์ธ๊ธฐ, ์‹œ์ฒญ์ค‘์ธ, ์žฅ๋ฅด๋ณ„, ์‹ ๊ทœ, ์ฐœํ•˜๊ธฐ ์ปจํ…์ธ  ์กฐํšŒ API
  • ํ”„๋กœํ•„ ๋‹‰๋„ค์ž„ ์กฐํšŒ API

ISSUES

๋ฐ์ผ๋ฆฌ ํšŒ๊ณ 

  • ๊ฐ ํ…Œ์ด๋ธ”๋งˆ๋‹ค ์ข…์†์ ์ธ ํŠœํ”Œ๋“ค์„ ์–ด๋–ป๊ฒŒ ์ถ”๊ฐ€ํ•˜๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ๊ณผ ๋…ผ์˜
    • DB์— ํ•˜๋‚˜์˜ ์ž‘ํ’ˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •์ด ๋นˆ๋ฒˆํ•œ ์ˆ˜์ž‘์—…์ด ์š”๊ตฌ๋œ๋‹ค.
  • ํŽธ์˜์„ฑ์„ ์œ„ํ•œ ๊ด€๋ฆฌ์ž์šฉ API๋ฅผ ๊ณ ๋ คํ•˜์˜€์œผ๋‚˜ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ API ๊ฐœ๋ฐœ์ด ์šฐ์„ ์ด๋ฏ€๋กœ ์ข‹์€ ๋Œ€์•ˆ์ด ์•„๋‹˜์„ ์งˆ์˜ ํ›„ ๋‹ต๋ณ€์„ ํ†ตํ•ด ํŒ๋‹จ
    • ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ๋จผ์ € ๊ตฌํ˜„ํ•ด๋ณด๋„๋ก ํ•˜์ž.

2022.03.26 ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.26 ๊ฐœ๋ฐœ ์ผ์ง€

Work

  • ์†Œ์…œ๋กœ๊ทธ์ธ ๊ณจ๊ฒฉ ๋ฆฌํŒฉํ„ฐ๋ง
    • 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์ฐจ ์„ค๊ณ„
    • ์•Œ๋ฆผ, ๊ฒ€์ƒ‰ ํ…Œ์ด๋ธ” ์ถ”๊ฐ€
    • ๋น„๋””์˜ค ํ…Œ์ด๋ธ”์—์„œ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

ISSUES


๋ฐ์ผ๋ฆฌ ํšŒ๊ณ 

  • ์•Œ๋žŒ, ๊ฒ€์ƒ‰, ๊ธฐํƒ€ ์กฐํšŒ์˜ API ํ•„์š”์„ฑ ๋…ผ์˜ ํ›„ API ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ ์žฌ์ •๋ฆฌ
  • ์•Œ๋žŒ, ๊ฒ€์ƒ‰๊ณผ ๊ด€๋ จํ•œ ERD 3์ฐจ ์„ค๊ณ„ ๋ฐ ๋…ผ์˜

2022.03.27 ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.27 ๊ฐœ๋ฐœ ์ผ์ง€

Work

  • ๋ฐฐ์šฐ(Actor), ํŠน์ง•(Character) ์ž‘ํ’ˆ ๋ชฉ๋ก ์กฐํšŒ API
  • ์ž‘ํ’ˆ์— ์ถœ์—ฐํ•˜๋Š” ๋ฐฐ์šฐ ๋ชฉ๋ก์„ ์กฐํšŒ API
  • ์ž‘ํ’ˆ์— ์†ํ•œ ์žฅ๋ฅด ์ข…๋ฅ˜ ๋ชฉ๋ก์„ ์กฐํšŒ API
  • ์ž‘ํ’ˆ์ด ๊ฐ€์ง€๋Š” ํŠน์ง• ๋ชฉ๋ก์„ ์กฐํšŒ API
  • ์ž‘ํ’ˆ์˜ ๊ธฐํƒ€ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์กฐํšŒ API
  • ์„ฑ์ธ์ธ์ฆ ํ•„์š”์—ฌ๋ถ€ ๊ฒ€์ฆ (true or false)
  • ํ”„๋กœํ•„ ์•Œ๋ฆผ ์กฐํšŒ API
  • ๊ฒ€์ƒ‰(์ œ๋ชฉ/์‚ฌ๋žŒ/์žฅ๋ฅด) ์กฐํšŒ API
  • ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์ €์žฅ ๋กœ์ง ๊ตฌํ˜„
  • ERD 3์ฐจ ์„ค๊ณ„ ์ž˜๋ชป๋œ ๋ถ€๋ถ„ ์ˆ˜์ •&๋ณด์™„

ISSUE

JdbcTemplate - SQL Injection ์œ„ํ—˜ -> mock-rc4#47 (comment)

๋ฐ์ผ๋ฆฌ ํšŒ๊ณ 

  • ERD 3์ฐจ ์„ค๊ณ„ ์ž˜๋ชป๋œ ๋ถ€๋ถ„ ๋ฐœ๊ฒฌ์— ๋Œ€ํ•œ ๋…ผ์˜ ํ›„ ๋ฐ˜์˜

2022.03.28 ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.28 ๊ฐœ๋ฐœ ์ผ์ง€

Work

  • ERD ๋ณ€๊ฒฝ
    • Account : membershipStartDate ์ปฌ๋Ÿผ ์ถ”๊ฐ€ -> ์ •๊ธฐ ๊ฒฐ์ œ์ผ์„ ํ‘œ์‹œํ•˜๊ณ , ๋ฉค๋ฒ„์‰ฝ์— ๋”ฐ๋ฅธ ์‹œ์ฒญ ๊ถŒํ•œ์„ ๊ฐ€์ง€๋„๋ก ํ•ด์•ผํ•˜๋ฏ€๋กœ.
  • ์ตœ๋‹ค ๊ฒ€์ƒ‰ ์ปจํ…์ธ  ์กฐํšŒ API
    • ๊ฐ€์žฅ ๋นˆ๋ฒˆํžˆ ๊ฒ€์ƒ‰๋œ ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์ž‘ํ’ˆ ๋ชฉ๋ก์„ ์กฐํšŒ
  • ์ˆ˜์ƒ์ž‘ ์žฅ๋ฅด๋ณ„ ์ปจํ…์ธ  ์กฐํšŒ API
    • ์žฅ๋ฅด๋ณ„ ์ˆ˜์ƒ ์ด๋ ฅ์ด ์žˆ๋Š” ์ž‘ํ’ˆ ๋ชฉ๋ก์„ ์กฐํšŒ
  • ์ƒ์„ธํŽ˜์ด์ง€ ์ฒซํ™”๋ฉด ๋™์˜์ƒ ์žฌ์ƒ์‹œ ์ •๋ณด ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์กฐํšŒ API
    • ์ฒซํ™”๋ฉด ์žฌ์ƒ์‹œ ์ด์ „ ๊ธฐ๋ก์œผ๋กœ๋ถ€ํ„ฐ ํ˜„์žฌ ์žฌ์ƒ์‹œ๊ฐ„์„ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ์—ํ”ผ์†Œ๋“œ ์‹๋ณ„์ž๋ฅผ ๋ฐ˜ํ™˜
  • ์•Œ๋žŒ ์„ค์ •, ์กฐํšŒ API
  • ์ด๋ฒˆ์ฃผ, ๋‹ค์Œ์ฃผ ๊ณต๊ฐœ ์ปจํ…์ธ  ๋ชฉ๋ก ์กฐํšŒ API
  • Code Review ๋ฐ˜์˜ํ•˜์—ฌ ๋ฆฌํŒฉํ† ๋ง #44 (comment)

๋ฐ์ผ๋ฆฌ ํšŒ๊ณ 

  • ๊ตฌํ˜„ํ–ˆ๋˜ API๋ฅผ ๋„ทํ”Œ๋ฆญ์Šค ์‹ค์ œ ์„œ๋น„์Šค์— ๋งž์ถฐ์„œ ์–ด๋–ป๊ฒŒ ์ˆ˜์ •, ๋ณด์™„ํ•  ์ˆ˜ ์žˆ์„์ง€ ํ˜‘์˜

2022.03.29 ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.29 ๊ฐœ๋ฐœ ์ผ์ง€

Work

  • ๊ฐ๋… ์ œ์ž‘ ์ž‘ํ’ˆ ๋ชฉ๋ก ์กฐํšŒ API
  • ์ž‘ํ’ˆ์ œ์ž‘์— ์ฐธ์—ฌํ•œ ๊ฐ๋… ๋ชฉ๋ก์„ ์กฐํšŒ API
  • ์ฐœํ•˜๊ธฐ ์กฐํšŒ API
  • ๋ถˆํ•„์š”ํ•œ ํŒŒ๋ผ๋ฉ”ํ„ฐ ์ œ๊ฑฐ ๋ฆฌํŒฉํ„ฐ๋ง
  • API ์ตœ์‹ ํ™”
  • Director, DirectorParticipate ํ…Œ์ด๋ธ” ์ถ”๊ฐ€
  • ์‹œ๋ฆฌ์ฆˆ ์ž‘ํ’ˆ ์ •๋ณด ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
    • ๊ด€๋ จ ํ…Œ์ด๋ธ” ํ•„์š”ํ•œ ๋ชจ๋“  ํ…Œ์ดํ„ฐ ์ถ”๊ฐ€(์žฅ๋ฅด, ํŠน์ง•, ์ถœ์—ฐ์ง„, ๊ฐ๋… ๋ฐ์ดํ„ฐ์™€ ์ด๋ฅผ ์žˆ๋Š” ๊ด€๊ณ„ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ)

ISSUE

image

โ†’ํ•ด๋‹น ISSUE ์กฐํšŒํ•˜๊ธฐ (mock-rc4#65 (comment))

๋ฐ์ผ๋ฆฌ ํšŒ๊ณ 

  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ๊ตฌํ˜„ํ•œ API๋“ค์ด ํ”„๋ก ํŠธ์—์„œ ์ž˜ ์ ์šฉ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์ด ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธ

2022.03.30 ๊ฐœ๋ฐœ ์ผ์ง€ /ํ”ผ๋“œ๋ฐฑ

2022.03.30 ๊ฐœ๋ฐœ ์ผ์ง€

2์ฐจ ํ”ผ๋“œ๋ฐฑ

  • Git์— ๊ด€ํ•˜์—ฌ Issue๋Š” ๋ธŒ๋žœ์น˜ ์ „๋žต์„ ์„ธ์›Œ์„œ ์ •๋ฆฌํ–ˆ์„๋•Œ ๋” ์ข‹์Œ
  • ๋ชจ๋“  ๋ฉ”์„œ๋“œ์— try, catch๋ฌธ์„ ์“ฐ๊ธฐ๋ณด๋‹จ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฌธ์„ ๋”ฐ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• ๊ตฌ์ƒ
  • API ์— ๊ด€ํ•ด ํ•œ๋ฒˆ์— ๋ณด๋‚ด๋Š” ์—ฐ์Šต์„ ํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์Œ

2์ฐจ ์œ„ํด๋ฆฌ ์Šคํฌ๋Ÿผ ํšŒ์˜๋ก

  • ๊ฐ ํŒ€์›๋“ค ์ „์›์ด ํ˜„์žฌ๊นŒ์ง€ ์ง„ํ–‰ ์ƒํ™ฉ์— ๋Œ€ํ•œ ๋ณด๊ณ 
  • ํ”„๋ก ํŠธ ํŒ€์›๊ป˜์„œ ๊ฐ์ข… ์กฐํšŒ API์—์„œ ํ•„์š”ํ•œ ๊ณตํ†ต์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ์ถ”๊ฐ€ํ•˜๊ธฐ๋ฅผ ํฌ๋งํ•œ๋‹ค๋Š” ์˜๊ฒฌ
  • ํ”„๋ก ํŠธ ํŒ€์›๋“ค์˜ ๊ฐœ๋ฐœ ๋‹จ๊ณ„๊ฐ€ ์ž‘ํ’ˆ ๋ชฉ๋ก์„ ์กฐํšŒํ•˜๋Š” ์ˆ˜์ค€์— ์ด๋ฅด๋Ÿฌ์„œ ์กฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•, ๋ณด์—ฌ์ง€๋Š” ํ˜•ํƒœ ๋“ฑ์— ๋Œ€ํ•ด์„œ ๋…ผ์˜
  • ๋งˆ๊ฐ๊นŒ์ง€ ๋‚จ์€ ์‹œ๊ฐ„๋™์•ˆ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„์—์„œ์˜ ๋ฆฌํŒฉํ† ๋ง์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋””์Šค์ฝ”๋“œ๋กœ ์—ฐ๋ฝ์„ ์ฃผ๊ณ ๋ฐ›๊ธฐ๋กœ ํ•˜๊ณ  ๋งˆ๋ฌด๋ฆฌ.

2์ฃผ์ฐจ ์œ„ํด๋ฆฌ ์Šคํฌ๋Ÿผ ํ›„ Todo

  • ๊ฐ์ข… ์กฐํšŒ API์—์„œ ํ•„์š”ํ•œ ๊ณตํ†ต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ๊ธˆ ๋” ์ถ”๊ฐ€ํ•  ๊ฒƒ
  • ๋‚ด์ผ ์ €๋… ์ด์ „ ์˜คํ›„๊นŒ์ง€ ์ˆ˜์ •, ๋ณด์™„์— ๋Œ€ํ•œ ํฌ๋ง์‚ฌํ•ญ์„ ํ”„๋ก ํŠธ ํŒ€์›๋“ค๋กœ๋ถ€ํ„ฐ ๊ณต์œ  ๋ฐ›์„ ์˜ˆ์ •

Work

  • ์™ธ๋ถ€ API ์‚ฌ์šฉ์„ ์œ„ํ•œ baseURL ๋ณ€๊ฒฝ ๋ฆฌํŒฉํ„ฐ๋ง
  • Validation & ์—๋Ÿฌ์ฝ”๋“œ ์ถ”๊ฐ€ ๋ฆฌํŒฉํ„ฐ๋ง
  • ์™ธ๋ถ€ API ์‚ฌ์šฉ์„ ์œ„ํ•œ baseURL ๋ณ€๊ฒฝ, ํŒŒ๋ผ๋ฉ”ํ„ฐ ์ถ”๊ฐ€, Validation & ์—๋Ÿฌ์ฝ”๋“œ ์ถ”๊ฐ€ ๋“ฑ ๋ฆฌํŒฉํ„ฐ๋ง
  • ํ”„๋กœํ•„ ์‚ญ์ œ์‹œ jwt๋ฅผ header์—์„œ ์š”๊ตฌํ•˜์ง€ ์•Š์Œ์„ ํ™•์ธ ํ›„ ๋ฆฌํŒฉํ„ฐ๋ง
  • profile ๋ชฉ๋ก๊ณผ profile ์กฐํšŒ์‹œ profilePhotoIdx -> profilePhotoUrl์œผ๋กœ ๋ฆฌํ„ดํ•˜๋„๋ก ์ฟผ๋ฆฌ ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๋ฆฌํŒฉํ„ฐ๋ง
  • ๋กœ๊ทธ์ธ์‹œ ๋ฉค๋ฒ„์‰ฝ ๋ฐ˜์˜ ์ ์šฉ ๋ฆฌํŒฉํ† ๋ง
  • ํšŒ์› ํ•ธ๋“œํฐ๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ๋ฆฌํŒฉํ† ๋ง
  • ํ”„๋กœํ•„ ์ƒ์„ฑ์‹œ jwt ๋ฏธ์ ์šฉ ๋ฆฌํŒฉํ† ๋ง

2022.03.31 ๊ฐœ๋ฐœ ์ผ์ง€

2022.03.31 ๊ฐœ๋ฐœ ์ผ์ง€

Work

  • ์ด๋ฉ”์ผ๋กœ ๋ฉ”์„ธ์ง€ ๋ณด๋‚ด๊ธฐ API
  • ์ด๋ฉ”์ผ๋กœ 6์ž๋ฆฌ ์ธ์ฆ๋ฒˆํ˜ธ ๋ณด๋‚ด๊ธฐ API
  • ์นด์นด์˜ค ์†Œ์…œ ๋กœ๊ทธ์ธ API
  • Top10 ์กฐํšŒ์‹œ์—๋Š” ๊ฐ€๋กœ ์‚ฌ์ง„์ด ์•„๋‹Œ ์„ธ๋กœ ์‚ฌ์ง„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ๋ฆฌํŒฉํ„ฐ๋ง
  • ์ฟผ๋ฆฌ๋ฌธ์„ ์ž˜๋ชป ์ž‘์„ฑํ•˜์—ฌ ์ผ๋ถ€ API๊ฐ€ ์˜ค์ž‘๋™ ํ•˜๋Š”๊ฒƒ์„ ๋ฐœ๊ฒฌํ•˜์—ฌ ๋ฆฌํŒฉํ„ฐ๋ง ํ›„ ์„œ๋ฒ„ ๋ฐ˜์˜
  • ํ”„๋ก ํŠธ ํŒ€์›์˜ ์š”์ฒญ์„ ํ•ด๊ฒฐ : ์ถฉ๋ถ„ํ•œ ์–‘์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”
    • ์•ฝ 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)



๐Ÿ“š About More

About

๐Ÿ–ฅ ์˜ํ™” ์‹œ๋ฆฌ์ฆˆ ๊ตฌ๋… ์„œ๋น„์Šค (RESTful API)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%