Skip to content

Latest commit

 

History

History
1607 lines (1437 loc) · 58.9 KB

README.md

File metadata and controls

1607 lines (1437 loc) · 58.9 KB

🌟 프로젝트 개요

👥 팀원 소개

기우석 김동혁 백경석 유혜진 이서현 이우진



📚 STACKS



1️⃣ 프로젝트 소개

  • '캐스트 온'은 뜨개질에서 작품을 시작할 때 처음 코잡기를 한다는 의미입니다.
  • 이러한 의미처럼 기존에 뜨개질을 취미로 가지고 있는 사람뿐만 아니라, 처음 입문하는 사람들도 쉽게 접근할 수 있는 서비스를 목적으로 하고 있습니다.
  • '캐스트 온'에서는 여러 플랫폼에 분산되어 있는 뜨개 관련 정보를 한 곳에서 보고, 함께 소통할 수 있습니다.

2️⃣ 서비스 도입 배경

출처: 생활변화관측소 출처: 24.01.02 한겨레 신문 기사

  • 왼쪽 그래프는 온라인 상에서 2021년 1월부터 2023년 12월 사이의 뜨개질 언급량 추이를 기록한 그래프입니다. 2021년보다 2023년에서 ‘뜨개’라는 단어의 언급량이 2.8배 증가했음을 볼 수 있습니다.
  • 오른쪽 기사는 24년 1월 2일 발행된 기사로 우리나라 뜨개 기업인 ‘바늘 이야기’의 20, 30대 매출액 비중이 절반을 넘겼음을 확인할 수 있습니다. 현재 유튜브, 인스타그램 등 다양한 플랫폼에서 많은 사람들이 뜨개 관련 정보를 공유하며 커뮤니티를 형성하고 있습니다.

3️⃣ 유사 서비스

📍 Ravelry (래블리)

  • Ravelry는 미국의 뜨개 커뮤니티로, 전 세계의 도안 디자이너들이 활동하고 있습니다.

  • 장점: 전 세계의 뜨개인들이 활동하고 있기 때문에 다양한 도안을 접할 수 있습니다.
  • 단점: 영어로 된 뜨개 용어를 사용하기 때문에 초심자의 진입장벽이 높습니다.

📍 도아니티

  • 도아니티는 국내 뜨개 기업인 ‘바늘 이야기’에서 만든 커뮤니티입니다.

  • 장점: 국내에서 만든 커뮤니티이기 때문에 초심자도 쉽게 접근할 수 있습니다.
  • 단점: 도안 판매 위주로 운영되어 커뮤니티의 역할은 크지 않습니다.

4️⃣ 차별화 전략

  • 우리나라의 다양한 뜨개 디자이너들이 한국어로 활동할 수 있습니다.

  • 도안 게시자가 난이도를 지정하고, 실제 이용자들이 평가해 정확한 도안 난이도를 제공합니다.

  • 게시글 및 댓글 작성 수를 기준으로 회원별 등급을 지정해 커뮤니티를 활성화합니다.

  • 판매보다는 나눔과 공유를 지향합니다.

  • 한국어 용어를 사용해 뜨개 입문자들도 뜨개질에 쉽게 접근할 수 있습니다.


🌟 WBS

🔗WBS 자세히 보기


🌟 요구사항 명세서

🔗요구사항 명세서 자세히 보기


🌟 도메인

🔗도메인 자세히 보기


🌟 DB 모델링

1️⃣ 개념 모델링


2️⃣ 논리 모델링



3️⃣ 물리 모델링


🌟 DDL

테이터베이스 생성
CREATE DATABASE catson;
테이블 생성
실 테이블
CREATE TABLE IF NOT EXISTS thread
(
  no INTEGER NOT NULL AUTO_INCREMENT comment '실 ID',
  name VARCHAR(255) NOT NULL comment '실 이름',
  fiber VARCHAR(255) NOT NULL comment '실 재질',
  thick DECIMAL NOT NULL comment '실 두께',
  color VARCHAR(255) NOT NULL comment '실 색상',
  PRIMARY KEY (no)
)
comment = '실';
회원 테이블
CREATE TABLE IF NOT EXISTS member
(
  no INTEGER NOT NULL AUTO_INCREMENT COMMENT '회원 ID',
  id VARCHAR(255) NOT NULL COMMENT '아이디',
  pw VARCHAR(255) NOT NULL COMMENT '비밀번호',
  name VARCHAR(255) NOT NULL COMMENT '회원실명',
  nick VARCHAR(255) NOT NULL COMMENT '닉네임',
  phone VARCHAR(255) NOT NULL COMMENT '전화번호',
  email VARCHAR(255) NOT NULL COMMENT '이메일',
  grade VARCHAR(255) NOT NULL COMMENT '회원등급',
  gender CHAR(4) NOT NULL CHECK(gender IN ('M', 'F')),
  age INTEGER NOT NULL COMMENT '회원나이',
  leave_check CHAR(4) DEFAULT 'N' NOT NULL CHECK(leave_check IN ('Y', 'N')),
  black_check CHAR(4) DEFAULT 'N' NOT NULL CHECK(black_check IN ('Y', 'N')),
  auth_check CHAR(4) DEFAULT 'N' NOT NULL CHECK(auth_check IN ('Y', 'N')),
  PRIMARY KEY (no)
)
COMMENT = '회원';       
질문게시판 테이블
 CREATE TABLE IF NOT EXISTS question_board
