혼자공부중
공부하는 블로그
혼자공부중
전체 방문자
오늘
어제
  • 분류 전체보기 (111)
    • 자격증 (49)
      • 정보처리기사 실기 (49)
    • JAVA (18)
    • DB (0)
    • 알고리즘 문제 풀이 (11)
      • 프로그래머스 (11)
    • Front (0)
      • HTML (0)
      • CSS (0)
      • Javascript (0)
    • 패스트캠퍼스 강의 (33)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 반복문
  • SQLD
  • 자바
  • 코딩테스트
  • 객체지향
  • 정보처리기사 실기 정리
  • 관계형데이터베이스
  • 2022정보처리기사
  • 애플리케이션테스트
  • 패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완
  • 정보처리기사 실기
  • 변수
  • 2022정보처리기사필기
  • 메소드
  • 시나공
  • 정보처리기사 필기 정리
  • 수제비
  • 데이터베이스
  • 배열
  • 상속
  • 데이터모델
  • DBMS
  • 정보처리기사
  • 2022정보처리기사실기
  • UI
  • 알고리즘
  • 프로그래머스
  • 정보처리기사 필기
  • 인터페이스
  • Java

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
혼자공부중

공부하는 블로그

[17일차] 50일 포트폴리오 챌린지
패스트캠퍼스 강의

[17일차] 50일 포트폴리오 챌린지

2023. 8. 24. 15:19
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/43z0P6S 

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr



MySQL

MySQL 설치

MySQL :: Download MySQL Community Server

 

MySQL :: Download MySQL Community Server

Select Version: 8.1.0 Innovation 8.0.34 5.7.43 Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS

dev.mysql.com

이곳에서 본인 OS에 맞는, 원하는 버전을 다운로드 받아서 설치하면 된다.

Docker를 사용하여 MySQL 설치

Docker로 MySQL을 띄우는 이유

독립적인 프로세스 운용

내 로컬 환경에 설치된 MySQL과 독립적으로 DB를 운영하고 싶은 경우 도커를 이용할 수 있다.

예를 들어 나는 새로운 프로젝트 시작할 때 MySQL설정을 이것저것 바꿔야 했는데 잘못된 설정을 되돌리지 못해 MySQL를 지웠다 설치했다 여러 번 한 경험이 있다. 이럴 때 기존 MySQL에 있는 자료들도 다 삭제하게 돼서 많이 불편했던 경험이 있다.

도커를 이용해 MySQL을 컨테이너로 띄우면 잘못된 설정을 하더라도 MySQL을 매번 삭제할 필요 없이 컨테이너를 삭제하고 다시 띄우기만 하면 된다.

또한 로컬 환경과 독립적으로 실행되기 때문에 컨테이너를 삭제하고 다시 올려도 로컬 환경에 설치된 MySQL에 전혀 변경이 없다.

또 다른 예시로는 다음과 같은 경우가 있다.

내 로컬 환경에 MySQL 뿐만 아니라 MriaDB 같은 복수의 DB가 설치되어 있다고 하자.

이 경우 포트 번호가 중복될 수 있고, MySQL과 MriaDB 같은 경우에는 자칫 잘못하면 설정이 이상하게 공유되는 경우가 있을 수 있다.

도커로 MySQL을 띄우면 외부와 연결되는 포트번호를 지정해 줄 수 있고 독립적인 환경에서 실행되기 때문에 위와 같은 문제를 해결할 수 있다.

데이터베이스, 유저 생성

create database board;

create user 'yoon'@'%' identified by 'yoon';
select `user` from `mysql`.`user`;
show grants for 'yoon'@'%';
grant all on `board`.* to 'yoon'@'%' with grant option;

flush privileges;

application.yaml 생성

debug: false
management:
  endpoints:
    web:
      exposure:
        include: "*"
logging:
  level:
    com.fastcampus.projectboard: debug
    org.springframework.web.servlet: debug
    org.hibernate.type.descriptor.sql.BasicBinder: trace

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3305/board
    username: yoon
    password: yoon
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    defer-datasource-initialization: true
    hibernate:
      ddl-auto: create
    show-sql: true
    properties:
      hibernate:
        format_sql: true
        default_batch_fetch_size: 100
  h2.console.enabled: false
  sql.init.mode: always

