이미지 - 스타터스 취업 부트캠프(STARTERS) 공식 블로그

1. 좋았던 점(Liked)

   이번주에는 미니 프로젝트를 진행했다. 본격적인 파이널 프로젝트에 들어가기 앞서 이제까지 배운 내용들을 적용해볼 수 있는 좋은 기회였다. 3일 동안 진행되는 간단한 미니 프로젝트였기 때문에 조는 가까운 자리에 앉은 사람들끼리 편성되었다. 운이 좋게도 리더십있는 팀장님과 열정적이고 적극적인 팀원들로 조가 짜여서 매우 수월하고 즐겁게 프로젝트를 진행할 수 있었다. 현실적으로 어렵겠지만.. 파이널 프로젝트도 이분들과 함께 하게 된다면 정말 즐겁게 할 수 있을 것 같다. 우리가 정한 프로젝트 주제는 ''간단한 개발자 질의응답 커뮤니티'였으며 서비스명은 '배.용.남(배워서 용기있게 남 주자)'이었다. 

배용남 메인화면
배용남 프로젝트 구조

  수업시간에 배운 내용과 예제들을 활용하여 우리 서비스에 맞게 DTO, DAO, Controller, Service, Filter 등을 구성하고 코드를 작성하여 서로 연결시켰다. DAO, DTO, Controller, Service는 테이블(User, Board, Comment) 별로 분리하였고 View단에서는 JSP와 JSTL, Bootstrap 라이브러리를 사용하여 화면을 만들었다. 프로젝트 규모가 크지 않고 기능들이 그렇게 많지 않았기 때문에, 화면별로 각자 역할을 분담했다. 

  혼자서 프로젝트를 세팅하고 구조를 설계하고 코드를 작성했다면, (나도 처음이기 때문에) 잘못 설계하고 잘못 작성하여 그것을 바로잡느라 상당한 시간이 걸렸을 것이다. 하지만 팀원들과 서로 의견을 나누고 조금 더 효과적인 방법이 무엇인지 고민해보는 시간이 있었기 때문에 비교적 수월하게 설계하고 코드를 작성할 수 있었다. 

2. 새롭게 배운점(Learned)

  실제로 Controller 로직을 구현하고 URL을 매핑하여 API를 만들다보니 한 가지 드는 의문이 있었다. GET으로 어떠한 URL을 호출할 때 특정 인자값을 전달할 경우, Query Parameter(board/detail?seq=23)로 줄 수도 있고 Path Variable(board/detail/23)로 줄 수도 있다. 수업 시간에는 강사님 코드를 따라치느라 바빠서 주의깊게 보지 못했던 부분이었는데 이번 미니 프로젝트 기회에 나름대로 다시 한 번 정리해보고 적용 방법을 익힐 수 있었다.

 

Query Parameter - Controller (@RequestParam 어노테이션 사용)

@GetMapping("/board/detail")
    public ModelAndView board(@RequestParam(value="seq", required=true) int seq, HttpSession session) {
        ModelAndView mv= new ModelAndView();
     
     	...
        
        return mv;
    }

Query Parameter - View(index.jsp)

<c:forEach items="${boardList }" var="board">
<tr onclick="location.href='board/detail?seq=${board.boardSeq}'" id="ajaxtr">

 

Path Variable - Controller (@PathVariable 어노테이션 사용)

@GetMapping("/board/updateboard/{seq}")
    public ModelAndView updateBoard(@PathVariable("seq") int seq) {
        ModelAndView mv = new ModelAndView();
        
        ...
        
        return mv;
    }

Path Variable - View(detail.jsp)

<button type="button" onclick="location.href='updateboard/${board.boardSeq}'">수정하기</button>

3. 부족했던 부분(Lacked) 

  아무리 구현해야 하는 기능이 적었다고 하지만, 현실적으로 3일을 온전히 로직 작성에 사용할 수는 없었다. 초기 개발 환경 세팅과 깃 컨벤션 설정 그리고 협업 과정에서 발생하는 여러 에러와 충돌을 해결하는데 시간을 상당히 소비했기 때문이다. 돌이켜보면 '클린 코드'와 'RESTful한 API 설계 규칙'(그런데 JSP만으로 뷰단을 구성하는데도 RESTful한 설계가 필요한가...?? 한번 알아봐야 겠다..)에 대한 고려를 많이 하지 못한 것 같다. 분명 여러 메서드 사이에 중복된 로직이 존재했고 이에 대해서 팀원들과 논의해보고 해결방법을 찾아보고 싶었지만 시간적으로 여유가 없었다. 그리고 API 설계 규칙에 대해서도 충분히 논의를 하지 못해 팀원별로 API가 약간씩 상이하게 설계되고 작성되었다는 사실을 마지막 날에야 뒤늦게 파악할 수 있었다. 

 

4. 앞으로 할 것(Longed for)

 이후에 (가능하면) 팀원분들과 프로젝트를 회고하는 시간을 가지면서, 잘했던 부분들과 부족했던 부분들에 대해 의견을 나눠보고 개선할 부분이 있으면 개선을 해보면 좋을 것 같다.

 

#. DDC`23 개발자 컨퍼런스 요약

  1. 이번주 토요일(23.01.28)에 삼성역 코엑스에서 열렸던 멋쟁이사자처럼 주관 개발자 컨퍼런스다. (약 800명 참석)
  2. '성장'과 '조직 문화' 등과 관련하여 현업 개발자들(무신사, 뱅크샐러드, 강남언니, AWS, 위니브, 마인딩, 토스)의  가치관과 경험을 들을 수 있는 기회였다.
  3. 개인적으로 발표 내용은 뱅크샐러드 개발자 분과 위니브 대표님이 가장 좋았다.
  4. 솔직히 발표 세션보다 마지막의 패널 토크 세션이 훨씬 재밌고 유익했다.(딱딱하지 않은 분위기에 개발자 분들의 속마음과 경험, 조언등이 더 잘 공유되었던 것 같다)
  5. (발표 내용과는 별개로) 강남언니 개발자 분이 발표를 가장 자연스럽고 프로페셔널하게 잘 하셨다.(진짜 부럽다...)
  6. AWS는 혹시나 했는데 역시나....였다. 기대한 내가 바보
  7. 원래 안 갈까 고민했는데, 안 갔으면 정말 후회할 뻔 했다.
  8. 이런 기회들이 또 있으면 주변 사람들과 적극적으로 공유해서 더 많은 사람들과 함께 가고 싶다.
  9. 사실 이날의 메인 일정은 '고수가 잔뜩 올라간 멕시칸 타코 먹기'였다. ("비야게레로")
  10. 타코맛은 말할 것도 없고, 같이 간 일행분들이 만족해하셔서 너무 행복했다. 

* 유데미 바로가기 : https://bit.ly/3V220ri

* STARTERS 취업 부트캠프 공식 블로그 보러가기 : https://blog.naver.com/udemy-wjtb

본 후기는 유데미-웅진씽크빅 취업 부트캠프 3기 백엔드 과정 학습 일지 리뷰로 작성되었습니다.

+ Recent posts