SSL/TLS 통신은 인터넷에서 데이터를 안전하게 주고받기 위해 사용한다. 특히 mTLS(Mutual TLS)는 서버와 클라이언트가 서로를 인증하여 보안 수준을 더욱 강화한다. 이 글에서는 OpenSSL과 KeyTool을 사용하여 인증서를 발급하고, 이를 Java 애플리케이션에서 관리하며 mTLS를 설정하는 방법을 간단히 정리한다.주요 개념mTLS통신을 통한 상호 인증에는 인증서를 발급하는 곳(CA), 인증서, 인증서를 검증하는 방법이 필요하다.인증서를 발급하는 방법은 OpenSSL과 KeyTool을 사용해서 사설인증서를 직접 발급하는 방법과, 외부 CA에서 발급받는 방법이 있다. 테스트를 위해서 OpenSSL을 통해서 발급받는 방법을 사용했다. SSL(Secure Sockets Layer)웹사이트와 브..
프로젝트에서 MongoDB를 쓸 일이 있어서 개인노트북에 환경세팅을 하던 중에 발생한 문제와 이를 해결한 방법. 그러면서 알게된 mongod, mongos, mongosh(mongo) 명령어에 대해서 정리해보려고한다. 1. 발생한 문제 ( CMD창에서 mongo 명령어 미 작동 ) 먼저 다음과 같은 사이트에서 MongoDB를 다운로드 받았고, 환경변수에 추가했다. https://www.mongodb.com/try/download/community Try MongoDB Community Edition Try MongoDB Community Edition on premise non-relational database including the Community Server and Community Kubern..
PostgreSQL 이란 ? PostgreSQL 설치하기 1. 공식 다운로드 페이지 접속해서 다운로드 공식 다운로드 페이지 링크 : https://www.postgresql.org/ Download 버튼을 클릭하여 OS 선택 페이지로 이동 나는 Windows에 설치할 것이기 때문에 Windows를 클릭했다. 그럼 다음 이미지와 같은 페이지를 볼 수 있으며, 본인 OS Version 맞는 PostgreSQL Version을 확인하고 zip archive 버튼을 눌러서 버전 별 zip file 다운로드 페이지로 이동한다. 이후 확인한 버전에 맞는 PostgreSQL zip file을 다운로드한다. 그럼 다음과 같은 파일이 다운로드 된다. 2. 다운로드한 postgresql 설치파일 실행 처음 설치할때는 Po..
브랜치 전략이란? 브랜치를 생성하지 않고, 바로 main에서 작업을 한다면 바로 배포를 해야하는 main에서 불완전한 여러개의 commit이 들어오거나, 내가 작업 중 일때, 다른 팀원이 내 작업파일을 건드릴 수 도있습니다. 그렇게 될 경우 관리도 어렵고 롤백도 어려워집니다. 브랜치를 생성한다면 각각 독립적인 환경에서 개발을 진행 할 수있고, 여러사람이 각각 다른 기능을 개발하는 등 병렬 개발이 가능해집니다. 다만 이 브랜치도 무분별하게 생성하고 관리한다면 어떤 목적인지, 어디서 분기된건지 알 수 없습니다. 그렇기때문에 브랜치들을 효율적으로 관리하기 위한 workflow가 필요하고 이러한 workflow의 모범사례들이 다음에서 설명할 git, github, gitflab flow 입니다. 1. Git f..
개발자에게 유용한 사이트 및 Github Repository 정리 개발자에게 유용한 사이트와 Github Repository 링크 모음입니다. 계속 업데이트 예정입니다. 질의 응답 Stack Over Flow : 가장 큰 개발 관련 질의 응답 커뮤니티 커뮤니티 OKKY : 국내 최대 개발자 커뮤니티 jsdevkr : 국내 자바스크립트 개발자 커뮤니티 개발관련 공부 Wikidocs : 온라인 프로그래밍 서적 FreeCodeCamp : 무료 코딩학습(풀스택 웹, 머신러닝 관련 다양한 코딩과제) Github Repo visualgo : 알고리즘을 시각화해서 학습할 수 있는 라이브러리 인프런 : 무료/유료 국내 교육 사이트 개발관련 뉴스 및 최신 기술 DZone : 세계 개발관련 뉴스 사이트 infoQ : 개발..
@Configuration 이란? Spring에는 여러가지 애노테이션(Annotation)이 있다. 이 중에 @Configuration은 설정파일 생성과 Bean 등록을 위한 애노테이션(Annotation)이다. @Bean @Annotation 에 관한건 링크를 참조 : Bean Annotation 그럼 @Configuration은 어떤 역할을 할까? @Configuration의 역할 @Configuration의 역할은 다음과 같다. 1. 내부에서 Bean을 등록할 때 각 Bean이 싱글톤(Singleton) 패턴을 유지할 수 있도록 해준다. 2. Spring Container가 Bean을 관리할 수 있게 한다. 예시 코드를 보자. import org.springframework.context.annot..