/InnerJoinUs

DO YOU INNER JOIN US?

Primary LanguageJava

✨ This.e 2조 ✨

Hits

👾 Members 👾

🤡 이준형

🐳 소우주

🦧 신대영

🦈 신동호

🐣 이드보라



DO YOU INNER JOIN US? 👀


1. 프로젝트 개요

InnerJoinUs 커뮤니티는 개발에 도전하거나 개발에 도전하는 초보개발자들에게 도움이 되어주고 싶은 욕망을 가진 멘토들의 소통 공간이다. 개발에 대한 프로젝트와 다양한 스터디 콘텐츠를 참여하는데 그 목적이 있다. 커뮤니티의 추진 배경은 다음과 같다.


📍 필요성

개발에 접근하려고 하는 사람들, 초보 개발자부터 현재 개발 업무환경에서 실무를 하고 있는 개발자까지 소통의 공간이 필요하다고 느꼈다. 개발 혹은 개발을 시작하기 위해 필요한 요소의 정보를 공유할 수 있으며 개발에 대한 QnA를 진행할 수 있다. 하지만 그렇기엔 일반 커뮤니티와 다르지 않을 것이라 예상했기에 개발과 개발을 시작하기 위해 필요한 요소들을 같이 공부할 수 있는 스터디 컨텐츠를 구상했다. 커뮤니티 회원들은 서로 비대면으로 지식을 공유하고 같이 성장해나갈 수 있는 스터디 컨텐츠를 참여하여 세계적으로 더욱 더 나은 개발환경을 구축할 수 있고 초보 개발자들이 InnerJoinUs 커뮤니티에서 성장해 나중엔 멘토가 되어 또 다른 초보 개발자들에게 영향을 끼칠 수 있다는 생각으로 개발자 커뮤니티를 구축했다.

OKKY 사이트 질문 게시글 수


2. 프로젝트 작업 범위

InnerJoinUs 프로젝트의 예상 결과물은 다양한 측면에서 개발자 커뮤니티 데이터베이스의 구축하기 위해 활용되는 항목들이 있으며 아래와 같습니다.

  • 개발자 커뮤니티 데이터베이스: 커뮤니티와 개발자 관련 정보를 체계적으로 수집, 저장, 관리하는 데이터베이스의 구축 및 운영
  • 개체-관계 다이어그램(ERD) 및 테이블 정의: 커뮤니티 데이터베이스의 구조를 명확히 나타내는 ERD와 각 테이블에 대한 정의서
  • SQL 쿼리 및 검색 기능: 데이터베이스에서 커뮤니티 정보를 검색하고 분석하기 위한 기본 및 복잡한 SQL 쿼리 및 검색 기능
  • 프로젝트 문서 및 매뉴얼: 프로젝트 진행 과정, 진행 장소 및 프로젝트 구현 도구
  • 테스트 결과 보고서: SQL 쿼리 및 시스템 기능에 대한 테스트 결과를 기록한 테스트 결과 보고서

📍 추진 계획

테이블 1: 추진체계

구분 조직 주요 역할
주관 팀 This.e 데이터 베이스 구축
지원기관 한화시스템x엔코아 장비 지원 및 퀄리티 점검

추진 일정: 2024-02-26 ~ 2024-03-11

작업 수행공간: 서울 동작구 보라매로 87 SFC빌딩 3F 1강의실, 원격 소통(Discord), 사당역 14번 출구 앞 TOM N TOMS COFFEE

프로젝트 구현 도구:


📍 일정관리 (WBS)


📍 Flow Chart (업무흐름도)


📍 DDD

ERD CLOUD 모델링



Event Storming

Command Deduction

Aggregate

Context Mapping

MIRO 링크 :

3. 요구사항

요구사항 항목에서는 프로젝트 데이터베이스 구현에 필요한 기능적, 비기능적 요구사항 파악과 구현을 위한 구체적인 명세서 그리고 모델링과 모델 테스트 결과를 확인할 수 있습니다.


📍 작업 명세서

