Skip to content

sersue/sersue-springboot-webservice

Repository files navigation

springboot_webservice

스프링부트와 AWS로 혼자 구현하는 웹서비스 소스코드

  • 개발환경
    • JAVA 8(JDK 1.8)
    • Gradle 4.8 ~ Gradle 4.10.2

StringBoot JPA

- Local H2 데이터베이스 사용 웹 콘솔("http://localhost:8080/h2-console") -> API로 조회

(웹 콘솔 화면) 스크린샷 2021-01-18 오후 11 03 06

(API 조회 화면) 스크린샷 2021-01-18 오후 11 19 05

Mustache Plugin 사용

  • 화면 관련 Controller는 모두 IndexController에 존재

  • 게시글 등록/삭제/수정 API 구현

(게시글 등록 화면) 스크린샷 2021-01-21 오전 12 20 08

OAuth2.0 - Google login 및 Naver login 기능 구현 (완료)

  • User : 사용자 정보 담당할 도메인 클래스 (entity)

  • Role : 권한 코드

  • config.auth 패키지 : 시큐리티 관련 클래스

    • SecurityConfig : 설정 코드
    • CustomOAuth2UserService : 사용자 정보를 기반으로 가입 및 정보수정, 세션 저장 등의 기능을 지원
  • config.auth.dto 패키지

    • OAuthAttributes
    • SessionUser

(로그인 전 화면) 스크린샷 2021-01-30 오후 4 49 40 (로그인 후 화면) 스크린샷 2021-01-30 오후 4 49 53

(OAuth2 프로세스 참고) 출처 : OAuth2 페이코 로그인 가이드 스크린샷 2021-01-30 오후 4 52 19

AWS EC2 인스턴스 생성 (완료)

  • AMI - 인스턴스를 시작하는데 필요한 정보를 이미지로 만들어 둔 것 [여기선 Amazon Linux AMI 사용]
  • 인스턴스 유형 - T시리즈 [t2.micro] (크래딧 : CPU 포인트 개념)
  • pem 키
  • 고정 IP(EIP) 할당
  • Java 8 설치 & 타임 존 변경 & Hostname 변경

EC2 서버에 배포 (완료)

  • 배포 스크립트(.sh)
  • 외부 security 파일 등록 (보안상 서버에서 직접 가지고 있도록)
  • RDS profile

배포 자동화 (완료)

  • Travis CI - S3 - CodeDeploy 연동

(Travis CI) 스크린샷 2021-02-04 오전 12 08 28

(S3) 스크린샷 2021-02-01 오후 7 39 57

무중단배포 (완료)

  • Nginx 리버스 프록시 사용
  • Nginx 1대, 스프링부트 Jar 2대 사용
  • Nginx는 80번 포트, 스프링은 각각 8081, 8082 사용

About

스프링부트와 AWS로 혼자 구현하는 웹서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors