업무를 할 때 세션 관리 등을 위해 레디스를 많이 사용했습니다. 이미 설정이 되어 있는 상태로 사용을 했기 때문에 인증에 대해 고민하지 않았었는데 로컬에서 사용할 때 참고 링크와 같은 문제가 있다는 것을 알게 되었습니다. 따라서 로컬에서 도커를 통해 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)부터 에러 처리를 위한..
MySQL 서버 전체 구조 MySQL 서버는 머리 역할을 하는 MySQL 엔진과 손발 역할을 하는 Storage 엔진으로 구성되어 있고 MySQL 엔진은 핸들러 API를 통해 Storage 엔진에 요청을 보냅니다. MySQL 엔진 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행하며 다음과 같은 구성 요소를 가집니다. 커넥션 핸들러: 클라이언트로부터 접속 및 쿼리 요청을 처리 SQL 파서 전처리기 옵티마이저: 쿼리의 최적화된 실행 핸들러 API MySQL 엔진의 쿼리 실행기에서 데이터를 쓰거나 읽어야 할 때 각 스토리지 엔진에 쓰기 또는 읽기를 요청하는데 이를 핸들러 요청이라고 하고 이때 쓰이는 API가 핸들러 API입니다. 핸들러 API를 만족하는 새로운 스토리지 엔..
- Total
- Today
- Yesterday
- permutation
- 조합
- map
- CodePipeline
- string
- DFS
- Algorithm
- 에라토스테네스의 체
- AWS
- 수학
- BFS
- 프로그래머스
- Dynamic Programming
- Combination
- cloudfront
- CodeDeploy
- CodeCommit
- programmers
- EC2
- spring
- SWIFT
- 순열
- search
- java
- array
- ECR
- ionic
- sort
- 소수
- Baekjoon
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |