Post

[Ios App] [Server] 서버 설계

[Ios App] [Server] 서버 설계

기본 구조

  • 스크립트 목록 매일 업데이트 해야하므로 서버 개별 운영
  • 서버는 Java SpringBoot 사용
  • Http 방식으로 JSON 파일로 주고받을것임

데이터베이스

따로 Mysql같은 DB 운영 보다는 AWS의 S3 를 사용해서 .json 파일 저장/불러오기

✅ S3에 JSON 파일 저장 방식의 장점

  • 서버 부하 감소 → DB 대신 S3에서 파일을 가져오므로 서버 부담이 적음
  • 비용 절감 → DB를 운영하는 것보다 S3에 JSON 파일을 저장하는 게 저렴할 수 있음
  • 확장성 → JSON 파일을 업데이트하기 쉽고, CDN과 연계하면 빠른 배포 가능
  • 캐싱 가능 → CloudFront 같은 CDN을 활용하면 JSON 데이터를 캐싱하여 성능 향상

❌ S3 방식의 단점

  • 파일 업데이트 어려움 → 새로운 데이터를 추가할 때 JSON 파일을 직접 수정해야 함
  • 검색 성능 저하 → 특정 조건으로 데이터를 검색하려면 전체 파일을 불러와야 함
  • 데이터 변경 반영 속도 → 실시간으로 데이터가 자주 바뀌면 S3에서 매번 불러오는 게 비효율적
  • ACID 보장 어려움 → DB와 다르게 동시 업데이트 시 충돌 해결이 어려울 수 있음

따라서 내 App은 이와같은 이유로 DB 보다 AWS S3를 이용할 것이다.

  • 데이터 변경이 적고, 정적인 데이터 제공이 목적임
  • 실시간 검색, 사용자 맞춤 데이터 제공 같은 구현을 안함
  • 데이터 한번 저장하면 수정할 일이 없음

Request - Response

  • URL 을 통한 Get 방식으로 요청
  • JSON 형식으로 응답

    ScriptListView

    요청응답
    GET /api/list/BTS[{ “title”: “Test Video1”, “artist”: “BTS”, “youtube_url”: “…” }, { “title”: “Test Video2”, “artist”: “BTS”, “youtube_url”: “…” }]

    DetailPageView

    요청응답
    GET /api/script/json?fileName=BTS_test1.json{ “title”: “Test Video1”, “artist”: “BTS”, “youtube_url”: “…”, “script_KOR”: “…”, “script_JPN”: “…” }
This post is licensed under CC BY 4.0 by the author.