반응형
반응형
무료 인증서를 발급 받기 위해 Let's Encrypt의 SSL 인증을 받아야 할 때,보통 서버(Apache, NginX 등)를 이용하여 웹 루트를 정하고 인증을 받는 방식으로 진행한다.특히 윈도우에서 win-acme 도구를 이용하여 무료 SSL 인증서 발급 시보통 파일 방식으로 인증을 받는 식인데, 문제는 여기서 발생한다.Flask의 경우에는 서버 자체에서 특정 URL의 경로를 미리 정의해주지 않으면 안된다는 것이다.하지만 win-acme 도구는 사이트 인증 시 내가 지정한 웹 루트에랜덤으로 주어진 코드가 적혀있는 파일이 생성되는데,이런 동적인 상황에 생성되는 랜덤 주소 URL 링크를 미리 알 방법이 없다.예를 들어, 내가 지정한 웹 루트에 '.well-known/acme-challenge/랜덤값' 이..
개요스프링 부트 프로젝트를 진행중인데 인텔리제이를 사용하여 개발을 한다.문제는 디버깅이 아닌 릴리즈 상태에서 스프링부트 프로젝트를 실행하기 위해서는매번 인텔리제이를 키고 프로젝트를 실행하였었다.이런 절차와 과정으로 서버를 사용하기엔 다소 무겁다고 느낌을 받았다.IntelliJ 혹은 STS IDE 툴 없이 프로젝트를 실행하면 훨씬 가벼울텐데... "더 가볍고 효율적인 방법으로 스프링 부트 프로젝트를 실행할 수는 없을까?"이 글을 작성하게 된 계기이다. 이번 포스팅에서는 IDE 툴 없이 프로젝트를 실행할 수 있도록 JAR 파일로 만들어서 빌드 및 배포하는 방법을 다룬다.왜 JAR 파일을 사용해야 하는지, 어떻게 빌드하고 배포하는지에 대해서도 알아보자. 스프링부트 프로젝트는 왜 JAR파일로 배포해할까?JAR(..
Pageable 이란?Pageable은 Spring Data JPA에서 제공하는 인터페이스로,페이지 정보(페이지 번호, 크기, 정렬 기준 등)를 캡슐화 하는 데 사용된다.이를 통해 대규모 데이터를 페이징하여 효율적으로 처리 및 관리할 수 있다.즉, 페이징 처리를 Pageable 인터페이스를 통해 쉽게 구현 가능하다.PageNumber : 가져오려는 페이지의 번호, 기본적으로 0부터 시작한다.PageSize : 한 페이지에 포함될 데이터의 개수를 의미한다. 기본 개수는 2000개이다.Sort : 결과를 정렬하는 기준을 의미한다. 정렬 기준을 명시하지 않으면 정렬을 하지 않고, 데이터베이스에 가져온 순서대로 결과를 반환한다. Pageable의 페이지를 1부터 시작하게 하려면?기본적으로 PageNumber는 ..
개요보통 application.properties에 환경 설정 기재하여 개발을 진행하고는 하는데,문제는 깃허브 같은 공개된 리파지토리에 프로젝트 파일을 올릴 때 문제가 발생한다.만약, 서버 정보나 데이터베이스 접속 정보가 포함될 경우에는 매우 위험하기 때문이다. 기본 설정 파일의 민감 정보 분리하기추가 설정 파일 만들기기본 설정 파일인 application.properties가 존재하는 같은 경로에민감 정보를 따로 저장할 설정 파일(*.properties)을 하나 새로 추가한다.필자는 데이터베이스의 접속 정보를 분리할 예정이기에 데이터베이스의 접속 정보를 분리하려 한다.파일명의 주어진 작명 형식은 따로 없다.포스팅에서는 application-database.properties라고 하겠다. 추가 설정 파일..
개발 환경 개요Java Version : Open JDK 21Gradle 8.5Spring Boot 3.2.5Port Number : 8080IDE : IntelliJ Community Edition 참고 깃 리지토리포스팅에서 다룬 프로젝트는 아래의 깃허브 주소에서 다운로드 가능합니다.https://github.com/luvris2/kotlin-spring-boot-example하위 디렉토리 : 01_helloworld GitHub - luvris2/kotlin-spring-boot-exampleContribute to luvris2/kotlin-spring-boot-example development by creating an account on GitHub.github.com 개발 환경 구축JDK 설..
개요 이번에 포트폴리오 겸 Flask 서버를 둔 채팅 서비스 웹 페이지를 만들었다. 개발된 웹 페이지를 도메인까지 연결했는데 이상하게 가끔씩 작동을 하지 않는다. 이유가 뭔지 알아봤더니 접속 도메인은 babychat.xyz, 그리고 www.babychat.xyz 로도 접속이 된다는 것이다. 나는 이게 당연한 것인 줄 알았는데 CORS로 문제가 발생될 줄은 몰랐다. 결국 문제는 API 통신이 babychat.xyz 도메인을 향하도록 했으니 www 가 붙으면 작동을 하지 않는다는 것이다. CORS가 뭘까? 간단히 CORS에 대해서 알아보자. CORS는 Cross-origin resource sharing으로, 한국말로는 교차 출처 리소스 공유 혹은 교차 출처 자원 공유라고도 한다. 웹 페이지 상의 자원들을 ..