- 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
5-1 퍼블리싱
▶ 마이페이지
- 마이페이지 메인
- 프로필 설정
- 포인트 안내
- 내 구매 목록
- 간편 결제
- 카드 등록
- 내 참여
- 찜 목록
- 내 문의 목록
- 내 문의 상세
- 비밀번호 확인
- 비밀번호 재설정
- 기본 정보 설정
- 알림 설정
- 알림 동의 여부
- 탈퇴 안내 및 본인확인
5-2 백엔드
▶ 회원가입
- 아이디, 이메일 중복 검사 및 이메일 인증 API를 사용
- 필수 정보 입력 여부 검사
- 조건 충족 시 회원가입
- 카카오 API를 이용한 간편 회원가입
- 네이버 API를 이용한 간편 회원가입
▶ 로그인
- 아이디, 비밀번호 DB 비교 로그인 기능 구현
- 카카오 API를 이용한 간편 로그인
- 네이버 API를 이용한 간편 로그인
- 로그아웃 기능 구현
▶ 아이디 찾기
- 사용자가 입력한 이메일과 DB 비교
- 정보 일치 여부 전달
▶ 비밀번호 찾기
- 사용자가 입력한 이메일과 DB 비교
- 정보 일치할 경우 MAIL API 이용하여 비밀번호 변경 링크 발송
- 비밀번호 변경 구현
▶ 강연
- 관리자 페이지에 강연목록에서 강연등록 기능 구현
- 필수 정보를 입력 충족 시 등록
- 3개의 사진 파일 업로드
- DB에서 조회한 썸네일 사진과 강연 정보를 가져와 페이징처리로 구현
- DB에서 조회한 정보와 썸네일을 제외한 사진을 2개를 원하는 위치에서 보여줄 수 있도록 구현
▶ 상담소
- 등록 폼에 필수 정보 확인 후 게시판 등록 구현
- DB에서 원하는 상담 게시글을 불러오는 기능 구현
- DB로 검사하여 자기가 작성한 상담 게시글을 수정하는 기능 구현
- DB로 검사하여 자기가 작성한 상담 게시글을 삭제하는 기능 구현
<댓글 / 대댓글>
- 댓글 / 대댓글을 작성 기능 구현
- 댓글 / 대댓글 수정 기능 구현
- 댓글 / 대댓글 삭제 기능 구현
JSP 프로젝트 때도 느꼈지만, 팀원들과 협업하는 프로젝트이기 때문에 GIT, GITHUB를 사용하면서 소통이 중요하고 어려웠다는 것을 느꼈습니다.
댓글과 대댓글을 한테이블에서 제작하여 구성하는 것이 어려웠습니다.
🌩문제 상황🌩
카카오, 네이버 로그인을 통하여 가입한 회원 프로필 설정
🚨문제 원인🚨
처음에는 MEMBER TABLE에 파일 컬럼에 추가해야하는 줄 알았는데, 네이버나 카카오는 프로필을 링크로 주기 때문에 어떻게 DB에 INSERT하여 사용할지 방향성을 잡지 못함
🚀해결 방법🚀
MEMBER TABLE에 SNS_PROFILE을 NULL로 컬럼을 추가하여 ERD 구성이 바뀌었지만, 그 컬럼에 링크를 받아서 검사하여 화면에서 프로필 사진을 보여지게 하였음
🌩문제 상황🌩
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를 사용하여 오류를 해결함
프로젝트를 진행하는 기간인 약 4주안에 서비스를 구현하는 것이 정말 어려웠지만, 그 중에 제일 중요한 것은 기획이라고 많이 느꼈습니다. 기획이 탄탄해야 나중에 가서 중간에 화면이나 SQL문을 수정하는 상황과 불필요한 테이블이 생기는 상황을 막을 수 있다는 것을 느꼈고, 그 프로젝트 웹개발 완성도의 퀄리티가 기획에 따라 엄청난 차이가 난다는 것을 느꼈습니다. 협업은 서로 소통이 무조건 우선이라고 느꼈습니다. 그 이유는 소통을 못하면 아무리 구현을 잘해도 GIT, GITHUB 소통에 과정에서 열심히 짠 코드가 사라질 수 도 있는 것이며, 충돌 그리고 의사소통에 문제로 구현되어야하는 서비스가 구현이 안 되어있고, 제작 의도와 다른 서비스로 구현 될 수 있음을 느꼈다. 그래서 소통을 자주 함으로써 이러한 문제 발생을 막을 수 있다고 생각이 들었습니다. 그리고 회의를 통해 서로 어떤 문제점이 있는 지 공유하여 해결하고 앞으로 방향성도 정할 수 있었습니다. 그에 대한 기록을 통하여 자신이 까먹을 수 있는 부분을 자료로 확인하여 실수를 최소화하여 결과적으로 협업에서 기록, 소통, 회의를 함으로써 완성된 작업물에 퀄리티가 엄청나게 상승할 수 있다는 것을 알게 되었습니다.
개발을 접하면서부터 느낀점은 정말 개발이라는 분야에서 공부는 끝이 없고, 개발 트랜드는 계속 변해가고 그 변화에 따라가야 나의 발전도 멈추지 않고 올라간다고 느꼈습니다. 그래서 만약 취업에 성공한다하더라도 나머지 개인시간에는 공부를 위한 재투자를 무조건 해야한다고 느꼈습니다. 그리고 점점 새로운 기술을 알아갈수록 그에 대한 보상이 성취감과 만족감으로 나에게 다가왔기 때문에 더욱 더 발전해야겠다는 생각이 하루가 지날때 마다 깨닫게 되었습니다.