All of My Records

[국비 지원 개발자 양성 과정] 4th 스프링 프로젝트 후기 및 회고

by 캐떠린

비전공자가 자바 기반 풀스택 개발자 양성 과정 국비 지원 수업을 들으며 작성했던 네번째 프로젝트(Spring 프로젝트)에 대한 후기 및 회고입니다.

 

📝 개발 후기

프로젝트 후기

Final Project로 스프링 프로젝트를 진행하며 그동안의 교육 과정에서 배웠던 모든 내용을 결과물로 만들 수 있어서 유의미한 경험이었다. 공부했던 기술들을 모두 사용해서 결과를 도출해 냈기 때문에 가장 재미있게 작업에 임했다.

또한 이번에는 새로운 주제로 프로젝트를 제작하는 것이 아니라, 바로 이전에 진행했던 Servlet/JSP 프로젝트에서 만든 결과물의 부족한 부분을 업그레이드하는 형식으로 진행되었기에 이전 프로젝트의 아쉬움을 달래며 조금 더 완성도 있는 결과물을 만들게 된 좋은 기회였다.

Spring MVC Pattern을 기반으로 Controller - Service - Dao - Dao Implement - Mapper의 계층 구조를 적용했는데 이를 위해 프로젝트 초반 패키지 구조를 수정할 때는 이 과정 자체가 왜 필요한가에 대한 의문으로 이해도 적용도 쉽진 않았다. 하지만 작업을 하며 실질적인 비즈니스 로직을 Service 클래스에서 작성하고 Controller에서는 정말 컨트롤의 역할을 하다 보니 유지 보수에 용이함과 메서드가 직관적이라는 장점을 깨달을 수 있었다. 이런 과정을 통해 결과적으로 이전 버전보다 더 나은 결과물을 만들었고, AWS를 사용해 배포를 진행하며 정말로 웹사이트 하나를 만들었다는 뿌듯함을 크게 느낄 수 있었다.

팀원으로서의 후기

이전 Servlet 프로젝트의 팀원들과 함께 버전 업 프로젝트로 스프링 프로젝트를 진행하며 팀원 간의 교류가 더 끈끈해져서 원활한 협업 작업을 할 수 있었다. 인원을 나누어 일부는 스프링 시큐리티를 담당하고 일부는 템플릿 제작 및 개발로 분담하여 일이 진행되어 빠른 속도로 진행될 수 있었다. 또한 이전 프로젝트에서 git을 사용하여 협업한 경험 덕에 이번에는 git 사용 중에도 큰 트러블 없이 진행될 수 있었다.

개발자 후기

이전 버전의 웹 페이지를 더 나은 버전으로 바꾸기 위해 '어떻게 구현할까?', '어떤 방식으로 접근할까?'라는 질문을 수도 없이 하며 그리고 결국엔 구현하는 과정을 통해 생각하는 힘과 구현하는 힘을 기를 수 있었다. 

특히 지난 프로젝트 때 첨부 파일이 추가된 게시글의 첨부 파일 수정 및 삭제에 대한 기능을 구현하고 싶었으나 능력의 한계와 시간 부족에 부딪혀 구현하지 못해 매우 아쉬움이 남았었다. 그러나 이번 프로젝트 때 꼭 해당 문제를 해결하고 싶었고 학원을 오고 가는 지하철 안에서 열심히 경우의 수를 생각하며 마침내 해당 로직을 완성할 수 있었다. 지난번에 하지 못했던 것을 집착으로 해냈다는 것이 개인적으로 너무너무 뿌듯한 성과였고 '이런 과정을 통해 내가 조금씩 성장했구나' 하고 돌아보게 되었다.

이번 프로젝트에서 Spring Security, Web Socket 파트는 담당 파트가 아니라 직접 구현해 보지 못해서 아쉬움이 남아 개인적으로 구현해 볼 예정이며, Elasticsearch의 사용에도 아쉬움이 남아 추후 개인 프로젝트를 진행하며 제대로 경험할 예정이다.

KPT 회고

KEEP

1. RESTful API 사용
2. 활발하게 git을 사용하여 커밋을 관리하는 협업 방식
3. 회원/관리자별 페이지를 구분한 구현 방식

PROBLEM

1. Servlet/JSP 프로젝트의 버전 업 프로젝트이나, 웹페이지 내 구현한 기능은 거의 동일하게 유지되었다는 것
2. Elasticsearch의 장점을 활용할 수 있는 검색 기능이 아니라 일반적인 검색 기능에 Elasticsearch를 사용한 것

TRY

1. P2 → Elasticsearch의 형태소 분석을 적극적으로 사용하는 검색 기능 구현
2. 액티비티의 상세 페이지 구성 개선(비교적 허전해보여서 조금 더 알차게 구성)
3. 페이지별로 노출되는 이미지의 크기가 상이 → 이에 따른 페이지별 이미지 처리

 

 

 

+ 뽀너스

Controller - Service - DAO - DAO Implement - Mapper 계층 구조 적용 시 헷갈려서 다음날 쌤한테 여쭤보려고 적어놨던 부분..ㅎ

위 사진은 Controller.class 파일인데 위 과정처럼 DTO에 LIST를 담는 과정 정도는 컨트롤러에서 진행해도 된다고 하셨다^^

이정도로 처음엔 각 클래스의 역할을 어떻게 구분해야하나 무지 헷갈렸었다 ㅎ_ㅎ

블로그의 정보

All of My Records

캐떠린

활동하기