본문 바로가기

🐾 개발

프로젝트 : 짜툴 (2) 240320 ~ 240325

📌  TODO

  • mysql 설치
  • db 연결 (db.properties)
  • 샘플 데이터 추가
  • 요구사항명세서 작성

 

☑️ mysql 설치

 

[MacOS M2] MySQL 설치하기 (feat. homebrew)

homebrew에 이은 mySQL 설치하기 시작! 사실 이것도 이전에 한 번 실패하고 마꺾(마음이 꺾임) 경험이 있다.. 오늘은 꼭 성공 기원 🙏🏻 만약 homebrew 설치가 궁금하다면 ? 🧐 [MacOS M2] homebrew 설치하기

kimparkpark.tistory.com

설치 과정은 윗글로 포스팅해두었다.

이번 프로젝트에서는 mysql을 써보기로 했기 때문에 mysql을 설치해주었다.

 


 

☑️ db 연결

db를 연결하기 전, user를 먼저 생성하고 권한을 설정해주었다.

CREATE USER 'zzatool'@'localhost' IDENTIFIED BY '--------';
GRANT ALL PRIVILEGES ON *.* TO 'zzatool'@'localhost';

 

 

user가 잘 생성이 되었는지 확인하기 위해, 생성한 user로 mysql에 접속해보았다.

정상적으로 접속이 되었다!

 

다음, 프로젝트에서 db를 연결하기 위해 db.properties를 작성하였다.

# MySQL 설정
spring.datasource.url=jdbc:mysql://localhost:3306/zzatool
spring.datasource.username=zzatool
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 콘솔에 SQL 출력 여부
spring.jpa.show-sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
# hibernate 설정
spring.jpa.database=mysql
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.generate-ddl=false
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true

 

처음에 실행했을 때 오류가 발생했었다. 오류문은 아래와 같았다.

Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(java.sql.SQLException, java.lang.String)" because the return value of "org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.sqlExceptionHelper()" is null

 

단순히 경로가 잘못되었던 것이었고,

(나는 mysql이라는 데이터베이스를 쓰려고 했기 때문에 경로를 mysql로 설정했어야 하는데, zzatool로 되어있었다)

경로를 mysql로 변경해주었더니 오류가 해결되며 정상적으로 db에 entity들이 생겼다.

 

다시 설정한 경로는 이렇다.

spring.datasource.url=jdbc:mysql://localhost:3306/mysql

 

처음으로 mysql을 설치하고 연결하는 과정이라 유저를 zzatool로 설정하고 데이터베이스를 생성하지 못했는데,

다음에 유저를 timekiller(현재 우리의 팀명..ㅎ) 로, 데이터베이스 이름을 zzatool로 재생성해야겠다.

그때는 잊지 않고 경로를 mysql -> zzatool 로 다시 바꿔줘야겠다.

 


 

☑️ appliaction.properties

application.properties를 설정한 팀원이 slack으로 아래와 같이 메시지를 보냈다.

.gitignore에 추가된 파일이라 해당 loacl properties 파일을 내 프로젝트 resources 폴더에 넣어주었다!

 


 

☑️ 샘플 데이터 추가

 

터미널에서 위와 같이 샘플 데이터들을 추가해주었다. 개발 후 테스트할 수 있는 최소한의 데이터..

이제 요구사항명세서를 작성하며 "찐"개발을 준비할 시간이다.. ^^!

 


 

☑️ 요구사항명세서

  • 메인 페이지
    • 테스트 목록 조회
      • 최신순 정렬 (테스트 제작 일시 기준)
      • 인기순 정렬 (테스트 제출 횟수 기준)
    • 테스트 검색
      • 테스트 제목 별 테스트 목록 조회
      • 해시태그 별 테스트 목록 조회
    • 로그아웃
  • 로그인 페이지
    • 로그인
  • 아이디 찾기 페이지
    • 이메일 조회
  • 비밀번호 찾기 페이지
    • 비밀번호 수정
      • 이메일 인증
  • 회원가입 페이지
    • 회원가입
      • 이메일 인증
  • 마이 페이지
    • 회원이 푼 테스트 목록 조회
      • 테스트 결과 페이지로 이동
    • 회원이 만든 테스트 목록 조회
      • 테스트 상세 조회 페이지로 이동
    • 회원 탈퇴
  • 회원 정보 변경 페이지
    • 회원 정보 수정
  • 테스트 생성 페이지
    • 테스트 생성
      • 대표 이미지 aws s3 저장
      • 문제 생성
        • 이미지 aws s3 저장
      • 보기 생성
      • 해시태그 생성
    • 테스트 질문 추천 api
  • 테스트 상세 조회 페이지
    • 테스트 정보 조회
    • 테스트 신고
      • 테스트 신고
      • 문제 신고
    • 테스트 링크 생성 및 공유 기능
    • 한줄평
      • 한줄평 목록 조회
      • 한줄평 추가
      • 한줄평 클린봇
      • 한줄평 삭제
    • 추천 테스트 목록 조회
  • 테스트 풀기 페이지
    • 문제 목록 조회
      • 보기 목록 조회
    • 이미지/영상 조회
    • 테스트 채점 기능
      • 테스트 결과 추가
      • 문제 정답률 및 기타 관련 정보 업데이트
  • 테스트 결과 페이지
    • 테스트 결과 조회
  • 관리자 페이지
    • 신고 목록 조회
      • 테스트 신고 목록 조회
        • 테스트 삭제
      • 문제 신고 목록 조회
        • 문제 삭제
  • 문제 신고 상세 조회 페이지
    • 신고 상세 정보 조회
    • 문제 수정

전체적인 기능을 페이지 별로 나누어 정리해보았다.

우선 대표적으로 기능을 이렇게 정리했고, 필요한 사항이 생기면 추가/수정하기로 했다.

 


 

📌 3월 25일

온라인으로 팀원끼리 미팅을 진행했다.

기능을 상세하고 정확하게 나누고, 개발 목표를 정한 뒤 다음 미팅 날짜를 잡고 종료했다.