(
 no INTEGER NOT NULL AUTO_INCREMENT COMMENT '질문 게시글 ID',
 title VARCHAR(255) NOT NULL COMMENT '질문 제목',
 content MEDIUMTEXT NOT NULL COMMENT '질문 내용',
 reg_date DATETIME NOT NULL COMMENT '등록 날짜',
 edit_date DATETIME COMMENT '수정 날짜',
 view_count INTEGER DEFAULT 0 NOT NULL COMMENT '조회수',
 like_count INTEGER DEFAULT 0 NOT NULL COMMENT '좋아요 수',
 also_curious_count INTEGER DEFAULT 0 NOT NULL COMMENT '나도 궁금해요 수',
 answer_status CHAR(4) DEFAULT 'N' NOT NULL CHECK(answer_status IN ('Y', 'N')),
 mem_no INTEGER NOT NULL COMMENT '질문 작성자 ID',
 PRIMARY KEY (no),
 FOREIGN KEY (mem_no) REFERENCES member(no)
)
COMMENT = '질문게시판';
질문답변 테이블
CREATE TABLE IF NOT EXISTS answer
(
  no INTEGER NOT NULL AUTO_INCREMENT COMMENT '답변 ID',
  content MEDIUMTEXT NOT NULL COMMENT '답변 내용',
  like_count INTEGER DEFAULT 0 NOT NULL COMMENT '좋아요 수',
  sel_status CHAR(4) DEFAULT 'N' NOT NULL CHECK(sel_status IN ('Y', 'N')),
  ans_date DATETIME NOT NULL COMMENT '답변 작성 날짜',
  mem_no INTEGER NOT NULL COMMENT '답변 작성자 ID',
  ques_no INTEGER NOT NULL COMMENT '질문 게시글 ID',
  PRIMARY KEY (no),
  FOREIGN KEY (mem_no) REFERENCES member(no),
  FOREIGN KEY (ques_no) REFERENCES question_board(no) ON DELETE CASCADE
)
COMMENT = '질문답변';
문의 게시판 테이블
  CREATE TABLE IF NOT EXISTS ask
(
  no INTEGER NOT NULL AUTO_INCREMENT COMMENT '문의 ID',
  content MEDIUMTEXT NOT NULL COMMENT '문의 내용',
  status CHAR(4) DEFAULT 'N' NOT NULL CHECK(status IN ('Y', 'N')),
  ask_date DATETIME NOT NULL COMMENT '문의 작성 날짜',
  reply MEDIUMTEXT COMMENT '문의 답변',
  mem_no INTEGER NOT NULL COMMENT '문의 회원 ID',
  PRIMARY KEY (no),
  FOREIGN KEY (mem_no) REFERENCES member(no)
)
COMMENT = '문의';
블랙리스트 이력 테이블
   CREATE TABLE IF NOT EXISTS blacklist_history
(
   no INTEGER NOT NULL AUTO_INCREMENT COMMENT '블랙리스트 ID',
   black_date DATETIME NOT NULL COMMENT '블랙 날짜',
   reason MEDIUMTEXT NOT NULL COMMENT '블랙 사유',
   count INTEGER DEFAULT 0 NOT NULL COMMENT '블랙 횟수',
   mem_no INTEGER NOT NULL COMMENT '블랙 회원 ID',
   PRIMARY KEY (no),
   FOREIGN KEY (mem_no) REFERENCES member(no)
)
COMMENT = '블랙리스트 이력';
게시판 테이블
     CREATE TABLE IF NOT EXISTS board
(
    no INTEGER NOT NULL AUTO_INCREMENT COMMENT '게시글 ID',
    title VARCHAR(255) NOT NULL COMMENT '게시글 제목',
    content MEDIUMTEXT NOT NULL COMMENT '게시글 내용',
    reg_date DATETIME NOT NULL COMMENT '게시글 등록 날짜',
    edit_date DATETIME COMMENT '게시글 수정 날짜',
    view_count INTEGER DEFAULT 0 NOT NULL COMMENT '조회수',
    like_count INTEGER DEFAULT 0 NOT NULL COMMENT '좋아요 수',
    cate VARCHAR(255) NOT NULL COMMENT '게시글 카테고리',
    share_area VARCHAR(255) COMMENT '나눔 지역(장소)',
    share_mat_cate VARCHAR(255) COMMENT '나눔 재료 카테고리',
    event_date DATETIME COMMENT '행사 날짜',
    event_area VARCHAR(255) COMMENT '행사 장소',
    event_purpose VARCHAR(255) COMMENT '행사 목적',
    event_max_mem INTEGER COMMENT '행사 설정 인원',
    gauge_size INTEGER COMMENT '게이지 사이즈',
    sts_row_info INTEGER COMMENT '코 * 단 정보',
    pattern_sts INTEGER COMMENT '도안 기준 코',
    mem_no INTEGER NOT NULL COMMENT '게시글 작성자 ID',
    PRIMARY KEY (no),
    FOREIGN KEY (mem_no) REFERENCES member(no)
)
COMMENT = '게시글';
회원참여행사 테이블
   CREATE TABLE IF NOT EXISTS event_part_member