요구사항 명세서
요구사항 ID 업무구분(대) 업무구분(중) 업무구분(소) 요구사항 내용
FR001 회원 가입 회원 가입 게스트가 회원 가입을 할 수 있다.
FR002 회원 탈퇴 회원 탈퇴 회원이 회원 탈퇴를 할 수 있다.
FR003 회원 회원 정보 회원 정보 수정 회원이 가입시에 기입했던 정보들을 수정할 수 있다.
FR004 회원 회원 정보 회원 정보 조회 가입된 스터디 그룹과 회원 등급 조회할 수 있다.
FR005 회원 회원 정보 문의 내역 조회 회원이 문의했던 내용을 한번에 조회할 수 있다.
FR006 회원 블랙리스트 블랙리스트 등록 관리자가 일정 이상 피신고 횟수를 넘은 회원을 블랙리스트에 등록할 수 있다.
FR007 회원 블랙리스트 제재 횟수 조회 회원이 제재를 당했던 횟수와 내역들을 조회할 수 있다.
FR008 스터디 스터디 구인 스터디 구인게시글 등록 게시글의 기본적인 제목, 내용, 유형과 현재 가입한 스터디원수, 정원수, 가입승인 대기중인 회원수와 모집기한을 정해 게시글을 등록할 수 있다.
FR009 스터디 스터디 구인 스터디 구인게시글 수정 게시글을 등록할 때 정했던 정보들을 수정할 수 있다.
FR010 스터디 스터디 구인 스터디 구인게시글 삭제 등록했던 게시글을 삭제할 수 있다.
FR011 스터디 스터디 구인 스터디 구인게시글 댓글 등록 회원은 스터디 구인 게시글에 댓글을 등록할 수 있다.
FR012 스터디 스터디 구인 스터디 구인게시글 댓글 수정 스터디 구인 게시글에 등록한 댓글을 댓글 등록자가 수정할 수 있다.
FR013 스터디 스터디 구인 스터디 구인게시글 댓글 삭제 스터디 구인 게시글에 등록한 댓글을 댓글 등록자가 삭제할 수 있다.
FR014 스터디 스터디 그룹 스터디그룹 가입 회원은 스터디 구인 게시글을 통해 스터디 그룹에 가입할 수 있다.
FR015 스터디 스터디 그룹 스터디그룹 탈퇴 회원은 스터디 그룹에서 탈퇴할 수 있다.
FR016 스터디 스터디 그룹 스터디그룹 정보 조회 스터디종류, 스터디 생성일시, 스터디원수, 스터디 활성화 여부, 스터디 시간, 스터디 내용
FR017 스터디 스터디 그룹 스터디그룹 정보 수정 스터디장은 스터디그룹 정보를 수정할 수 있다.
FR018 스터디 스터디 그룹 스터디그룹 생성 회원은 스터디장이 되어 스터디 그룹을 생성할 수 있다.
FR019 스터디 스터디 그룹 스터디그룹 삭제 스터디장은 스터디그룹을 삭제할 수 있다.
FR020 게시글 질문 게시글 질문 게시글 등록 질문 카테고리에 따라 질문 게시글을 등록 할 수 있다.
FR021 게시글 질문 게시글 질문 게시글 수정 질문 게시글 등록 후 게시글을 수정할 수 있다.
FR022 게시글 질문 게시글 질문 게시글 삭제 등록한 질문 게시글을 삭제할 수 있다.
FR023 게시글 정보 공유 게시글 정보 공유 게시글 등록 정보 공유에 관련된 게시글을 등록 할 수 있다.
FR024 게시글 정보 공유 게시글 정보 공유 게시글 수정 정보 공유 게시글 등록 후 게시글을 수정할 수 있다.
FR025 게시글 정보 공유 게시글 정보 공유 게시글 삭제 등록한 정보 공유 게시글을 삭제할 수 있다.
FR026 게시글 게시글 신고 게시글 신고 상태 신고한 게시글이 신고가 되었는지 상태를 확인할 수 있다.
FR027 게시글 게시글 신고 게시글 신고 정보 피신고자, 신고 일자, 신고 내용, 신고 유형을 확인할 수 있다.
FR028 댓글 질문 게시글 댓글 질문 게시글 댓글 등록 회원은 질문 게시글에 댓글을 등록할 수 있다.
FR029 댓글 질문 게시글 댓글 질문 게시글 댓글 수정 질문 게시글에 등록한 댓글을 댓글 등록자가 수정할 수 있다.
FR030 댓글 질문 게시글 댓글 질문 게시글 댓글 삭제 질문 게시글에 등록한 댓글을 댓글 등록자가 삭제할 수 있다.
FR031 댓글 정보 공유 게시글 댓글 정보 공유 게시글 댓글 등록 회원은 정보 공유 게시글에 댓글 등록할 수 있다.
FR032 댓글 정보 공유 게시글 댓글 정보 공유 게시글 댓글 수정 정보 공유 게시글에 등록한 댓글을 댓글 등록자가 수정할 수 있다.
FR033 댓글 정보 공유 게시글 댓글 정보 공유 게시글 댓글 삭제 정보 공유 게시글에 등록한 댓글을 댓글 등록자가 삭제할 수 있다.
FR034 댓글 댓글 신고 댓글 신고 상태 댓글 신고 상태에 따라 댓글 노출 여부
FR035 댓글 댓글 신고 댓글 신고 정보 피신고자, 신고 일자, 신고 내용, 신고 유형
FR036 문의 문의 문의 등록 회원은 문의를 등록할 수 있다.
FR037 문의 문의 문의 수정 회원은 작성한 문의를 수정할 수 있다.
FR038 문의 문의 문의 삭제 회원은 문의한 내용을 삭제할 수 있다.

