Skip to content

developer-cbum/wegether

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wegether

인구감소에 따른 대학교 통합 커뮤니티 서비스 - 'wegether'

1. 기획 배경

해가 갈수록 학령인구 감소가 되고 있다. 지방대는 감축 정원이 88%이다. 대학간 경쟁률 격차도 심해져간다. 수도권 비수도권 대학 간 경쟁률 격차는 수도권이 13.95 대 1 이며 비수도권은 경쟁률이 6.04 대 1이다

2. 기대 효과

다양한 전공 관련 자료 접근성 증진에 기인한 대학 수준 상향 평준화

대학생 커뮤니티 관련 플랫폼 구축

커뮤니케이션 스킬 및 협업 능력 향상

입시 관련 상담 및 정보 제공으로 인한 입시 스트레스 완화


3. 프로젝트 사용 툴

- Java
- Java Script
- tomcat
- jQuery
- MyBatis
- Spring Boot
- Oracle
- Visual Studio Code
- DBeaver
- Sourcetree
- git, github
- JSON
- Ajax
- JDK 11.0.15
- Naver DEVELOPER API
- Kakao DEVELOPER API
- bootpay API
- postman
- gradle

4. ERD

5. 담당 업무

5-1 퍼블리싱

▶ 마이페이지

  • 마이페이지 메인
  • 프로필 설정
  • 포인트 안내
  • 내 구매 목록
  • 간편 결제
  • 카드 등록
  • 내 참여
  • 찜 목록
  • 내 문의 목록
  • 내 문의 상세
  • 비밀번호 확인
  • 비밀번호 재설정
  • 기본 정보 설정
  • 알림 설정
  • 알림 동의 여부
  • 탈퇴 안내 및 본인확인

5-2 백엔드

▶ 회원가입

  • 아이디, 이메일 중복 검사 및 이메일 인증 API를 사용
  • 필수 정보 입력 여부 검사
  • 조건 충족 시 회원가입
  • 카카오 API를 이용한 간편 회원가입
  • 네이버 API를 이용한 간편 회원가입

▶ 로그인

  • 아이디, 비밀번호 DB 비교 로그인 기능 구현
  • 카카오 API를 이용한 간편 로그인
  • 네이버 API를 이용한 간편 로그인
  • 로그아웃 기능 구현

▶ 아이디 찾기

  • 사용자가 입력한 이메일과 DB 비교
  • 정보 일치 여부 전달

▶ 비밀번호 찾기

  • 사용자가 입력한 이메일과 DB 비교
  • 정보 일치할 경우 MAIL API 이용하여 비밀번호 변경 링크 발송
  • 비밀번호 변경 구현

▶ 강연

  • 관리자 페이지에 강연목록에서 강연등록 기능 구현
  • 필수 정보를 입력 충족 시 등록
  • 3개의 사진 파일 업로드
  • DB에서 조회한 썸네일 사진과 강연 정보를 가져와 페이징처리로 구현
  • DB에서 조회한 정보와 썸네일을 제외한 사진을 2개를 원하는 위치에서 보여줄 수 있도록 구현

▶ 상담소

  • 등록 폼에 필수 정보 확인 후 게시판 등록 구현
  • DB에서 원하는 상담 게시글을 불러오는 기능 구현
  • DB로 검사하여 자기가 작성한 상담 게시글을 수정하는 기능 구현
  • DB로 검사하여 자기가 작성한 상담 게시글을 삭제하는 기능 구현

REST 설계

<댓글 / 대댓글>

  • 댓글 / 대댓글을 작성 기능 구현
  • 댓글 / 대댓글 수정 기능 구현
  • 댓글 / 대댓글 삭제 기능 구현

6. 느낀점

6-1. 어려웠던 부분

ERD를 만들 때, 정규화와 반정규화를 고려하고 어떤 테이블과 컬럼으로 구성해야하는지 그리고 PK, FK 관계도 어려웠으며 , 특히 슈퍼키 서브키를 통한 정규화 테이블들도 ERD 제작하는 데 어려움을 느꼈습니다.
JSP 프로젝트 때도 느꼈지만, 팀원들과 협업하는 프로젝트이기 때문에 GIT, GITHUB를 사용하면서 소통이 중요하고 어려웠다는 것을 느꼈습니다.
댓글과 대댓글을 한테이블에서 제작하여 구성하는 것이 어려웠습니다.

6-2. 문제를 해결했던 부분