(
  no INTEGER NOT NULL AUTO_INCREMENT COMMENT '회원별행사 ID',
  mem_no INTEGER NOT NULL COMMENT '회원 ID',
  brd_no INTEGER NOT NULL COMMENT '행사 게시글 ID',
  PRIMARY KEY (no),
  FOREIGN KEY (mem_no) REFERENCES member(no),
  FOREIGN KEY (brd_no) REFERENCES board(no) ON DELETE CASCADE
)
COMMENT = '회원참여행사';
도안 공유 게시판 테이블
   CREATE TABLE IF NOT EXISTS pattern_share
(
  no INTEGER NOT NULL AUTO_INCREMENT COMMENT '도안 공유 게시글 ID',
  title VARCHAR(255) NOT NULL COMMENT '도안 공유 게시글 제목',
  review_level VARCHAR(255) DEFAULT 0 NOT NULL COMMENT '도안 체감 난이도',
  writer_level VARCHAR(255)  NOT NULL COMMENT '도안 작성자 난이도',
  review_count INTEGER DEFAULT 0 NOT NULL COMMENT '도안 난이도 참여수',
  knit_method VARCHAR(255) NOT NULL COMMENT '도안 뜨개 방법',
  knit_niddle_size INTEGER NOT NULL COMMENT '도안 뜨개 바늘 사이즈',
  content MEDIUMTEXT NOT NULL COMMENT '도안 공유 게시글 내용',
  reg_date DATETIME NOT NULL COMMENT '도안 공유 게시글 등록 날짜',
  edit_date DATETIME COMMENT '도안 공유 게시글 수정 날짜',
  view_count INTEGER DEFAULT 0 NOT NULL COMMENT '조회수',
  like_count INTEGER DEFAULT 0 NOT NULL COMMENT '좋아요 수',
  mem_no INTEGER NOT NULL COMMENT '도안 공유 작성자 ID',
  pattern_cate VARCHAR(255) NOT NULL COMMENT '도안 카테고리',
  PRIMARY KEY (no),
  FOREIGN KEY (mem_no) REFERENCES member(no)
)
COMMENT = '도안 공유 게시판';  
실_도안 테이블
  CREATE TABLE IF NOT EXISTS fiber_ptrn_info
(
 no INTEGER NOT NULL AUTO_INCREMENT COMMENT '실_게시판 ID',
 trd_no INTEGER NOT NULL COMMENT '실 ID',
 ptrn_shr_no INTEGER NOT NULL COMMENT '도안 공유 게시글 ID',
 PRIMARY KEY (no),
 FOREIGN KEY (trd_no) REFERENCES thread(no) ON DELETE CASCADE,
 FOREIGN KEY (ptrn_shr_no) REFERENCES pattern_share(no) ON DELETE CASCADE
)
COMMENT = '실_도안정보';
회원 이력 테이블
   CREATE TABLE IF NOT EXISTS member_history
(
  no INTEGER NOT NULL AUTO_INCREMENT COMMENT '회원 이력 ID',
  dml VARCHAR(255) NOT NULL COMMENT 'DML 구분',
  id VARCHAR(255) NOT NULL COMMENT '아이디',
  pw VARCHAR(255) NOT NULL COMMENT '비밀번호',
  name VARCHAR(255) NOT NULL COMMENT '회원실명',
  nick VARCHAR(255) NOT NULL COMMENT '닉네임',
  phone VARCHAR(255) NOT NULL COMMENT '전화번호',
  email VARCHAR(255) NOT NULL COMMENT '이메일',
  grade VARCHAR(255) NOT NULL COMMENT '회원등급',
  gender CHAR(4) NOT NULL CHECK(gender IN ('M', 'F')),
  age INTEGER NOT NULL COMMENT '회원나이',
  active_check CHAR(4) DEFAULT 'Y' NOT NULL CHECK(leave_check IN ('Y', 'N')),
  leave_check CHAR(4) DEFAULT 'N' NOT NULL CHECK(leave_check IN ('Y', 'N')),
  black_check CHAR(4) DEFAULT 'N' NOT NULL CHECK(black_check IN ('Y', 'N')),
  auth_check CHAR(4) DEFAULT 'N' NOT NULL CHECK(auth_check IN ('Y', 'N')),
  mem_no INTEGER NOT NULL COMMENT '회원 ID',
  edit_date DATETIME NOT NULL COMMENT '이력변경 날짜',
  PRIMARY KEY (no),
  FOREIGN KEY (mem_no) REFERENCES member(no)
)
COMMENT = '회원 이력';
회원 로그인 이력 테이블
  CREATE TABLE IF NOT EXISTS member_login_history
(
 no INTEGER NOT NULL AUTO_INCREMENT COMMENT '회원 로그인 이력 ID',
 login_date DATETIME NOT NULL COMMENT '로그인 날짜',
 ip VARCHAR(255) NOT NULL COMMENT '로그인 IP',
 mem_no INTEGER NOT NULL COMMENT '회원 ID',
 PRIMARY KEY (no),
 FOREIGN KEY (mem_no) REFERENCES member(no)
)
COMMENT = '회원 로그인 이력';
공지게시판 테이블
   CREATE TABLE IF NOT EXISTS notice