📍 개념 & 논리 모델링

💡 개념 모델링

img_conceptual_model

💡 DA# 논리 모델

img_logical_model


📍 물리 모델링

💡 DA# 물리 모델

img_physical_model

📍 DDL 구문 작성

DDL 구문
DROP DATABASE IF EXISTS communityfordeveloper;

CREATE DATABASE IF NOT EXISTS communityfordeveloper default CHARACTER SET UTF8;

USE communityfordeveloper;

-- SHOW GRANTS FOR 'swcamp'@'%';

-- GRANT ALL PRIVILEGES ON communityfordeveloper.* TO 'swcamp'@'%';

DROP TABLE IF EXISTS `article` CASCADE;
DROP TABLE IF EXISTS `blacklist` CASCADE;
DROP TABLE IF EXISTS `reply` CASCADE;
DROP TABLE IF EXISTS `inquiry` CASCADE;
DROP TABLE IF EXISTS `studygroup` CASCADE;
DROP TABLE IF EXISTS `studygroup_member` CASCADE;
DROP TABLE IF EXISTS `reported_article` CASCADE;
DROP TABLE IF EXISTS `reported_reply` CASCADE;
DROP TABLE IF EXISTS `user` CASCADE;

CREATE TABLE IF NOT EXISTS `user`
(
    `user_code`    INTEGER NOT NULL AUTO_INCREMENT COMMENT '회원번호',
    `user_id`    VARCHAR(255) NOT NULL COMMENT '아이디',
    `user_password`    VARCHAR(255) NOT NULL COMMENT '비밀번호',
    `user_birthday`    DATE NOT NULL COMMENT '생년월일',
    `user_phone`    VARCHAR(255) NOT NULL COMMENT '휴대전화',
    `user_email`    VARCHAR(255) NOT NULL COMMENT '이메일',
    `user_studygroup_status`    TINYINT NOT NULL COMMENT '스터디가입여부',
    `user_regist_date`    DATETIME NOT NULL COMMENT '등록일시',
    `user_info_update_date`    DATETIME NOT NULL COMMENT '변경일시',
    `user_grade`    INTEGER NOT NULL COMMENT '회원등급',
		`user_resign_status` TINYINT NOT NULL COMMENT '회원 탈퇴 여부',
 PRIMARY KEY ( `user_code` )
)
 COMMENT = '회원';
 
