AWS - RDS Connection timed out 연결 오류 해결
·
AWS
이 에러로 꼴딱 밤을 새웠다..ㅎㅎ RDS를 지우고 만들고를 몇 번 반복했는지 모르겠다ㅠㅠAWS RDS 데이터베이스를 EC2 외에도 외부 IP에서 확인하고 싶었다.(MySQL 워크벤치, Spring 애플리케이션) 하지만 connenction timeout이 발생했다.힘겹게 해결했던 해당 오류 해결 과정을 남겨 놓는다. 시도1. 퍼블릭 액세스 여부가장 기본적이기 때문에 가장 먼저 확인했던 부분인다. RDS를 생성할 때 연결 항목에서 퍼블릭 액세스 여부를 체크할 수 있다. 외부 IP에서 RDS를 사용하고 싶다면 ‘퍼블릭 액세스 가능’으로 체크하자. 하지만 우리는 이미 퍼블릭 액세스를 허용해 놓은 상황이었다. 2. VPC 보안 그룹 인바운드 규칙퍼블릭 액세스를 허용해도 문제가 해결되지 않는다면 보안 그룹 규칙..
Spring - Thmbnail 이미지로 웹 성능 향상시키기
·
Spring
얼마 전 S3로 이미지를 저장하고 저장된 이미지의 URL을 반환하는 기능을 구현했다.하지만 한 가지 문제가 있었는데, 고용량의 이미지가 그대로 올라간 것이다. Thumbnail 이미지를 생성하는 이유썸네일 이미지를 생성하면 이미지의 파일 크기를 크게 줄일 수 있다. 즉, 이미지가 더 빨리 전송되기때문에 웹 성능이 향상된다. 더 좋은 사용자 경험을 전달할 수 있다.더 작은 용량의 이미지를 전달하기 때문에 서버의 부하를 줄이고 더 많은 요청을 동시에 처리할 수 있다.Thumbnail 이미지를 생성해서 사용자 경험을 개선하고 리소스 사용량을 줄여보자 AmazonS3ResourceStorage보통 원본 이미지와 썸네일 이미지를 같이 저장하지만 우리 서비스에서 이미지는 챌린지 참여 인증 사진용으로 일회용으로 사용..
AWS - EC2 환경에서 AccessKey와 SecretAccessKey를 안전하게 관리하기
·
AWS
프로젝트에서 이미지를 S3에 업로드하는 기능 구현을 담당하게 되었다. S3에 접근하기 위한 AWS의 AccessKey와 SecretAccessKey를 설정해주어야 했는데, public 프로젝트였기 때문에 yml에 담아서 깃허브에 올릴 수 없었다. 애플리케이션 코드로 저장하지 않고 안전하게 AWS Key를 관리하는 방법에 대해 알아보다가 EC2 환경에서 AWS Key를 관리하는 방법에 대해 알게되어 적용했던 과정을 정리한다. 이 밖에도 다양한 환경에서 적용할 만한 다양한 방법을 정리해두신 고마운 블로그가 있어 링크를 남겨놓으니 참고하길 바란다.(링크) EC2ContainerCredentialsProviderWrapper.class 이 클래스는 애플리케이션이 배포된 서버가 EC2 및 컨테이너 환경일 때 동작..
Spring - Jasypt를 사용해서 application.yml 프로퍼티 암호화하기
·
Spring
프로젝트를 진행하다 보면 각종 민감한 Password와 같은 프로퍼티를 외부로부터 안전하게 보관해야 할 일이 많다. 실수로라도 Github에 업로드한다면 끔찍한 일이 벌어질 것이다... 이럴 때 사용할 수 있는 Jasypt 라이브러리 사용법에 대해 araboza Jasypt는 자바 애플리케이션의 설정파일(application.yml, application.properties 등)을 암호화할 수 있도록 지원하는 라이브러리다. 암호화된 설정 파일은 애플리케이션의 버전관리 시스템에서 안전하게 관리할 수 다. 아래는 Jasypt를 사용하여 스프링 부트 애플리케이션에서 application.yml 파일의 값을 암호화하는 방법이다. 1. Jasypt 의존성 추가 build.gradle 파일에 아래와 같이 의존성을 ..
AWS - Spring으로 AWS S3에 이미지 업로드하기1: S3 버킷과 IAM 생성
·
AWS
이번에 진행하는 프로젝트에서 AWS S3에 파일을 저장/수정/삭제할 수 있는 기능 구현을 담당하게 되었다. 버킷 생성부터 업로드 로직 구현까지의 과정을 정리해 본다. S3를 사용하는 이유 S3는 거의 무제한의 데이터를 저장하고 확장할 수 있다. 데이터가 커져도 저장 공간이 부족할까 봐 걱정할 필요가 없는 것이다. (하지만 프리티어ㅠ) 일반적인 파일 서버는 트래픽이 증가함에 따라 장비를 증설해야 하지만 S3는 이 작업을 대행한다. 저장할 수 있는 파일 수의 제한이 없다. S3 버킷 생성 이미지를 관리할 S3 버킷을 생성한다. 1. S3 서비스 2. 버킷 만들기 버킷 만들기를 눌러 버킷 설정을 해준다. 3. 일반 구성 버킷 이름은 지역과 상관없이 AWS 리전에 상관없이 고유한 이름이어야 한다. AWS 리전은..
Spring - Spring으로 AWS S3에 이미지 업로드하기2: Spring에서 기능 구현
·
Spring
이전 글 참고! AWS - Spring으로 AWS S3에 이미지 업로드하기1: S3 버킷과 IAM 생성 이번에 진행하는 프로젝트에서 AWS S3에 파일을 저장/수정/삭제할 수 있는 기능 구현을 담당하게 되었다. 버킷 생성부터 업로드 로직 구현까지의 과정을 정리해 본다. S3를 사용하는 이유 S3는 거 green-bin.tistory.com Gradle Dependency build.gradle implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' 어플리케이션 환경설정 application.yml cloud: aws: s3: bucket: challenge66.file.bucket # s3 버킷 이름 region:..
Spring Security - OAuth2와 JWT로 로그인 구현하기(Kakao, Google, Naver)
·
Spring
나는 새로운 서비스를 이용할 때 매번 새로운 아이디와 비밀번호를 생성하는 것을 별로 좋아하지 않는다. 보통 구글이나 카카오 로그인을 선호한다.OAuth2는 사용자가 특정 서비스에 직접 회원가입을 하지 않고 접근 권한을 부여 받을 수 있도록 해준다. 이를 통해 애플리케이션의 보안성과 사용자 경험을 향상 시킬 수 있다. 이번에 진행하는 프로젝트에서 Spring Security와 OAuth2.0으로 카카오, 구글, 네이버 로그인 기능을 담당하게 되었다.3개의 로그인 기능을 구현해야되서 부담스러웠는데, Spring Boot에서 신경 써야할 부분들을 상당 부분 대신 해줘서 개발하기 수월했다.(하지만 시큐리티는 어렵다..)어떤식으로 구현했는지 정리해본다.기본적인 Spring Security 설정은 팀원이 담당하였기..
나의 첫 Git Flow, Git Branch 전략 세우기
·
Git
Git Flow란?깃 플로우(Git Flow)는 개발을 위한 브랜치 관리 전략 중 하나이다.Git Flow를 사용하면 개발 프로세스를 체계적으로 관리할 수 있으며, 다른 개발자들과의 협업도 수월해진다. 따라서 많은 기업과 개발자들이 Git Flow를 사용하고 있다.이번 프로젝트를 하기 전에 팀원들과의 일관성 있는 작업 수행을 위해 깃 플로우를 정립할 필요가 있다고 생각했다. 이번 블로그에서 프로젝트에 도입했던 깃 플로우에 대해 정리해보려고 한다. Git Repository 구성Upstream Remote Repository : 팀이 공유하는 최종 원격 저장소Origin Remote Repository : Upstream Repository를 Fork 한 원격 개인 저장소Local Repository : ..
Spring - Scheduler로 매일 자정 실행되는 로직을 짜보자
·
Spring
팀 프로젝트를 진행하면서 꽤 머리 아픈 로직을 담당하게 되었다. Spring Scheduler를 사용해서 매일 자정 실행되는 로직을 짜는 것이다. 앞서 프로젝트를 간단히 소개할 필요가 있겠다. '66Challenge'는 66일 동안 올바른 습관을 만들 수 있도록 도와주는 목표 달성 서비스이다. 66Challenge는 특정 습관을 시작하면 66일 동안 쉬지 않고 인증해야 한다. 단, 두 개의 와일드카드가 주어지기 때문에 2일 정도는 참여하지 않아도 문제가 없다. 와일드카드를 모두 소진한 후 하루라도 인증을 하지 않으면 자동으로 습관 실패 처리가 된다. { int wildcardCount = challenge.getWildcards() == null ? 0 : challenge.getWildcards().s..
JPA - Querydsl를 사용해 DTO 받는 방법
·
JPA
프로젝트를 진행하면서 조회한 도메인을 Mapstruct 라이브러리를 사용해 DTO로 매핑했었다. 하지만 점점 비즈니스 로직이 복잡해면서 매핑을 위한 코드도 같이 복잡해지다보니 도메인을 거치지 않고 DTO로 반환하는 방법이 있는지 찾아보게 되었다. 그러다 Querydsl로 DTO를 조회하는 방법을 알게 되었고 그 방법에 대해 정리해보려고 한다. Queyrdsl란?Querydsl은 JPA와 같은 ORM 프레임워크를 사용할 때 쿼리 작성을 더 편하게 해주는 라이브러리다. Querydsl을 사용하면 동적 쿼리 작성이 가능하다. Querydsl을 사용하면 SQL과 JPA의 복잡한 문법을 피할 수 있으며, 코드 작성이 간결해진다. Queyrdsl은 동적 쿼리 작성이 가능하며, 도메인 객체를 DTO로 변환하여 반환하..
Cold Bean
'분류 전체보기' 카테고리의 글 목록 (15 Page)