(
  no INTEGER NOT NULL AUTO_INCREMENT COMMENT '공지 ID',
  title VARCHAR(255) NOT NULL COMMENT '게시글 제목',
  content MEDIUMTEXT NOT NULL COMMENT '게시글 내용',
  reg_date DATETIME NOT NULL COMMENT '게시글 등록 날짜',
  edit_date DATETIME COMMENT '게시글 수정 날짜',
  view_count INTEGER DEFAULT 0 NOT NULL COMMENT '조회수',
  like_count INTEGER DEFAULT 0 NOT NULL COMMENT '좋아요 수',
  comment_check CHAR(4) DEFAULT 'N' NOT NULL CHECK(comment_check IN ('Y', 'N')),
  mem_no INTEGER NOT NULL COMMENT '공지 게시글 작성자 ID',
  PRIMARY KEY (no),
  FOREIGN KEY (mem_no) REFERENCES member(no)
)
COMMENT = '공지게시판';
댓글 테이블
   CREATE TABLE IF NOT EXISTS comment
(
  no INTEGER NOT NULL AUTO_INCREMENT COMMENT '댓글 ID',
  content MEDIUMTEXT NOT NULL COMMENT '댓글 내용',
  reg_date DATETIME NOT NULL COMMENT '댓글 등록 날짜',
  brd_no INTEGER COMMENT '게시글 ID',
  notice_no INTEGER COMMENT '공지 ID',
  ptrn_shr_no INTEGER COMMENT '도안 공유 게시글 ID',
  mem_no INTEGER NOT NULL COMMENT '댓글 작성자 ID',
  PRIMARY KEY (no),
  FOREIGN KEY (brd_no) REFERENCES board(no) ON DELETE CASCADE,
  FOREIGN KEY (notice_no) REFERENCES notice(no) ON DELETE CASCADE,
  FOREIGN KEY (ptrn_shr_no) REFERENCES pattern_share(no) ON DELETE CASCADE,
  FOREIGN KEY (mem_no) REFERENCES member(no)
)
COMMENT = '댓글';
신고 테이블
   CREATE TABLE IF NOT EXISTS report
(
  no INTEGER NOT NULL AUTO_INCREMENT COMMENT '신고 ID',
  content MEDIUMTEXT NOT NULL COMMENT '신고 문의 내용',
  status CHAR(4) DEFAULT 'N' NOT NULL CHECK(status IN ('Y', 'N')),
  rpt_date DATETIME NOT NULL COMMENT '신고 날짜',
  cmt_no INTEGER COMMENT '신고 받은 댓글 ID',
  cate VARCHAR(255) NOT NULL COMMENT '신고 카테고리',
  brd_no INTEGER COMMENT '신고받은 게시글 ID',
  mem_no INTEGER NOT NULL COMMENT '신고 접수자 ID',
  ques_no INTEGER COMMENT '질문 게시글 ID',
  ptrn_shr_no INTEGER COMMENT '도안 공유 게시글 ID',
  ans_no INTEGER COMMENT '질문답변 ID',
  PRIMARY KEY (no),
  FOREIGN KEY (brd_no) REFERENCES board(no) ON DELETE CASCADE,
  FOREIGN KEY (mem_no) REFERENCES member(no),
  FOREIGN KEY (ques_no) REFERENCES question_board(no) ON DELETE CASCADE,
  FOREIGN KEY (ptrn_shr_no) REFERENCES pattern_share(no) ON DELETE CASCADE,
  FOREIGN KEY (ans_no) REFERENCES answer(no) ON DELETE CASCADE,
  FOREIGN KEY (cmt_no) REFERENCES comment(no) ON DELETE CASCADE
)
COMMENT = '신고';
통계 테이블
   CREATE TABLE IF NOT EXISTS statistics
(
  no DATETIME NOT NULL COMMENT '통계',
  visitor_count INTEGER DEFAULT 0 NOT NULL COMMENT '누적 방문자 수',
  mat_count INTEGER DEFAULT 0 NOT NULL COMMENT '누적 재료 나눔 수',
  ptrn_count INTEGER DEFAULT 0 NOT NULL COMMENT '누적 도안공유 수',
  PRIMARY KEY (no)
)
COMMENT = '통계';
북마크 테이블
   CREATE TABLE IF NOT EXISTS bookmark
(
  no INTEGER NOT NULL AUTO_INCREMENT COMMENT '북마크 ID',
  mem_no INTEGER NOT NULL COMMENT '회원 ID',
  brd_no INTEGER COMMENT '게시글 ID',
  ptrn_shr_no INTEGER COMMENT '도안 공유 게시글 ID',
  ques_no INTEGER COMMENT '질문 게시글 ID',
  PRIMARY KEY (no),
  FOREIGN KEY (mem_no) REFERENCES member(no),
  FOREIGN KEY (brd_no) REFERENCES board(no) ON DELETE CASCADE,
  FOREIGN KEY (ptrn_shr_no) REFERENCES pattern_share(no) ON DELETE CASCADE,
  FOREIGN KEY (ques_no) REFERENCES question_board(no) ON DELETE CASCADE
)
comment = '북마크';
파일 테이블
  CREATE TABLE IF NOT EXISTS file
