세미프로젝트를 마치며…

hanahana·2022년 10월 3일
0
post-thumbnail

기획까지 한 달 여간의 세미프로젝트가 종료했다

프로젝트의 목표

🍜 우리가 만들려는 프로젝트는 편의점 재료를 이용해 간단하게 요리를 만들수있는 레시피 사이트였다.

우리조는 어디에서 레시피를 가져오는것이 아니라 직접찍은 사진을 이용해서 안의 컨텐츠까지 구성하였으니 좀 더 우리들이 직접 만들어나간 느낌이 들어서 만족감이 높았다.

세미프로젝트 일정

대략 이런 일정으로 진행되었다.

처음에는 보고서나 설계 부분을 최대한 빨리하고 프로젝트 구현을 한주라도 당기려고 게획했었는데…

📆 계획이 다 그렇듯 실제로는 그럴수가 없었다.

스프링강의와 동시에 진행되고 있어서 강의로 스프링을 배울때까지는 누가 먼저 구현을 하기에는 어려운 상황이었다.

결국 시간이 약간 부족했으나 막판에 강사님이 목요일 발표로 기한을 늘려주셨고 28일까지 완성해 29일 발표하는 스케줄로 완성할수 있었다.

기술 스텟


이외에도 부트스트랩과 섬머노트 에디터를 사용하여 개발하였고 주로 spring을 사용한 개발을 하였다.

프로젝트를 시작할 때는…

💬 우리 조는 모든걸 아주 공평하게 사다리타기로 결정했다.

조 이름도 팀장도 기능 고르기도….

이런 과정이 공평했으니까 큰 문제 없이 진행할수 있지 않았을까? 만약 사다리타기로 구성된 기능이 너무 많으면 다른 조원이 도와주기도 하면서 했으니까 우리 조의 팀워크는 원만하다고 할수 있겠다.

사실 이런 인간관계면에서 고민을 많이 했는데 정말로 너무 순탄하게 지나가서 세미프로젝트로 파이널의 인간관계 운을 다 써버린게 아닌가 걱정될 정도다.

기능 정하기

편의점 레시피 사이트라는 주제를 정하고 나니 나머지 기능을 정하는 것은 그렇게 어렵지 않았다

🍱 내가 맡은 기능은 레시피 기능 전반(레시피 등록, 레시피 수정, 레시피 삭제, 레시피 댓글)과 Q&A게시판(게시물 등록, 게시물 수정, 게시물 삭제, 비밀글 구현, 관리지만 댓글가능, 게시물 검색)이었다.

📋 어려웠던건 이 기능을 정하고 이걸 서류로 만드는 점이었다.

  • 다른 설계 다이어그램을 작성하는것도 어려웠지만 요구사항 정의서를 작성하는건 정말 어려웠다, 어떤식으로 해야할지 전혀 감이 잡히지 않았기때문이다.. 강사님의 피드백을 여러번 받고 겨우 이해해 무난하게 잘성할수 있었다. 하지만 정말로 이런 서류작업이 너무 어려웠다.

기능을 정할때 강사님이 이전 강의의 세미프로젝트를 보여주셨는데.. 우리 기능은 너무 적어보이는데?! 하는 느낌이 들어서 필요한 기능을 마구 추가했던 기억이 난다.

하지만 결론적으로 완성할수 있었으니 무리한 보람이 있지 않나! 하고 좋게 마무리 하고 싶다

구현에 따른 문제와 대응결과

추석이 지나고 부랴부랴 구현을 시작했다. 이때쯤부터 강의는 없었고 하루 종일 구현만했다.

하지만 무난하게 구현이 됐다면 세미프로젝트가 아니지 매일같이 이유없이 서버가 터져나갔다.
널포인트 입셉션 쿼리문 오류 시퀀스 없음 등등 이런 정말 별거 아닌 오류가 빵빵 터졌는데..

시간이 지날수록 이런 오류에 익숙해지고 대처에도 익숙해졌다. 대부분은 오타때문에 생긴문제였고 쿼리문에 문제가 있는 경우가 많았다. 하나씩 값을 찾아나가 어디에 오류가 있는지 확인하고 알맞은 대응을 할수있게 되었다. 오류에 대처하는 것 이것이 가장 큰 수확이 아니었을까

반응형 도전에 따른 어려움과 해결

부트스트랩을 활용한 반응형을 만드는 방법이 있다는걸 알고 정말 너무 반응형이 만들어보고싶었다.

강의도 듣고 따라 만들어도 보고 프론트엔드 일을 하고 있는 지인의 바짓가랑이를 잡고 도와달라고 징징거려보고 (이 분 덕분에 프론트 엔드를 구성하는 요령을 대충 알수 있었다, 정말 지금도 감사의 말을 남기고 싶다 사랑해요 고마워요 스페셜땡큐)

