웹 기술 프로젝트의 Backend 스켈레톤 코드
| Project | Version | Description |
|---|---|---|
| Java | 17.0.x | Open JDK LTS |
| Gradle | 6.9.3 | Build Tool |
| MySQL | 8.0.x |
Windows 기준 개발 환경 구성 설명
-
OpenJDK 설치
- 17 LTS 설치 파일 다운로드 및 실행
- 설치 후 명령 프롬프트(cmd) 확인
출력 예)
> java -versionopenjdk version "17.0.11" 2024-04-16 OpenJDK Runtime Environment Temurin-17.0.11+9 (build 17.0.11+9) OpenJDK 64-Bit Server VM Temurin-17.0.11+9 (build 17.0.11+9, mixed mode, sharing)
-
데이터베이스 구성 (이미 설치되어 있거나 원격 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 설치
- JetBrains 공식 사이트에서 IntelliJ IDE Community Edition 설치 파일 다운로드 및 실행
-
스켈레톤 다운로드 및 실행
-
프로젝트 다운로드
git clone <repo URL> -
IntelliJ의 [File] - [Open]에서 backend 폴더 선택 후 [OK]
-
src/main/resources/application.properties 수정
spring.datasource.hikari.username=<사용자 계정> spring.datasource.hikari.password=<비밀번호> -
[Gradle Tasks] 탭의 [Run 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
├── application.properties /* 웹 리소스(서버 host/port, 디비 host/port/계정/패스워드) 관련 설정 정의 */