(
  no INTEGER NOT NULL AUTO_INCREMENT COMMENT '파일 ID',
  size VARCHAR(255) NOT NULL COMMENT '파일 크기',
  extension VARCHAR(255) NOT NULL COMMENT '파일 확장자',
  name VARCHAR(255) NOT NULL COMMENT '파일 이름',
  url VARCHAR(255) NOT NULL COMMENT '파일 URL',
  brd_no INTEGER COMMENT '게시글 ID',
  ask_no INTEGER COMMENT '문의 ID',
  ans_no INTEGER COMMENT '답변 ID',
  rpt_no INTEGER COMMENT '신고 ID',
  noti_no INTEGER COMMENT '공지 ID',
  ptrn_shr_no INTEGER COMMENT '도안 공유 게시글 ID',
  ques_no INTEGER COMMENT '질문 게시글 ID',
  PRIMARY KEY (no),
  FOREIGN KEY (brd_no) REFERENCES board(no) ON DELETE CASCADE,
  FOREIGN KEY (ask_no) REFERENCES ask(no) ON DELETE CASCADE,
  FOREIGN KEY (ans_no) REFERENCES answer(no) ON DELETE CASCADE,
  FOREIGN KEY (rpt_no) REFERENCES report(no),
  FOREIGN KEY (noti_no) REFERENCES notice(no) ON DELETE CASCADE,
  FOREIGN KEY (ptrn_shr_no) REFERENCES pattern_share(no) ON DELETE CASCADE,
  FOREIGN KEY (ques_no) REFERENCES question_board(no) ON DELETE CASCADE
)
comment = '파일';
시간당 방문자 테이블
   CREATE TABLE member_login_per_hour
(
  NO DATETIME NOT NULL 
, mem_no INT NOT NULL,
PRIMARY KEY (NO, mem_no)
)
comment = '시간당 방문자';



🌟 리눅스 서버 구축

Replication

레플리케이션(Replication)은 데이터베이스 시스템에서 데이터의 복사본을 여러 서버에 생성하여 가용성과 성능을 향상시키는 기술입니다. 레플리케이션을 사용하면 하나의 서버가 다운되더라도 다른 서버에서 데이터를 제공할 수 있어 데이터베이스의 가용성을 높일 수 있습니다. 또한 데이터의 여러 복사본이 존재하므로 데이터 손실 시 빠른 복구가 가능합니다. 또한, 정기적인 백업과 복구 테스트를 통해 데이터의 안전성을 높일 수 있습니다.

저희는 마스터-슬레이브(Master-Slave) 레플리케이션을 사용하였습니다.

마스터-슬레이브(Master-Slave) 레플리케이션은 하나의 마스터 서버가 모든 쓰기 작업(INSERT, UPDATE, DELETE 등)을 처리하고, 하나 이상의 슬레이브 서버가 마스터의 변경 사항을 복제하여 읽기 작업(SELECT)을 처리합니다.

  • master - slave 연동

master IP로 slave 연동



  • heidiSQL에 리눅스 master, slave 서버 연동



  • master에서 create 하면 slave에서 동기화



  • slave에서는 select만 가능



🌟 테스트케이스

🔗테스트코드 자세히 보기


🌟 코드 시연

🐳 Query

회원
회원가입

로그인

회원탈퇴

회원정보 수정

회원등급 변경

회원ID 검색

회원 닉네임 검색

비밀번호 찾기

회원 참여 행사 확인

회원 블랙리스트 설정

신고 내역 확인

문의 내역 확인

타인 프로필 조회

ID 찾기

로그인 IP 확인

휴면계정 관리

회원 이력 조회


공지사항 게시판
공지사항 게시글 작성

공지사항 게시글 조회

공지사항 게시글 수정

공지사항 게시글 댓글 작성 여부 선택

공지사항 게시글 댓글 작성

공지사항 게시글 댓글 수정

공지사항 게시글 댓글 삭제

공지사항 게시글 좋아요


문의 게시판
문의사항 게시글 조회

문의사항 게시글 목록 조회

문의사항 작성

문의사항 수정

문의사항 삭제

문의사항 답변 / 문의사항 상태처리

문의사항 답변삭제


질문 · 답변 게시판
질문 게시글 조회

질문 게시글 목록

질문 제목으로 검색

질문 작성자 ID로 검색

질문 답변 상태로 검색

질문 작성

질문 수정

질문 삭제

답변 작성

답변 수정

답변 삭제

질문 좋아요

질문 궁금해요

답변 좋아요

답변 채택

답변 내용으로 검색

답변 작성자로 검색

답변 채택 상태로 검색

질문글 북마크 등록

질문글 북마크 취소

질문 댓글 작성

질문 댓글 수정

질문 댓글 삭제

답변에 댓글 작성

답변 댓글 내용 수정

답변 댓글 삭제


재료나눔 게시판
재료나눔 게시글 조회

재료나눔 게시글 작성

재료나눔 게시글 수정

재료나눔 게시글 삭제

재료나눔 게시글 검색 - 제목

재료나눔 게시글 검색 - 작성자

재료나눔 게시글 검색 - 내용

재료나눔 게시글 검색 - 재료 카테고리


견적 게시판
견적검색

견적댓글삭제

견적댓글수정

견적목록조회

견적북마크

견적북마크삭제

견적수정

견적작성

견적좋아요


행사 게시판
행사 게시글 댓글 삭제

행사 게시글 댓글 수정

