-
Notifications
You must be signed in to change notification settings - Fork 0
프로젝트 설치 및 실행방법
SeungChulNa edited this page Feb 18, 2022
·
8 revisions
- github 저장소로부터 프로젝트 클론받기
- docker-compose를 사용해서 로컬서버를 위한 데이터베이스 설치하기
- schema.sql파일로 테이블 생성 및 외래키 제약조건 등 추가하기
- 파이썬 스크립트를 사용해서 data.sql파일 생성하기
- 생성된 data.sql파일로 테스트 데이터 입력하기
- github에 업로드되어 있지 않은 설정파일 추가하기
배포버전의 데이터베이스 정보와 OAuth의 client secret등의 민감한 정보를 담은 설정파일은 github에 올라가 있지 않습니다.
해당 설정파일을 추가하지 않으면 애플리케이션을 실행할 수 없습니다.(없어도 OAuth기능이 필요없는 단위테스트는 동작합니다!) - IDE 설정
- 프로젝트 실행
git clone https://github.com/Malloc72P/QnaOverflow.git
- 프로젝트 최상위 경로로 부터
be/qnaboard/docker
폴더로 이동합니다.
cd be/qnaboard/docker/
- 아래의 명령어를 입력해서 MySQL 데이터베이스를 도커를 사용해서 설치합니다.
mysql 데이터베이스의 버전은8.0.27
입니다.
docker-compose up -d
- 해당
docker-compose
의 상세설정은docker-compose.yml
파일에서 확인할 수 있습니다.
해당 파일은be/qnaboard/docker
폴더 밑에 있습니다 - 데이터베이스의 루트유저와 일반 유저에 대한 정보는
be/qnaboard/docker/.env
파일에서 확인하실 수 있습니다. - 로컬환경에서 도커의 데이터베이스에 잘 접속할 수 있는지 테스트해봐야 합니다.
저는 IntelliJ의 Database접속기능으로 테스트해보겠습니다. - 데이터베이스탭에서 추가 버튼을 누른 후, MySQL을 선택합니다.
- 데이터 소스 설정창에서는 user와 password를 입력해줍니다.
be/qnaboard/docker/.env
에서 만들어놓은 계정을 사용하겠습니다.
id
는dev
,pw
는dev1234
입니다. 데이터베이스의 이름은qnaboard
입니다.
- DataSources 설정패널의 하단부에 있는 Test Connection버튼을 눌러 연결할 수 있는지 확인합니다.
-
be/qnaboard/src/main/resources/schema.sql
에 있는 스크립트를 우클릭하고 Run schema.sql버튼을 클릭합니다.
- Target data source / schema: 아래의
+
버튼을 클릭하고qnaboard@localhost
를 추가합니다. 그리고 Run버튼을 클릭합니다.
- 생성된 테이블은 데이터베이스 패널에서 확인할 수 있습니다.
-
be/qnaboard/data-initializer
폴더로 이동합니다. -
main.py
스크립트를 실행합니다.main.py
스크립트는 프로젝트의 테스트 데이터를 bulk insert하는data.sql
파일을 생성합니다.
py ./main.py
- 생성된
data.sql
파일은be/qnaboard/src/main/resources
에 있습니다.
-
data.sql
파일을 우클릭하고run data.sql
버튼을 클릭합니다.
- Target data source / schema: 아래의
+
버튼을 클릭하고qnaboard@localhost
를 추가합니다. 그리고 Run버튼을 클릭합니다.
- github에서 누락된 설정파일은
application-dev.yml
과application-oauth.yml
입니다.
두 파일을be/qnaboard/src/main/resources
밑에 만들어준 다음 아래의 예시를 따라 작성해줍니다. -
application-dev.yml
예시입니다. 데이터베이스 정보와 api_url을 고쳐주면 됩니다.
spring:
jpa:
hibernate:
ddl-auto: none
database_url: 배포버전_데이터베이스_url주소:데이터베이스_포트번호
database_username: 배포버전_데이터베이스_접속계정_아이디
database_password: 배포버전_데이터베이스_접속계정_비밀번호
api_url: 배포버전_웹애플리케이션의_URL
-
application-oauth.yml
의 예시입니다. 물음표 부분을 고쳐주면 됩니다.
spring:
security:
oauth2:
client:
registration:
google:
client-id: '?'
client-secret: '?'
scope: profile, email
naver:
client-name: naver
client-id: '?'
client-secret: '?'
redirect-uri: "{baseUrl}/{action}/oauth2/code/{registrationId}"
authorization-grant-type: authorization_code
scope: profile,email,profile_image
provider:
naver:
authorization-uri: https://nid.naver.com/oauth2.0/authorize
token-uri: https://nid.naver.com/oauth2.0/token
user-info-uri: https://openapi.naver.com/v1/nid/me
user-name-attribute: response
- 구글 OAuth 설정하기
- Google Cloud Platform에서 사용자 인증정보를 생성하고, 발급받은 client-id와 secret을 위의 설정에 입력합니다.
- 네이버 OAuth 설정하기
- 네이버 개발자센터에서 네아로 애플리케이션을 생성하고, 발급받은 client-id와 secret을 위의 설정에 입력합니다.
- 실행환경을 gradle 대신 intelliJ로 변경합니다.
- 실행 설정을
QnaboardApplication
으로 변경합니다.
- Run 'QnaboardApplication'버튼을 클릭하여 애플리케이션을 시작합니다.
- 브라우저의 주소창에 http://localhost:8080를 입력하여 QnaOverflow에 접속합니다.