dailyFocus - Frontend
: Serverless web application 개발 흐름을 가볍게 이해할수 있도록 진행한 프로젝트로 가이드가 되도록 작성하였습니다.
프론트엔드 파트 ~!
<목차>
- Web Application 소개
- Front-end 계획하기
- Front-end 구현하기
- Front-end 배포하기
- Front-end 자동 배포하기
- 참고
Web Application 소개
DailyFocus
링크 : http://kd-sp3-dailyfocus.s3-website.ap-northeast-2.amazonaws.com/
Git : https://github.com/jgcman3/dailyfocus-app-frontend
가이드를 위해 만든 Web App 은 'Daily Focus' 입니다.
- 몰입을 돕는 시간관리 툴
- "한가지 일에 집중하라"
- 역활 1 : 하나의 mission 을 생성하고 mission 완료시 몰입한 시간을 기록한다.
- 역활 2 : 진행한 mision 들을 보여준다.
UX/UI 화면
Front-end 계획하기
구성 요소
AWS 에서는 serverless 아키텍처로 제공하는 서비스들을 이용하여 구성할 수 있습니다.
웹 호스팅
- S3 의 정적 웹 호스팅 서비스를 이용합니다.
구현 방식
- 언어 : html, css, javascript
- 라이브러리 : react, react-router, react-redux, react-bootstrap
- aws 연동 : AWS amplify
Front-end 구현하기
front-end 구현하기
소스 코드 다운로드
aws-amplify 설치하기
의존성 npm package들 설치
Amplify 를 통해 Back-end 연결하기
AWS Resources 명시하기 ( src/config.js )
AWS Amplify Configure 설정하기 ( src/index.js )
amplify 를 사용하는 코드 ( 예 : 로그인 , src/Containers/Login.js )
web application 실행하기
Front-end 배포하기
web console 에서 배포 하기
- S3 bucket 생성하기
- 퍼블릭 엑세스 차단 비활성화
- 정적 웹사이트 호스팅 허용
권한 > 버킷정책에 s3:GetObject Action 에 대한 허용 정책 추가
front-end 소스코드 빌드하기
- build 폴더에 생성된 파일들을 S3 bucket에 업로드 하기
- 정적 웹 사이트 호스팅 앤드포인트로 접속 하기
Front-end 자동 배포하기
git 저장소 서비스를 이용하여 S3에 자동 배포하기
- github action
- bitbucket pipeline
- gitlab pipeline
github 'action' 을 이용해 S3에 자동 배포 설정하기
.github/workflows/mail.yml 파일 생성 및 편집
- repository 에 secrets 변수 추가
자동 배포 하기
- 자동 배포 동작 확인 하기
- 정적 웹 사이트 호스팅 엔드 포인트로 확인하기
참고
링크
- AWS site: https://aws.amazon.com/ko/
- Serverless framework : https://serverless.com/
- Serverless stack : https://serverless-stack.com/
- CloudFormation guide : https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide
- DynamoDB guide : https://www.dynamodbguide.com/what-is-dynamo-db
- Amplify javascript library : https://github.com/aws-amplify/amplify-js
- aws-sdk javascript library : https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/?id=docs_gateway
- DailyFocus back-end source code : https://github.com/jgcman3/dailyfocus-app-backend
- DailyFocus front-end source code : https://github.com/jgcman3/dailyfocus-app-frontend
- Seed, CI/CD pipeline for serverless : https://seed.run/
- CircleCI, CI/CD pipeline for serverless : https://circleci.com/
- TravisCI, CI/CD pipeline for serverless : https://travis-ci.com/plans/
댓글
댓글 쓰기