업무를 할 때 세션 관리 등을 위해 레디스를 많이 사용했습니다. 이미 설정이 되어 있는 상태로 사용을 했기 때문에 인증에 대해 고민하지 않았었는데 로컬에서 사용할 때 참고 링크와 같은 문제가 있다는 것을 알게 되었습니다. 따라서 로컬에서 도커를 통해 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로 변경하여 적용하는 방..

MySQL 서버 전체 구조 MySQL 서버는 머리 역할을 하는 MySQL 엔진과 손발 역할을 하는 Storage 엔진으로 구성되어 있고 MySQL 엔진은 핸들러 API를 통해 Storage 엔진에 요청을 보냅니다. MySQL 엔진 요청된 SQL 문장을 분석하거나 최적화하는 등 DBMS의 두뇌에 해당하는 처리를 수행하며 다음과 같은 구성 요소를 가집니다. 커넥션 핸들러: 클라이언트로부터 접속 및 쿼리 요청을 처리 SQL 파서 전처리기 옵티마이저: 쿼리의 최적화된 실행 핸들러 API MySQL 엔진의 쿼리 실행기에서 데이터를 쓰거나 읽어야 할 때 각 스토리지 엔진에 쓰기 또는 읽기를 요청하는데 이를 핸들러 요청이라고 하고 이때 쓰이는 API가 핸들러 API입니다. 핸들러 API를 만족하는 새로운 스토리지 엔..

회사에서 최근 데이터를 블록체인에 저장하려고 하면서 관련된 새로운 API 서버와 연동을 해야하는 작업을 진행했었습니다. 기존 로직과 동일하긴 하지만 부분 부분 수정이 필요하였고 그러다보니 재개발 수준까지 가게 된 것 같습니다... 이쯤되니 잘 모르긴 해도 신규 개발에 맞는 아키텍처가 필요했고 클라이언트, 외부 서비스와 연동하면 자주 변경되는 요청, 응답 부분과 비즈니스 로직을 분리할 필요를 더 절실하게 느끼게 되었습니다. 그래서 새로운 아키텍처를 고민하던 중 헥사고날 아키텍처를 알게 되었고 이를 적용해본 과정에 대해 적어보려고 합니다. 헥사고날 아키텍처 (Hexagonal Architecture) 사전적 의미로는 "육각형 건축물"을 뜻하는 헥사고날 아키텍처(=포트와 어댑터 아키텍처(Ports and Ad..

회사에서 위,경도 좌표를 가지고 주소를 얻어내는 API를 개발할 일이 생겼습니다. 주소를 얻는 방법은 여러가지가 있겠지만 이번에는 Kakao 주소 API를 활용해 보려고 합니다. https://developers.kakao.com/docs/latest/ko/local/dev-guide#coord-to-district Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 1. 카카오 developer 사이트에 접속해서 애플리케이션을 만들고 앱 키 중 RESTful API 키를 복사해둡니다. 2. 아래와 같이 코드를 작성합니다. @Service publi..
- Total
- Today
- Yesterday
- 수학
- DFS
- cloudfront
- Algorithm
- search
- 조합
- permutation
- Dynamic Programming
- CodeCommit
- array
- map
- 프로그래머스
- EC2
- java
- SWIFT
- AWS
- sort
- CodePipeline
- Combination
- programmers
- ionic
- 소수
- 순열
- BFS
- string
- CodeDeploy
- 에라토스테네스의 체
- ECR
- spring
- 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 |