어느덧 국비학원이 7주짜리 최종 프로젝트만을 남겨두고 있습니다.
그동안 글을 쓸까말까 고민을 했는데 중간에 미니프로젝트 일정이 있어 정신이 없기도 했고 배운걸 공부하기도 벅차 한템포가 끝나면 쓰기로 마음먹고 이제서야 씁니다.
그동안 자바 > MySQL > html, css, js > JSP > SPRING 순으로 커리큘럼이 진행됐습니다.
생각보다 엄청 빡빡한 일정이었고 스프링을 들어갔을때 세팅이 안된 학우분들이 많이 있어서 선생님께서 에러를 잡아주는 사이 잘됐다싶어 복습을 주로 했습니다.
그리고는 한 3일 정도? 스프링을 배우자마자 바로 미니 프로젝트가 진행되었습니다.
다섯명이서 한 조였는데 이 와중에 한 분께서 과정포기를 하는 바람에 사실상 프로젝트는 날라갈 위기에 처했습니다.
그래서 일단은 팀원끼리 합의하에 '어짜피 다 구현 못하니 공부한 내용을 복습하는데 초점을 맞추자'가 되었습니다.
- 스프링에서는 DL과 DI를 어떻게 이용하는지
- IoC컨테이너는 어떤 과정으로 request하고 response하는지
- MVC 구조를 파악하는 것과 하루전에 배운 SpringJDBC를 DAO에 적용하기 등...
스프링을 짧게 배우긴 했지만 자바를 열심히 공부해서 그런지 이해가 아주 어렵지는 않았습니다.
공부를 하며 손에 전혀 잡히지 않던 프로젝트 과정이 차차 감이 잡히게 되었습니다.
JSP에서 request영역이나 session 영역으로 DTO를 받아와서 처리하는 방법이라던가
컨트롤러 > 서비스 > DAO > DTO 순으로 유기적으로 연결되는 부분이라던가...
굉장히 짧은 시기였기 때문에 구현하면서 상당히 고통스러웠지만 그래도 재밌다는 생각을 했습니다.
아래는 프로젝트 진행한 과정과 느낀 것들입니다.
읽기를 생략하셔도 됩니다.
팀 주제는 중고거래 사이트(당x) 만들기였습니다.
하필 도망가신(?) 분이 로그인 영역을 맡으셨는데,
다행히 팀장이 개발 고수(?)였기에 로그인 영역을 급하게 구현해 주었습니다.
제가 맡은 부분은 상품등록/수정/삭제 였는데 간단한 등록/수정/삭제는 어렵지 않았지만
프로젝트 주제 상 썸네일이 대문짝만하게 나오는 사이트여서 사진 업로드 처리가 중요하다 생각했습니다.
그래서 이 부분에 욕심을 내서 AJAX로 비동기 처리, 사진 확장자만 받아오는 예외처리, uuid로 폴더에 저장, 날짜별로 폴더에 저장, 파일 올릴때 썸네일 보이게 하기...... 등등의 기능을 구현을 했...하고 싶었습니다.
하지만 AJAX를 아직 배우지도, 다뤄보지 않았기 때문에 계속 막히고 또 참고한 소스가 HttpHeader를 쓰는 부분이라 잘 이해가 가지 않았습니다.
미니프로젝트 였기 때문에 개발이 가능한 일정은 하루정도였고...
다음날이 ppt 발표날이었기 때문에 어쩔수없이 타협을 해야 했습니다.
더욱이 끔찍헀던 것은 수정과 삭제 기능은 아직 만들지도 않은 상태였다는 것입니다.
그래서 우선 당장 할 수있는 것들 위주로 구현을 하기로 했습니다.
js로 썸네일을 보여주는 것과 사진 갯수 예외 알럿처리를 하고,
백엔드 쪽에선 uuid 추가, WEB-INF에 사진저장 및 상품등록 시 같이 처리되도록 기능을 추가하였습니다.
이렇게 만들고 나니 딱 발표날 정각이었습니다.
수정과 삭제는 등록페이지에서 가져와서 뿌려주면 되겠다하고 간단하게 생각했지만
이 역시 여러 부분에서 에러를 마주치곤 했습니다.
그래도 전전날 배운 SpringJDBC에 대한 공부가 된다고 생각하여 밤을 새며 씨름하며 구현했습니다.
새벽 여섯시반쯤이 되어서 수정과 삭제가 완성이 되었고, 두시간 정도 쪽잠을 잤다가 일어난 뒤 제가 발표자였기 때문에 PPT준비를 했습니다.
모든 부분이 구현된 것이 아니었기 때문에 디스코드로 팀원들과 모여 실제 발표하듯이 프리뷰를 했습니다.
설명이 부족한 부분이나 각자가 개발한 부분 중 강조할 부분들을 팀원들에게 피드백을 받고 수정하여 발표를 진행했습니다.
여러 직장을 다녔지만 앞에 나와서 PPT를 발표한 경험은 잘 없었기 때문에 생각보다 떨렸고,
빠진내용은 없게 말했지만 스스로의 스피킹 능력이 아쉬워 연습을 좀 더 해야겠다고 생각했습니다.
그래도 완벽하진 않지만 회원가입/로그인/상품/목록 등을 잘 시연했고 고생한만큼은 보여줘서 뿌듯했습니다.
프로젝트를 하면서 발목을 붙잡는 것은 의외로 JS부분이었습니다.
웹 개발자 채용할 때 왜 node.js를 잘하는 사람을 선호하는지 알겠더군요.
디자인적으로 이쁘게는 못하더라도, JS도 많이 공부해서 원활하게 다루어야 한다고 느꼈습니다.
미니프로젝트 전까지 진도가 빠른 날은 하루에 책 600페이지를 하루에 나간적도 있습니다.
어느정도 속도가 붙으니 이해하는데는 무리가 없었지만 적용하고 수월하게 쓸수 있냐 물으면 또 그렇지는 않은 것 같습니다. 이게 왜 안되고/되고를 파악하고 또 찾아서 쓰고, api 확인해서 사용하는 정도까지는 되는것 같아요.
그래서 적어도 국비를 듣기 전에 자바를 한 번 전부 공부하고 오는 것은 무조건 필요하다고 생각합니다.
제가 듣는 수업이 실제로 4.5개월 정도밖에 안되는 과정이라 더 그런걸수도 있지만요.
파이널 프로젝트를 준비하면서는 스프링 api에 대한 많은 이해와 java에서 사용하지 못한 람다나 enum등을 구현해서 만들어보고 싶네요.
더불어 이제 슬슬 코테도 준비합니다. 실버탈출 하고싶어요.
'성장기록 > 국비학원' 카테고리의 다른 글
국비학원 웹서비스 백엔드 과정 한달 차 (1) | 2023.03.21 |
---|---|
국비학원 웹서비스 백엔드 과정 일주일 차 (0) | 2023.02.24 |
남에게 설명할 때 비로소 자신의 지식이 된다.
포스팅이 도움되셨다면 하트❤️ 또는 구독👍🏻 부탁드립니다!! 잘못된 정보가 있다면 댓글로 알려주세요.