서버개발환경구성
Requirements
- JDK8
- Maven
- Gradle
- NodeJS
- Intelij IDEA
JDK8 설치
생략
Maven 설치
생략
Gradle 설치
생략
Idea 설치
Intellij IDEA 설치 및 lombok 플러그인 설치
NodeJS 설치
nodejs 공식 사이트 : https://nodejs.org/ko/
NodeJS : 전역 패키지 설치
gulp
와 http-server
패키지를 전역설치(실행명령어로 어디서든 실행 가능)한다.
npm install -g gulp
npm install -g http-server
gulp 는 smart-admin-sample full(angularjs ver.) 및 admin-webapp 구동시에 사용된다. http-server 는 samrt-admin full(ajax ver.) 에 사용된다.
mac 사용자의 경우 -g 옵션으로 설치시에 root 권한이 필요할 수 있다.
sudo npm install -g gulp
와 같이sudo
명령어로 루트 권한으로 설치를 한다.
빌드
git 소스 체크아웃
워크스페이스 디렉토리로 이동하고 소스 체크아웃
git clone [email protected]:semogyocorp/semogyo.git
idea 로 열고 작업한다.
본 문서에서 편의상 체크아웃 받은 디렉토리를 $SRC_HOME 으로 정의하겠다.
cd $SRC_HOME/admin-webapp/src/main/webapp
npm install
샘플 소스 띄우기
admin-webapp 는 angular js 를 이용하여 개발하는데, smart-admin 이라는 상용 템플릿을 가져다가 필요한 부분을 가져와 개발한다. 따라서 샘플 소스를 조회할 필요가 있는데 다음과 같이 구동하여 확인할 수 있다.
Smart Admin Sample (AngularJS Full Version)
cd $SRC_HOME/sample/angularjs-full
npm install
gulp
npm install
은 최초 구동시 1회하면 하면 된다.
위와 같이 서버를 실행하면 http://localhost:8888 로 확인 할 수 있다.
Smart Admin Sample (Ajax Full Version)
AngularJS 버젼은 다소 완성도가 떨어지는데 Ajax 버젼을 참고하면 더 좋은 경험을 얻을 수 있다.
cd $SRC_HOME/sample/ajax-full
http-server -p 8000
접속 가능한 주소는 콘솔에 출력된다.
Admin 서버 실행
cd $SRC_HOME/admin-webapp/src/main/webapp
npm install
gulp
npm install
은 최초 구동시 1회하면 하면 된다.
위와 같이 서버를 실행하면 http://localhost:9999
로 접속할 수 있다
이렇게 매번 해당 디렉토리로 이동해서 띄우는게 불편할 경우 bash_profile 에 alias 등록하여 실행하면 편한다. mac 사용자의 경우 다음과 같이 한다. (자신의 워크스페이스 환경에 맞도록 경로는 수정해야한다.)
위치 : ~/.bash_profile
alias semogyo-admin="cd /Users/sai/IdeaProjects/semogyo/admin-webapp/src/main/webapp && gulp"
API 서버 띄우기
최초 설치시 로컬 서버에 MySQL 데이타베이스 및 MySQL 사용자 등록이 되어있어야한다.
makeCreateDatabaseUserSql
task 를 수행하여 생성된 SQL 로 데이타베이스 및 사용자를 추가해야 한다.
cd $SRC_HOME/api
gradle makeCreateDatabaseUserSql
...
데이타베이스 및 사용자 생성 sql 출력됨
...
출력된 SQL 문을 mysql 의 root 계정으로 실행한다.
그리고 다음과 같이 서버를 실행하면http://localhost:8080
로 서빙된다.
cd $SRC_HOME/api
gradle bootRun
또한 API 서버는 Restfull 로 개발되었는데, 해당 API 는 Swagger 를 통해 문서화되고 테스트할 수 있다.
Swagger UI 는 http://localhost:8080/swagger-ui.html
로 접속한다.