본문 바로가기

Dev/etc

(9)
[etc] Web Server https 적용 매뉴얼 이번 포스팅에서는 배포된 프로젝트에 https를 적용하는 방법에 대해 다룹니다. https란 Hypertext Transfer Protocol Secure의 약자로 웹 사이트 내에서 주고받는 데이터가 암호화되지 못해 보안이 떨어지는 http를 보완하기 위해 탄생한 프로토콜입니다. 요즘에는 매우 보기 드물어졌지만 http를 사용하는 웹사이트는 브라우저에서 아래와 같이 보안이 취약하다는 경고를 띄워줍니다. http는 데이터 암호화가 되지 않기 때문에 불순한 의도에 의해 도중에 데이터가 오염될 가능성도 있고 유출될 가능성이 있습니다. 또한 구글에서도 http를 사용하는 웹사이트에 대해 검색 우선순위를 떨어뜨리는 등의 페널티를 부여하기도 합니다. 본 포스팅은 nginx를 기준으로 작성되었지만 약간의 응용이 있다..
[etc] Ubuntu - visual studio code 설치 스크립트 종종 가상 머신을 이용해 개발을 진행해야 할 때가 있습니다. 이유는 다양하겠지만 저의 경우 주로 사용하고 있는 PC의 개발 환경을 변경하고 싶지 않아서가 주된 이유입니다. 때로는 이를테면 개발언어 버전을 다르게 해야 할 때가 있겠죠. 그때마다 일일이 명령어로 저장소를 추가하거나 파일 위치를 옮기는 게 여간 귀찮은 일이 아닙니다. 따라서 해당 작업을 한번에 수행하는 매크로 성 스크립트를 기록하고자 합니다. 앞으로 간단히 설치하기 힘든 IDE나 기타 개발 환경 구성 스크립트를 작성해 본 포스팅에 업데이트할 예정입니다. (그때마다 포스팅 제목은 변경될 예정입니다.) 당연하지만 쉘 스크립트를 작성하고 파일을 실행 모드로 만들어야 실행 가능합니다. $ sudo chmod +x [script.sh] Ubuntu -..
[Python] PyQt와 PySide에 대한 잡설 *본 포스팅에서는 PyQT나 PySide의 사용 방법에 대한 설명을 포함하지 않습니다. PyQT와 PySide 필자는 본 블로그에 따로 포스팅하지는 않지만 종종 취미 겸, 개인 사용 목적으로 윈도 애플리케이션을 만듭니다. 이를테면 사진 수집용 매크로 프로그램이라던가 폴더관리 프로그램 등 그때그때 필요한 것들을 이 녀석을 이용해 만들고 있습니다. 즉 PyQT는 파이썬 기반의 데스크톱 GUI를 개발을 위한 프레임워크입니다. 본래 PyQT와 PySide는 C++ 기반의 Qt 프레임워크에서 바인딩된 것들입니다. 이 둘은 코드의 사용방법이 99% 이상 거의 동일합니다. 그렇다면 왜 두 가지의 이름으로 프레임워크가 공존하고 있는 것일까요? 이 두 프레임워크의 차이점은 바로 개발사와 라이선스에 있습니다. PyQT와 ..
[Jenkins] Docker를 이용한 Jenkins - Spring Boot 프로젝트 배포 이번 시간에는 Docker 환경에서의 Jenkins 빌드 자동화 구축에 대해 알아보겠습니다. Docker는 OS, 프로그램 등과 같은 소프트웨어를 컨테이너라는 단위로 묶어 별도의 격리된 프로세스를 할당받아 실행시키는 가상 머신 비슷한 도구입니다. (비슷한 도구라 표현 한것은 가상 머신과는 기저 단위에서 그 개념이 다르기 때문입니다.) 이는 PC에서 게임을 실행시키기 위해서, 게임 CD를 구해 CD-ROM에 CD를 넣어 실행시키는 것과 유사한 사용 과정입니다. 호스트 PC가 Ubuntu20.04인 상태에서 Ubuntu 14.04를 사용해야하는 상황을 가정했을 때, Docker를 사용한다면 Docker Hub에서 Ubuntu 14.04 이미지를 받아와 (게임 CD를 구함) 컨테이너에 적재해 (CD-ROM에 ..
[Jenkins] Jenkins - Spring Boot 프로젝트 jar 배포 이번 포스팅에서는 빌드, 배포 자동화 툴인 Jenkins를 사용한 Spring Boot 프로젝트 jar 배포에 대해 다뤄보도록 하겠습니다. *본 포스팅은 깃, 스프링에 대한 기본적인 이해가 없는 상태에서 참고하기에는 부적절할 수 있음을 알려드립니다. 또한 본 포스팅에서는 Docker를 사용하지 않습니다. Spring Boot는 패키징을 jar와 war 방식 중 선택할 수 있습니다. war 파일은 tomcat 패키지가 필요하고 jar는 서버가 내장되어있는 패키지입니다. war 방식 배포를 한 번이라도 해보신 분들이라면 본 포스팅을 완주하시면 충분히 응용해 배포가 가능하리라 생각되므로 본 포스팅에서는 다루지 않도록 하겠습니다. 구축에 앞서, 본 예제에서 Jenkins를 사용하기 위한 구축 환경을 살펴보겠습니..
SSL connection error로 인해 외부 MySQL 접속이 안되는 문제 해결 본 기록은 우분투 리눅스를 기준으로 작성되었습니다. 터미널에서 mysql 명령어로 외부 MySQL 데이터 베이스에 접속하려 할 때, 다음과 같은 에러로 인해 접속이 안 되는 경우가 있습니다. 주로 AWS와 같은 클라우드 플랫폼에 설치 되어있는 MySQL에 접속 할 경우 발생할 수 있는 이슈입니다. ERROR 2026 (HY000): SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol 이 때는 openssl 설정 정보를 수정해 주어야 합니다. 아래의 명령어로 openssl.cnf 파일을 열고 내용을 추가합니다. $ sudo vim /usr/lib/ssl/openssl.cnf # 파일 앞..
Ubuntu Linux - MySQL Cluster8.0 구축 본 포스팅은 Ubuntu 20.04에서 Mysql Cluster 8.0을 구축하기 위한 포스팅입니다. 다른 여러 개발자 분들께서 MySQL Cluster 7.x 버전의 유익하고 훌륭한 가이드를 남겨주셨지만 8.0 버전에서의 구축 정보가 많지 않아 포스팅해봅니다. (그렇게 대중적으로 사용되는 기술은 아니라는 점도 작용하지 않았을까 조심스레 추측해 봅니다.) 예제에서는 Virtual Box에서 총 4대의 가상 머신을 만들어 구축합니다. Mysql Cluster는 1개의 관리 노드, 2개의 데이터 노드 그리고 1개의 SQL 노드를 최소 구성으로 합니다. 이를 근거한 각 PC의 스펙과 IP 분배, 구성 정보는 아래와 같습니다. No. OS Storage RAM IP Node 1 Ubuntu20.04 Deskto..
Windows 환경에서의 MySql5.1~ 설치 본 포스팅은 Windows 환경에서 mysql 설치 방법을 설명합니다. 리눅스와는 다르게 windows에서는 설치 절차가 다소 복잡합니다. 따라서 필자는 리눅스에서의 설치를 권장하지만 리눅스를 사용하기 곤란한 경우를 고려해 Windows에서의 설치 법을 추가로 기록합니다. 리눅스에서의 설치는 아래의 포스팅을 참고해 주세요. 2020/03/12 - [Dev/etc] - Linux 환경에서의 MySql5.1~ 설치와 root 계정 접속 세팅 MySQL 설치 아래의 링크에서 다운로드합니다. https://dev.mysql.com/downloads/ MySQL :: MySQL Community Downloads The world's most popular open source database dev.mysql...