본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
안녕하세요 :)
오늘은 챌린지 44일차로, 벌써 한 주의 절반이 지나고 있는 수요일입니다.
오늘 배울 내용은,
Part B. 스프링 시큐리티 심화
Ch 6. 실전: 인증 서버와 애플리케이션 서버 분리
"04. 인증서버 구현 - 2" 입니다.

오늘은 지난 시간에 이어서 실제로 코드를 작성해보는 시간을 가지며 프로젝트를 만드는 것부터 시작을 했다.
src는 지우고 인증 서버와 비즈니스 논리 서버를 하나의 프로젝트 안에 같이 넣어서 만들 것이기 때문에 먼저 모듈 생성을 해주었다.
의존성은 Lombok, Spring Web, Spring Security, Spring Data JPA, MySQL Driver 을 넣어주었다.
먼저 데이터베이스쪽 설정을 해주었다. application.property 를 application.yml 로 변경해주었다. 그리고 auth-service의 경우에는 서버의 포트를 8080이 아닌 8081로 열어서 설정을 했다.
resource 파일 아래에 새로운 디렉토리인 SQL 디렉토리를 만들었다. 여기에는 schema.sql 을 넣어주었다. 이 안에는 user 테이블이랑 opt 테이블을 생성하는 코드를 넣었다.
그 다음에는 local에서 docker를 가지고 mysql을 띄운다고 설명했는데, docker-compose.yml 파일은 최상단에 있는 루트에 작성하면 된다. 실행시키는 방법은 터미널을 열어서 "docker-compose -f ./(docker-compose.yml의 파일의 경로)" 를 입력하면 된다. 띄울 때는 up이라고 입력하고 background에서 돌게 하기 위해서 -d 옵션을 주면 된다. 그리고 실행시키면 프로젝트가 시작된다.
잘 띄워졌는지 보려면 orb-stack 이라는 툴 컨테이너에 데이터베이스가 떴다는 것을 볼 수 있다. 여기에 접근하려면 별도의 데이터베이스 클라이언트 툴이 필요한데 강의에서는 DBeaver를 사용했다. 포트번호와 로그인 정보를 입력하여 로컬호스트에 접근할 수 있다. 데이터베이스에는 spring 이라고 하는 데이터베이스가 없기 때문에 create → new database → spring 데이터베이스를 생성하면 된다. 생성 후에 서버를 띄우면 되는데 안 뜨게 된다면 datasource의 config를 작성해주면 해결이 될 수 있다.
데이터베이스 설정을 위해서 config를 만들어서 @Configuration, @EntityScan, @EnableJpaRespositories 어노테이션 등을 추가하면 서버가 8081 경로로 하나의 어플리케이션이 뜨게 되는 것을 알 수 있었다.