npm install npm@latest -g
개발 환경을 실행하는 방법에 대한 단계별 예시입니다.
먼저, 저장소를 클론합니다.
git clone https://github.com/im2sh/DATABASE-PROJECT-COMP-322.git
그 다음, 디렉토리를 'phase-4/togaether/src/main/frontend'로 변경합니다.
의존성 설치를 진행합니다.
npm install
애플리케이션을 실행하려면 아래 명령어를 입력하세요.
npm run start
이렇게 하면 앱이 개발 모드로 실행됩니다. 브라우저에서 http://localhost:3000을 열어서 접속할 수 있습니다.
이 프로젝트에 사용된 라이브러리/프레임워크와 버전들입니다.
- @chakra-ui/react v2.8.2
- @emotion/react v11.11.1
- @emotion/styled v11.11.0
- @testing-library/jest-dom v5.17.0
- @testing-library/react v13.4.0
- @testing-library/user-event v13.5.0
- axios v1.6.2
- framer-motion v10.16.5
- http-proxy-middleware v2.0.6
- react v18.2.0
- react-dom v18.2.0
- react-icons v4.12.0
- react-router-dom v6.20.0
- react-scripts v5.0.1
- styled-components v6.1.1
- web-vitals v2.1.4
- zustand v.4.4.7
[OS]
MAC
Sonoma 14.0
[Language]
Java
17.0.6
[Framework]
Spring Boot : 3.1.5
Spring-Data-JPA
Spring-Web
Swagger : 3.0.0
Lombok : 1.18.28
Ojdbc : 11 version : 23.2.0.0
[IDE]
IntelliJ IDEA 2023.2.5 (Ultimate Edition)
Build #IU-232.10227.8, built on November 9, 2023
Runtime version: 17.0.9+7-b1000.46 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Oracle 버전: Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
SQLPLUS 버전: PL/SQL Release 21.0.0.0.0 - Production
Oracle SQL Developer 버젼: 22.2.0.173
Oracle SQL Developer 빌드: 173.2018
DDL : phase-4/togaether/src/main/resources/sql/Team12_Phase4_DDL.sql
DML : phase-4/togaether/src/main/resources/sql/Team12_Phase4_Insert.sql
File > Project > Project Structure에서
- Projects > SDK > 17 Oracle OpenJDK version 17.0.6
- Modules > Module SDK > Project SDK 17
선택 후, OK
Settings > Gradle > Gradle JVM: 17 Oracle OpenJDK version 17.0.6
선택 후, OK
- Team12_Phase4_DDL, Team12_Phase4_Insert 실행 완료된 DB 준비
- main > resources 에서 application settings.properties 파일 생성 후, #encoding, #dbms, #jpa 정보 입력
- src > java > api > service > TogetherApplication 접속 및 실행
- Team12_Phase4_DDL.sql 파일 수정
- 기존에 Diary와 Place는 N:M 관계로 되어 있어서, 중간 테이블인 Contains가 존재
- 투개더의 서비스는 하나의 일기에 하나의 장소에 종속적인 관계이기 때문에, Diary와 Place는 1:N 관계로 변경
- 따라서, Contains 테이블 삭제
- Pet PK를 부여
- 기능 확장을 고려하여 Sequence한 Key값을 가지고 있어야 한다고 판단
- 기존에 User_ID와 petName의 조합하여 복합키로 가지고 있었으나, Pet_ID을 생성하여 PK를 부여
- 새로운 데이터 삽입을 위해 1씩 증가하는 무결성 제약 조건을 가지는 Sequence 생성
- Diary_ID, Pet_ID, User_ID
- 기존에 Diary와 Place는 N:M 관계로 되어 있어서, 중간 테이블인 Contains가 존재
- Team12_Phase4_Insert.sql 파일 수정
- DDL의 변경으로 인해, Insert 또한 파일 수정이 발생
- 자바에 있는 LocalDateTime 객체를 이용하여 생성 날짜를 생성하고 저장하는 과정에서 Oracle DB와 호환이 되지 않아, Data Field에 TO_DATE 추가
- e.g. TO_DATE('2021-10-01', 'YYYY-MM-DD')
- Contains 삭제에 따라 Diary FK 설정 변경
- Pet PK 부여에 따라 PET ID 설정 변경