CREATE TABLE IF NOT EXISTS `studygroup`
(
    `studygroup_id`    INTEGER NOT NULL AUTO_INCREMENT COMMENT '스터디그룹식별번호',
    `studygroup_type`    TINYINT NOT NULL COMMENT '스터디종류',
    `studygroup_create_date`    DATETIME NOT NULL COMMENT '생성일시',
    `studygroup_member_count`    INTEGER NOT NULL COMMENT '스터디원수',
    `studygroup_activation_status`    TINYINT NOT NULL COMMENT '활성화여부',
    `studygroup_study_time`    DATETIME NOT NULL COMMENT '스터디일정',
    `studygroup_content`    VARCHAR(255) NOT NULL COMMENT '스터디내용',
		`studygroup_delete_status` TINYINT NOT NULL COMMENT '스터디그룹 삭제 여부',
 PRIMARY KEY ( `studygroup_id` )
)
 COMMENT = '스터디그룹';

CREATE TABLE IF NOT EXISTS `article`
(
    `article_id`    INTEGER NOT NULL AUTO_INCREMENT COMMENT '게시글 번호',
    `article_title`    VARCHAR(255) NOT NULL COMMENT '게시글 제목',
    `article_content`    TEXT NOT NULL COMMENT '게시글 내용',
    `article_category`    TINYINT NOT NULL COMMENT '게시글 유형',
    `article_create_date`    DATETIME NOT NULL COMMENT '작성 날짜',
    `article_last_update_date`    DATETIME NOT NULL COMMENT '마지막 수정 날짜',
    `article_view_count`    INTEGER NOT NULL COMMENT '조회수',
    `article_like_count`    INTEGER NOT NULL COMMENT '좋아요수',
    `article_reply_count`    INTEGER NOT NULL COMMENT '댓글수',
    `article_report_status`    TINYINT NOT NULL COMMENT '신고 상태 여부',
    `studygroup_member_max_count`    INT COMMENT '정원수',
    `studygroup_recruitment_deadline`    DATETIME COMMENT '모집기한',
    `article_question_category`    TINYINT COMMENT '질문 카테고리',
    `user_code`    INTEGER NOT NULL COMMENT '회원번호',
    `studygroup_id`    INTEGER COMMENT '스터디그룹식별번호',
    `studygroup_current_member_count`    INTEGER COMMENT '현재 가입한 스터디원수',
    `studygroup_pending_member_count`    INT COMMENT '가입승인 대기중인 회원수',
		`article_delete_status` TINYINT NOT NULL COMMENT '게시글 삭제 여부',
 PRIMARY KEY ( `article_id` )
)
 COMMENT = '게시글';

CREATE TABLE IF NOT EXISTS `blacklist`
(
    `blacklist_id`    INTEGER NOT NULL AUTO_INCREMENT COMMENT '블랙리스트 번호',
    `blacklist_status`    TINYINT NOT NULL COMMENT '블랙리스트 처리현황',
    `user_code`    INTEGER NOT NULL COMMENT '회원번호',
    `blacklist_count`    INTEGER NOT NULL COMMENT '제재 횟수',
 PRIMARY KEY ( `blacklist_id` )
)
 COMMENT = '블랙리스트';

CREATE TABLE IF NOT EXISTS `reply`
(
    `reply_id`    INTEGER NOT NULL AUTO_INCREMENT COMMENT '댓글아이디',
    `reply_report_status`    TINYINT DEFAULT 0 NOT NULL COMMENT '댓글 신고 상태',
    `reply_content`    VARCHAR(255) NOT NULL COMMENT '작성 내용',
    `reply_create_date`    DATETIME NOT NULL COMMENT '작성 날짜',
    `reply_last_update_date`    DATETIME NOT NULL COMMENT '마지막 수정 날짜',
    `reply_like_count`    INTEGER DEFAULT 0 NOT NULL COMMENT '좋아요수',
    `user_code`    INTEGER NOT NULL COMMENT '회원번호',
    `article_id`    INTEGER NOT NULL COMMENT '게시글 번호',
		`reply_delete_status` TINYINT NOT NULL COMMENT '댓글 삭제 여부',
 PRIMARY KEY ( `reply_id` )
)
 COMMENT = '댓글';

