웹 기술 프로젝트의 Backend 스켈레톤 코드
| Project | Version | Description |
|---|---|---|
| Java | 1.8 | |
| Gradle | 6.7+ | Build Tool |
| MySQL | ||
Windows 기준 개발 환경 구성 설명
-
OpenJDK 설치
- JDK 다운로드 사이트에서 1.8.x 설치 파일 다운로드 및 실행
- Zulu OpenJDK: https://www.azul.com/downloads/?version=java-8-lts&package=jdk
- OJDK Build: https://github.com/ojdkbuild/ojdkbuild
- 설치 후 명령 프롬프트(cmd) 확인
출력 예)
> java -versionopenjdk version "1.8.0_192" OpenJDK Runtime Environment (Zulu 8.33.0.1-win64) (build 1.8.0_192-b01) OpenJDK 64-Bit Server VM (Zulu 8.33.0.1-win64) (build 25.192-b01, mixed mode)
- JDK 다운로드 사이트에서 1.8.x 설치 파일 다운로드 및 실행
-
데이터베이스 구성 (이미 설치되어 있거나 원격 DB를 사용하는 경우 설치 부분 생략)
-
MySQL 다운로드 사이트에서 Community 설치 파일 다운로드 및 실행
-
MySQL Server, MySQL Shell을 포함하여 설치
-
DB 및 계정 생성
- MySQL Shell 실행
MySQL JS > \connect root@localhost MySQL localhost:3306 JS > \sql - DB 생성
create database IF NOT EXISTS `ssafy_web_db` collate utf8mb4_general_ci;
- User 생성
create user '사용자계정'@'localhost' identified by '비밀번호'; grant all privileges on ssafy_web_db.* to 'ssafy'@'localhost'; flush privileges;
- MySQL Shell 실행
-
-
IDE 설치 (이미 설치되어 있거나 IntelliJ 등 다른 편집기를 사용할 경우 생략)
- Eclipse 다운로드 사이트에서 Eclipse IDE 설치 파일 다운로드 및 실행
- Eclipse IDE for Enterprise Java and Web Developer 선택하여 설치
- Eclipse 실행 후 Encoding 변경
- [Window] - [Preferences] - [General] - [Content Types] - [Text] - Default Encoding: UTF-8
- [Window] - [Preferences] - [General] - [Workspace] - Text file encoding: UTF-8
- Spring Tools 3 설치
- [Help] - [Eclipse Marketplace] - sts 검색 후 Spring Tools 3 설치
- Lombok 설치
- [Help] - [Install New Software] - Work with: https://projectlombok.org/p2 입력 후 Lombok 설치 진행
- Eclipse 재시작
-
스켈레톤 다운로드 및 실행
-
프로젝트 다운로드
git clone <repo URL> -
Eclipse의 [File] - [Import] - [Grade] - [Existing Gradle Project]에서 backend-java 폴더 선택 후 [Finish]
-
Project Explorer에서 프로젝트 우클릭 후 [Spring] - [Add Spring Nature] 선택
-
src/main/resources/application.properties 수정
spring.datasource.hikari.username=<사용자 계정> spring.datasource.hikari.password=<비밀번호>
5. [Gradle Tasks] 탭의 [Rub Gradle Tasks] 선택하여 실행 -
.
└── main
├── generated
├── java
│ └── com
│ └── ssafy
│ ├── GroupCallApplication.java
│ ├── api /* REST API 요청관련 컨트롤러, 서비스, 요청/응답 모델 정의*/
│ │ ├── controller
│ │ │ ├── AuthController.java
│ │ │ └── UserController.java
│ │ ├── request
│ │ │ ├── UserLoginPostReq.java
│ │ │ └── UserRegisterPostReq.java
│ │ ├── response
│ │ │ ├── UserLoginPostRes.java
│ │ │ └── UserRes.java
│ │ └── service
│ │ ├── UserService.java
│ │ └── UserServiceImpl.java
│ ├── common /* 공용 유틸, 응답 모델, 인증, 예외처리 관련 정의*/
│ │ ├── auth
│ │ │ ├── JwtAuthenticationFilter.java
│ │ │ ├── SsafyUserDetailService.java
│ │ │ └── SsafyUserDetails.java
│ │ ├── exception
│ │ │ └── handler
│ │ │ └── NotFoundHandler.java
│ │ ├── model
│ │ │ └── response
│ │ │ └── BaseResponseBody.java
│ │ └── util
│ │ ├── JwtTokenUtil.java
│ │ └── ResponseBodyWriteUtil.java
│ ├── config /* WebMvc 및 JPA, Security, Swagger 등의 추가 플러그인 설정 정의*/
│ │ ├── JpaConfig.java
│ │ ├── SecurityConfig.java
│ │ ├── SwaggerConfig.java
│ │ └── WebMvcConfig.java
│ └── db /* 디비에 저장될 모델 정의 및 쿼리 구현 */
│ ├── entity
│ │ ├── BaseEntity.java
│ │ └── User.java
│ └── repository
│ ├── UserRepository.java
│ └── UserRepositorySupport.java
└── resources
├── README.md
├── application.properties /* 웹 리소스(서버 host/port, 디비 host/port/계정/패스워드) 관련 설정 정의 */
├── babel.config.js
├── dist
├── package-lock.json
├── package.json
├── public