인프런에서 실습으로 배우는 선착순 이벤트 시스템이라는 재밌는 강의가 있어서 진행해 보았다. 커리큘럼을 보니까 Redis와 Kafka를 사용해서 진행하는데 Redis는 그렇다 치고, Kafka는 따로 사용해 본 적이 없어서 간단하게 경험하기 위해 진행했다.
최상용 강사님의 강의인데 이분 강의는 슬쩍슬쩍 알음알음 맛보기 좋은 강의인 것 같다. 재고 시스템을 구현하면서 동시성을 해결하는 강의도 이전에 들었는데 다시 들어보면서 정리해 볼 예정이다.
이 글에서 전체 코드를 보여주진 않으니 궁금한 사람은 해당 강의를 들어보는 것을 추천한다. 인프런이 할인을 자주해서 대충 20퍼 할인할 때 구매하면 정가인 느낌이다.(정가가 아까운 강의는 아니다.)
Docker와 MySQL
1. Docker 설치 및 셋팅
brew install docker
brew link docker
docker version
맥북으로 실습을 진행했다. 패키 지 관리자인 brew를 통해 docker를 설치하는 것 부터 시작한다.
docker pull mysql
실습에서 기본적으로 MySQL을 사용한다. MySQL의 Image를 가져온다. 이때 버전을 기록하지 않으면 자동으로 Latest 버전을 가져오게 된다.
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql
docker ps
docker exec -it mysql
MySQL 컨테이너를 생성해 주고 실행시켜 준다.
2. MySQL 연동과 데이터베이스 셋팅
mysql -u root -p
위에서 실행한 컨테이너에서 MySQL에 접속해 준다. 암호는 위에서 설정한 1234
를 참고한다.
CREATE DATABASE coupon_example;
USE coupon_example;
coupon_example 데이터베이스를 생성하고 메인 데이터베이스로 설정해 준다.
spring:
jpa:
hibernate:
ddl-auto: create
show-sql: true
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/coupon_example
username: root
password: 1234
Spring 프로젝트에 application.yml 파일에 위와 같이 접속 정보를 설정해 주면 기초 공사는 끝나게 된다.