디버그 구성

debug: false

이는 애플리케이션이 디버그 모드에서 실행되어야 하는지 여부를 나타냅니다. 'true'로 설정하면 더 자세한 디버깅 정보를 제공하는 디버그 모드가 활성화됩니다.

액추에이터 엔드포인트 구성

management:
  endpoints:
    web:
      exposure:
        include: "*"

이 구성은 웹 인터페이스를 통해 사용 가능한 모든 액추에이터 엔드포인트를 노출합니다. 액추에이터 엔드포인트는 애플리케이션에 대한 다양한 정보와 모니터링 기능을 제공합니다.

로깅 구성

logging:
  level:
    com.fastcampus.projectboard: debug
    org.springframework.web.servlet: debug
    org.hibernate.type.descriptor.sql.BasicBinder: trace

이 섹션에서는 애플리케이션의 다양한 패키지 또는 클래스에 대한 로깅 수준을 구성합니다.

  • com.fastcampus.projectboard 패키지는 DEBUG 수준에서 기록됩니다.
  • org.springframework.web.servlet 패키지는 DEBUG 수준에서 기록됩니다.
  • org.hibernate.type.descriptor.sql.BasicBinder 클래스는 DEBUG보다 더 자세한 TRACE 레벨에서 로그를 기록합니다.

데이터소스 구성

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3305/board
    username: yoon
    password: yoon
    driver-class-name: com.mysql.cj.jdbc.Driver

이는 애플리케이션의 MySQL 데이터베이스 연결을 위한 데이터 소스를 구성합니다.

JPA 구성

spring:
  jpa:
    defer-datasource-initialization: true
    hibernate:
      ddl-auto: create
    show-sql: true
    properties:
      hibernate:
        format_sql: true
        default_batch_fetch_size: 100

이 섹션에서는 다양한 JPA 및 Hibernate 설정을 구성합니다.

  • defer-datasource-initialization: true는 필요할 때까지 데이터 소스 초기화를 연기합니다.
  • ddl-auto: create는 Hibernate가 데이터베이스 스키마를 생성해야 함을 나타냅니다. 제작 시 주의하세요.
  • show-sql: true를 사용하면 SQL 쿼리 로깅이 활성화됩니다.
  • format_sql: true는 로그의 가독성을 높이기 위해 SQL 쿼리 형식을 지정합니다.
  • default_batch_fetch_size: 100은 성능 향상을 위해 기본 배치 가져오기 크기를 설정합니다.

H2 콘솔 구성

spring:
  h2:
    console:
      enabled: false

H2 데이터베이스 관리를 위한 웹 기반 도구인 H2 데이터베이스 콘솔이 비활성화됩니다.

SQL 초기화 구성

spring:
  sql:
    init:
      mode: always

애플리케이션 시작 중에 SQL 스크립트가 실행되어야 함을 지정합니다('항상' 모드).

저작자표시 변경금지 (새창열림)

'패스트캠퍼스 강의' 카테고리의 다른 글

[19일차] 50일 포트폴리오 챌린지  (0) 2023.08.26
[18일차] 50일 포트폴리오 챌린지  (0) 2023.08.25
[16일차] 50일 포트폴리오 챌린지  (0) 2023.08.23
[15일차] 50일 포트폴리오 챌린지  (0) 2023.08.22
[14일차] 50일 포트폴리오 챌린지  (1) 2023.08.21
    '패스트캠퍼스 강의' 카테고리의 다른 글
    • [19일차] 50일 포트폴리오 챌린지
    • [18일차] 50일 포트폴리오 챌린지
    • [16일차] 50일 포트폴리오 챌린지
    • [15일차] 50일 포트폴리오 챌린지
    혼자공부중
    혼자공부중
    대단한 목적보다는 혼자 공부하는 것에 의미를 두려고 합니다.

    티스토리툴바