냐냐한 IT 50

Ubuntu 16.04에 PostgreSQL 13 설치

Ubuntu 16.04에 PostgreSQL을 설치하려고 합니다. PostgreSQL의 2023.02.10일 현재 최상위 버전은 15.2입니다. ( 참고로, Ubuntu 포함 Linux 환경을 모르는 철저하게 윈도우 사용자로 살아온 사람입니다. 쉬운 방법을 두고 돌아가는 것일 수도 있고 잘못된 방법일 수도 있다는 점 참고부탁드립니다. ) PostgreSQL 지원 버전 확인 PostgreSQL 공식 홈페이지 > 다운로드 설명을 확인하니 아래와 같은 설명이 있습니다. PostgreSQL Apt Repository가 지원하는 현재 Ubuntu 버전: - kinetic (22.10, non-LTS) - jammy (22.04, LTS) - focal (20.04, LTS) - bionic (18.04, LTS)..

Nginx + Ubuntu 환경에 certbot 설치

보안(HTTPS) 연결을 위해, Certbot을 설치해서 Let’s Encrypt 인증서를 무료로 발급받고 3개월에 한번 인증서를 갱신해줘야하는 불편함을 Certbot이 해주도록 합니다. 설치에 대한 내용은 Certbot 공식 사이트에서 확인할 수 있습니다. 아래 이미지처럼, 본인 상황에 맞는 Software / System을 선택하여 설치 지침을 확인할 수 있습니다. 저는 Software: Nginx, System: Ubuntu 16으로 선택하여 내용을 확인했습니다. 영어로 되어있기 때문에, 저의 기록 용도 및 누군가에게 도움이 되도록 해당 내용을 남겨봅니다. (feat. 구글 번역기) 필요 사항 command line을 사용할 수 있는 환경 온라인 상에 있는 HTTP 웹 사이트, 80 포트가 열려있어..

Nginx 설치 (Naver Cloud, Ubuntu 16.04)