행사 게시글 댓글 작성

행사 게시글 북마크 등록

행사 게시글 삭제

행사 게시글 수정

행사 게시글 작성

행사 게시글 좋아요

행사 게시판 검색

행사 참여 신청

행사게시판 행사 게시글 목록

행사게시판 행사 게시글 조회


도안 공유 게시판
도안 공유 게시글 조회

도안 공유 게시판 목록 조회

도안 공유 게시글 작성

도안 공유 게시글 삭제

도안 공유 게시글 수정

도안 공유 게시글 북마크 추가

도안 공유 게시글 북마크 삭제

도안 공유 게시글 좋아요

도안 공유 게시글 댓글 수정

도안 공유 게시글 댓글 삭제

도안 공유 게시글 댓글 작성


북마크
북마크 게시글 조회

북마크 게시글 목록

북마크 취소

북마크 게시글 검색


🐳 TRIGGER

트리거 1) 도안 공유 게시판 게시글 작성 시 통계 집계

트리거 2) 재료 나눔 게시글 작성 시 통계 집계

트리거 3) 행사 참여 최대 인원이 넘을 시 알림 발생

트리거 4) 회원 로그인이력 발생 시 통계 집계

🐳 JOIN

1번 실이 존재하는 모든 게시글 / 1번 게시글의 모든 실 추출

신고당한 게시글 확인

🐳 VIEW

도안공유 게시판 난이도 자동 설정

🐳 INDEX

게시판 Index - `mem_no` 인덱스는 특정 회원이 작성한 게시글을 조회
- `ate` 인덱스는 특정 카테고리의 게시글을 필터링
- `eg_date` 인덱스는 게시글 등록 날짜를 기준으로 최신 게시글이나 특정 기간의 게시글을 빠르게 찾을 때

🐳 EVENT

휴면회원 전환

🐳 제약조건

DATA TYPE
INTEGER

DATETIME

VARCHAR

CHAR

NOT NULL

CHECK

🌟 논의사항 및 규칙

🔗작성규칙 자세히 보기



🌟 동료평가

🙉기우석

평가자 내용
김동혁 - Liked: 팀 프로젝트 회의 때나, 점심시간이나, 쉬는시간이나, 언제든 부드러운 말과 좋은 리액션으로 2조의 밝은 분위기를 만들어 주셔서 좋았습니다.
- Lacked: 프로젝트 회의에서 의견의 차이가 있을 때나, 논의가 필요한 부분에서도 부드러움이 있어 좋았지만, 때로는 뜻이 잘 전달이 되지 않았던 적도 있어 아쉬운 생각이 들었습니다.
- Learned: 늘 경청하는 자세와 부드러운 태도로 어떤 말씀이든 기분 좋게 하시는 모습을 보며 소통하는 법에 대해 고민하고 배울 수 있어서 감사했습니다.
- Longed for: 부드러운 소통을 항상 유지해주셔서 감사드리며, 앞으로는 필요할 때 조금 더 직선적이고 명확한 의견 교환도 함께했으면 좋겠습니다. 이를 통해 더 깊이 있는 논의가 가능할 것이라 기대합니다.
백경석 혜진님과 마찬가지로 프로젝트의 방향을 제대로 잡아주셨습니다. 거기에 더해 항상 웃는 얼굴로 팀원들과 소통하시는 모습은 디비 프로젝트 뿐만 아니라 어떤 프로젝트에서든 필수적이라 생각하고 본받고 싶습니다.
유혜진 저의 웃음 벨이셨던 우석님! 저희 조의 분위기 메이커로 늦게까지 프로젝트 하면서 힘들 때 항상 즐겁게 해주셔서 힘내서 할 수 있었습니다. 프로젝트 진행하면서 상의해야 할 부분에 대해 물어보면 항상 좋은 아이디어를 주시고 직접 만들어서 보여주시는 열정적이고 다재다능하신 우석님입니다.
이서현 우석 님은 프로젝트 과정이 힘들어도 항상 밝은 분위기로 팀을 이끌어주셨습니다. 또한 환경 세팅이나 코드 이해에 도움이 필요할 때 적극적으로 나서서 도와주셨습니다.
이우진 우석님 이런 프로젝트 경험이 전무해서 어떻게 해야할지 모를 때마다 팀의 방향성을 확실하게 잡아주셨습니다. 또 항상 모르는 내용이 있을 때마다 친절하게 알려주셔서 너무 고마웠습니다.

🦝김동혁

평가자 내용
기우석 처음 프로젝트를 시작했을 때부터 통찰력이 있는 모습이 눈에 띄었습니다. 프로젝트를 진행하면서 깊게 생각할 것이 있거나, 있을 때 팀에 도움이 되었던 것 같습니다.
백경석 프로젝트 회의 도중 주제가 산만해지면서 방향을 잃을때마다 흐름을 원위치하여 원래 목표에 맞게 회의를 진행할 수 있었던게 기억에 남습니다. 항상 귀 기울여 들으시고 해야할것이 무엇인지 확실하게 아는 모습이 좋았고 본받고 싶습니다.
유혜진 정리의 왕 동혁님! 초반에 기획 단계일 때 의견이 많이 오가고 역할 분담이 잘 안될 때 동혁님이 의견을 정리해 주고 앞으로 어떤 식으로 하면 좋을지에 대해 방향성을 제시해 주셔서 프로젝트를 진행하는데 정말 많은 도움이 되었습니다.
이서현 동혁 님은 제가 전혀 생각지도 못한 부분을 예리하게 짚어주셔서 중요한 부분을 짚고 넘어갈 수 있었습니다. 덕분에 프로젝트를 진행하면서 수정 사항은 많았지만 크게 돌아가지 않을 수 있었습니다.
이우진 DB설계 및 쿼리를 작성하실 때 날카로운 통찰력으로 모델링에 큰 도움이 되셨습니다. 또한 웬만한 전공자 수준으로 쿼리 및 SQL 문법에 대한 이해도가 뛰어나셔서 Trigger나 다양한 테스트 케이스를 작성하셨습니다.

