-
2차 프로젝트: 서류 작업을 끝내고 드디어 작성 시작프로그래밍/프로젝트 2019. 5. 7. 23:59
링크: https://github.com/LuiGee3471/BitCampProject2nd
대략 금요일부터, 본격적으로는 토요일부터 2차 프로젝트 작업에 돌입했습니다. 그 전에 회의하던 것까지 하면 5월도 되기 전부터겠네요. 디자인은 에브리타임을 참고해서 대학이라는 아이템을 조금 변경시켜 학생 커뮤니티에서 교직원 커뮤니티로 만들기로 결정했습니다. 이전 기수들이 많이 참고한 사이트라서 이렇게 아이템이라도 변경한 것이 다행이라고 생각했습니다.
우선, 벤치마킹할 사이트를 잘 선택했다고 느끼는 점은 부트스트랩이 쓰이지 않은 사이트라는 점. 이상한(?) 고집 때문에 순수 CSS만 사용하기로 결정한 우리 조에게는 참고하기 딱 좋은 사이트 같습니다. 다행히 배우기 시작한 초반엔 그야말로 처참했지만 계속 연습하고 참고한 끝에 이제는 어느 정도 볼만한 CSS를 만들어가는 것 같습니다. 다만, 아직 JavaScript와 엮어서 동적인 디자인을 만드는 것은 조금 어렵네요. transition과 display: none 속성을 최대한 이용해봐야 겠습니다.
가장 많이 활용하는건 역시 border-radius. 이것만 넣어줘도 달라지는 느낌이다. 뒤의 사진은 어둡게 해주기 위한 전용 div 태그로 조금 어둡게 만들어줬다. 저번 프로젝트 때 문서의 아쉬움을 느껴 이번엔 힘 줘서 시간도 많이 들여가며 작성했는데 막상 설명을 별로 안적어놓다보니 오늘 작업을 하려고 해보니 이 함수는 뭐하러 만들자고 했지? 하면서 혼란에 빠져버렸습니다. 결국 빼버리자하고 30분 뒤에 필요하네하고 다시 만드는 상황이 발생해버렸습니다. 다이어그램을 완성하는데 집중하는 것이 아니라 다 정하면 그 결과를 다이어그램으로 만드는 것으로 갔어야 했는데 아쉽네요.
첫 ERD. 강의 부분 처음으로 그려본 ERD. Aquerytool(aquerytool.com)의 도움을 받아 작성했습니다. 웹으로 가볍게 실행 가능한 점, 직관적인 사용 덕분에 작성 자체는 생각보다 훨씬 쉽게 한 것 같네요. 정보처리기사 준비에 뭔지도 모르고 일단 외우고 본 정규화와 MySQL 사용을 위해 참고한 생활코딩 강의 덕분에 의외로 테이블 분리는 괜찮게 해놨었습니다. 이쪽은 종별(전공필수, 전공선택같은 분류입니다)을 분리하라는 조언만 받고 나머지는 처음 작성한 그대로 갈 수 있었습니다.
첫 ERD. 게시판 부분 이번 프로젝트의 핵심인 게시판입니다. 답글이 있는 계층형 게시판을 배웠지만 저희는 최근 트렌드에 맞춰 답글 대신 대댓글을 구현해보기로 했습니다. 게시판 종류를 테이블로 나눌 생각을 못해서 시나리오에 있는 게시판 2개를 일일이 테이블을 만들어줬다가 오늘 수업을 듣고 바로 적용해서 하나로 줄였습니다. 중복을 제거하는 방법을 배우는게 이 분야에선 항상 가장 기쁜 것 같아요.
사실 게시판이 DB로 구성된다는 것도 처음에는 엄청 신기했는데 생각해보니 그 많은 글이 담길 곳은 또 달리 어디 있겠나 싶었습니다. 쪽지 기능은 처음에는 어떻게 구현할지 몰라서 조원들이 얘기해도 좀 망설였는데 DB를 활용할 수 있다고 생각하니까 또 별 거 아니란 생각이 들더군요. 그래서 굉장히 단순한 테이블로 구현했습니다. 나중에는 내 쪽지를 확인할 수 있는 페이지가 만들어질 예정입니다.
MySQL을 사용하기로 선택한 것도 좋은 선택인 것 같습니다. 시퀀스 처리나 페이징 처리 때 오라클로는 좀 귀찮은 점이 있어보였는데 AUTO-INCREMENT와 LIMIT가 있으니 훨씬 편하게 처리가 가능해질 것 같습니다. Workbench도 SQL Developer보다 훨씬 쓰기 좋은 것 같고요. 좀더 여유가 있으면 다른 DB도 뭐가 좋길래 요새 쓰는지 배우고 새롭게 배우고 싶네요.
주말을 좀 사용했지만 미리 해놓으니 시작도 빨라서 좋았습니다. 다른 조는 이제야 문서 작업 중이었는데 프로젝트 자유 시간이 생기자마자 코딩에 돌입할 수 있어서 좋더군요. 막상 서류 작업할 때는 코딩이 훨씬 낫겠다 싶었는데 실제로 하려니까 또 하기 싫어지는 간사한 마음을 느꼈습니다.
1차 프로젝트 때 유용하게 사용한 java.time 클래스를 다시 활용할 수 있을 것 같습니다. input 태그가 주는 문자열 형태의 날짜를 어떻게 처리해야 할지 모르고 학원에서 나왔는데 오는 길에 보니 LocalDate나 LocalDateTime으로 굉장히 편하게 날짜 타입 객체로 변환하고 java.sql.Data로도 변환이 가능하더군요. 다음 프로젝트 때는 처음부터 Date나 Calendar 대신 이 java.time을 쓰는 것을 생각해야겠습니다.
막상 시작하니 생각처럼 MVC가 머리에서 따로 못놀아서 진도가 빠르게 나가지는 못했는데 빠르게 시작만 하고 막상 마무리가 뒤쳐지지 않도록 해야겠습니다.
'프로그래밍 > 프로젝트' 카테고리의 다른 글
2차 프로젝트 - 마무리 (0) 2019.05.19 2차 프로젝트 - 마무리 단계 (0) 2019.05.12 2차 프로젝트 - 혼란 속 완성은 되어가는가? (0) 2019.05.10 2차 프로젝트 : 마구 무너져가는 첫 계획 (0) 2019.05.09 1차 프로젝트 - Java로 만드는 프로그램 (0) 2019.05.06