지난번 프로젝트 개요에 이어서
이번 글에서는 제가 어떤 기능을 담당하였고
어떻게 구현하였는지 리뷰해보려고 합니다.
온라인 사용자 접근 관리 (Online User Access Management)
제가 이번 웹 개발 프로젝트에서
맡은 부분은 온라인 사용자 접근 관리 기능으로
아래와 같은 CRUD 기능을 구현하였습니다.
기본적인 디자인은 게임 개발 전공 조원이 맡아서 담당하고
저는 HTML과 CSS를 담당하여 랜딩, 메인페이지를
만들었고 이 두 페이지들을 바탕으로 다른 조원들은
각자 필요에 따라 JSP파일들을 만들어서 사용하였습니다.
위 CRUD기능들을 구현하기 위해 제가 작성한
파일들은 다음과 같습니다.
- JSP
- 랜딩페이지
- 메인페이지
- 회원가입 페이지
- 로그인 페이지
- 상세정보 페이지
- 접속기록 페이지
- Model
- Customer.java
- Staff.java
- DAO
- CustomerDAO
- StaffDAO
- Controller
- AccessLogServlet
- CustomerLoginServlet
- CustomerRegisterServlet
- LogoutServlet
- StaffLoginServlet
- StaffRegisterServlet
- Database
- Customers
- CustomerAccessLog
- Staff
- StaffAccessLog
개발 과정에서 느낀 점
이번 프로젝트의 핵심은
MVC 설계구조 사용,
사용자 입력값을 데이터베이스에 저장,
데이터베이스에 저장된 정보의 활용,
JSP에서 "session"의 활용
이 세가지였다고 생각합니다.
이전에 Session을 사용해 본 적이 없었기에
처음에는 굉장히 헷갈렸지만 웹페이지들을
넘나들며 데이터의 공유가 가능한 점이 매우
편리하였습니다.
또한 로그인할때 Session에 사용자를 설정해 두어
다른 다양한 페이지들에서 그 사용자에 맞는
정보들을 데이터베이스에서 불러와서
보여주는 작업을 하였습니다.
그런 작업들을 하면서 데이터베이스를 설계하는 과정에서
테이블들 사이의 관계를 구성하는 것이 얼마나 중요한지
깨닫게 되었습니다.
사실 이번 프로젝트의 코드는 기능 구성이
기본적인 기능 위주였기에 난이도 자체가
굉장히 높은 프로젝트는 아니었다고 생각합니다.
하지만 지금까지는 Java, SQL과 같은 언어들을
따로 공부하고 배워와서 서로 다른 언어들을
함께 사용한 경험이 없어 더 어렵게 느껴졌던 것 같습니다.
각종 라이브러리의 활용으로 서로 다른 언어를
사용하면서 Database와 웹페이지를 연결하는
경험을 한 것이 앞으로 개발에 많은 도움이
될 것 같습니다.
팀 프로젝트에서 느낀 점
이번 프로젝트는 제가 처음으로 참여한 팀 프로젝트였습니다.
이전까지는 모든 프로젝트를 혼자 진행하였기 때문에 보통
코드의 구현에서 어려움을 겪는 경우가 많았고 팀워크나
커뮤니케이션에 대해서 깊이 생각해 볼 기회가 없었습니다.
이번 프로젝트는 실무 경험이 거의 없는 5명의 조원으로
구성되어 기술적인 역량이 모두 부족하였고, 서로에 대한
신뢰 또한 부족하였습니다. 초반에는 누군가가 주도적으로
팀을 이끌기 어려운 상황이었습니다.
그로 인해 서로 연동되어 있는 기능임에도 불구하고
서로 충분한 소통 없이 각자 개발을 진행하는 상황이
발생하였고 선행 작업자가 공유 없이 코드를 바꿔버리는 일이
발생하면서 겹치는 기능이 많은 작업자는 작업을 하지 못하는
상황들이 발생하면서 전체 흐름이 지체되고 꼬이기 시작하였습니다.
이러한 문제들을 해결하기 위해 프로젝트 중반부터는
본인의 영역이 아닌 타인과 기능이 겹치는 영역을 수정할 경우에
반드시 주석과 메모를 남기고 공유를 하는 규칙을 제안하여
적용하였습니다. 그 후에는 어느 정도 협업의 혼란을 줄이는 것이
가능하였습니다.
하지만 프로젝트 후반에는 일부 조원들이 개발에
거의 참여하지 않으면서, 제가 맡은 기능 외에도
다른 기능들까지 직접 챙겨야 하는 상황이 발생하였습니다.
이 과정에서 제가 작성한 것이 아닌 코드를 이어받아서
작업을 하면서 팀 간 커뮤니케이션의 절실함을 강하게
느꼈습니다.
각 조원이 변수명, 로직 구성, Servlet이나 Session
사용 방법이 모두 달라서 동일한 기능이 여러 번 작성되는
비효율적인 코드 구조가 자주 발견되었습니다.
이러한 과정들을 통해 다음과 같은 점들을 깨달았습니다.
1. 팀을 이끄는 리더의 필요성과 중요성
2. 프로젝트의 품질과 속도 향상은 코드뿐만 아니라 팀원 간의
적극적인 소통이 중요하다.
3. 코드를 작성하는 것보다 합치고 정리하는 시간이
오래 걸린다.
4. 진행 계획과 그 계획을 지키는 것의 중요성
이번 프로젝트는 기술적인 성장뿐만 아니라
협업과 팀워크의 중요성을 깨닫고 개인적으로
많이 성장할 수 있는 좋은 기회였습니다.
향후 팀 프로젝트에서는 기술만큼이나 소통과
역할 조율에 더 많은 신경을 써서 좋은 결과를
이끌어가야겠다는 교훈을 얻을 수 있었습니다.
'웹 개발 프로젝트 리뷰 (Web Design)' 카테고리의 다른 글
웹 개발 프로젝트 리뷰 (5) - JSP & Servlet (0) | 2025.06.29 |
---|---|
웹 개발 프로젝트 리뷰 (4) - 세션 (Session) (0) | 2025.06.28 |
웹 개발 프로젝트 리뷰 (3) - JDBC & Prepared Statement (2) | 2025.06.27 |
웹 개발 프로젝트 리뷰 (1) - 프로젝트 개요 (4) | 2025.06.25 |