분류 전체보기

Programming/Server

[Shell Script] SSH 연결 시 Bad Permission Key

AWS에 있는 EC2 인스턴스나, 다른 서버에 인증서 키 파일을 통해 SSH 접근을 하는 경우 아주~ 가끔 아래와 같은 에러를 만나볼 수 있다. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0755 for './{key_name}' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignore..

Programming/Server

[Shell Script] Docker 컨테이너별 이름과 Docker IP 리스트 출력

회사에서 개발을 하다가, 특정 서버가 유레카 서버에 잘못 등록된 걸 알게 되었다. 현재 유레카 서버에는 각 서비스들이 Docker Container IP로 등록되고 있어, 서비스 명과 Docker IP 정보로만 대상 서버를 찾아야 했다. 문제는 개발서버에 컨테이너가 40개 넘게 돌고 있었고, docker inspect로 서비스 명을 입력해서 일일이 찾기 너무 귀찮았다. 그래서 모든 구동 중인 컨테이너 서비스의 이름과 docker ip를 출력하는 간단한 스크립트를 짜 봤다. docker ps -q | xargs -n 1 docker inspect --format 'CONTAINER_NAME: {{ .Name }} ---> {{range .NetworkSettings.Networks}}{{.IPAddress..

Programming/Spring

[Spring Cloud] Spring Cloud Gateway - 다운스트림 로그 확인

회사에서 Spring Cloud Gateway를 기반으로 Gateway 서버를 개발하고 잘 운영하고 있었는데, B2B로 서버를 납품했을 때 문제가 발생했었다. 부산에서 제주도에 위치한 서버 API를 호출하는데, 지연 시간이 적게는 5초에서 길게는 15초에서 20초 사이였다. 사실 서버의 문제라기 보다는 네트워크 망의 문제인 것 같은데, 납품되는 곳이 제주도에 위치한 IDC 센터이고, 국정원에서 보안감사를 하고 있어서 패킷 덤프 뜰 수도 없어, 일단 Gateway 서버와 다운 스트림(엣지 뒤에 있는 서비스 서버) 간의 request response 시간대를 보고자 로그를 볼 필요성이 있었다. 감사하게도, Spring Cloud Gateway에서는 해당 기능을 제공하고 있다. cloud.spring.io/s..

Programming/Algorithm

[30 Days of Code] 0: Hello, World

Objective In this challenge, we review some basic concepts that will get you started with this series. You will need to use the same (or similar) syntax to read input and write output in challenges throughout HackerRank. Check out the Tutorial tab for learning materials and an instructional video! Task To complete this challenge, you must save a line of input from stdin to a variable, print Hell..

Programming/Database

[Redis] 여러 키 한번에 삭제하기

개발 서버에 있는 Redis에 저장된 데이터를 한 번에 지우고 싶은데, 데이터가 너무 많아서 난감한 가운데 찾은 방법을 공유해본다. redis에서는 키값을 기반으로 데이터를 지우는 del 명령어를 지원하는데, 명령어 이용방식은 다음과 같다. del [key1] [key2] [key3] ... 내가 지우고 싶은 데이터가 저장된 키의 형태는 다음과 같았다. BlockToken: redis에서는 keys 명령어를 통해 키값으로 저장된 데이터를 조회할 수 있으며, glob-style pattern을 통해 키를 조회할 수 있다. redis.io/commands/keys KEYS – Redis Returns all keys matching pattern. While the time complexity for thi..

Programming/Server

[OpenSSL] openSSL로 SSL 인증서 내용 확인해보기

가끔 SSL 인증서가 잘 발급되었는지, 어디서 발급되었고, 어느 사이트를 대상으로 발급되었는지 확인해야 하는 경우가 발생할 수도(?) 있다. 사실 나는 사설 SSL 인증서를 만들고 개발 서버를 운영하고 있었는데 IOS Safari에서 Websocket 연결 시 SSL CA 인증 에러가 났다고 전달받아서 확인해본 케이스이다. openssl을 통해 인증서 내용을 확인하는 명령어는 다음과 같다. echo | openssl s_client -connect 한번 네이버가 사용하고 있는 ssl 정보는 어떤지 확인해보자. 내용이 엄청 나오는데, 확인하고 싶은 내용은 grep 명령어를 통해 잘 확인해보자. 나는 첫번째로 해당 ssl이 어느 사이트를 대상으로 발급되었는지 확인해보고 싶었다. 이런 경우 subject를 확..

Programming/Algorithm

[Mysql] 프로그래머스 - GROUP BY입양 시각 구하기(2)

programmers.co.kr/learn/courses/30/lessons/59413 코딩테스트 연습 - 입양 시각 구하기(2) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr 풀이: SET @hour := -1; SELECT (@hour := @hour + 1) as HOUR, (SELECT COUNT(ANIMAL_ID) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) as COUNT FROM ANIMAL_OUT..

Programming/Server

Spring Boot Application Docker Image 만들기(1) - Dockerfile

현재 내가 일하고 있는 회사의 서버팀에서는 Spring Boot 기반으로 모든 API 서버를 만들며 (목적에 따라 Node 또는 Go, C++로 작성된 서버도 있다.) Docker를 이용하여 애플리케이션을 배포하고 있다. Spring Boot 프로젝트를 어떻게 Docker Image로 만드는지 간단하게 예시와 설명을 해보겠다. 1) spring boot 프로젝트 만들기 우선 간단하게 Spring Boot 프로젝트를 만들어보자. spring boot 2.3.4 기반의 gradle 프로젝트이며, build.gradle에 사용된 라이브러리는 다음과 같다. plugins { id 'org.springframework.boot' version '2.3.4.RELEASE' id 'io.spring.dependenc..

JohnMark
'분류 전체보기' 카테고리의 글 목록 (4 Page)