🐹백경석

평가자 내용
기우석 팔방미인 같은 느낌이었습니다. 일 처리나 툴 사용, 쿼리 구현이나 프로젝트 전체 흐름까지 놓치지 않아 프로젝트의 살림꾼으로 느껴졌습니다.
김동혁 - Liked: 조원 전체가 모여서 소통하든, 개인적으로 소통하든, 선생님의 말씀을 듣든 항상 메모로 잘 정리해주셔서 프로젝트와 스터디 기간 내내 너무 도움이 되었습니다.
- Lacked: 정보나 지식, 의견을 잘 정리해주시기도 하셨지만, 그렇게 정리된 것들이 조용히 노션 이곳 저곳에서 기다리고 있는 느낌이라 아쉬웠습니다.
-Learned: 아무리 좋은 생각이나 의견, 말이라도 정리가 되어 어디엔가 적혀있지 않다면 결국엔 흩어진다는 것을 다시 한번 배울 수 있었습니다. 경석님의 메모를 보면서 체계적으로 정리하는 법을 조금이나마 따라할 수 있었습니다.
- Longed for: 잘 정리된 생각과 의견들을, 다시 한번 주변 사람들과 공유하고 리마인드 해주신다면, 정돈된 토대에서 더욱 깊은 생각과 소통이 가능하리라 생각합니다.
유혜진 타자가 빠르시고 키보드가 좋으셔서 우리 조 기록담당이셨던 경석님! 잘못된 부분을 잘 캐치해 주셔서 바로바로 수정이 가능했습니다. 상황을 보시고 해야 할 게 있으면 바로바로 해주셔서 깜짝 놀라기도 했습니다. 그만큼 집중을 잘 하시고 많은 것을 배울 수 있었습니다.
이서현 경석 님은 묵묵히 할 일을 하시는 모습이 굉장히 인상 깊었습니다. 선생님의 코멘트나 팀 논의 사항을 잘 기록해 주셨을 뿐 아니라 쿼리 작성도 너무 잘 해주셨습니다.
이우진 경석님 DB설계, 쿼리문 작성, README 작성 등 모든 작업에 있어서 항상 적극적이시고 못해도 2인분은 하시는 인재십니다.

🐰유혜진

평가자 내용
기우석 팔방미인의 느낌에서 추가적으로 전체적인 흐름을 잡는 능력이 뛰어나다고 느꼈습니다. 하나의 문제에 매몰되어 있을 때 우선순위가 비슷하거나, 놓칠 수 있는 것들을 제시하여서 도움이 되었습니다.
김동혁 - Liked: 프로젝트 초반부터 후반까지, 수 많은 회의들에서 여러 의견이 오고 갈때, 그 핵심을 잘 짚어주셔서 전반적인 정리에 큰 도움을 받았습니다.
- Lacked: 그러한 도움을 받기도 하면서, 논의들이 하나의 핵심에서 다른 주제로 뻗어 나가기도 하면서 넓은 관점으로 바라볼 수도 있었지만, 회의가 집중이 분산되는 방향으로 진행된 적도 있었던 것 같습니다.
- Learned: 주제의 핵심을 파악하고, 넓은 관점에서 여러 갈래를 한 번에 보며 생각하는 법을 배울 수 있었습니다.
- Longed for: 앞으로도 어느 주제에 대해 넓게 보는 시각을 가지면서도 가장 핵심이 되는 부분에 대한 집중을 유지한다면 다양하면서도 깊이 있는 의견을 나눌 수 있을 것 같아 기대됩니다.
백경석 의견 갈등이 있을때마다 조율을 하여 프로젝트의 방향을 제대로 잡아주셨습니다. 뿐만아니라 디비에 대한 이해와 쿼리문 작성 능력이 뛰어나시고 많이 물어보면서 디비를 더 깊게 이해할 수 있었습니다.
이서현 혜진 님은 제 첫 짝꿍으로 정말 많은 도움을 받았습니다. 수업에서 헤메고 있을 때뿐만 아니라 프로젝트를 진행할 때도 진행 상황 확인을 정말 잘 해주셨습니다.
이우진 DB 개념에 대해 이해도가 뛰어나셔서 저희 논리, 물리 모델링의 제작/수정 및 검수를 맡아서 하셨습니다. 뿐만 아니라 뛰어난 응용력을 갖추셔서 쿼리문 작성에 있어서 큰 도움이 되셨습니다. 꼼꼼한 성격을 기반으로 어떤 역할을 맡으시더라도 잘 수행하실 팔방미인이십니다