그렇게 부트스트랩에 익숙해지면서 부트스트랩이 어떤 구조로 크기에따른 반응형을 구성하는지 알수 있었다. 그러니까 포인트는 .row와 .d-숫자 .d-m-숫자 이것이었다. 이걸 이해하니 정렬이 원할하게 됐다.

  • 물론 이걸 이해했다고 쉽게 되진 않았다.. 왜냐면 난 html을 java를 활용한 jsp로 제작했으니까.. html이라면 당연히 있어야 할 뷰포트 메타테그가 빠져있었다… 왜 안되냐고 일주일을 넘게 징징거렸는데 그게 원인이었다니.. 뷰포트 메타태그가 없으면 반응형이 작동하질 않는다

이걸 찾아주신 팀장님 감사합니다. 안됐으면 속상해서 지금쯤 완성못했을지도

담당하는 기능의 구현.

기능 구현은 얼마나 앉아있을수 있느냐 이것의 싸움이 아니었을까.

난 기능구현을 시작한 그 날부터 10시 전에 집에 들어가 본적이 없다.(우리집은 학원에서 멀다, 내가 아마 같은 강의를 드는사람 중에 제일 멀것이다)

학원 자습은 9시가 최대니까 9시에 학원에 도착해서 9시까지 만들었다. 그냥 계속
가끔은 자습시간을 넘겨서도 있었다. 어쩔 수 없잖아 구현이 되질 않는데…

기능 구현을 하면서도 사진을 리스트로 넘기거나 서버가 터지거나 이런 자잘한 문제들이 계속 생겼지만

😇앉아서 계속하다보면 어떻게든 되더라 진짜로 어떻게든

  • 담당한 기능의 자세한 개발과정은 현재 시리즈에 날짜별로 정리되어있으니 궁금하신 분들은 참고 바란다

프로젝트를 하면서 어려웠던 점

돌아보니 어려웠던 점이 있었어? 싶기도 하다 팀원들과 소통도 잘됐고 구현기능도 잘 만들어졌고

무엇보다 사이트가 너무 예쁘게!! 예쁘게!!! 만들어져서 무척 만족했기 때문에 벌써 며칠전 일이 머릿속에서 아름답게 코팅되어 버린다.

📃 하지만 역시 어려웠던건 중간에 시험이 있었던게 아닐까,

화요일에 과제 재출까지 끼어있어서 주말에 기능을 구현하고 밤을 새서 제출 과제를 만들고 월요일은 6시까지는 기능구현을 하다가 9시까지는 시험공부를 하고 화요일은 6시까지 시험을 보고 다시 9시까지 구현을 하고… 이 스케쥴이 가장 힘들었다.
그래도 아까 말했듯 이런 고난은 정말 오래 앉아서 계속 하다보면 어떻게든 넘길수 있었다.. 하지만 다시하라고하면 싫다.. 정말… 시험공부는 너무 괴로워서.. 주말에 할게 많아서 공부를 할수 없다는것도 너무 괴로웠고

👩‍💻👨‍💻 이런경우 팀원간의 소통이 가장 문제가 클텐데

우리 팀은 큰 소통문제는 없었고 전원이 다 학원에 나오지 않았을때의 불편함 정도는 있었는데 그래도 줌이나 카톡으로 연락하면 곧바로 피드백이 돌아왔기때문에 큰 어려움은 없었던것 같다.
우리팀이 모두 모이지 않는 날이 있었음에도 불구하고 원할하게 진행됐던것도 서로의 연락에 즉각 반응하고 서로의 작업량이나 현재 상황을 체크해가하며 한 것이 가장 큰 이유였다고 생각한다. 그리고 중도 포기하거나 자신의 일을 떠넘기지 않고 오히려 다른사람의 업무가 많으면 서로 나눠주고 거리낌없이 어려울때 도움을 요청하고 요청을 받아주는 면에서 서로 협동이 매우 잘 됐다고 생각한다.

😿 마지막으로 정말 기술면에서 어려움을 느꼈던것은

