본문 바로가기

프로젝트 개발기/Status 200 ( Team Project )

(15)
7. TEAM 프로젝트: 캘린더 기능 구현 - 스케줄 (1) 상세한 개발 내역을 작성할려고 했으나, 여러 번의 디버그가 있었고 개발 단계에서 변경되는 점 또한 많았다. 때문에 완성된 캘린더를 기능 별로 정리하고, 개선점을 작성하려고 한다. (TimeLine에 작성해 봤으나 글이 한눈에 들어오지 않는다는 단점이 있어서 방법을 바꿨다.) 1. 스케줄 기능 구현 스케줄은 계정을 기반으로 하되, 그룹에 따라 표현되는 스케줄의 모양이 다르다는 차이점을 가진다. 또한 날짜에 따라 모양이 표현되어야 하므로, 영역에 따른 표시 알고리즘이 필요하다. 단순한 수를 비교하는 알고리즘이지만, 날짜는 년도, 월, 일을 포함하기 때문에 if 문을 여러 차례 사용하여 데이터를 검증해야 한다. 때문에 우선 스케줄에 대한 기본 기능을 먼저 작성하고 날짜 표시 알고리즘에 대해서는 '캘린더 기능 ..
6. TEAM 프로젝트: 캘린더 기능 구현 - 레이아웃 기능 상세한 개발 내역을 작성할려고 했으나, 여러 번의 디버그가 있었고 개발 단계에서 변경되는 점 또한 많았다. 때문에 완성된 캘린더를 기능 별로 정리하고, 개선점을 작성하려고 한다. (TimeLine에 작성해 봤으나 글이 한눈에 들어오지 않는다는 단점이 있어서 방법을 바꿨다.) 1. 레이아웃의 기능 정의 캘린더의 레이아웃에는 위와 같은 헤더 외에 '스케줄', '그룹', '할일 목록'이 있다. 해당 레이아웃은 각 기능에 대한 포스트에 다루고, 우선 해당 포스트에서는 헤더에 대한 전반적인 기능을 정리한다. 가장 좌측부터 명칭을 정하자면 다음과 같다. 메뉴: To Do List 및 Group 항목을 안보이도록 한다. 캘린더 영역의 넓이가 늘어난다는 장점이 있다. 오늘 날짜로 이동: 해당 아이콘을 누르면 오늘 날짜..
5. TEAM 프로젝트: 캘린더 기능 구현 - 모양 표시 상세한 개발 내역을 작성할려고 했으나, 여러 번의 디버그가 있었고 개발 단계에서 변경되는 점 또한 많았다. 때문에 완성된 캘린더를 기능 별로 정리하고, 개선점을 작성하려고 한다. (TimeLine에 작성해 봤으나 글이 한눈에 들어오지 않는다는 단점이 있어서 방법을 바꿨다.) 1. 캘린더 모양 표시를 위한 기반 함수 캘린더의 모든 모양과 기능은 Java Script (Ecma Script)를 기반으로 한다. 마크업을 직접 진행하고 이를 조작하면 개발 초기에는 편할 수 있으나, 실제로 데이터를 표현하고 수정할 때 제약 조건이 발생할 수 있다. 연 단위 스케줄은 적어도 1000~2000개 사이의 엘레먼트의 조작이 필요한데, 이를 마크업으로 조작하여도 결국 Node 단위로 데이터를 수정해야 년도별 데이터를 정확..
4. TEAM 프로젝트: 역할 분담 및 기능 단위 선정 1. 개발 영역 설정하기 우리는 해당 프로젝트에 의의에 맞게 개발자 협업 도구에 맞는 프로그램을 개발하려고 했다. 이에 반드시 필요한 것은 다음과 같았다. 준수한 에디터 질문과 답변이 오가기 때문에 커뮤니티로서 관리기능 협업에 필요한 스케줄러 각각 개발 단위를 나누는 기준은 자신이 안해본 기능, 그리고 흥미있는 것으로 정했다. 관리 기능은 세부적으로 분석하면 다양한 기능이 있어야하고, 에디터는 에디터 자체를 만드는 과정이 쉽지 않다. 나는 개인 포트폴리오에서 에디터를 제작해봤기 때문에 큰 흥미가 없었고, 멤버 관리는 이후 진행할 프로젝트에서 필연적으로 진행해야만 했다. 이에 따라, 팀원들의 동의를 구하고 스케줄러에 대한 개발에 진입하였다. 나하고 같이 개발을 하게된 팀원은 M이라는 친구였는데, 알고리즘을..
3. TEAM 프로젝트: 사전 협의 1. 개발 도구는 어떤 것을 사용할까? 우리는 대부분 JAVA를 기반으로 프로그램을 공부하였다. 물론 웹에 필요한 HTML, CSS, Ecma Script, JSP, JSTL, JQuery, Servlet, XML, JSON 등 부가적인 항목도 공부를 진행하였으나 기본적으로 Eclipse에 익숙한 상태였다. 그래서 기본적인 개발툴은 Eclipse를 사용하는 것은 자명하였다. 문제는 프로젝트를 진행하면서 부가적으로 사용해야하는 라이브러리, 브라우저, 협업도구, 스케줄 도구를 정하는 것이었다. 1) 소스코드 형상 관리 모두 입문 개발자이고 협업 도구는 사용해본적이 없기 때문에, Google 드라이브와 같은 원격 저장소에 저장하고 다운받는 식으로 개발하는 것이 일반적인 방법이었다. 하지만, 실제로 현업에서는 ..
2. TEAM 프로젝트: 주제 정하기 1. 주제는 어떻게 정할까? 6명의 인원으로 Team 프로젝트를 진행한다면, 각자 원하는 기능이나 구현하고 싶은 프로그램의 방향이 다를 것이다. 더구나 학원에서 모여서하는 경우엔 다들 입문 개발자이기 때문에 어떠한 주제나 프로그램을 만들겠다고 정하고 모이는 경우와는 또 다르다. 물론 누군가 주도해서 주제를 정하는 경우도 있지만, 그렇게 할 경우 각각 어떠한 어드밴티지를 취할 수 있는지를 계산하면서 프로젝트를 진행해야 한다. 팀으로 진행하는 프로젝트여도 각자 자신이 하는 역할이 분명하고, 개발 범위가 잘 설정되어야만 그 의미가 있기 때문이다. 물론 나도 입문 개발자라 미숙하지만, 지금까지 사회생활을 하면서 하나의 팀에 소속되고, 팀이라는 하나의 협업체계에서 자신의 역할을 찾는 것은 시간이 필요한 일이다. ..
1. TEAM 프로젝트: 서문 공부하는 기술원에서 교수님께 팀을 구성해서 프로젝트를 진행해 볼것을 권유받았다. 코로나의 여파로 ZOOM 수업을 진행하면서 커리큘럼에 많은 변화가 있었는데, 팀프로젝트 또한 이 변화에 휩쓸려 진행하지 못하고 있었다. 나는 당연히 팀 단위 프로젝트를 진행하고 싶다는 열망이 있었고, 마침 개인 프로젝트가 마쳐진 인원들이 있어 이를 시작할 수 있었다. 이 주제의 포스팅은 우리의 개발 과정과 시행착오를 기록하기 위해 작성하는 글이다. 각각의 포스트는 사용한 코드에 대한 내용이다. 만약 전체적인 개발 과정, 고려한 사항 등 개괄적인 데이터가 필요하다면 15 번 글을 보셨으면 좋겠다.