Spring Boot로 개발중인 사이트를 Naver Cloud에 올리고, Spring Boot 내장 톰캣(:8080)으로 정상 동작하는 것을 확인했습니다. 이제 추가할 작업은 http 연결이 80포트로 연결되게 하고, https로 보안 연결이 가능하도록 하는 것입니다. (이 포스팅에서는 https 보안 연결 작업에 대한 내용은 없습니다. 이후 포스팅에서 다룰 예정입니다.) Nginx 설치 이유 Certbot(Let's Encrypt 무료 ssl 인증서 관련) 설치 및 설정이 더 간편해 보이기 때문입니다. (Nginx에 Certbot을 설치하는 것도 포스팅할 예정입니다.) Nginx를 이용하여 무중단 배포를 설정할 계획입니다. 설치 환경 Naver Cloud: [MICRO] 1vCPU, 1GB Mem, 5..

BCryptPasswordEncoder 사용, 암호화 및 암호 확인 (Spring Boot)

비밀번호를 암호화하는 기능을 추가하려고 합니다. 로그인 등 인증 기능은 현재 필요하지 않습니다. spring-boot-starter-security 를 추가하여, BCryptPasswordEncoder를 사용해 암호화를 진행하려고 합니다. 1. build.gradle에 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security' 위 라이브러리를 추가 후, 실행해보면 어떤 페이지로 이동하든 로그인 페이지로 리다이렉트됩니다. 2. 로그인 페이지로 이동하게 하는 보안 구성 끄기 (보안 구성이 필요하다면, 이 부분은 무시하셔도 좋습니다. ) 암호화만 이용할 생각이기 때문에, 로그인 페이지로 이동하게 하는 보안 구성이 필요없습니다. 해..

org.thymeleaf.exceptions.TemplateInputException 오류 해결

Spring Boot를 사용하고, Tymeleaf를 사용하여 화면을 구성하였습니다. IDE에서 개발 및 실행할 때는 문제없이 동작하던 것이, 서버에 올리니 오류가 발생합니다. (빌드한 jar 파일을 로컬에서 실행해도 동일하게 오류가 발생합니다.) 오류 내용의 일부입니다. org.thymeleaf.exceptions.TemplateInputException: Error resolving template [home], template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateMana..

java -jar 실행 종료 및 시작 스크립트

실행중인 java -jar를 종료하고, *.jar 파일을 실행하는 명령어를 스크립트로 만들어 명령어를 줄여봅니다. 스크립트 생성 전 시작 명령어 nohup java -jar 파일명.jar & 종료 명령어 # PID 알아오기 ps -ef | grep java # 종료 kill -15 [위에서 알아온 PID] kill -9 (kill) 사용보다 kill -15 (terminate)를 사용하는 것이 더 안전하다고 합니다. 그렇게 길지 않은 내용이긴 하지만, 하나의 명령어로 이용하고 싶습니다. 실행 중이라면, 종료 후 시작 스크립트 start.sh #!/bin/bash JAR=site-0.0.1-SNAPSHOT.jar LOG=/root/site.log SITE_PID=$(ps -ef | grep java | g..

NAVER CLOUD, Public IP(공인 IP) 신청 및 Spring Boot 실행 확인 + 도메인 연결

서버를 서비스 목적으로 이용하려면 공인 IP가 필요합니다. (외부에서 접속할 IP 주소, 예를 들어 URL에 http://223.130.200.104/ 로 입력하면, 네이버로 접속됩니다. 이때 공인 IP로 볼 수 있는 것이 223.130.200.104입니다. ) 작업할 내용 Public IP(공인 IP) 신청 ACG 설정 SFTP로 jar 파일 업로드 (FileZilla) JAVA(JDK) 설치 java -jar 파일명.jar 명령어로 Spring Boot 프로젝트 실행 Public IP(공인 IP) 신청 Spring Boot 배포 후, 동작 확인을 위해 공인 IP를 먼저 신청합니다. 유료 서비스 1년 무료 서버를 이용하더라도, 공인 IP 신청의 경우 월별 금액이 청구됩니다. 2023.01.30 기준, ..

NAVER CLOUD PLATFORM 가입 및 1년 무료 서버 생성, 콘솔 접속까지

무료 서버 사양 및 요금 (2023년. 01월 기준 내용입니다.) 1년 무료 Micro Server: VCPU 1개, Memory 1GB, Disk 40GB, Linux 계열 운영체제만 사용 가능 Public IP (외부 서비스용 공인 IP) 유료: 월 이용료 4,032원 3개월 사용 가능한 100,000 크레딧 제공 선택 이유 소소한 프로젝트들을 게시할 서버를 구축하여 운영할 계획입니다. 서버에 대한 지식이 약한 상태에서 AWS, Azure 등 번역하면서 해보기에는 어렵습니다. 그래서 한글화가 잘 되어있는 Naver 서비스를 이용해 보기로 했습니다. (2023년 1월 30일 기준 내용으로, 이후 Naver가 화면 구성 및 서비스 내용을 변경할 수도 있습니다.) 순서 설정 순서는 아래와 같습니다. 1. ..

JavaScript - 숫자 -> 전화번호로 형식으로 변환 (000-0000-0000)

숫자를 전화번호 형식으로 변환해야 할 때 사용하는 함수입니다. (전화번호 형식은 통일시키고 싶은데 전화번호 입력란은 하나로 쓰고 싶을 경우 사용했습니다. 저장시 숫자가 아닌 문자는 제거 후 저장, 저장된 번호를 목록/상세 보기 등에 표시할 때는 전화번호 형식으로 변환) 숫자만으로 이루어져 있거나, 다른 문자 (예 : - , . , / 등) 포함 시 해당 문자 삭제 후 전화번호 형식 변환 후 반환합니다. 코드 function regexTel(tel) { if (!tel) return ""; // 숫자가 아닐 경우 제거 var rtnTel = tel.replace(/[^\d]/g, ""); if (rtnTel.length === 11) { // 000-0000-0000 return rtnTel.replace..

IndexedDB API: IndexedDB 주요 특징 및 기본 용어

MDN 원문 참조 : IndexedDB key characteristics and basic terminology 날짜 : 2022.11.16 (문서 내용은 계속 변경되는 부분이라 정리한 날짜를 함께 기록) 위 참조 링크 내용을 정리하였습니다. 이 문서는 IndexedDB의 주요 특징과, IndexedDB API를 이해하기 위한 몇 가지 필수 용어를 소개 유용한 문서들 : * Using IndexedDB(원문), IndexedDB 사용-1.개요(정리) : API 사용 방법에 대한 자세한 튜토리얼 * IndexedDB API(원문), IndexedDB:개요(정리) : IndexedDB에서 사용하는 객체 유형을 문서화한 메인 페이지와 하위 페이지들 참고 * Browser storage limits and e..