신입사원 일기 (11) 썸네일형 리스트형 [Mac] java 설치하기 open jdk 21 맥에 java jdk 21 버전을 설치해야 할 기회가 생겼습니다. homebrew를 통해서 설치하고 현재 설치되어있는 여러 버전의 jdk를 명령어를 통해서 변경해가면서 사용하는 방법에 대해 기술해보도록 하겠습니다. 1. homebrew를 통해 open jdk 21 버전 설치설치할 수 있는 jdk 버전 확인하기brew search jdk openjdk@21 설치하기brew install openjdk@21 2. 심볼링 링크로 openjdk 를 macOS의 Java Virtual Machine 디렉토리에서 사용할 수 있도록 설정openjdk21 버전이 설치되는 경로는 /opt/homebrew/opt/ 하위에서 확인할 수 있습니다. 그리고 macOS의 java virtual machine 경로는 /Libra.. [TIL] 랜덤 시크릿 키 생성 (openssl rand) 미니프로젝트를 진행하다가 JWT Secret Key를 사용해야하는 경우가 생겼습니다.간단하게 JWT Secret Key 에 대해서 제가 알아본 바를 정리하고 Secret Key를 생성할 수 있는 openssl 명령어를 소개하도록 하겠습니다. JWT Secret Key JWT (JSON Web Token) 에서 Secret Key를 사용하는 이유는 보안성을 확보하기 위해서입니다. JWT는 서버와 클라이언트 간에 정보를 안전하게 전달하기 위한 토큰 기반 인증 메커니즘으로, Secret Key는 JWT의 서명을 생성하고 검증하는 데 사용됩니다. Random Key JWT Secret Key 로 사용하기 위해 랜덤 키를 프로젝트에 세팅해줘야 하는데 안전한 비밀키를 생성하고 관리하기 위해서는 충분한 길이와 복잡성.. [Linux] 터미널 색상코드 vi 에서 설정하기 shell 을 실행할 때 원하는 색으로 터미널에 뿌려졌으면 좋겠다고 생각했고 회사 분의 도움을 받아 터미널 색상코드를 지정하는 법을 알아낼 수 있었습니다!! colorFile.sh #!/usr/bin/bash red='^[[1;31m' colorReset='^[[0m' #red='\033[1;31m' #colorReset='\033[0m' echo $red"Color Red"$colorReset 위 처럼 shell을 만들고 실행하면 문자열이 빨간색으로 나오는 것을 확인할 수 있습니다. red='^[[1;31m' colorReset='^[[0m' 다음과 같이 색상 코드를 vi 파일에 설정할 때 그냥 따라하게 되면 색상코드가 적용되지 않을 텐데 ctrl + v를 입력하고 ctrl + [ 를 입력하게 되면 이.. [Java] HeapDump 파일 경로 지정하기 openjdk환경, IBM환경 프로세스에 문제가 생겨 프로세스가 돌고 있는 경로에 heapdump, core 파일, javacore 파일이 생성되었고, 하필이면 그 경로가 할당되어있는 디스크 메모리가 작아서 프로세스를 결국 중단하고 재기동해야하는 상황에 놓였습니다. 해당 현상을 해결하기 위해서 heapdump가 생성되는 경로를 지정하는 JVM 옵션이 무엇일까 찾아보게 되었습니다. 현재 테스트한 환경은 Mac M1 air 이고 설치되어있는 java version은 openjdk 11 입니다. 무한 루프 소스 public class InfiniteLoopProcess { public static void main(String[] args) { startInfiniteLoop(); } private static void startInfin.. [Linux] 특정 포트로 tcpdump 뜨기 DB에 연결되어있는 세션의 상태를 확인하기 위해서 tcpdump를 떠야하는 일이 생겼습니다. 처음에는 루트계정으로 뜰 수 있었고 다음에는 계정에 tcpdump를 뜰 수 있는 권한을 받아서 떠야했는데 매번 찾아보는 것이 귀찮아서 간단하게 정리해보도록 하겠습니다. 예시로 맥 터미널에서 명령어를 실행했지만 리눅스 터미널에서 아래와같이 ifconfig 명령어를 실행하면 인터페이스 목록을 확인할 수 있고 그 중에서 tcpdump를 뜰때 사용할 네트워크 인터페이스를 확인할 수 있습니다. tcpdump를 뜨기 위해서는 root계정으로 명령어를 실행하거나 사용하는 계정에 tcpdump를 뜰 수 있는 권한을 주면 됩니다. 아래의 명령어를 실행하여 만들어진 파일을 와이어샤크를 통해 분석하면 됩니다. # : 네트워크 인터페.. [Linux] Port 번호로 PID 확인하기 (netstat, lsof) mysql db와 연결되어있는 port가 어떤 프로세스를 사용하는지 확인해야 하는 경우가 있었습니다. 해당 명령어를 자주 사용할 것 같아서 netstat의 옵션을 사용하여 알아보는 방법과 lsof를 사용하여 알아보는 방법을 기록하도록 하겠습니다. netstat -anltp # ex) 41502 포트의 정보를 알아보고 싶을 때 netstat -anltp | grep 41502 해당 명령어를 수행하면 검색한 포트에 대하여 PID/Program name 에 대한 정보도 확인할 수 있습니다. 명령어를 실행한 계정에서 돌아가고있는 프로세스에 대해서만 PID가 나오기 때문에 모든 정보를 확인하고 싶으면 root 권한으로 확인해야 합니다. PID를 확인했다면 다음의 명령어를 통해 어떤 프로세스인지 자세하게 확인 가능.. [Linux] 일자별로 파일 삭제하기 (mtime) 개발 서버를 확인하던 중 특정 폴더에서 로그파일들이 많이 적재되어있는 것을 확인했습니다. 몇만건 이상의 파일 중에서 최근일자를 제외하고 모두 삭제하기 위해 파일을 정리해주는 데몬을 살펴보던 중 mtime이라는 명령어를 확인하게 되었습니다. mtime 이란? 파일의 데이터가 마지막으로 수정된 날짜와 시간 (일 지정) 해당 명령어를 통해 특정 기간에 작성, 변경된 파일 목록을 조회할 수 있습니다. -mtime n 살펴보기 특정 기간에 작성, 변경된 파일 목록을 조회하기 위해서 find 명령어에 -mtime 옵션을 조회하고 싶은 일자로 함께 조회합니다. # 6월 22일 밤 10시 기준 $ find -mtime -2 # 2일(24시간)전 ~ 현재시간 -> 6월 20일 밤 10시 ~ 현재 $ find -mtime.. [mysql] sleep session과 wait_timeout 요 몇주간.. 골머리를 썩었던 DB와의 사투를 적어보려 합니다.. - 문제 상황 : 서비스 내부에서 주기적으로 특정 테이블을 조회하는 쿼리가 있는데 해당 쿼리를 실행할 때 기준 없이 15분간 행이 걸리는 현상이 발생하였습니다. - 해결 시도 : 특정 쿼리에서만 발생한다고 생각하여 행걸리는 쿼리를 메모리에 올린 후 테스트 해봤지만 이번에는 그 다음 쿼리에서 발생하였습니다. 따라서 특정 쿼리에서 발생하는 것이 아니라 DB에 connection할 때 문제가 생기는 것은 아닐까 생각하게 되었습니다. - 원인 파악 과정: netstat netstat -an | grep 3306 | grep EST 해당 명령어를 통해 DB에 붙어있는 세션을 검사하던 중 send-q 부분에 계속해서 버퍼가 빠지지 않는 것을 확인했습.. 이전 1 2 다음