분류 전체보기

배포, 운영

[배포] Jenkins설정 및 Gitlab Webhook을 통한 자동배포

Docker와 Jenkins를 통한 싱글 서버 구성 방식 및 flowDocker Out-of-Docker예시Jenkins 컨테이너:하나의 Docker 컨테이너에 Jenkins를 띄워서 CI/CD 파이프라인을 관리Jenkins가 Docker 명령어를 실행할 수 있도록, 보통 Docker 소켓(/var/run/docker.sock)을 마운트하거나 Docker 플러그인을 사용애플리케이션 컨테이너:또 다른 Docker 환경(컨테이너 또는 Docker Compose를 활용)에서 Spring Boot 애플리케이션과 MySQL 데이터베이스를 실행이 컨테이너들은 Jenkins 파이프라인에 의해 빌드, 배포 및 관리즉, Jenkins는 Docker 환경에 있는 애플리케이션(예: Spring Boot, MySQL 컨테이너..

배포, 운영/Infra

[Infra] Docker 세팅 및 Mysql, Jenkins, SpringBoot 컨테이너 생성

Docker 명령어 모음항상 이미지 삭제 → 볼륨(데이터 삭제) 순서이미지: 애플리케이션, 볼륨: 애플리케이션의 데이터 라고 이해하면 쉬움# 실행 종료sudo docker stop # 모든 실행중인 컨테이너 종료sudo docker stop $(docker ps -q)# 컨테이너 제거sudo docker rm mysql-server# docker 볼륨 목록 확인sudo docker volume ls# docker 볼륨 삭제sudo docker volume rm ubuntu_mysql_data# 텍스트 에디터 nano docker-compose.yml# 등록된 컨테이너 확인(실행 안한 컨테이너도 포함)sudo docker ps -a실행 관련# 개별 실행sudo docker-compose up -d # 전체..

기타

[기타] SW역량 테스트 B형 합격 후기 및 삼성 갤럭시 버즈 후기

SW 역량 테스트 B형 합격 후기작년 7월부터 싸피 12기를 진행했고 8월과 9월에 1번씩 총 2번의 B형 시험을 봤다.처음 B형 시험의 경우에는 감을 잡는정도로 밖에 못풀었다. 다행히 2번째 시험에서 구현 + 중간중간 이분탐색과 같은 최적화로 시간안에 통과해서 합격할 수 있었다.준비 과정먼저, 알고리즘 공부는 외부 동아리에서 8월말까지 매주 1회 알고리즘 스터디를 진행했습니다. 추가로 SSAFY 내에서 진행하는 알고리즘 문제 중 못 푼 문제를 집에서 추가적으로 풀었습니다. 1.    알고리즘 스터디-    코딩 테스트 합격자 되기: 자바편(저자 김희성) 책을 기반으로 주 1회 4개의 문제를 풀고 풀이과정을 공유하는 방식으로 진행했다.2.    싸피 알고리즘 기간에 문제 푼 방식-    평소 1번 풀이 ..

스프링

[AI] 이미지 생성시 DALLE에서 Stable Diffusion으로 AI모델 변경 with SpringAI

기존 서비스의 문제점- 프로젝트 초기 DALLE3선택 이유여행 일정기반 AI코디북 생성 기능을 제공하는 웹 서비스를 진행했었다. 하지만 해당 기능의 문제점은 과도한 옵션과 시간을 잡아먹는 점이다. 싸피에서 프로젝트 진행시 제공받은 gpt key를 이용해 API를 사용했고 DALLE2와 3고민중 2가 프롬프트 내용을 적용을 잘 못시키고 매번  결과물이 이상하게 나왔기 때문에 DALLE3을 선택했었다. 문제는 DALLE3는 cfg_scale, steps와 같은 해상도 직접 조정 불가능하다. 따라서 OpenAI가 미리 정의한 최적의 설정에 의존한다.- 과도한 시간 소비해당 여행 일정 날씨 + 코디북 이미지 + 여행 준비물이 나오는 시간은 무려 27~28초. 사용자가 열받기 충분한 시간이다. 따라서 다른 이미지..

기타

[API] 번역 API: DeepL 사용 및 Java에 적용

번역 API 도입 및 사용번역 API 사용 및 선정 이유(DeepL API 사용)번역 API 종류1. DeepL API Free특징:REST API 형식으로 제공되며, 한 달에 최대 500,000자 무료 번역 가능.고품질 번역을 제공하며, JSON 형식의 요청/응답을 사용.공식 Java SDK는 없지만, REST API를 통해 쉽게 통합 가능.Spring 통합 방법:RestTemplate 또는 WebClient로 REST API 호출.API 키 인증을 헤더에 추가하여 요청.장점:높은 번역 품질.공식 문서가 잘 정리되어 있어 개발자가 쉽게 사용할 수 있음.2. Google Translate API특징:Google Cloud Translation API를 통해 제공.유료 기반이지만, 300달러 무료 크레딧이..

배포, 운영

[배포] Github Actions 활용한 Spring 백엔드 자동배포

Secrets 및 변수 설정Secrets 설정 방법.env  방식: properties 파일처럼 선언하고, Secret에 Name(key)와 Secret(Value를 등록secret.properties 방식: 아래와 같이 Repository Secret에 Key-Value형태로 추가 - 이 방법으로 진행)이후 Workflow에서 secret.properties 파일을 생성하고, Secret의 내용을  echo 명령어로 작성Workflow 작성배포 과정 요약코드 체크아웃: Github Actions는 매번 새로운 환경에서 실행되므로, 코드 저장소를 가져와야 함JDK 설정 및 의존성 설치: local에서 작업했던 스프링 버전에 맞추기mvnw 실행 권한 추가: Jar파일 파일 생성 시 필요한 Maven Wra..

배포, 운영

[배포] Github Actions 활용한 Vue 프론트엔드 자동배포

Secret 설정EC2 서버  IP주소와 Keypem 파일 내용 저장하는 secret을 만들어줬다. 추후 EC2 서버에 접속 및 권한 설정과 push된 내용 cp로 복붙이동을 위해선 필요하기때문에 추가해줬다Workflow 작성진행 과정코드 체크아웃(GitHub Action이 매번 새로 실행되기 때문에 저장소 코드 가져오는 명령어 필요)Node.js 설정 및 의존성 설치, npm을 이용한 vue내용 빌드이전에 저장해뒀던 secrets를 활용 및 scp명령어 통해서 폴더 해당 ec2서버에 저장ec2 접속 및 nginx가 해당 폴더에 실행 권한 가질 수 있도록 설정 변경 name: Deploy Frontend to EC2on: push: branches: - dev/fejobs: deploy..

배포, 운영/Infra

[Infra] HTTPS 적용

HTTPS 적용 개요HTTPS 사용 이유HTTPS는 데이터를 암호화하여 클라이언트와 서버 간 통신을 안전하게 만듬개인정보 보호 및 데이터 무결성을 유지하며, 브라우저에서 "보안되지 않은 연결" 경고를 방지Let's Encrypt를 활용하면 무료로 SSL/TLS 인증서를 발급받아 HTTPS를 구현Webroot 방식으로 HTTPS 적용Certbot 대신 Webroot 방식을 사용하는 이유Amazon Linux 2에서는 python3-certbot-nginx 패키지가 지원되지 않아 Certbot을 통한 자동 설정이 어렵다대신 Webroot 방식을 사용해 Nginx를 통한 HTTPS를 설정한다Webroot를 활용한 인증서 발급1. 인증서 발급/home/ec2-user/dist는 example로 정적 index...

배포, 운영

[도메인] 도메인 구입 및 DNS 설정

도메인구입도메인 제공 업체: 가비아 (GABIA)구입 도메인: inssaroute.shop선택 이유.shop 도메인 초기 1년 비용이 550원으로 저렴.대신 1년 이후 갱신 비용이 48500원(하지 말것)DNS 설정 서버 설정 변경Nginx 수정 필요server ip → server domain이름Vue재빌드 후 서버로 옮기기이유: Vue axios의 baseURL이 ip로 되어있어 해당 domain name으로 변경 필요하다1. dist폴더를 지워야하는데 권한이 user가 아닌 nginx, 따라서 아래 명령어를 통해 권한 user로 돌리기 및 삭제sudo chown -R $USER:$USER distrm -rf dist2. local vue파일의 base url 도메인으로 수정 baseURL: "ht..

배포, 운영

[배포] AWS EC2 생성 및 웹 프로젝트 배포

EC2 인스턴스 생성 및 설정EC2 생성 과정Amaozn Linux 2 vs Linux 2023에서 Linux 2를 선택한 이유아래글과 같은 오류도 있고 Linux2가 2018년 출시 이후 쌓아온 호환성과 풍부한 자료를 무시할 수 없다고 생각당장 linux 서버에서 최신 기술 적용할려 했던 프로젝트가 아니기 때문에 최신 기술 내용은 배제하고 선택함 AWS에서 Amazon Linux 2023 AMI를 사용 하면 안... - 인프런 | 커뮤니티 질문&답변누구나 함께하는 인프런 커뮤니티. 모르면 묻고, 해답을 찾아보세요.www.inflearn.com생성 기본 설정인스턴스 유형t2.micro(1 vCPU, 1GB RAM): 프리 티어 사용 가능단, Spring 서버를 장기적으로 운영할 경우 성능 한계가 있을 수..

Ash_jisu
'분류 전체보기' 카테고리의 글 목록