009 프로젝트
O to I
개인 체질 맞춤 건강관리 웹 사이트
신입생 팀원들과 자유주제로 진행한 첫 전공 프로젝트입니다. 처음으로 팀 일정과 구현 범위를 조율하며, 웹 서비스의 화면과 데이터 흐름을 함께 설계해본 경험입니다.
- 첫 전공 프로젝트에서 팀장으로 일정과 역할을 조율
- Master Page와 회원용 Diet, DB 설계를 맡아 공통 구조를 구현
- 좋은 평가와 구현 범위 관리의 아쉬움을 함께 남긴 프로젝트
프로젝트 개요
O to I는 건강한 다이어트와 생활습관 관리를 돕는 웹 사이트입니다. 사용자가 키, 몸무게, 목표체중, 체질, 식단 정보를 입력하면 BMI와 식단 칼로리를 계산하고, 회원 상태에 따라 다른 Diet 정보를 확인할 수 있도록 구성했습니다.
단순 정보 제공보다 사용자가 자신의 상태를 입력하고, 식단과 운동 추천 흐름을 따라가며, 커뮤니티와 고객센터를 통해 기록을 남길 수 있는 서비스를 목표로 했습니다.
기술 스택
언어
C#
프레임워크
ASP.NET Web Forms
.NET Framework 4.0 / 4.5 런타임 설정
데이터베이스
SQL Server
SQLEXPRESS
개발환경
Visual Studio
2015
팀 구성
- 팀 프로젝트 참여 4명 - 신입생 팀원으로 구성
기획 배경
당시 웰빙과 건강한 몸에 대한 관심이 커지고 있었고, 수업에서는 자유주제로 프로젝트를 진행할 수 있었습니다. 팀 회의를 통해 단순 체중 감량보다 개인의 체질과 상태에 맞는 식이요법, 운동 방법을 보여주는 건강관리 서비스를 주제로 정했습니다.
신입생으로 구성된 팀이었기 때문에 구현 범위를 정하고, 각자 맡을 수 있는 작업을 나누는 과정 자체도 프로젝트의 중요한 부분이었습니다.
목표와 구현 범위
Wiki 기준으로 About O to I, Diet, 비만도 측정, 회원용 Diet, Community, Customer Service를 주요 범위로 잡았습니다. 회원용 Diet에서는 메뉴별 칼로리 계산과 신규 메뉴-칼로리 등록을, Customer Service에서는 회원 문의와 관리자 답변 흐름을 목표로 했습니다.
실제 코드에는 회원가입과 로그인, 체질 판정, BMI 계산, Food_db 기반 식단 칼로리 합산, 방명록과 자유게시판, 고객센터 문의와 관리자 답변, 관리자 회원 목록과 회원 삭제 기능이 남아 있습니다. 다만 기획한 모든 범위를 같은 완성도로 다듬지는 못했고, 특히 관리자 페이지와 문의 흐름은 구현 흔적은 있지만 마무리 완성도에 아쉬움이 남은 영역으로 기록합니다.
내 역할과 기여
팀장으로서 WBS를 도입하고 주 2회 정도 팀원들의 진행도를 확인하며 일정과 업무 배분을 조율했습니다.
구현에서는 Master Page 개발과 디자인 적용, 회원용 Diet 흐름, DB 설계, 최종 발표를 중심으로 맡았습니다. 특히 회원용 Diet에서는 사용자가 선택한 식단의 칼로리를 계산하고, 입력한 신체 정보와 연결해 사용자에게 변화를 보여주는 흐름에 집중했습니다.
실제 구현/기여 상세
- Master Page 구성과 공통 디자인 적용
- 회원용 Diet 화면과 식단 칼로리 계산 흐름 구현
- BMI 계산과 사용자 신체 정보 기반 결과 흐름 구성
- DB 설계와 사용자, 식단, 게시판, 고객센터 데이터 관계 정리
- WBS 기반 일정 조율과 최종 발표 준비
설계와 구현
ASP.NET Web Forms 구조로 화면과 코드비하인드를 구성했고, 여러 메뉴의 공통 레이아웃을 위해 Master Page를 사용했습니다. Master Page는 수업에서 다룬 개념이기도 했고, 서비스 전반에 균일한 레이아웃을 적용하기 위해 선택했습니다.
회원/비회원 화면은 일부 기능을 비회원도 경험할 수 있게 하되, 저장이나 확장 기능이 필요한 시점에 회원가입으로 이어질 수 있도록 나누었습니다. 로그인 상태에 따라 화면 흐름을 분리했고, Forms Authentication 기반의 로그인 흐름도 구현되어 있습니다.
데이터는 코드 기준 SQL Server SQLEXPRESS의 sqlexpress2 데이터베이스를 사용했습니다. 회원가입 시 user_db에 사용자 정보를 저장하고, 문항 응답을 바탕으로 사용자의 체질 값을 계산해 저장했습니다.
Diet 영역에서는 키와 몸무게로 BMI를 계산하고, Food_db에서 메뉴별 칼로리를 조회해 선택한 식단의 총 칼로리를 합산했습니다. BMI와 칼로리 계산을 통해 사용자의 변화하는 수치를 눈으로 확인할 수 있게 하는 것이 목표였습니다.
어려웠던 점과 해결
가장 어려웠던 부분은 DB 설계였습니다. 구현을 진행하면서 필요한 데이터가 계속 보였고, 그때마다 테이블과 관계를 다시 확인해야 했습니다.
사용자 정보, 체질, 식단, 게시판, 고객센터처럼 서로 다른 성격의 데이터를 처음으로 함께 다루다 보니 설계를 자주 수정해야 했습니다. DB 설계가 흔들릴 때는 수업에서 배우던 데이터 마인드맵 방식으로 필요한 데이터와 관계를 다시 정리했고, 이후 팀원들과 회의하며 테이블과 기능 범위를 조정했습니다.
결과와 배운 점
이 프로젝트는 반에서 가장 좋은 평가를 받았고, 첫 전공 프로젝트에서 좋은 결과를 얻었다는 점이 큰 자신감으로 남았습니다.
동시에 기획한 범위의 약 80% 정도만 구현했다는 아쉬움도 있었습니다. 관리자 페이지와 고객센터는 코드상 기본 흐름이 남아 있지만, 처음 목표만큼 완성도를 끌어올리지 못한 부분으로 남았습니다. 지금 돌아보면 첫 웹 프로젝트이자 개발 리딩을 처음 경험한 프로젝트였고, 일정 조율과 구현 범위 관리가 결과만큼 중요하다는 것을 배운 출발점이었습니다.