1. Redis 보안 이슈

개발 초기에 회원가입, 로그인 과정에 사용되는 키값들을 관리하기 위해 만들어 놓은 레디스 서버에 redis의 기본 포트인 6379로 봇으로 특정되는 누군가가 flushall 명령어를 날려서 해당 레디스의 key 값들을 삭제하려는 시도가 발견되었습니다. 초기 임시방편으로 비밀번호 설정 없이 구축해놨기 때문에 이러한 보안 이슈가 발생했었고 이로써 보안의 중요성을 다시금 깨달았습니다.

2. pyodbc와 Tibero6 driver 연결 이슈

pypi.org 사이트에서 pyodbc 5.0.1 버전을 사용하려면 Python 3.8 이상이 필요하다는 것을 확인하고, pyodbc 5.0.1 버전을 설치하여 실행해 보았지만 다음과 같은 오류가 발생했었습니다.

Untitled

해결 방법으로는 pyodbc 버전을 4.0.39로 낮추어 문제를 해결할 수 있었습니다.

pyodbc의 docs 내용을 토대로 설치를 진행했었고, 다른 원인으로 인한 오류가 발생했을 것이라 생각하여 해당 오류를 해결하기 위해 정말 많은 시간을 할애했었습니다.

https://github.com/mkleehammer/pyodbc/issues/1303

3. CI/CD를 위해 사용했던 Docker에서 발생했던 이슈

SpringBoot 빌드를 수행하고, 빌드된 .jar 파일을 Docker image화를 수행하여 push한 이후에, 해당 배포 서버에서 pull을 받아 실행하는 과정에서

SpringBoot에서 사용되는 application.yml 내용이 주입되지 않았다는 이슈가 발생했었습니다. application.yml 파일은 민감한 정보들을 가지고 있는 일종의 secret 파일로, 서버에서 따로 보관하고 있었는데 pull 받은 Docker image를 실행할 때 연결이 되지 않는 문제점이였습니다.

이를 해결하기 위해 application.yml 파일을 호스트 머신의 /home/ubuntu 경로에서 컨테이너 내부의 /app 경로로 볼륨 마운트를 수행하고, docker run 명령어에서 -e 옵션을 사용하여 환경 변수로 application.yml 파일을 사용하도록 전달하는 명령어를 통해 해결할 수 있었습니다.

Untitled