📌Oauth 카카오, 네이버 로그인 API 사용


🌩문제 상황🌩
카카오, 네이버 로그인을 통하여 가입한 회원 프로필 설정

🚨문제 원인🚨
처음에는 MEMBER TABLE에 파일 컬럼에 추가해야하는 줄 알았는데, 네이버나 카카오는 프로필을 링크로 주기 때문에 어떻게 DB에 INSERT하여 사용할지 방향성을 잡지 못함

🚀해결 방법🚀
MEMBER TABLE에 SNS_PROFILE을 NULL로 컬럼을 추가하여 ERD 구성이 바뀌었지만, 그 컬럼에 링크를 받아서 검사하여 화면에서 프로필 사진을 보여지게 하였음


📌Mapper 매개변수


🌩문제 상황🌩
Mapper.xml과 Mapping 되는 Mapper Interface를 설정할 때 매개변수로 객체로 2개 받을 경우 param1, param2 라는 오류가 발생함

🚨문제 원인🚨
Mapper Interface 매개변수 객체 2개 앞에 @Param("이름")과 Mapper.xml 파일에서 #{이름.필드명}을 작성하지 않아서 발생하였음

🚀해결 방법🚀
Mapper Interface 매개변수 객체 2개 앞에 @Param("이름")을 각각 붙혀주고 Mapper.xml 파일에서 #{이름.필드명} 으로 접근해서 사용해서 해결 했음


📌게시판 / 댓글 / 대댓글


🌩문제 상황🌩
삭제 기능을 구현해서 사용한 결과 FK 오류가 발생함

🚨문제 원인🚨
FK 관계 때문에 삭제에도 순서가 있는데 기능 구현 할때 순서를 고려하지 않아서 발생하였음

🚀해결 방법🚀
ServiceImp에서 fk를 고려하여 순서에 맞게 삭제 DAO를 사용하여 오류를 해결함

6-3. 총평

🌟 기획: 기반이 중요하다.

프로젝트를 진행하는 기간인 약 4주안에 서비스를 구현하는 것이 정말 어려웠지만, 그 중에 제일 중요한 것은 기획이라고 많이 느꼈습니다. 기획이 탄탄해야 나중에 가서 중간에 화면이나 SQL문을 수정하는 상황과 불필요한 테이블이 생기는 상황을 막을 수 있다는 것을 느꼈고, 그 프로젝트 웹개발 완성도의 퀄리티가 기획에 따라 엄청난 차이가 난다는 것을 느꼈습니다.

🌟 협업: 기록과 소통과 회의는 필수이다.

협업은 서로 소통이 무조건 우선이라고 느꼈습니다. 그 이유는 소통을 못하면 아무리 구현을 잘해도 GIT, GITHUB 소통에 과정에서 열심히 짠 코드가 사라질 수 도 있는 것이며, 충돌 그리고 의사소통에 문제로 구현되어야하는 서비스가 구현이 안 되어있고, 제작 의도와 다른 서비스로 구현 될 수 있음을 느꼈다. 그래서 소통을 자주 함으로써 이러한 문제 발생을 막을 수 있다고 생각이 들었습니다. 그리고 회의를 통해 서로 어떤 문제점이 있는 지 공유하여 해결하고 앞으로 방향성도 정할 수 있었습니다. 그에 대한 기록을 통하여 자신이 까먹을 수 있는 부분을 자료로 확인하여 실수를 최소화하여 결과적으로 협업에서 기록, 소통, 회의를 함으로써 완성된 작업물에 퀄리티가 엄청나게 상승할 수 있다는 것을 알게 되었습니다.

🌟 공부: 공부할수록 나의 가치는 올라간다.

개발을 접하면서부터 느낀점은 정말 개발이라는 분야에서 공부는 끝이 없고, 개발 트랜드는 계속 변해가고 그 변화에 따라가야 나의 발전도 멈추지 않고 올라간다고 느꼈습니다. 그래서 만약 취업에 성공한다하더라도 나머지 개인시간에는 공부를 위한 재투자를 무조건 해야한다고 느꼈습니다. 그리고 점점 새로운 기술을 알아갈수록 그에 대한 보상이 성취감과 만족감으로 나에게 다가왔기 때문에 더욱 더 발전해야겠다는 생각이 하루가 지날때 마다 깨닫게 되었습니다.

About

wegether project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 75.9%
  • HTML 13.3%
  • JavaScript 5.9%
  • Java 4.9%