Computer Science 57

[CI/CD] AWS EC2 + Docker + Github Actions 를 이용한 자동 배포 구축

이전에는 AWS Elastic Beanstalk으로 배포를 해봤다가이번엔 AWS EC2와 Docker를 사용하여 아예 다른 방식으로 배포를 하게 되어 적어본다!  나는 항상 로컬에서 Jar 파일 실행과 도커 컨테이너 실행까지 해보고 나서 문제가 없음을 확인한 후, 배포를 시작한다.  Jar 파일 생성 및 실행Gradle- Tasks- buildbootJar 더블 클릭build- libs~SNAPSHOT.jar 파일 생성 완료jar 파일 실행하여 확인 도커 컨테이너 실행Dockerfile 작성 (프로젝트 루트 위치)FROM openjdk:17-jdkLABEL maintainer="yubin"ARG JAR_FILE=build/libs/*.jarADD ${JAR_FILE} app.jarENTRYPOINT ["..

[CI/CD] 도커 데스크탑 무한 로딩일 때 (Docker Desktop - Unexpected WSL error, Error: 0x80070002)

도커 데스크탑 무한 로딩일 때 (Docker Desktop - Unexpected WSL error, Error: 0x80070002) 오랜만에 곧 배포할 일이 생겨 먼저 도커 컨테이너 실행까지만 해보려고 도커 데스크탑을 켰다.도커 데스크탑을 작년에 키고 오랜만에 켜서 그런지 도커 데스크탑 무한로딩이 걸리면서 에러창이 뜨는거다.  Docker Desktop - Unexpected WSL error 이 뜨길래 WSL이 안 깔려있는 줄 알고 확인  WSL은 깔려 있고, 실행이 안되는 듯 하다. 그리고 재시작을 해도 Running이 안됨.  또 검색하니 가상화 환경 되있는지 확인? 근데 작년까지 도커 데스크탑 잘 썼었고, 확인해도 체크 잘 되어있었다. 그 후 도커 데스크탑 삭제 및 재설치WSL 삭제 및 재설치..

[CI/CD] AWS RDS DB 생성, 설정, 접속

RDS 생성RDS 대시보드로 이동데이터베이스 생성 클릭표준 생성 선택엔진 옵션엔진 유형MySQL 선택엔진 버전 선택템플릿프리 티어 선택설정DB 클러스터 식별자DB 이름 작성마스터 사용자 이름root자격 증명 관리자체 관리 선택마스터 암호, 암호 확인 입력인스턴스 구성db.t3.micro 선택연결퍼블릭 액세스예 선택데이터베이스 생성 클릭  RDS 설정RDS 운영환경에 맞는 파라미터 설정파라미터 그룹으로 이동파라미터 그룹 생성파라미터 그룹 이름, 설명 작성엔진 유형MySQL Community Edition파라미터 그룹 패밀리mysql8.0유형DB Parameter Group생성 버튼 클릭생성한 파라미터 클릭 후 편집 이동파라미터 필터링에 time_zone 검색값에 Asia/Seoul 추가변경 사항 저장파라미..

[CI/CD] AWS EC2 인스턴스 생성, 접속, 설정, 스프링부트 프로젝트 배포

EC2EC2란? (Elastic Compute Cloud)성능, 용량 등을 유동적으로 사용할 수 있는 서버  EC2 인스턴스 생성EC2 대시보드로 이동이름 및 태그이름 작성애플리케이션 및 OS 이미지Amazon Linux 클릭Amazon Machine Image(AMI)Amazon Linux 2 AMI (HVM) - Kernel 5, 10, SSD Volume Type 클릭아키텍쳐64비트(x86)인스턴스 유형t2.micro 클릭키 페어(로그인)키 페어 이름 작성키 페어 유형RSA프라이빗 키 파일 형식.pempem 파일은 잘 저장해두기!네트워크 설정 - 편집보안 그룹 이름 변경ex) ~firewall설명ex) ~created 2024-05-23인바운드 보안 그룹 규칙 (2개 추가하기)보안 그룹 규칙 추가 ..

[Database] Spring Boot 프로젝트와 MySQL DB 연결 (MVC, DTO)

MySQL 데이터베이스 연동 MVC application.properties 추가 spring.jpa.hibernate.ddl-auto= none 기본 값, 데이터베이스 구조는 변경되지 않는다. update Hibernate 주어진 엔터티 구조에 따라 데이터베이스를 변경한다. create 매번 데이터베이스를 생성하지만 닫을 때 DROP 하지 않는다. create-drop 데이터베이스를 생성하고 SessionFactory가 닫힐 때 삭제합니다. validate 엔티티와 스키마가 다르다면 예외발생 예시 # thymeleaf spring.thymeleaf.cache=false # jpa spring.jpa.hibernate.ddl-auto=none spring.jpa.generate-ddl=false spri..

[Database] Spring Boot 프로젝트와 H2 DB 연결

H2 DB 연결 자바 프로젝트에서 데이터베이스에 접근하는 방법 4가지 JDBC Driver Class Connection, Statement, ResultSet JDBC Template Class MyBatis(iBatis) XML에 SQL을 넣어서 사용 JPA SQL을 사용하지 않는다. 스프링부트 H2 데이터베이스 연결 방법 dependencies runtimeOnly 'com.h2database:h2' 추가 application.properties 추가 # H2 Database # H2 DB 콘솔화면을 활성화 spring.h2.console.enabled=true # H2 DB 콘솔화면 경로 (localhost:8080/h2-console) spring.h2.console.path=/h2-consol..

[etc] 스프링과 스프링부트의 차이

스프링과 스프링부트 Spring Spring Framework는 자바 기반 애플리케이션 개발을 지원하는 오픈소스 애플리케이션 프레임워크로 Spring이라고도 불린다. 이전의 EJB(Enterprise Java Bean) 방식의 단점을 해결한 프레임워크 Spring의 대표적인 특징 제어 역전 의존성 주입 AOP 지원 (관점 지향 프로그래밍) 웹 개발 지원 Spring의 문제점 설정의 복잡성 높은 초기 학습 난이도 의존성 관리 문제 별도 WAS 서버 구성의 번거로움 Spring Boot Spring의 문제점을 해결해주기 위해 개발된 스프링의 프레임워크 Spring Boot 사용시 내장형 서버를 사용하여 별도의 웹 애플리케이션 서버를 설치할 필요 없이 웹 애플리케이션을 실행할 수 있다. 다양한 스프링 프레임워..

[etc] MVC, 라이브러리, 프레임워크

MVC (Model View Controller) MVC란 사용자 인터페이스와 비즈니스 로직을 분리하여 개발하는 것 MVC는 Model1과 Model2로 나누어져 있으며 일반적인 MVC는 Model2를 지칭한다. Model 애플리케이션의 정보나 데이터, DB 등을 말한다. View 사용자에게 보여지는 화면, UI를 말한다. Model로부터 데이터를 얻고 표시한다. Controller 데이터와 비즈니스 로직 사이의 상호 동작 관리 모델과 뷰를 통제하고 직접적인 상호 소통을 하지 않도록 관리 MVC1 View와 Controller를 모두 JSP가 담당하는 형태 JSP 하나로 유저의 요청을 받고 응답을 처리한다. User (Client) - View, Controller (JSP) - Model (Java B..

[CI/CD] Github 레포지토리에 올라간 코드에서 한글이 깨져 나올 때 (yaml 파일)

Github 레포지토리에 올라간 코드에서 한글이 깨져 나올 때 (yaml 파일) 한 번씩 찾아오는 Github의 뒤통수🤛🏻 이번엔 Github 레포지토리 코드를 몇 개 보던 중 한글이 깨져서 올라간 게 있었다! 따른 java 코드들은 여태 문제없었는데 yaml 코드의 한글이 깨진 걸 발견 찾아보니 그래도 이번엔 로컬 폴더만 수정하여 해결할 수 있다. 먼저 프로젝트 폴더 안의 .git 폴더로 이동 → config 파일 열어서 아래의 코드를 추가해준다! [i18n] commitEncoding = utf-8 logOutputEncoding = utf-8 이렇게 코드 추가하고 저장하면 끝! 다시 다른 yaml 파일에 한글 적고 add-commit-push 해서 확인해보자 깨지지 않고 잘 올라갔다! 이번엔 그래도..

728x90