
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.4.4)
🖱️ 서비스 링크
- 프로젝트 이름: Brain Cleaner
- 프로젝트 설명: 도파민 디톡스 경험 공유 및 인증 커뮤니티
유재현 | 이서영 | 이은서 | 최정인 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
BE | BE | BE | BE |
GitHub | GitHub | GitHub | GitHub |
-
회원가입:
- 회원가입 시 DB에 유저정보가 등록됩니다.
-
로그인:
- 사용자 인증 정보를 통해 로그인합니다.
-
프로필:
- 개인 프로필에서 닉네임, 프로필 사진 설정이 가능합니다.
- 포인트 조회가 가능합니다.
- 이번 주 인증 현황, 연속 인증일 수 조회가 가능합니다.
- 디톡스 희망 시간을 프로필에서 설정할 수 있습니다.
- 다른 유저를 팔로우할 수 있습니다.
-
도파민 디톡스 인증하기:
- 메인화면 [인증게시판]에서 게시글 작성을 통해 도파민 디톡스 인증할 수 있습니다.
- 작성한 게시글을 수정하거나 삭제할 수 있습니다.
- 다른 유저의 게시글에 좋아요, 댓글, 대댓글 작성을 할 수 있습니다.
- 게시글을 작성하면 관리자 승인 이후에 포인트가 지급됩니다.
-
게시글 작성하기:
- 인증게시글 이외 정보공유게시글, 자유게시글 작성을 통해 다른 유저들과 소통하고 도파민디톡스에 유용한 정보를 얻어갈 수 있습니다.
- 게시글을 작성하면 포인트가 지급됩니다.
-
회원별 등급제도
- 인증게시글, 정보공유게시글, 자유게시글 작성을 통해 얻은 포인트가 누적되면 등업이 가능합니다.
- 게시판 종류별 포인트는 다음과 같습니다.
- 인증게시판 : 50점
- 정보공유게시판 : 20점
- 자유게시판 : 10점
- (댓글 작성시 포인트 지급도 예정중에 있습니다.)
- 회원 등급은 다음과 같습니다.
- 디톡스새싹 : 0점
- 절제수련생 : 100점
- 집중탐험가 : 600점
- 선명한의식 : 2000점
- 도파민파괴자 : 4500점
- 브레인클리너 : 7500점
-
포인트상점:
- 게시글을 작성하여 얻은 포인트를 차감시켜 귀여운 이모티콘으로 교환할 수 있습니다.
- 구매한 이모티콘은 게시글과 댓글에서 사용할 수 있습니다.
-
관리자:
- 대시보드에서 총 회원 수, 오늘 가입자, 승인 대기 인증 수, 오늘 인증 처리수, 처리 대기 신고 수, 오늘 처리 신고 수 조회할 수 있습니다.
- 회원들의 정보를 열람하고 상태 (계정 활성, 계정 정지, 계정 삭제)를 변경할 수 있습니다.
- 신고된 게시글을 검토하고 게시글 삭제 / 회원제재 / 신고 처리 / 신고 반 할 수 있습니다.
- 인증게시글을 검토하고 승인 / 반려 / 삭제할 수 있습니다.
유재현 | ![]() |
|
이서영 | ![]() |
|
이은서 | ![]() |
|
최정인 | ![]() |
|
be/
├── Dockerfile # 배포를 위한 컨테이너 구성
├── build.gradle.kts # 의존성이 포함된 Gradle 빌드 설정
├── settings.gradle.kts # Gradle 프로젝트 설정
├── gradlew # Unix용 Gradle 래퍼 스크립트
├── gradlew.bat # Windows용 Gradle 래퍼 스크립트
├── src/
│ └── main/
│ ├── java/com/dd/blog/ # 메인 패키지
│ │ ├── BlogApplication.java # Spring Boot 애플리케이션
│ │ ├── domain/ # 기능별로 구성된 도메인
│ │ │ ├── admin/ # 관리자 패널 기능
│ │ │ ├── point/ # 포인트 시스템 기능
│ │ │ │ ├── point/ # 포인트 연산 기능
│ │ │ │ └── pointstore/ # 포인트 상점 기능
│ │ │ ├── post/ # 게시글 관련 기능
│ │ │ │ ├── category/ # 게시글 카테고리
│ │ │ │ ├── comment/ # 댓글 기능
│ │ │ │ ├── post/ # 게시글 기능
│ │ │ │ ├── postlike/ # 좋아요 기능
│ │ │ │ └── verification/ # 게시글 인증 시스템
│ │ │ ├── report/ # 신고 시스템
│ │ │ └── user/ # 사용자 관리
│ │ │ ├── follow/ # 팔로잉/팔로워 기능
│ │ │ └── user/ # 사용자 기능
│ │ └── global/ # 글로벌 패키지
│ │ ├── app/ # 애플리케이션 설정
│ │ ├── aws/ # AWS S3
│ │ ├── config/ # 설정 클래스
│ │ ├── exception/ # 예외 처리
│ │ ├── init/ # 초기화 도구
│ │ ├── jpa/ # 엔티티 기본 설정 (id, createdAt, updatedAt)
│ │ ├── json/ # JSON 유틸리티
│ │ ├── rq/ # 요청/응답 추상화
│ │ ├── security/ # 보안 설정
│ │ └── utils/ # 유틸리티
│ └── resources/
│ ├── application.yml # 메인 애플리케이션 속성
│ ├── application-dev.yml # 개발 환경 속성
│ ├── application-prod.yml # 배포 환경 속성
│ └── application-test.yml # 테스트 환경 속성
└── gradle/
└── wrapper/ # Gradle 래퍼 파일
fe/ (Frontend - Next.js / TypeScript)
├── .next/ # Next.js 빌드/캐시 (Git 무시)
├── node_modules/ # 의존성 라이브러리 (Git 무시)
├── public/ # 정적 에셋 (이미지, 폰트 등)
├── src/ # 소스 코드 루트
│ ├── app/ # Next.js App Router (라우팅, 페이지)
│ ├── components/ # 공통 UI 컴포넌트
│ ├── constants/ # 공통 상수
│ ├── contexts/ # React Context
│ ├── font/ # 폰트 설정/파일
│ ├── lib/ # 로직/라이브러리 (API 연동 등)
│ ├── types/ # TypeScript 타입 정의
│ └── utils/ # 유틸리티 함수
├── .env # 환경 변수 (기본)
├── .env.development # 개발 환경 변수
├── .env.production # 배포 환경 변수
├── .gitattributes # Git 속성 설정
├── .gitignore # Git 무시 목록
├── eslint.config.mjs # ESLint 설정
├── next.config.js # Next.js 설정
├── next-env.d.ts # Next.js 환경 타입
├── package-lock.json # 의존성 버전 고정
├── package.json # 프로젝트 정보/의존성
├── postcss.config.js # PostCSS 설정
├── README.MD # 프로젝트 설명
├── tailwind.config.js # Tailwind CSS 설정
└── tsconfig.json # TypeScript 설정
우리의 브랜치 전략은 Git Flow를 기반으로 하며, 다음과 같은 브랜치를 사용합니다.
-
🌿dev
- 배포 가능한 상태의 코드를 유지합니다.
- 모든 배포는 이 브랜치에서 이루어집니다.
-
🌿feature/#{number}
- feature 개발 브랜치입니다.
- 모든 기능 개발은 이 브랜치에서 이루어집니다.
-
🌿refactor/#{number}
- 리팩토링 브랜치입니다.
- 구조 및 기타 개선사항 반영은 이 브랜치에서 이루어집니다.
-
🌿fix/#{number}
- 버그 수정 브랜치입니다.
- bugfix는 이 브랜치에서 이루어집니다.
항목 | 표기법 | 예시 | 설명 |
---|---|---|---|
클래스명 | PascalCase | PostCategory , UserController |
파일 이름 = 클래스 이름 |
변수명/필드명 | camelCase | createdAt , userId |
첫 글자 소문자 |
메서드명 | camelCase | getUserName() , createPost() |
동사 중심 |
패키지명 | lowercase + 점(.) | com.example.post.entity |
전부 소문자 |
제네릭 타입 | PascalCase | List<Post> |
클래스명 기준 |
enum 상수 | UPPER_SNAKE_CASE | PENDING , APPROVED_REJECTED |
고정된 상수 이름 |
항목 | 표기법 | 예시 | 설명 |
---|---|---|---|
테이블명 | snake_case | "post_category" |
DB 테이블명에 맞춰 작성 |
컬럼명 | snake_case | "created_at" , "user_id" |
DB 컬럼명에 맞춰 작성 |
시퀀스명/제약조건명 | snake_case | post_id_seq , fk_user_id |
대부분 snake_case 사용 |
기본키 | snake_case | post_id , user_id |
보통 테이블명 + _id |
태그 | 의미 |
---|---|
FEAT |
새로운 기능 추가 |
FIX |
버그 수정 |
REFACTOR |
리팩토링 (기능 변경 없이 코드 개선) |
DOCS |
문서 수정 |
STYLE |
코드 포맷팅, 세미콜론 누락 등 의미 없는 변경 |
TEST |
테스트 코드 관련 |
CHORE |
빌드 설정, 패키지 설치 등 잡일성 작업 |
CI / BUILD |
CI/CD 관련 설정 작업 |
type/#issue number
body
feat : 새로운 기능 추가
fix : 버그 수정
refactor : 코드 리펙토링