CREATE TABLE IF NOT EXISTS `inquiry`
(
    `inquiry_id`    INTEGER NOT NULL AUTO_INCREMENT COMMENT '문의아이디',
    `inquiry_category`    INTEGER NOT NULL COMMENT '문의카테고리',
    `inquiry_title`    VARCHAR(255) NOT NULL COMMENT '문의제목',
    `inquiry_content`    VARCHAR(255) NOT NULL COMMENT '문의내용',
    `inquiry_create_date`    DATETIME NOT NULL COMMENT '문의작성날짜',
    `inquiry_last_update_date`    DATETIME COMMENT '문의수정날짜',
    `inquiry_status`    TINYINT NOT NULL COMMENT '문의처리상태',
    `user_code`    INTEGER NOT NULL COMMENT '회원번호',
 PRIMARY KEY ( `inquiry_id` )
)
 COMMENT = '문의';

CREATE TABLE IF NOT EXISTS `reported_article`
(
    `report_article_id`    INTEGER AUTO_INCREMENT COMMENT '신고된게시글아이디',
    `article_id`    INTEGER NOT NULL COMMENT '게시글 번호',
    `user_code`    INTEGER NOT NULL COMMENT '회원번호',
    `report_date`    DATETIME NOT NULL COMMENT '신고일시',
    `report_content`    VARCHAR(255) COMMENT '신고내용',
    `report_reported_count`    INTEGER NOT NULL COMMENT '피신고횟수',
    `report_type`    TINYINT NOT NULL COMMENT '신고사유종류',
 PRIMARY KEY ( `report_article_id` )
)
 COMMENT = '신고당한 게시글';

CREATE TABLE IF NOT EXISTS `reported_reply`
(
    `report_reply_id`    INTEGER AUTO_INCREMENT COMMENT '신고된댓글아이디',
    `reply_id`    INTEGER NOT NULL COMMENT '댓글아이디',
    `user_code`    INTEGER NOT NULL COMMENT '회원번호',
    `report_date`    DATETIME NOT NULL COMMENT '신고일시',
    `report_content`    VARCHAR(255) COMMENT '신고내용',
    `report_reported_count`    INTEGER NOT NULL COMMENT '피신고횟수',
    `report_type`    TINYINT NOT NULL COMMENT '신고사유종류',
 PRIMARY KEY ( `report_reply_id` )
)
 COMMENT = '신고당한 댓글';

CREATE TABLE IF NOT EXISTS `studygroup_member`
(
    `studygroup_member_id`    INTEGER AUTO_INCREMENT COMMENT '스터디그룹멤버아이디',
    `studygroup_id`    INTEGER NOT NULL COMMENT '스터디그룹식별번호',
    `studygroup_role`    TINYINT NOT NULL COMMENT '역할',
    `studygroup_regist_date`    DATETIME NOT NULL COMMENT '가입일자',
    `user_code`    INTEGER NOT NULL COMMENT '회원번호',
 PRIMARY KEY ( `studygroup_member_id` )
)
 COMMENT = '스터디원';
 
-- FK
ALTER TABLE `article`
ADD CONSTRAINT `FK_user_code1` FOREIGN KEY ( `user_code` )
REFERENCES `user` ( `user_code` );

ALTER TABLE `article`
ADD CONSTRAINT `FK_studygroup_id1` FOREIGN KEY ( `studygroup_id` )
REFERENCES `studygroup` ( `studygroup_id` );

ALTER TABLE `blacklist`
ADD CONSTRAINT `FK_user_code2` FOREIGN KEY ( `user_code` )
REFERENCES `user` ( `user_code` );

