Develop
17NGINX URL 재작성 방법
안녕하세요, PSJ입니다. 오늘은 NGINX의 url 재작성 방법을 알아보겠습니다. 모든 웹서버 제품들 마다 동일한 기능을 제공하고 있죠, 제 경우에는 사용하는 NAS 기본 웹 서버가 NGINX로 되어 있어 해당 웹서버에 특정 조건을 만족할 경우 다른 url로 이동시켜야 할 일이 있었고, 시간이 지나면 배고파서 까먹는 저를 위해 기록으로 남겨두고자 합니다. NGINX는 URL을 재작성하는 2가지 방법을 제공합니다. return 및 rewrite 문입니다. return (URL Redirect) return 문은 rewrite 보다 간편합니다. server 또는 location 컨텍스트에 return 문을 사용할 수 있으며, client 리소스에 대한 재작성된 URL을 정의해야 합니다. 무슨 말인지 모르겠..
Develop/Linux 2023.06.13 PSJco마크다운, 문법 총정리
안녕하세요, PSJ입니다. 오늘은 개발 및 블로그(Tistory) 포스팅시 활용할 수 있는 마크다운(Markdown) 문법에 대해 정리해 보려고 합니다. 마크다운은 개발시에는 문서작업 용도로 많이 사용되고 있죠, GitHub 이나 GitLab에 README 파일을 작성할때나 간단한 문서를 만들때 가볍게 사용하는 용도로 많이 사용되고 있습니다. 또한, Tistory 블로그의 경우 마크다운을 통한 포스팅이 기능을 가지고 있어서 요즘 일부 포스팅에는 마크다운 에디터를 통해 작성을 해보려고 시도하고 있습니다. 마크다운이란? 마크다운(markdown)은 일반 텍스트 기반의 경량 마크업 언어다. 일반 텍스트로 서식이 있는 문서를 작성하는 데 사용되며, 일반 마크업 언어에 비해 문법이 쉽고 간단한 것이 특징이다. H..
Develop 2021.03.30 1 PSJcoLinux, 알아두면 쓸모 있는 명령어!
안녕하세요, PSJ입니다. 이번 포스팅은 Linux 서버를 운영하면서 아주 가끔 사용하게되는 명령어들을 하나씩 정리해 보려고합니다. "알쓸리명!" - 알아두면 쓸모있는 리눅스 명령어! 지극히 개인적인 필요에 의해 지속적으로 업데이트될 예정입니다. ^^ - 폴더별 용량 확인 서버 운용중 디스크 용량이 가득차는 경우가 있는데, 어떤 폴더에서 용량을 많이 사용하고 있는지 확인할때 유용하게 사용할 수 있는 명령어입니다. ## 하위 폴더별 용량 확인 $ du -sh * ## 하위 1depth 폴더별 용량 확인 $ du -h --max-depth=1 * - 서비스 포트 확인 서버 운용중 어플리케이션이나 서비스에서 현재 Listen 하고있는 Port 확인이 필요한 경우 사용 할 수 있는 명령어입니다. ## $ net..
Develop/Linux 2021.03.29 PSJcoJava, Heap Dump 파일 분석하기!
안녕하세요, PSJ입니다. 오늘은 Java Application을 운영하다 보면 가끔 발생될 수 있는 메모리 누수나, OOM(Out Of Memory Error)을 Heap Dump 분석을 통해 확인하는 방법을 포스팅하려 합니다. 사실 어제 팀에서 운영 중인 웹 어플리케이션의 서버 한대에 컨테이너가 Down 되는 문제가 발생했습니다. 원인을 확인하는 과정에 Heap Dump 파일을 분석할 일이 생겼고, 넘어진 김에 쉬어가라고.. 이번 기회에 정리해 보려고 합니다. 우선 메모리 누수의 경우 개발 단계에서 관련 테스트를 충분히 수행하지 않는 경우 잡아내기 어려운 문제입니다. Production 환경과 개발 환경의 데이터 및 환경의 차이로 Develop에서는 정상 작동하던 것도 운영 환경에서는 오류가 발생할 ..
Develop/Java 2021.03.16 1 PSJcoLinux, NFS 마운트 하기
안녕하세요, PSJ입니다. 오늘은 Linux 서버에 NFS(Network File System)을 Mount 하는 방법을 공유해보려 합니다. 먼저 공유할 서버 측 작업입니다. 1. NFS 서버 설정 NFS Package 설치 확인 후 미설치 시 설치를 진행합니다. ## yum package 설치여부를 확인해서 설치되지 않았을경우 설치 진행 # yum list installed | grep nfs-utils # yum install nfs-utils Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.kakao.com * epel: ftp.jaist.ac.jp NFS Package 설치가 완료되면 서비..
Develop/Linux 2021.02.01 PSJcoGitLab, NGINX SSL 인증서 적용
안녕하세요, PSJ입니다. 오늘은 업무환경에서 GitLab을 설치형으로 사용 중인데, 여기 SSL 인증서를 갱신하는 작업을 진행했는데요. 내부망에서 사용하는 시스템이라 사설 인증서를 OpenSSL을 통해 생성해서 사용했었는데, 정식 인증서를 발급받아 적용했습니다. GitLab의 경우 기본 WebServer로 NGINX를 사용하고 있습니다. 또한 SSL은 Let's Encrypt를 지원하고 있어서 설정만 켜게 되면 자동으로 SSL 인증서를 적용해 주죠. 하지만, 그마저도 외부와 차단된 네트워크 환경에서는 적용이 불가능합니다. 내부망에서 사용하는 WildCard 인증서가 있어 GitLab에 적용해 보겠습니다. 사실 포스팅을 할만한 내용도 없습니다. 일반적으로 SSL인증서의 경우 패스워드가 존재합니다. CSR..
Develop/DevOps 2021.01.25 2 PSJcoHyper-V, Linux 디스크 용량 늘리기!
안녕하세요, PSJ입니다. 오늘은 Hyper-V VM 환경에 설치한 Linux(CentOS 7)에 디스크 확장이 필요해서 작업한 내역을 기록할 겸 포스팅합니다. ※ 신규 디스크 추가가 아니라, 기존 VHDX 파일의 용량을 확장해서 Linux 파일 시스템에 적용하는 방법입니다. 기준 환경 - Hyper-V, CentOS 7 - SCSI 하드드라이브 - GPT (FSType), LVM 먼저 Linux 초보 분들은 LVM의 구조부터 한번 보시고 작업하시면 좋을 거 같습니다. 먼저 Linux에서 2TB 이상의 디스크를 사용하기 위해서는 GPT 파티션을 이용해야 합니다. 기존 환경이 GPT 파티션을 사용하고 있어서 용량 확장 시 Parted라는 툴을 이용해서 진행했습니다. 우선 구성된 Linux의 파티션 정보 l..
Develop/Linux 2021.01.22 PSJcoJava, SSL 통신 체크하기!
안녕하세요, PSJ입니다. 오늘은 업무 중에 운영서버에서 SSL 통신 여부를 확인할 필요가 있었습니다. 보통 Linux 서버에서는 curl을 통해서 체크를 할 수 있습니다. $ curl -v https://www.naver.com 이렇게 "-v 옵션"을 통해서 SSL 통신에 사용하는 인증서를 확인할 수 도 있고요. 하지만, curl의 경우 OS 레벨의 SSL 통신은 체크 가능하지만, JAVA Application 레벨에 SSL 통신 체크할 수 없습니다. JAVA의 경우 별도 SSL 모듈을 사용하기 때문이죠. Java에서는 기본적으로 유효한 CA 인증기관의 인증서들을 cacerts라는 별도 키 저장소에 저장해 관리하고 있습니다. 일반적으로 대부분 CA(중계기관) 인증서를 포함하고 있습니다. 하지만, 제 업..
Develop/Java 2021.01.18 PSJcoJava, SSL 사설 인증서 등록하기!
안녕하세요, PSJ입니다. 오늘은 Java Application 개발 중 Server to Server 통신을 하는 경우가 간혹 있는데요. 이때 SSL(HTTPS) 통신을 하게 되는 경우도 많습니다. 일반적인 상황에 정상적인 인증서를 사용한다면 그냥 통신이 되어야하지만, 제 업무환경과 같은 내부망에 SSL 모니터링을 위한 설루션을 사용하거나, 사설 인증서를 사용하는 서버와 통신을 하는 경우에는 통신에 오류가 발생할 수 있습니다. 이를 해결하는 방법을 정리합니다. javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: 오류의 원인은 Java는 SSL 통신을 수행할때 OS의..
Develop/Java 2021.01.18 PSJco노션, 업무 관리와 보고를 한번에!
안녕하세요, PSJ입니다. 다들 즐거운 하루 보내셨나요? 오늘은 최근 무료 정책 도입으로 "최강의 노트 앱"으로 각광받고 있는 "노션(Notion)"의 활용법에 대해 포스팅 해보려 합니다. 회사일을 하시는 분들이라면 업무보고 매주/매월 진행하실 겁니다. 이런 업무보고는 일을 위한 일이 되기 싶습니다. 자기가 한 주간 또는 한 달간 진행한 업무에 대해서 문서로 작성해서 보고하는 일은 여간 귀찮은 일이 아닐수 없는데요. 이러한 귀찮은 일을 "노션"을 통해 조금더 원활하고 효율적으로 할 수 있는 방법에 대해 이야기해보려 합니다. 제가 일하는 직장 기준으로 주간/월간 보고를 진행하는 기존의 문서양식을 기준으로, 노션으로 대체하는 방안을 살펴볼 건데요. 다른 회사에서도 충분히 일부 수정을 통해 적용 가능할 것이라..
Develop 2021.01.05 2 PSJcoVSCode, GitLab 연동하기
안녕하세요, PSJ입니다. 오늘은 최근 제가 최애 하는 IDE인 "Visual Studio Code"(이하 VSCode)를 Git(GitLab)을 연동하는 방법을 포스팅해 볼게요. github이 MS에 인수되면서, VSCode에는 github 연동은 아주 간단하게 가능합니다. 반면 GitLab의 경우 연동방법을 다루는 곳도 잘 없어서, 직접 정리해 보려고요. 물론, git 연동이라는 점에서는 별반 다르지 않습니다. #1. GitLab 프로젝트 생성 먼저, GitLab 에 프로젝트를 하나 만들어주세요. (가입은 되어있어야겠죠? https://gitlab.com) - 프로젝트 이름 : "TestProject" - 프로젝트 URL 및 슬러그 : "testproject" (자동생성, 변경 가능) - 프로젝트 설..
Develop 2020.12.31 PSJcoSSL인증서, 재발급 없이 형식 바꾸기 PEM to JKS
안녕하세요, PSJ입니다. 오늘은 HTTPS 통신 시 사용되는 SSL(SSecure Socket Layer) 인증서 포맷을 바꾸는 방법을 알아보겠습니다. (서론은 거창하지만, OpenSSL & Keytool 을 이용해서 명령어 몇 줄 입력하는 게 전부입니다 ^^;;) #1. 서론 인증서 파일의 경우 인코딩 방식과 확장자가 일치하는 경우도 있고, 그렇지 않은 경우도 있기 때문에 사용 시 혼란스러울 때가 있는데요. 그래서 아래와 정리해 봤습니다. 먼저 X.509 공개키 암호화 방식에는 대표적으로 두 가지 인코딩 체계를 사용합니다. PEM과 DER인데요. X.509 란? 암호학에서 공개키 인증서와 인증알고리즘의 표준 가운데에서 공개 키 기반(PKI)의 ITU-T 표준이다. Encoding 체계 특 징 PEM ..
Develop 2020.12.28 2 PSJco