-
Notifications
You must be signed in to change notification settings - Fork 8
로컬 DB 환경 설정
김경미 edited this page Aug 9, 2024
·
11 revisions
-
application-local.yml
에 있던 MySQL 관련 변수를 Github Secrets로 분리했기 때문에, 로컬 DB 설정 방식도 변경합니다. - MySQL 버전 변경(lts → 8.4.2)을 포함합니다.
- macOS 기준으로 작성되었습니다.
- 도커가 설치되어있어야 합니다.
- 기존에 사용중이던 DB가 있다면 Docker Desktop → Containers 에서 찾아 삭제합니다.
각자 편한 위치에 code-zap-db-local
파일을 생성합니다.
로컬 DB 관련 환경변수를 저장할 파일입니다.
저는 ~ 위치에 생성했습니다.
$ touch ~/code-zap-db-local
내용은 다음과 같습니다.
export ZAP_MYSQL_CONTAINER_NAME=***
export ZAP_MYSQL_IMAGE=mysql:8.4.2
export ZAP_MYSQL_ROOT_PASSWORD=***
export ZAP_MYSQL_DATABASE=***
export ZAP_MYSQL_HOST_PORT=***
~/.zshrc
파일에 다음의 코드를 추가하고 저장합니다.
source ~/code-zap-db-local
해당 설정을 적용합니다.
source ~/.zshrc
docker run \
--name ${ZAP_MYSQL_CONTAINER_NAME} \
-e MYSQL_ROOT_PASSWORD=${ZAP_MYSQL_ROOT_PASSWORD} \
-e MYSQL_DATABASE=${ZAP_MYSQL_DATABASE} \
-e TZ=Asia/Seoul \
-p ${ZAP_MYSQL_HOST_PORT}:3306 \
-d ${ZAP_MYSQL_IMAGE}
포트와 비밀번호를 환경변수로 대체합니다.
# application.yml
spring:
config:
import: classpath:application-db.yml
# application-db.yml
spring:
datasource:
url: jdbc:mysql://localhost:${ZAP_MYSQL_HOST_PORT}/code_zap?serverTimezone=Asia/Seoul
username: root
password: ${ZAP_MYSQL_ROOT_PASSWORD}
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: create-drop
properties:
hibernate:
format_sql: true
show_sql: true
- docker desktop에 잘 실행되었는지 확인합니다.

- IntelliJ에서 프로젝트 실행이 성공하는지 확인합니다.

- IntelliJ를 완전히 종료하고 다시 실행합니다.
- Docker Container가 running 상태인지 확인합니다.
-
source ~/.zshrc
를 실행할 때 에러 메시지가 발생하는지 확인합니다.
- 백엔드 코드 컨벤션
- 백엔드 기술 스택 및 선정 이유
- 각종 인스턴스 설정 파일 및 구성 위치 가이드
- ERD
- 백엔드 CI CD 동작 프로세스
- 로컬 DB 환경 설정
- 백엔드 로깅 전략
- 백엔드 로그 모니터링 구성도
- 스프링 메트릭 모니터링 구성도
- Flyway 로 스키마 관리
- 코드잽 서버 구성도
- Git Submodule 사용 메뉴얼
- 프론트엔드 코드 컨벤션
- 프론트엔드 기술 스택 및 선정 이유
- 프론트엔드 서비스 타겟 환경 및 브라우저 지원 범위 선정
- 프론트엔드 모니터링 및 디버깅 환경 구축
- 프론트엔드 테스트 목록
- 프론트엔드 라이브러리 기술 검토
- 프론트엔드 개발서버, 운영서버 빌드 및 배포 환경 구분
- 목표했던 타겟 환경과 디바이스에서 서비스 핵심 기능 동작 확인
- 프론트엔드 접근성 개선 보고서
- EC2 로그 확인 방법
- VSCode를 통한 EC2 인스턴스 SSH 연결 방법
- 터미널을 통한 EC2 인스턴스 SSH 연결 방법
- NGINX 설정 파일 접근 및 적용 방법
- DB 접속 및 백업 방법
- [QA] 배포 전 체크리스트
- CI 파이프라인 구축
- CD 파이프라인 구축
- 백엔드 CI CD 트러블슈팅
- Lombok Annotation Processor 의존성을 추가한 이유
- 2차 스프린트 기준 ERD
- DTO 검증하기
- ProblemDetail
- Fork된 레포지토리 PR에서 CI Secrets 접근 문제 해결
- AWS CloudWatch 모니터링
- 스프링 메트릭 모니터링 구축 방법
- 로깅과 Logback에 대해 알아보아요.
- Logback MDC로 쉽게 요청 추적하기 (+ Grafana로 추적 더더 쉽게!)
- 백엔드 CD 파이프라인 Ver.2
- 요청, 응답 로그에 correlationId 를 추가하자!
- 3차 스프린트 기준 ERD
- 더미데이터 생성하고 실행하기
- 쿼리 성능 개선 결과
- 테이블별 인덱스 설정 목록
- 사용자 증가 시 발생할 수 있는 문제 상황과 개선 방안
- k6를 사용한 서버 부하 테스트
- 6차 스프린트 기준 ERD
- TestExecutionListenr 간의 충돌 문제에 대해 알아보아요
- Query Performance Improvement Results
- 테스트 전략 및 CI 설정
- CI CD 구조
- 배포 전, 로컬에서 로그인 기능 포함 테스트해보는 법
- stylelint 적용기
- 내 작업 브랜치 중간에 Merge된 동료의 작업물을 넣고 싶다면 pull vs rebase
- [TS] Webpack config
- [TS] Webpack 환경에서 MSW v2 이슈
- [TS] webpack에서 react‐router‐dom 적용 안됨