Window > Ports are not available 집에서는 윈도우 PC 를 사용하면서 Docker Desktop 을 이용하는데 간혹 포트를 사용할 수 없다는 문구가 나올 때가 있다. (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: An attempt was made to access a socket in a way forbidden by its access permissions. 잘 사용하고 있던 포트인데 갑자기 안되거나 껐다 켜면 또 되고 다른게 또 포트가 안되고 반복하기를... 찾아보니 매번 컴퓨터 켤 때마다 접근이 가능한 포트를 통제를 하고있던 것이였다. 명령 프.. DevOps/Docker 2024. 4. 20. 15:35
Spring Boot 3 + Swagger 3 적용 버전마다 워낙 XX 맞아서 최신 버전 적용하는 것만 기록 ... Dependency 우선 적용하려는 버전은 Spring Boot 가 3.0.5 이지만 3.x.x 면 다 될것 같다. 기존에 사용중이던 의존성이 뭐가 됐든 swagger 관련된 의존성을 삭제한다. 그리고 다음 한 줄을 추가 // swagger implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'글 작성 기준(240303) 가장 최신 버전으로 적용했다. (따끈따끈한게 좋으니까) SwaggerConfig 딱히 뭐 설정안하고 바로 쓰고 싶으면 Config 파일을 별도로 생성안해도 괜찮다. 기본적인 것은 알아서 해준다. 하지만 Info 들의 정보라던가 Secu.. Backend/Spring 2024. 3. 3. 17:28
Kibana Index Lifecycle policy 및 Snapshot policy 정리 + AWS S3 기존에 iLM 을 지정해뒀던 것 같은데 어느날 보니 모든 인덱스에 대해 풀려있었고.. 블로그엔 기록해둔 글이 없어서 작성한다. logstash 설정 먼저 kibana 를 설정하지 않고 logstash 부터 설정한다. input { kafka { consumer_threads => 8 max_poll_records => "5000" decorate_events => true auto_commit_interval_ms => 1000 partition_assignment_strategy => "round_robin" bootstrap_servers => "{kafka ip 주소}:9091" topics => [""dev-test-log", "prod-test-log"] group_id => "test" cli.. DevOps/ELK 2024. 2. 15. 18:32
치환 개수 구하기 문자열 중에 구분자를 이용하여 치환하였을 때 치환된 총 개수 구하기 SELECT CHAR_LENGTH('1, 2, 3') - CHAR_LENGTH(REPLACE('1, 2, 3', ',', '')); Database/MySQL 2023. 10. 19. 16:23
docker 용량 확인 및 정리 OS Level (Debian 계열) OS 전체 용량 확인 df -h파일별 용량 큰순서로 sudo du -sm * | sort -nr파일별 용량 읽을 수 있게 sudo du -sh * | sort -nr Docker 관련 아래 명령어는 전부 현재 실행되고 있지 않은 이미지, 컨테이너, 캐시 등을 삭제하는 명령어입니다. Docker 컨테이너, 이미지, 캐시 도커 용량 확인 docker system df --verbose도커 미사용 컨테이너 삭제 docker container prune도커 미사용 이미지 삭제 docker image prune도커 미사용 볼륨 삭제 docker volume prune도커 미사용 오브젝트 전체 삭제 (로그는 삭제 안됨) docker system prune -a Docker 로그.. DevOps/Docker 2023. 10. 12. 16:25
Static Method Mock 처리하기 엑셀 다운로드를 위해 poi 라이브러리를 사용중인데 관련 클래스 생성자에서 Workbook 을 생성하는 부분이 static 으로 처리되고 있어서 단위테스트 할 때 NPE 가 터지는 부분을 어떻게 처리 했는지 기록해보려고 한다. 외부 DI 를 직접 만들어주자 이전부터 유투브에 백기선님의 영상을 종종 보던게 있는데 외부 서비스를 호출하는 것은 어떻게 테스트할 것인가 ? (이걸 모르면 공부 제대로 하지 않았다는 말에 늘 보고 또 보고 잊어먹으면 또 보고 하던 영상) 이 있었는데 이럴 때 쓰라고 있는 것 같아서 시도해봤다. 현재 ExcelWriter 라는 클래스 생성자는 다음과 같다. public ExcelWriter(Resource resource) throws IOException { this.workboo.. Backend/Spring 2023. 10. 5. 14:46
GitHub Actions + AWS ECR + Docker CI CD 구축하기 DDD 9기 동아리 활동이 끝나고 (팀원들과는 출시까지 더 하기로함 !!) AWS 에 구축해두었던 jenkins 서버를 중지시키고 GitHub Actions 로 이동하기 위해 과정들을 정리하고자 한다. (AWS 너무 비싸) 👉 GitHub Organization 생성 먼저 DDD Organization 에서 탈주했다. 이후에 추가될 내용은 Sikdorok(서비스명 이하 식도록) 커뮤니티로 옮겨서 작업할 예정이였다. 그 이유는 Jira 를 연동해서 사용하고 싶었는데 동아리 활동 기간 중 운영진에게 요청하였으나 뭔가 제대로 연결이 이루어 지지 않았다. 아마도 운영진 계정이 직접 Jira 에 참여해야 하는 듯 하다. 그래서 신규로 조직을 구성하고 Jira 까지 연동 깔끔하게 성공 !! 👉 GitHub Acti.. DevOps/CI CD 2023. 9. 11. 22:31
Spring 3.0 Rest Docs requestParameters Removed 3.0 으로 개발하는 중 API 문서를 작성하기 위해 테스트 코드를 작성하는데 requestParameters 가 먹통이다. requestParameters( // Backend/Spring 2023. 8. 4. 13:46
Let's Encrypt + Nginx SSL(https 443) 적용하기 DDD 동아리 진행 중 API 서버의 SSL 적용이 필요해서 무료 인증서인 Let's Encrypt 를 해보기로 했다. Docker 로 Blue / Green 배포 환경이여서 Docker 자체 내에 심어야하는 줄 알았는데 그냥 nginx 기준으로 심으면 되는 거였다. Nginx 설치 아래 링크를 확인하여 설치 및 설정 Nginx 설치 Nginx Domain 설정 Ubuntu 기준 certbot 설치 Ubuntu 16.04 이하 apt-get update sudo apt-get install certbot apt-get install python-certbot-nginx Ubuntu 18.04 이상 apt-get update sudo apt-get install certbot apt-get install .. Server/Nginx 2023. 7. 29. 22:28
[GS인증] 데이터 암호화 처리 > AES-128 알고리즘 소프트웨어 품질인증 이라고 불리는 GS 인증을 받게 됐다... 모든 개인정보 데이터와 비밀번호 관련해서 암호화 작업을 할 필요가 생겨서 관련 내용을 정리하는 글이다. 개인정보 및 비밀번호 저장 시, 암호화하여 저장해야 합니다. (비밀번호는 단방향으로 암호화 되어야 하고, salt 값 등을 이용하여 동일한 비밀번호를 반복하여 생성 시, 매번 다른 암호 값이 생성되어야 함) 비밀번호 입력 5회 실패 시 잠금 장치 필요 위의 내용은 실제로 TTA 측 담당자에게 전달받은 답변이다. 개인정보 범위가 생각보다 많지는 않아서 다행이였으나, 비밀번호의 경우는 기존에 Spring Security 에서 제공하는 PasswordEncoder 를 활용하여 암호화 하고 있었기에 이 부분은 SHA-256 으로 Digest 를 생.. Backend/Spring 2023. 7. 25. 22:14