Computer Science 32

[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 해서 확인해보자 깨지지 않고 잘 올라갔다! 이번엔 그래도..

[Database] Java Project와 MySQL DB 연결 (JDBC)

자바 프로젝트와 MySQL DB 연결 MySQL Community Downloads Select Operating System: Platfrom Independent 선택 ZIP Archive로 다운로드 압축 풀기 폴더 안의 mysql-connector-j-8.3.0.jar 파일 복사 프로젝트 폴더에 lib 폴더 생성 후 붙여넣기 인텔리제이 Project Structure- Modules- Dependencies 이동 왼쪽에 + 버튼 누른 후 Jars or Directories 이동 후 위의 jar 파일 선택 데이터베이스 접속 및 쿼리문 실행하는 DAO 클래스 작성 테이블명DAO.java import java.sql.*; public class MemberDAO { //데이터베이스 접속 객체 Connec..

[CI/CD] Github commit 메시지 수정하고 싶을 때

git commit --amend -m “변경할 커밋 메시지” 깃허브 리드미에 진심인 나는 커밋 메시지에도 진심… 프로젝트를 할 땐 Commit message 형식에 맞춰 쓰려고 하고, 수업을 들을 땐 배운 내용을 커밋 메시지에 잘 담아 쓰려고 한다! 하지만 커밋 메시지 잘 써졌나 볼까~ 하고 git log를 쳤는데.. 영어 스펠링이 딱 틀려버린 것… 이런 거 굉장히 신경 쓰이는 사람으로서 커밋 메시지 수정을 찾아보기 시작했다. 결론: reset 쓰지 마세요 구글링했더니 revert를 하라고 해서 revert를 하려고 했지만, 수정이 되지 않는 거다.. 그래서 또 찾아봤더니 reset으로 한 글을 발견!! 하지만 reset은 커밋 수정이 아닌 취소.. 나는 취소가 단지 add 상태로 돌려놓는 줄 알았더니..

[CI/CD] github pages 배포 방법 (React-Typescript 프로젝트)

Github Pages 배포 (React-Typescript 프로젝트 배포) 배포 전 설정 cmd 창에서 프로젝트 폴더로 이동 후 npm i gh-pages -D package.json 파일의 “scripts” 블록 안에 "build” 바로 아래에 "deploy": "gh-pages -d dist" 추가 package.json "scripts": { "dev": "vite", "build": "tsc && vite build", "deploy": "gh-pages -d dist", // 추가! 배포 vite.config.ts 파일의 plugins: 바로 아래에 base: '/깃레포지토리이름/', 추가 vite.config.ts export default defineConfig({ plugins: [rea..

[CI/CD] 수정/삭제 된 파일이 github 원격 레포지토리에 올라가지 않을 때 (git add -u)

git add -u add - commit - push를 하던 중.. push fail이 자꾸 뜨길래 git pull 도 해보고 git pull 뒤에 명령어 길게도 해봤는데 안되서 결국 git push origin +master 로 강제 push 행.. 하지만! 분명 push를 했는데 status를 확인해보니 working tree clean은 뜨지 않고 deleted: 로 이미 삭제된 파일이 떴다. 구글링 해보니 나처럼 로컬에서 삭제하고 add - commit - push 해도 원격 레포지토리에 반영이 안되는 경우가 있다고 한다. 이럴때 git add -u 로 add 해주면 수정되거나 삭제된 파일도 반영해준다고 한다! git add -u 로 add 하고 commit 후 push까지 해주니 원격 레포지토..

[CI/CD] AWS S3 버킷 생성, AWS IAM 사용자 및 액세스 키 생성

AWS S3 버킷 생성 AWS S3 버킷 생성 이유 데이터베이스에 이미지를 저장할 때 이미지는 S3에 저장하고 url만 DB에 저장하여 조회되도록 하기위해 S3 버킷을 생성했다. AWS S3 버킷 생성 S3- 버킷 만들기 일반 구성 AWS 리전: 아시아 태평양(서울) ap-northeast-2 버킷 이름: 버킷 이름 객체 소유권 ACL 활성화됨 클릭 버킷 소유자 선호 이 버킷의 퍼블릭 액세스 차단 설정 모든 퍼블릭 액세스 차단 해제 버킷 버전 관리 비활성화 버킷 만들기 AWS IAM 사용자 생성(AmazonS3FullAccess) IAM- 사용자 생성 사용자 이름- 다음 권한 옵션 직접 정책 연결 권한 정책 정책 이름: AmazonS3FullAccess 사용자 생성 AWS IAM 액세스 키 생성 IAM-..