독학/[etc] 개발 관련 내용 정리 8

[배포🌏] Nginx와 Certbot(Let's Encrypt)를 이용한 https 배포

시스템종합설계 수업에서 개발한 프로젝트에 대해 보안을 향상하기 위해 https로도 배포하고 https로만 통신하고자 계획을 세웠습니다. 배포 과정에 대해 소개하고자 합니다. 🔗 0. 도메인 구매https를 이용하기 위해서는 먼저 도메인을 가지고 있어야 합니다. 저는 가비아에서 구매했습니다. 🔩 1. 가비아 설정가비아 도메인 관리페이지에서 A 레코드에 EC2 퍼블릭 IP를 입력합니다. 🧭 2. Nginx 설치sudo apt updatesudo apt install nginx -ysudo systemctl status nginx 🧱 방화벽 설정SSH 연결을 유지하면서 방화벽을 켜줍니다.sudo ufw allow sshsudo ufw enable 🔒 3. certbot (Let\s Encrypt) ..

[배포🌎] AWS EC2, GitHub Action, Docker compose를 이용한 CI/CD 자동화 (2)

시작하기 앞서 해당 글에서 이어지는 내용입니다. 3. 필요한 프로그램을 ec2 환경 내에서 설치하기3.1 인바운드/아웃바운드 규칙 설정- 인바운드 규칙 편집 : 상황에 따라서 편집- 아웃바운드 규칙 편집 : 3.2. 필요한 프로그램 설치- Git 설치하기$ sudo apt update$ sudo apt install git -y- Docker 설치하기$ sudo apt install docker.io -y$ sudo systemctl start docker$ sudo systemctl enable docker- Docker-compose 설치하기$ sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-..

[배포🌎] AWS EC2, GitHub Action, Docker compose를 이용한 CI/CD 자동화 (1)

🚀 시작하기 전 환경 설정회원가입 : AWS, Docker다운로드 : PuTTy, PuTTYgen 제가 보려고 만든 거라 비효율적이거나 부정확한 정보가 있을 수 있습니다. ✨ 목표 아키텍쳐 1. AWS EC2 인스턴스 생성하기2. PuTTy, PuTTYgen 2.1 시작 전1) 퍼블릭 IPv4 주소 입력하기 2) 키페어를 생성하면서 받은 pem 키를 ppk로 수정하기🪄 자세한 방법 보러가기 : https://calvinjmkim.tistory.com/20 PEM파일을 PPK로 변경하기 (PEM to PPK)윈도우즈에서 간단한 터미널 툴을 사용하고 싶을 때 가장 먼저 생각나는 툴이 Putty이다. 기본적인 기능만 갖추고 있고, 간단하고, 설치할 필요도 없고, 용량마저 작은 것이 그 매력이 아닐까 싶ca..

[redis⚡] redis 접근 오류 해결 기록

🎯상황 설명- 로그인/로그아웃 시 토큰을 관리하기 위해 redis를 이용했다.- 로컬에서는 문제가 없어서 배포 환경까지 올렸는데, redis에 접근해야 할 때마다 아래와 같은 에러가 발생했다.- 에러 로그 Unable to connect to localhost/~~Connection refused에러 로그가 친절하게 문제점을 알려주고 있다. 🚀 문제 파악✨ 핵심redis를 localhost로 설정했기 때문에 redis를 찾지 못해 발생한 에러이다.docker-compose에서 지정한 서비스 이름을 이용해 host를 설정하도록 변경하면 된다.🌎 배포 환경에서의 localhost localhost는 컨테이너 내부에서의 자기 자신을 가리킨다.Spring boot 컨테이너 내에서 localhost:포트번..

[😎SwaggerHub] 협업을 위한 SwaggerHub 이용하기

포스트맨만 이용해보고 swagger는 처음이라 이해하는 데 시간이 많이 걸렸다. 이해한 바로는 개인은 1. 스프링부트 프로젝트에서 개발2. swagger ui로 테스트 진행 협업은 위에서의 테스트가 성공했다면 json 파일을 swaggerHub에 업로드하는 형태로 진행하는 것 같다. 1. SwaggerHub 가입 2. Swagger UI에서 작업한 api 업로드 이후 내용은 협업하면서 채워나갈 예정이다.

[😎Swagger] 스프링 프로젝트 swagger 세팅하기

1. 의존성 추가build.gradle > dependencies에 아래 코드 추가 후 sync를 진행합니다.implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0' 2. SwaggerConfig.java 기본 코드 작성src 폴더 내에 config 폴더를 만들고, 아래 코드를 작성합니다.package com.appsolve.wearther_backend.config;import io.swagger.v3.oas.models.info.Info;import io.swagger.v3.oas.models.OpenAPI;import org.springframework.context.annotation.Bean;import org.spring..

[Android Studio📱] Build failed, Error running 오류 해결

1) Build failed 에러에러 문구에서 언급되는 경로로 가서 폴더를 삭제해주면 된다! 2) Error running 에러앱을 종료 후 재실행했는데, 이미 앱이 실행 중이라고 뜨며 발생하는 오류다. 이 또한 탐색 위치로 가서 *.lock 폴더 및 파일을 삭제하면 된다! 삭제가 안 될 경우에는 작업관리자로 이동해서 작업 끝내기를 한 후에 다시 시도한다.

[Spring JPA🌿] fetch join + 지연로딩 관련 에러 해결

해결 과정에서 같이 만났던 오류/에러들- Large Objects may not be used in auto-commit mode- MultipleBagFetchException- failed to lazily initialize a collection of role 상황 설명 및 해결1) Large Objects may not be used in auto-commit mode게시글의 본문에 대해서 @Lob 어노테이션을 붙여서 코드를 짰다. 이후 코드를 실행했을 때 DB에서 oid 타입으로 값이 저장된 것을 확인할 수 있었다.데이터 타입을 text로 변경하기 위해서 어노테이션을 다음과 같이 수정했다.@Column(nullable = false, columnDefinition = "text")private..