ALTER TABLE `reply`
ADD CONSTRAINT `FK_user_code3` FOREIGN KEY ( `user_code` )
REFERENCES `user` ( `user_code` );

ALTER TABLE `reply`
ADD CONSTRAINT `FK_article_id1` FOREIGN KEY ( `article_id` )
REFERENCES `article` ( `article_id` );

ALTER TABLE `inquiry`
ADD CONSTRAINT `FK_user_code4` FOREIGN KEY ( `user_code` )
REFERENCES `user` ( `user_code` );

ALTER TABLE `reported_article`
ADD CONSTRAINT `FK_article_id2` FOREIGN KEY ( `article_id` )
REFERENCES `article` ( `article_id` );

ALTER TABLE `reported_article`
ADD CONSTRAINT `FK_user_code5` FOREIGN KEY ( `user_code` )
REFERENCES `user` ( `user_code` );

ALTER TABLE `reported_reply`
ADD CONSTRAINT `FK_reply_id1` FOREIGN KEY ( `reply_id` )
REFERENCES `reply` ( `reply_id` );

ALTER TABLE `reported_reply`
ADD CONSTRAINT `FK_user_code6` FOREIGN KEY ( `user_code` )
REFERENCES `user` ( `user_code` );

ALTER TABLE `studygroup_member`
ADD CONSTRAINT `FK_studygroup_id2` FOREIGN KEY ( `studygroup_id` )
REFERENCES `studygroup` ( `studygroup_id` );

ALTER TABLE `studygroup_member`
ADD CONSTRAINT `FK_user_code7` FOREIGN KEY ( `user_code` )
REFERENCES `user` ( `user_code` );

4. 프로젝트 아키텍처


5. 단위 테스트 결과 보고서


6. REST API 문서

회원 관련 API
게시글/댓글 관련 API
스터디그룹 관련 API

