본문 바로가기

프로젝트 개발기

(15)
15. TEAM 프로젝트: Status 200 개발 후기 1. 팀 프로젝트 시작! 공부를 시작한지 6개월이 지나고, 개인 프로젝트로 일기장, 엑셀 내 데이터로 차트를 그려주는 프로그램을 만들었다. 실력이 늘어간다는 자각보다는 늘 부족하다는 갈증에 헤맬 무렵, 실제 개발 현장에 대해서 강좌 하는 Wanted를 신청하고 볼 수 있었다. 많은 사람들이 개발자를 하길 원하고, 이 길로 정진한다는 사실을 알았을 때 뭔가 답답한 기분이 들었다. 대부분 팀으로 무언가를 만들고, 아주 멋진 프로그램들을 세상에 내놓는 사실은 내 부족한 면모를 자극하는 것 같았다. 그러던 중, 우연치 않게 같이 공부하는 동기들과 팀을 결성해 팀 프로젝트를 진행할 수 있는 기회가 생겼다. 모두 나보다 실력이 출중하고, 또한 노력도 많이 하는 친구들이기 때문에 평소에도 많이 배우고 있었다. 그런 ..
14. TEAM 프로젝트: Git Hub 링크 개발 과정은 1~13번 글을 참고해주세요. 1~13까지 올린 소스코드는 모든 소스코드를 올린 것이 아닙니다. 자세한 소스가 보고 싶다면 Git Hub를 확인해주시기 바랍니다. STATUS200 Git hub로 이동하기 GitHub - JayHyunK/team1jo: 팀프로젝트 1조 팀프로젝트 1조. Contribute to JayHyunK/team1jo development by creating an account on GitHub. github.com 코드 없이 후기에 대한 내용만 궁금하실 경우 15번 글을 봐주세요. 감사합니다.
13. TEAM 프로젝트: 헤더 디자인 및 캘린더 디자인 상세한 개발 내역을 작성할려고 했으나, 여러 번의 디버그가 있었고 개발 단계에서 변경되는 점 또한 많았다. 때문에 완성된 캘린더를 기능 별로 정리하고, 개선점을 작성하려고 한다. (TimeLine에 작성해 봤으나 글이 한눈에 들어오지 않는다는 단점이 있어서 방법을 바꿨다.) 1. 디자인을 할 때 고려한 것 프로그래밍을 할때 사용자의 경험을 증진하려면 어떻게 해야할까를 늘 고민하면서 기능을 구현한다. 다만 디자인은 대부분 감각에 의존해서 한다. 감각이라함은 배치와 간격에 따른 안정감, 폰트 크기의 적절함을 고려한 상태를 말한다. 쉽게 말해서 내가 보기에 안정적이고 이쁜지를 본다는 것이다. 캘린더의 기능을 구현할 때 하나의 컬러를 설정하고 싶었지만, 이럴 경우 스케줄의 가독성이 낮아진다. 때문에 최대한 적은..
12. TEAM 프로젝트: 캘린더 기능 구현 - 실시간 알림 상세한 개발 내역을 작성할려고 했으나, 여러 번의 디버그가 있었고 개발 단계에서 변경되는 점 또한 많았다. 때문에 완성된 캘린더를 기능 별로 정리하고, 개선점을 작성하려고 한다. (TimeLine에 작성해 봤으나 글이 한눈에 들어오지 않는다는 단점이 있어서 방법을 바꿨다.) 1. 실시간 알림 기능 실시간 알림기능은 Socket 네트워크를 통해 구현하였다. 기존에 알던 Http 방식은 Request와 Response가 1:1로 대응하지만, Socket의 경우 1:N으로 대응하도록 통신이 가능하다. HTML5 부터 Socket 기능이 표준화되어 Spring을 사용하지 않아도 구현이 가능하다. 때문에 이를 이용하여 간단하게 기능을 구현하였다. 1) Servlet package ServletCalendar; i..
11. TEAM 프로젝트: 캘린더 기능 구현 - TO DO List 상세한 개발 내역을 작성할려고 했으나, 여러 번의 디버그가 있었고 개발 단계에서 변경되는 점 또한 많았다. 때문에 완성된 캘린더를 기능 별로 정리하고, 개선점을 작성하려고 한다. (TimeLine에 작성해 봤으나 글이 한눈에 들어오지 않는다는 단점이 있어서 방법을 바꿨다.) 1. TO DO LIST TO DO LIST 에 필요한 기본 요소는 '중요도' 그리고 '완료 여부' 이다. 세부 정보 또한 있으나 완료된 상태와 중요도에 따라 데이터를 표현할 수 있어야 한다. 기본적으로 체크와 체크되지 않은 상태는 DB에서도 관리가 가능하도록 변경시 AJAX를 이용해 DB와 통신이 진행되어야 한다. 한번에 삭제는 현재 삭제해야할 (완료된) 상태의 데이터를 배열로 전달하여, 해당 넘버를 Delete 하면 된다. 2. ..
10. TEAM 프로젝트: 캘린더 기능 구현 - 그룹 (2) 상세한 개발 내역을 작성할려고 했으나, 여러 번의 디버그가 있었고 개발 단계에서 변경되는 점 또한 많았다. 때문에 완성된 캘린더를 기능 별로 정리하고, 개선점을 작성하려고 한다. (TimeLine에 작성해 봤으나 글이 한눈에 들어오지 않는다는 단점이 있어서 방법을 바꿨다.) 그룹 및 To Do List 에서의 기본 기능은 스케줄과 유사하다. 결국 프로그램은 DB에 어떻게 데이터를 넣고, 꺼내고, 보여주냐의 차이이기 때문에 각각의 기능은 사실상 레이아웃의 기능 차이나 유저 편의성의 적용 차이이다. 때문에 각각의 코드에 주석을 달기보다는 동일한 동작은 코드만 게시하는 방식으로 정리하려 한다. 1. Servlet 및 AJAX 1) 기본 설정 // Group 대한 XmlHttpRequest var XHRGrou..
9. TEAM 프로젝트: 캘린더 기능 구현 - 그룹 (1) 상세한 개발 내역을 작성할려고 했으나, 여러 번의 디버그가 있었고 개발 단계에서 변경되는 점 또한 많았다. 때문에 완성된 캘린더를 기능 별로 정리하고, 개선점을 작성하려고 한다. (TimeLine에 작성해 봤으나 글이 한눈에 들어오지 않는다는 단점이 있어서 방법을 바꿨다.) 1. 그룹 기능 구현 그룹에 관련된 전반적인 기능은 삭제 및 추가를 비롯하여 스케줄에 대한 권한 부여와 그룹 원을 삭제하는 기능이다. DB 또한 GroupData의 고유키를 기반으로 구조화된 상태이며, 수정자나 그룹원 삭제 또한 각각의 테이블을 기반으로 기능을 작동한다. 그룹 기능에 필요한 세부 기능은 다음과 같다. 그룹 추가, 수정, 삭제, 보기 기능 그룹 멤버(그룹에 속한 자신을 제외한)를 추방하는 기능 그룹 멤버가 그룹을 탈퇴하..
8. TEAM 프로젝트: 캘린더 기능 구현 - 스케줄 (2) 상세한 개발 내역을 작성할려고 했으나, 여러 번의 디버그가 있었고 개발 단계에서 변경되는 점 또한 많았다. 때문에 완성된 캘린더를 기능 별로 정리하고, 개선점을 작성하려고 한다. (TimeLine에 작성해 봤으나 글이 한눈에 들어오지 않는다는 단점이 있어서 방법을 바꿨다.) 1. 스케줄 추가 기능: 신청 양식 스케줄을 추가하기 위해서는 다양한 정보를 삽입해야한다. 때문에 별도의 폼을 구현하여 해당 정보를 가져오고, 전송할 수 있어야 한다. 일간 모양과의 호환을 위하여 날짜와 일에 대한 데이터를 수정할 수 있도록 했다. 셀렉트로 시간을 설정하면 해당 설정에 따라 설정 불가능한 시간을 안보이게 설정하고, '종일'을 누르면 종 00시~23시 45분까지 설정되게 만들었다. // 스케줄 Form에서 추가 버튼을 ..