👽이서현

평가자 내용
기우석 툴 사용 장인입니다. 또한 프로젝트의 아이디어를 내시고, 그에 대한 통찰이 있어서 이 추상적인 개념을 모델링을 하는 데에 있어 일등공신이었습니다. 프로젝트 관련이나 툴 사용 관련해서 많이 배웠습니다.
김동혁 - Liked: 가장 늦게 2조에 합류하셨지만, 그 누구보다 조 활동의 완성도에 가장 크게 기여하셨다고 생각이 듭니다. 저를 포함한 다른 팀원들이 미처 생각치 못하고 넘어간 부분들도 꼼꼼하게 챙겨주셔서 조 활동의 완성도에 크게 기여해주셨다고 생각합니다.
- Lacked: 서현님만의 꼼꼼함으로 활동의 완성도가 높아지면서도, 가끔은 소통이 부족했다고 느낀 적이 있습니다. 구체적인 부분에서의 소통 오류로 자잘한 수정이 있었던 기억이 납니다.
- Learned: 개인적으로 디테일을 살리는 일처리를 중요하다고 생각하는데, 서현님의 꼼꼼함을 보며 어떻게 해야 일의 완성도를 높일 수 있는지를 많이 고민해보고 배울 수 있었습니다.
- Longed for: 지금까지 보여주신 모습처럼 맡으신 일을 꼼꼼히 하시면서, 일이 완성되어 가는 과정을 팀원들과 조금 더 공유하며 진행한다면 더욱 완성도 높으면서도 효율적인 태스크가 진행되리라 기대합니다.
백경석 디비 프로젝트지만 프로젝트의 주요 부분을 일목요연하게 정리해서 보여주는것도 필수라고 생각합니다. 서현님이 이 부분에서 굉장히 뛰어난 능력을 가지고 계시고 어느순간 자료가 정리되어있어서 정리 시간을 많이 단축할 수 있었습니다.
유혜진 이번 프로젝트의 주제를 제안해 주신 서현님! 서현님이 평소에 있었으면 좋겠던 주제여서 그런지 상세한 기능을 설계할 수 있었습니다. 매우 꼼꼼하셔서 노션이나 구글 스프레드시트를 잘 다루셔서 프로젝트에 대한 정리를 잘할 수 있었고, 놓친 부분을 잘 찾아주셔서 프로젝트 진행하는데 수월했습니다.
이우진 저희 프로젝트의 명세화 및 서류화를 전부 도맡아 하셨습니다. EXCEL 시트를 너무 잘 다루시고 계획하고 기록하는 습관은 꼭 개발자가 아니더라도 너무 좋은 습관이라 본받고 싶습니다. 다른 분들이랑 조를 이뤄도 이런 능력을 기반으로 팀에 반드시 필요한 존재가 되실 거 같아요

🐧이우진

평가자 내용
기우석 프로젝트에서 모호한 개념이 있을 때 같이 나누어 개념을 정립할 수 있었습니다. 팀의 분위기를 살리며, 문제를 깊이 파고드는 점이 좋았습니다.
김동혁 - Liked: 팀 활동에서 우석님과 더불어 가장 소통에 진심이셨다는 생각이 듭니다. 언제 어디서든 의견 나눔이 있을 때 함께 생각을 더해주시며 문제 해결과 원활한 소통에 도움을 주셔서 정말 좋았습니다.
- Lacked: 빠르고 적극적인 의견 교환으로 함께 고민할 것들이 많이 덜어지기도 했지만, 가끔은 정리되지 않은 의견이 더해져 혼란이 생긴 적도 있었습니다.
- Learned: 그럼에도, 언제나 적극적으로 소통하고자 하는 자세는 배워야 한다고 생각합니다. 먼저 다가가는 마음가짐에 대해 생각해 볼 계기를 주셔서 정말 많이 배울 수 있었습니다.
- Longed for: 적극적인 대화에, 깊이 있는 고민의 결과가 더해진다면 더할 나위 없이 좋은 소통이라고 생각합니다. 앞으로도 늘 함께 이야기 하면서 좋은 의견을 많이 나누고 싶습니다.
백경석 다른분들이 방향을 제시했다면 방향을 잡기 이전 문제점을 제시해주셨습니다. 현재 계획된 프로젝트의 방향과 다른길로 가고있을 때 문제점을 가장 먼저 알아차리고 이의제기를 하여 방향을 바꿔 올바른 방향으로 나아갈 수 있게 해주셨습니다.
이서현 우진 님은 항상 적극적으로 의견을 나누고 의문 사항이 생기면 바로 상의해 해결하려고 하는 모습이 인상 깊었습니다. 또한 자잘한 수정 사항들을 직접 반영해 주셔서 프로젝트를 수월하게 진행할 수 있었습니다.
유혜진 프로젝트의 잘못된 부분을 잘 잡아주는 우진님! 항상 밝은 모습으로 팀의 분위기를 잘 살려주시고 대충이란 말을 모르는 사람처럼 항상 꼼꼼하게 알아보고 방향을 제시해 주십니다. 프로젝트를 다시 살펴보면서 놓친 부분을 잘 찾아서 말씀해 주시고 소통을 잘 해주셔서 프로젝트를 잘 진행할 수 있었습니다.