7. 프로젝트 회고

  • 이준형 : 자바와 스프링 백엔드 과정을 마치고 약 2주 정도의 기간동안 두번째 단위 프로젝트를 진행하였다. 이번 프로젝트에서는 개발자 커뮤니티라는 주제를 가지고 설계 단계에서는 DDD 기반의 설계로 MSA 적용, 구현 단계에서는 Spring Security와 JWT를 사용한 인증/인가 적용, CQRS 패턴을 적용하여 Command(create, udate, delete)는 Spring Data JPA, Query(read)는 MyBatis를 활용하여 프로젝트를 진행하였다. 설계부터 구현까지의 과정을 경험해볼 수 있었던 것이 좋았고, 새로운 기술들을 배우고 적용해 보는 것이 재미있었다. 특히 Spring Data JPA를 적용하여 command 작업을 할 때 쿼리 메소드를 통하여 DB에 더 쉽고 편하게 접근하는 것이 기억에 남는다. 물론 Feign Client를 사용해 micro service들 간의 통신하는 부분, Spring Security를 활용한 인증/인가를 적용해보는 부분도 새로웠고 앞으로 더 공부해봐야겠다는 생각을 하였다.

  • 소우주 : DB를 이용한 백엔드 개발 중간에 DB 수정할 일이 잦았는데 그때마다 관련된 java 단 코드들도 일일이 모두 수정해줘야 해서 흐름도 끊기고 꽤나 고통스러웠습니다. DB를 설계할 때 귀찮더라도 DB 수정할 일이 덜 생기도록 조금 더 꼼꼼히 설계해야겠다는 다짐을 했습니다. FeignClient 사용하여 클라이언트 간 통신하는 부분을 맡았고 VO 의 형식, 인증 문제, 경로 지정 등의 세심함을 요하는 부분이 있었습니다. 많은 에러를 마주하고 난 뒤 비로소 통신이 원활히 되는 것을 확인했을 때 짜릿한 희열을 느꼈습니다. 고도화 단계에서 로그인/로그아웃 부분도 공부해서 구현에 참여해보고 싶다는 생각이 들었습니다.

  • 신대영 : 새로운 조원분들과 함께 프로젝트를 시작하며 걱정이 많았습니다. 웹 구현도 처음이며, RestAPI MSA 등 여러 기술들을 사용하여 기간 안에 끝낼 수 있을지도 막막했습니다. 팀원 분들과 일정을 세우고, 역할을 분담하며 진행했습니다. 차근차근 Mybatis, JPA, CQRS, Feign 등을 진행하였습니다. 하지만 배운 것을 바로 적용은 많은 어려움이 있었습니다. 먼저 잘 하신 분께 배우고, 찾아보며 익숙해지니 개발은 점점 빨라졌습니다. 다른 조원분들도 돕고, 하다 보니 완성이 다 왔었습니다. 각자의 강점과 서로 부족하면 돕고 빨리 끝나면 부족한 부분을 메꾸며 한 조가 되어 진행했습니다. 모든 분들이 열심히 참여하여 감사했으며, 한 분이라도 없었음 프로젝트를 못 끝냈을 것입니다. 조금 더 내가 열심히 하였음 더 좋은 결과물이 나왔을 거 같은 아쉬움이 남아 다음 프로젝트 땐 더욱 열심히 하여 좋은 결과물을 만들기 위해 노력하겠습니다.

  • 이드보라 : 프로젝트를 진행하면서 지금까지 배워왔던 java, mybatis, JPA, eureka 등 수업과 복습으로만 공부했을 때와 다르게 직접 기능을 구현하면서 코드를 작성해볼 수 있었고 그 과정에서 개념을 이해하는데 좀 더 수월해 전체적으로 복습해가는 점이 잘 이루어졌던 것 같습니다. 또 프로젝트를 진행하기 위한 과정에서 새롭게 구성된 팀원들과의 합이 잘 형성되어 프로젝트를 진행하는데 힘든 점도 있었지만 함께 적극적으로 임하는 자세를 가지고 서로 힘이 되어주며 프로젝트를 진행할 수 있음에 팀원들에게 감사했습니다. 이번 프로젝트 주제는 개발자를 위한 커뮤니티를 구현해보고자 정해졌지만 현 시점에서 개발자를 준비하는 저의 입장에서 필요한 기능은 무엇이 있을까 생각하며 비전공자로서 어려웠던 점들을 고려하며 필요한 기능들을 고안해 프로젝트에 임했던 것 같습니다. 그 결과로 필수 산출물들과 다른 팀과 차별을 둘 수 있는 여러 가지 결과물을 낼 수 있어 큰 성취감을 느꼈고, 팀에게 도움이 되고자하는 마음이 커지면서 프로젝트가 끝났지만 앞으로 구현해놓은 기능들을 점차 고도화 시키는 과정이 기대가 되고 이번 프로젝트를 하면서 스스로 부족했다고 느꼈던 부분에 대해 공부하고 다음 프로젝트에서는 이번 보다 더 개발에 기여할 수 있고 같이 하는 팀원들과 함께 성장하며 서로에게 도움이 될 수 있도록 노력해야겠다는 점을 느낄 수 있었습니다.

  • 신동호 : 2주간 정말 힘들었습니다. 그렇기에 더욱 힘이 났던 모순적인 2주였습니다.힘들지 않았다면 성장하지 못했을 것이고 뿌듯한 기분도 느끼지 못했을 것입니다. 물론 급속 성장을 한 것은 아니기때문에 지치기도 했고 자신감도 많이 떨어졌었지만 좌절하지말라는 조원들의 응원덕분에 여기까지 온 것 같습니다. 나름 조회와 CRUD 구현도 했고 스터디그룹멤버와 회원 간의 페인클라이언트로 동시 조회도 구현해보며 자신감이 어느정도 생겼습니다. 회원의 인증 인가 서비스와 페인클라이언트에 대한 경험이 부족하기 때문에 더욱 더 공부해야 겠다는 생각을 했습니다. 이대로 다같이 갈진 모르지만 다같이 가게된다면 파이널때 더욱더 조원들과 으쌰으쌰하며 개발해 나가고싶습니다.