업무 중 파일 업로드를 실제 서버로 파일을 보내는 대신 클라이언트에서 처리하는 방향으로 변경하면서 PreSignedUrl을 사용하게 되어 관련 내용을 정리하려고 합니다. 전 회사에서 해당 방식을 사용한다는 것은 알고 있었지만 어떻게 동작하는지 구체적으로 관심가지지 않아서 몰랐던 내용을 직접 해보면서 정리하였습니다. 😅 1. AWS IAM Role 에 S3 업로드 권한 부여 S3에 파일을 업로드 및 다운로드하기 위해서는 S3에 대한 권한을 가지고 있어야 합니다. 저는 개인적으로 사용하던 기존 User에 S3FullAccess 권한을 부여했습니다. (local AWS CLI를 통해 접근하는 User 또는 EC2에게 주어지는 Role에 권한을 추가해주면 됩니다.) * 사용자를 새로 생성한 경우 CLI 에서 접..
업무를 할 때 세션 관리 등을 위해 레디스를 많이 사용했습니다. 이미 설정이 되어 있는 상태로 사용을 했기 때문에 인증에 대해 고민하지 않았었는데 로컬에서 사용할 때 참고 링크와 같은 문제가 있다는 것을 알게 되었습니다. 따라서 로컬에서 도커를 통해 redis를 사용할 때도 username, password를 설정하는 방법을 살펴보려고 합니다. 문제의 원인 레디스 포트가 기본인 6379로 열려있고 인증없이 접근이 가능할 때 크롤러 봇에의한 해킹을 당할 수 있다고 합니다. 그러나 기본적으로 사용하는 포트를 바꾸는 것은 좋지 않은 해결책이라고 생각하여 인증을 추가하기로 하였습니다. 인증 추가 방법 requirepass option을 통한 패스워드 설정 Redis ACL system을 이용한 username,..
업무를 하던 중 백엔드 애플리케이션에서는 String으로 사용하던 날짜를 DB 컬럼에 넣어야하는 경우가 발생했습니다. DB는 PostgreSQL이고 컬럼 타입은 Timestamp 였습니다. 서비스 단에서 String to LocalDatetime 으로 변경할까도 고민했지만 서버와 DB의 타임존이 일치하지 않아 혼란을 일으킬 것 같다는 생각이 들었습니다. 해당 프로젝트에서는 MyBatis를 통해 직접 쿼리를 작성하고 있었기 때문에 저장 시 쿼리에서 타입을 변경하는 방안을 고려하였습니다. PostgreSQL 은 timestamp 컬럼에 값을 넣을 때 ::timestamp 라는 값을 뒤에 적어주면 변경된다는 것을 알 수 있었습니다. 다음은 CUD 문법에서 string을 timestamp로 변경하여 적용하는 방..
업무를 하면서 테스트 코드를 작성하다보니 동일한 메서드 형태를 매번 생성해야 하는 경우가 발생했습니다. 이를 템플릿화 하여 조금 더 편하게 사용할 수 있도록 IntelliJ가 제공하는 Live Template을 사용해보도록 하겠습니다. 라이브 템플릿 생성하기 1. Settings/Preferences > Editor > Live Templates로 이동 2. 목록에서 템플릿을 추가할 그룹 선택 (user를 선택하는데 그냥 + 눌러서 생성하면 바로 user 그룹에 추가됩니다.) 3. + 버튼 클릭 > Live Template 선택하여 추가 선택한 그룹 아래에 템플릿이 생성되면 원하는 내용을 작성합니다. Abbreviation : 사용할 단축어 (ex: soutv) Description : 단축어 설명 (o..
최근 프로젝트 초기 구조를 잡는 일을 하면서 공통 응답과 에러 처리에 대해 고민하게 되었습니다. 지금까지는 이미 만들어진 서비스의 소스 코드를 수정하고 일부 신규 기능을 개발하는 업무를 주로 했기 때문에 기존에 사용하던 응답과 에러 처리 방식을 사용했고 해당 부분에 대해 고민하지 않았던 것 같습니다. 오늘은 프로젝트의 기본이 되는 예외 처리를 Spring Boot가 어떻게 처리하도록 지원하는지 정리해보겠습니다. API 개발에서 최종적으로 저는 @ExceptionHandler 와 @RestControllerAdvice 를 사용할 예정이지만 그 전에 어떤 식으로 예외 처리가 될 수 있는지 차근차근 알아보겠습니다. 1. 스프링의 기본적인 예외 처리 방법 Spring은 만들어질 때(1.0)부터 에러 처리를 위한..
- Total
- Today
- Yesterday
- ECR
- 에라토스테네스의 체
- programmers
- Dynamic Programming
- BFS
- EC2
- map
- CodeCommit
- spring
- 조합
- 수학
- 순열
- CodeDeploy
- DFS
- Algorithm
- CodePipeline
- 프로그래머스
- Baekjoon
- string
- 소수
- search
- Combination
- ionic
- array
- cloudfront
- permutation
- SWIFT
- java
- AWS
- sort
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |