본문 바로가기

분류 전체보기202

EC2 서버에 프로젝트 배포하기 EC2 프로젝트 Clone EC2에 깃 설치 sudo yum install git git 버전 확인 git --version 디렉토리 생성 및 이동 mkdir ~/app && mkdir ~/app/step1 디렉토리로 이동 cd ~/app/step1 git hub 주소 복사 git clone 복사한 주소 username 은 아이디를 입력 password는 로그인 패스워드가아닌 access token을 입력 패스워드를 입력하면 아래와같은 오류가 뜸 Cloning into 'spring-boot-webservice'... Username for 'https://github.com': fmoni1306@gmail.com Password for 'https://fmoni1306@gmail.com@github.c.. 2021. 8. 23.
AWS RDS (DataBase) AWS에서는 관리형 서비스인 RDS(Relational Database Service)를 제공합니다. RDS는 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스 이다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 웅영 작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스이다. RDS 인스턴스 생성하기 RDS 검색 대시보드 -> 데이터베이스 생성 MariaDB 선택 가격 Amazon Aurora(오로라) 교체 용이성 Amazon Aurora는 AWS에서 MySQL과 PostgreSQL을 클라우드 기반에 맞게 재구성한 데이터베이스 MariaDB와 MySQL 차이점(MariaDB 기준) 동일 하드웨어 사양으로 MySQL보다 향상된 성능 좀 더 활성화된 커뮤니티 다양한 기.. 2021. 8. 22.
AWS 서버환경 클라우드란? 인터넷(클라우드)를 통해 서버, 스토리지(파일 저장소), 데이터베이스, 네트워크, 소프트웨어, 모니터링 등의 컴퓨팅 서비스를 제공하는 것 클라우드 종류 Infrastructure as a Service(Iaas, 아이아스, 이에스) 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스 가상머신, 스토리지, 네트워크, 운영체제 등의 IT 인프라를 대여해주는 서비스 AWS의 EC2, S3 등 Platform as a Service(Pass, 파스) IaaS에서 한 번 더 추상화한 서비스 한 번 더 추상화했기 때문에 많은 기능이 자동화되어 있음 AWS의 Beanstalk(빈스톡), Heroku(헤로쿠) 등 Software as a Service(SaaS, 사스) 소프트웨어 서비스 구글 드라이브,.. 2021. 8. 22.
기존 테스트에 Security 적용 test 폴더에 application.yml (테스트 용) 파일 만들기 spring-security-test 추가(build.gradle) PostsApiControllerTest 에 임의 사용자 인증 추가 postsCreate, postsUpdate에 @WithMockUser(roles = "USER") 추가 @WIthMockUser(roles = "USER") 인증된 모의(가짜) 사용자를 만들어서 사용 roles에 권한을 추가할 수 있음 이 어노테이션으로 인해 ROLE_USER 권한을 가진 사용자가 API를 요청하는 것과 동일한 효과 MockMvc에서만 작동함 @SpringBootTest에서 MockMvc를 사용하는 방법 @ExtendWith(SpringExtension.class) @SpringBo.. 2021. 8. 21.
네이버 로그인 추가하기 application-oauth-naver.yml 추가 스프링 시큐리티에선 하위 필드를 명시 할수 없음 최상위 필드만 user_name으로 지정가능 그래서 response를 user_name으로 지정하고 이후 자바 코드로 response의 id를 user_name으로 지정 스프링 시큐리티 설정 등록 OAuthAttributes에 네이버 인지 판단하는 코드와 네이버 생성자만 추가 reference 스프링부트와 AWS로 혼자 구현하는 웹서비스 2021. 8. 21.
Session 저장소로 데이터베이스 사용하기 지금 만든 서비스는 애플리케이션을 재실행하면 로그인이 풀린다 이유는 세션이 내장 톰캣의 메모리에 저장되기 때문이다. 내장 톰캣처럼 애플리케이션 실행 시 실행되는 구조에선 항상 초기화 된다. 또한 2대 이상의 서버에서 서비스 하고 있다면 톰캣마다 세션 동기화 설정을 해야만 한다. 현업에서 쓰이는 3가지 세션 저장소 톰캣 세션 기본적으로 선택되는 방식 톰캣(WAS)에 저장되기 때문에 2대 이상의 WAS가 구동되는 환경에서는 톰캣들 간에 세션 공유를 위한 추가 설정이 필요 MySQL과 같은 데이터베이스를 세션 저장소로 사용 여러 WAS간의 공용 세션을 사용할 수 있는 가장 쉬운 방법 많은 설정이 필요 없지만, 결국 로그인 요청마다 DB IO가 발생하여 성능상 이슈가 발생할 수 있음 Redis, Memcache.. 2021. 8. 21.