아마 우리 조 전원이 같은 생각일 텐데 깃허브를 합치는 순간이었다.
왜 이렇게 오류가 빵빵 터지는지 자꾸 파일이 충돌나고 만들었던 기능이 사라지고 추가했던 코드가 없어지고.. 깃허브를 합칠때마다 너무 스트레스 받았다. 이래서 git이 필수 기능 중 하나구나 쉬운게 아니구나.. 하고 깨달았다. 혼자서 올릴땐 진짜 그냥 올릴뿐이잖아? 였는데 여러사람이 모이니까 다들 필요한 기능을 각자pom.xml에 추가하고 root-context가 다들 미묘하게 다르고.. 이런부근은 충돌하면 어떤게 맞는건지도 잘 모르겠고.. 여기에 강사님께 너무 신세를 많이져서 죄송한 마음이다..
특히 서버가 충돌될때는 나로서는 아무 방법이 없었어…….
그래도 몇번 진행하고 나니 충돌도 적어졌다 (초반의 충돌은 아무래도 너무 많이 진행된 상태에서 깃을 합쳤기때문에 모든 파일이 충될난것이라고 생각된다)
그리고 충돌에 어떻게 대비해야 되는지도 감이 잡혔다. 만약 충돌이 생겨 메소드나 코드가 겹칠때는 담당하는 팀원과 이야기하여 어떤부분이 맞는지 확인하고 다 합친 뒤 기능이 없어지거나 코드에 이상이 생기면 다 함께 사라진 코드를 찾거나 이상있는 부분을 해결해가면서 대응할수있었다. 이런 과정이 협업을 통해 크게 배울수있는 것중에 하나라고 생각한다.

🎁 힘들었지만 돌아보면 다 해결된 일이다 과거는 아마 아름답게 포장될 것이다.

세미프로젝트를 마치며…

🎈 여기까지 읽어주신 분이 계시다면 그래서 어떻게 완성됐는데? 하고 궁금해 하실텐데..

https://github.com/hana78786/pyeonstaurant
깃허브에서 확인할 수 있다

몇번 말했든 예쁘게 만들어진데다가 반응형도 성공해서 나는 매우 만족스럽다!

예쁜걸 중요하게 생각한 보람이 있었다.

🤲 다들 고생해준 덕분인지

학원 투표에서 우리조의 프로젝트가 1위를 달성할수 있었다

그래도 다른 팀 분들도 내가 생각하지도 못한 많은 기능을 사용하고 계셔서 감탄했다 나는 생각이 많이 부족했구나 더 할수도 있었는데 거기까지 나가지도 못했구나 하는 생각이 많이 들었다,
나는 순수하게 지금까지 배운것만을 사용했는데 다들 배운적없는 새로운 기술들을 많이 적용하시고.. 특히 summernote에디터를 활용해 그림파일을 첨부하는건 정말 대단하다는 생각이 들었다.. 다음엔 나도 꼭 한번 시도 해보고 싶다.
이렇게 잘하신 팀이 많은데 우리 팀이 1등이 됐다는 건 우리 팀의 단합의 힘이라고 생각한다 진짜로
고생해주신 우리 팀분들께 감사할 따름이다!

👨‍💻👩‍💻 정말로 좋은 팀원들 만나서

문제 없이 협업하여 사이트 자체에서 통일성이 느껴지는것도 마음에 들었고 다들 서로 도와가며 기능을 대부분 완성해서 거의 설계대로 완성된것도 너무 만족스럽다, 특히 반응형에 성공한 건 강사님 강의 중 처음이라고 하니 며칠동안은 뿌듯함에 젖어있어도 될듯하다

프로젝트를 하면서 중요하게 생각한 점..

최선을 다하고 열심히 하는것도 중요하지만 정말 밤을 새는건 효율이 너무 안좋다.

하루종일 앉아서 코딩 하는건 물론 힘들긴하지만 버틸만했다. 일주일에 3~4회쯤하는 운동을 구현기간동안 포기한것도 괜찮았다. 하루 7시간 못해도최소 6시간의 수면 타임을 맞추고 있었기 때문이다

하지만 딱 2번 밤을 새서 하루 4시간자고 온 날은 정말 견디기 힘들었다.

이런 날은 피곤하고 집중도 안돼서 구현이 잘 진행되지도 않았다. 만사가 귀찮기만하고…

⏰ 가능하면 자신의 컨디션을 챙겨가며 구현하자

그래야 도중에 지치지 않고 계속 해나갈수 있는것 같다.
다들 할때 열심히 하고 가능하면 밤을 새지 않는것을 추천한다!

profile
hello world

2개의 댓글

comment-user-thumbnail
2022년 10월 4일

하나님 글 잘 보고 갑니다! 세미프로젝트 같이 하면서 힘든 것도 많고, 처음 해보는 것도 많았지만 함께 할 수 있어서 영광이었습니다! 프로젝트 시작부터 끝까지 너무 고생 많으셨고 비록 다른 팀이 됐지만 파이널 프로젝트 결과물도 기대하겠습니다! :)

1개의 답글