ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS Amplify] Amplify 설치와 적용이유
    Programming/iOS 2021. 9. 9. 13:56

    안녕하세요.

    자비스 입니다.

     

    최근에 시작한 프로젝트에 aws s3에 이미지 업로드 기능을 붙이기 위해

    iam, cognito, aws sdk 등을 세팅하고 있었는데 Amplify 라는 서비스가 보이더군요.

     

    Mobile Hub가 Amplify로 대체한다고요!?

    저는 위 링크글을 보고 aws가 밀고있는 모바일 개발 프레임워크 라는 의미로 해석했습니다.

     

    그럼 Amplify란 무엇인가요? 자세한 내용

    Amplify 모바일 및 프런트 엔드 웹 개발자가 AWS 에서 제공하는 안전하고 
    확장 가능한 전체 스택 애플리케이션을 구축하고 배포할 수 있도록 지원하는
    제품 및 도구 세트입니다. 
    여기에는 클라이언트 앱 개발을 위한 종합적인 SDK, 라이브러리, 도구 및 설명서가 포함되어 있습니다.

     

    serverless로 개발할 때는 firebase 를 주로 사용하고 있었는데 

    Amplify 도입을 결정했는지에 대해 간략하게 설명하고 설치과정을 기록해보겠습니다.

     

    1. 다양한 플랫폼 지원 

    JavaScript, React, Angular, Vue, Next.js 등의 널리 사용되는 웹 프레임워크와 Android, iOS, React Native, Ionic, Flutter 등의 모바일 플랫폼을 지원합니다. 

    한가지(저는 iOS) 플랫폼에서 선행 개발하면 추후 다른 플랫폼(Android)에서도 작업속도가 빠를 것으로 판단했습니다.

     

    2. 다양한 기능

    인증, api(GraphQL, REST), 스토리지, 상호작용, pubsub, 데이터스토어, 기능, 분석, AL/ML 예측, 푸시 알림,관리형 호스팅, CI/CD, 브랜치 배포 등등당장 사용하려고 하는 기능은 s3업로드지만 firebase cloud store로 구현하는 채팅기능과 실시간 상호작용을 대체 할 수 있을거 같다고 판단했습니다.

     

    3. 일단 도입부터

    뭐라도 사용해봐야 장단점 파악이 가능한데 일단 써보고 파악하는것으로 결정했습니다.아무래도 1인 개발하는 프로젝트이니 의사결정이 용이한 점이 있습니다.

     

     

     

    작업 순서

    1. AWS Amplify cli 설치

    2. 프로젝트에 Amplify 설치

     

     

    1. AWS Amplify cli 설치

    node, npm 설치 여부 확인

    $ npm -v	//npm 6.x 버전 이상
    $ node -v	//node 10.x 버전 이상

     

    node, npm 정상 설치된 상태면 amplify cli 설치

    npm install -g @aws-amplify/cli

    정상 설치된 화면

     

    1-2. cli configuration

    터미널에서 입력

    $ amplify configure

    aws console 로 이동, console에서 로그인이 완료되면 터미널로 돌아와서 엔터! 

     

    region 선택

    서울 region은 ap-northeast-2 이므로 선택, 키보드로 상하 이동 가능

     

    IAM username 입력

    유저정보를 입력하고 엔터를 치면 aws console에서 IAM 유저를 생성하도록 유도한다.

    디폴트값으로 생성하고 생성된 유저의 accesskey와 secretkey를 터미널에서 입력한다.

     

    profile name은 dafault로 입력

     

    환경 설정 완료

     

     

    2.  프로젝트에 Amplify 설치

    프로젝트 pod에 amplify 필요한 종속성 입력

    플러그인 형태로 필요한 기능을 추가 할 수 있어서 추후 사용하지 않는 플러그인은 삭제해도 무방합니다.

    pod 'Amplify'
    pod 'Amplify/Tools'
    pod 'AmplifyPlugins/AWSAPIPlugin'
    pod 'AmplifyPlugins/AWSDataStorePlugin'
    pod 'AmplifyPlugins/AWSCognitoAuthPlugin'
    pod 'AWSPredictionsPlugin'

    pod install 후에 xcode로 프로젝트 열기 

     

    target -> build phase 메뉴로 이동

     

    신규 스크립트를 작성 후 아래 텍스트 입력 -> 생성한 스크립트 Compile Sources 위로 이동

    "${PODS_ROOT}/AmplifyTools/amplify-tools.sh"

     

    빌드가 완료되면 프로젝트 디렉토리에 새로운 파일들이 생성됨

    • amplifyConfig Folder: 여러가지 config 파일과 미리 만들어진 샘플 파일들이 있는 디렉토리이다.
    • amplifytools.xcconfig: amplify tool의 동작을 설정하는 config 파일이다.
    • amplifyconfiguration.json: 프로젝트에 추가되어 번들과 함께 전달된다. amplify libraries 가 필요로 한다.
    • awsconfiguration.json: 프로젝트에 추가되어 번들과 함께 전달된다. amplify libraries 가 필요로 한다.

    잘 된줄 알았는데 AmplifyTools/amplify-tools.sh 를 통한 빌드는 삭제예정이라고 합니다.

    https://github.com/aws-amplify/amplify-ios/blob/main/AmplifyTools/README.md

    aws에서 제공하는 스타트 가이드 를 참고해주세요.

     

    프로젝트 루트로 이동

    amplify init --quickstart --frontend ios

    정상적으로 생성되면 아래와 같이 확인이 가능합니다.

     

     

    다음시간에는 amplify 활용하여 s3 업로드 및 기타 기능들을 살펴보겠습니다.

    감사합니다 😄

     

    2022.11.04 업데이트

    amplify를 spm로 세팅해야하는 케이스에 대한 내용 추가

    swift package manager 에 아래 url로 패키지 설치

    https://github.com/aws-amplify/amplify-ios

    설치를 원하는 제품 선택

     

    참고 사이트

    링크1

    aws docu

    'Programming > iOS' 카테고리의 다른 글

    Xcode Text macro 적용  (0) 2021.08.20

    댓글

Designed by Tistory.