Swagger 사용기 안녕하세용 오늘은 프론트와 백이 협업을 하며 사용하면 좋은 Swagger에 대한 사용법을 알아보도록 하겠습니다.🙂 Swagger를 처음 접하시는 분들께 설명드리자면 Swagger는 OpenAPI 명세(OpenAPI Specification, OAS)의 핵심 도구 중 하나입니다. OpenAPI는 RESTful API를 위한 API 설계에 대한 표준 언어 및 프로세스를 정의합니다. 이 명세는 API의 모든 측면을 기술적으로 설명하여 API의 기능을 정확히 이해하고 올바르게 사용할 수 있게 합니다. 본 프로젝트는 Java 17 , SpringBoot 3.2.2 , gradle 8.5 버전을 사용합니다. 의존성 추가 아래의 의존성을 사용해 줍니다. implementation 'org.spr..
필드 타입 변경 : TEXT길이 연장하기 데이터베이스를 사용하면서 특정 필드의 데이터 타입이나 길이를 변경해야 할 상황이 자주 발생합니다. 특히, 이번 올림 프로젝트에서 ADMIN계정에서 입력 데이터를 저장하는 caption 필드의 길이를 늘여야 할 때, 여러 접근 방법을 통해 이를 효과적으로 관리하는 방법을 정리해놓으려 합니다. ✅ 관련코드를 분석해본 결과 문제는 VARCHAR(255)의 타입을 갖고 있어서 발생했습니다. 해결방법 1-1 수동으로 SQL 실행하기 가장 기본적이고 직접적인 방법은 SQL ALTER TABLE 명령어를 실행하는 것입니다. 이를 통해 필드 타입을 변경하거나 길이를 조정할 수 있습니다. 예를 들어, caption 필드의 길이를 1000자로 늘리고 싶을 때 다음과 같은 SQL 명..
[AWS] Route53을 통한 도메인 연결 및 HTTPS 설정하기 안녕하세요~ 인테리어 업체 '올림' 의 홈페이지를 만들게 되었는데요. 그 과정에서 AWS의 다양한 서비스를 활용하여 구축하게 되어 포스팅을 남기려 합니다. 이 프로젝트의 구조는 AWS S3와 CloudFront를 사용하여 이미지 관리를 최적화하고, EC2 인스턴스를 통해 서버를 배포하게 되는 구조입니다. 본 가이드는 AWS Route 53을 사용하여 도메인을 연결하고, HTTPS를 설정하는 과정을 단계별로 설명합니다. (나중에 또 분명 할것이기 때문에...)😥 필요한 AWS 서비스 및 설정 💡 ACM(AWS Certificate Manager) 인증서 생성: 안전한 웹사이트 구축을 위한 SSL/TLS 인증서를 발급받습니다. 💡 Route..
AWS S3 Bucket을 이용한 이미지 업로드 + CloudFront설정 안녕하세요! 오늘은 Interior 프로젝트를 진행하면서 웹 서비스에서 이미지를 효과적으로 보여주기 위해 AWS의 S3 버킷과 CloudFront를 활용하는 방법에 대해 자세히 알아보도록 하겠습니다. S3의 여러 가지 장점이있는데요 ❗ ❗ 💡 내구성과 안정성: AWS의 S3는 데이터의 내구성과 안정성을 보장합니다. 데이터가 여러 복제본에 걸쳐 저장되므로 데이터 손실 우려가 줄어듭니다. 💡 확장성: S3는 거의 무한한 확장성을 제공하므로 대용량 데이터를 저장하고 처리할 수 있습니다. 💡 다양한 데이터 관리 기능: 버전 관리, 암호화, 액세스 제어 등 다양한 데이터 관리 기능을 제공하여 데이터를 보다 효율적으로 관리할 수 있습니다. ..
안녕하세용~ 오늘은 CI/CD를 경험하며 며칠 동안 고생했던 Blue/Green 배포에서 502 Bad Gateway문제를 해결한 사례를 가져 왔습니다.ㅜㅜ 진짜 하나하나 뜯어고쳐야 했고 진짜 문제를 찾기 위해 뒤져본 곳이 방대해서 나중에 이런 문제를 마주했을 때 헤매지 않기 위해 글을 쓰도록 하겠습니다. 미리 감사합니다. 문제 원인 분석 Docker로 배포된 Green port 접근 불가 (Bad Gateway) 저는 blue를 8081 포트 green을 8082 포트로 사용했습니다. 하지만 8081 포트로 배포를 진행했을때는 문제가 없었지만 8082 포트로 진행했을 때 BadGateway 문제가 발생하며 접근이 불가능했습니다. SpringBoot코드에까지 혹시 오타가 있는것은 아닌지 꼼꼼히 확인해봤습..
안녕하세요~ 오늘은 Git Action 을 공부하는중. 처음엔 자동 재배포를 할때 SpringBoot 기준으로 민감한 정보를 가진 application-secret.yml 같은 파일은 deploy과정에서 어떻게 추가할까? 라는 의문이 들었고 이후 Github Secrets 기능을 이용해서 CI/CD 파이프라인 구축 과정에서 중요한 정보를 안전하게 관리할 수 있다는 걸 알게됐습니다. 본 포스팅에서는 GitHub Actions를 사용할 때, API 키, 데이터베이스 비밀번호, SSH 키 등의 민감한 정보들은 코드에 직접 포함시키는 것이 아니라, GitHub의 Secrets기능을 통해 안전하게 관리하는 방법을 알아보겠습니다~ Secrets 설정 방법 : 텍스트 💡 GitHub 리포지토리로 이동: 먼저, 관리하..
안녕하세요. 요즘 스위프 3기에서 진행하는 읽는 곳곳이라는 프로젝트에 집중하고 있는데요. Vercel로 배포된 프론트 서버와 통신하기 위해 백엔드 서버도 구축해야 했습니다. 근데 코드가 변경됨에 따라 지속적으로 재배포하기 너무 힘들어서 GitHub Actions 을 공부하게 됐고 나중에 쓸 일이 많을 것 같아서 정리해 놓으려 합니다. Git Action은 GitHub의 강력한 기능 중 하나로, 소스 코드 저장소에 통합된 CI/CD 도구입니다. 본 글에서는 Git Action을 활용하여 간단한 CI/CD 파이프라인을 구축하는 방법을 소개합니다. 이 포스팅의 핵심 기술 스택으로는 Java 17 , Spring Boot 3.2.2, Gradle , Nginx , Docker , 그리고 AWS 가 포함됩니다. ..
안녕하세욥~! Spring Boot 프로젝트들에서 API키 값을 사용하다 보니 보안이 중요한 설정 값들을 안전하게 관리할 필요성을 알게되었는데요. 특히, 외부에 노출되면 안 되는 중요한 정보들을 암호화하여 관리할 필요가 있습니다. 이번에는 애플리케이션에서 @Value 어노테이션을 사용하여 암호화된 설정 값을 어떻게 관리할 수 있는지 살펴보겠습니다. 암호화 파일 설정 먼저, 애플리케이션의 설정 파일에 암호화된 설정 값을 추가해야 합니다. 여기서는 secret.yml 파일을 예로 들어 설명하겠습니다. 이 파일은 중요한 설정 값들을 보관하는 곳으로, 암호화된 JavaScript키 를 저장하는 예시를 들어보겠습니다. spring: datasource: url: jdbc:mariadb://localhost:330..
안녕하세요! 오늘은 Git Organization을 사용하면서 프로젝트 초기 설정에서 원격 저장소를 변경해야 하는 상황이 많아져서 블로그에 개인 공부용으로 간단히 적어두려 합니다 명령어 1. 연결되어 있는 원격 저장소 확인 $ git remote -v 현재 로컬 저장소가 어떤 원격 저장소와 연결되어 있는지 확인합니다. 2. 원격 저장소와의 연결제거 기존의 원격 저장소와의 연결을 제거합니다. $ git remote remove origin origin은 제거하고자 하는 원격 저장소의 별칭입니다. 이 명령어를 실행하면 origin과 연결된 원격 저장소 정보가 삭제됩니다. 3. 연결이 제대로 해제되었는지 확인 원격 저장소와의 연결을 제거한 후, 연결이 제대로 해제되었는지 확인합니다. $ git remote -..
안녕하세요! 오늘은 BigInteger 를 사용하는 방법에 대해 이야기해보기위해 하노이탑의 문제를 예시로 들려고 합니다. 특히, BigInteger 를 사용할 때 주의해야 할 점들과, 입력값이 매우 큰 경우(예: 100)에 대한 처리 방법에 대해 살펴보겠습니다. https://www.acmicpc.net/problem/1914 1914번: 하노이 탑 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net BigInteger 사용의 핵심 이유 input : 100 output : 1267650600228229401496703205375 자바에..