25주차가 되었습니다. 곧 학습 과정도 끝나며 이후에 무엇을 할 지가 고민인 시기입니다.
저는 요즘 취업 준비를 하면서 이력서도 업데이트도 하고 깃허브도 꾸미면서 어떤 개발자 혹은 엔지니어가 되고자 하는 지를 생각하는 것 같습니다. 또한 직무에 대한 고민도 하면서 여러 직군과 IT관련 산업을 알아보고 있습니다. 좋은 결과를 기대하며 노력해야할 것 같습니다.
이번 주는 주로 백엔드 개발(Spring boot)과 화면(html, css,..)을 만드는데 집중했습니다. 과정에서 어떤 식으로 화면에 보여줄 것이며 이에 따른 필요한 것에 대해 회의를 진행하면서 개발을 했고, 중간에 오류 혹은 부족한 부분을 얘기하면서 다른 팀원들과 협업을 이어 나갔습니다.
과거에 공연했던 뮤지컬 리스트
를 가져오고따라서,
부족한 데이터 수를 대비해 태그를 선택할 때마다 작품 리스트 선정
-> 원하는 작품이 없을 시
-> 다음 태그 값 선택 후
-> 다시 작품 리스트 출력하는 구조
로 개발을 진행했습니다.
AWS EC2
에 Dockerfile
을 통해 배포까지 완료했습니다.branch
를 합친 후 새 branch
를 만들어 코드 fragmentation
을 진행했습니다.html
파일 에서 반복적으로 사용되었던 div class
요소들을 fragment
폴더 안에 common_.html
에 정의한 후th:if
을 통해 한 html
파일에서 T/F 결과에 따라 화면이 바뀔 수 있게 간소화하였습니다.추가 개인 학습 내용
✅ 스프링 부트 MVC 패턴 이미지
MVC 패턴에서 Client <-> Controller
의 데이터 주고 받는 관계에서 DTO
객체가 사용되어야 합니다.
✅이미지 에서 확인할 수 있듯이 이는 Domain
과 DTO
를 분리하는 과정이라고 볼 수 있습니다.
이것은 "어플리케이에 같은 영향을 미치는 코드끼리 분리한다" 라는 이념에서 발생했으며,
DTO
와 비즈니스 로직을 담은 Domain
이 서로 겹치게 된다면
- 이전에는 '이렇게 해야지 된다' 라고만 알고 있는 내용이었습니다. '왜?' 라는 질문은 생략한 채 그대로 받아들여 사용해왔는데 이번 기회에
왜 -> 대답
을 얻고자 공부를 했으며 앞으로 학습하는데 좋은 자세가 될 수 있다고 생각하기 때문에 만족스러웠습니다.
처음 Tag 값들을 어떻게 하나 씩 처리해야하는 지에 대해 고민이 많았습니다. 첫 구상은 화면에서 Tag 11개 값 중 3개를 선택하면 이를 통해 백엔드에서 Query 문을 통해 데이터를 가져올 생각이었지만 Tag1, Tag2, Tag3 로 컬럼이 나뉘어 있어 해당 방안이 불가능 했습니다.
그래도 회의를 통해 각 Tag 값을 순서대로 하나씩 선택하고 이를 Tag1, Tag2, Tag3로 하여 데이터를 가져올 수 있었습니다.
화면에서도 선택한 값에 해당되는 버튼을 사라지게 하여 중복된 값을 선택하는 것도 피할 수 있었습니다.
처음 배포를 진행하려고 할 때, 각 웹 페이지들, resources
파일들을 불러오지 못해 500에러가 나서 배포하는데 어려움을 겪었습니다.
✅이미지 1 과 같이 구현되어 있어 Controller
에서 ✅이미지 2와 같이 불렀는데, 알고 보니 처음에 작성한 '/' 인해 jar 파일에서 해당 path를 찾지 못한 것 이었고, ✅이미지3 과 같이 수정한 후에 다시 도커 테스트를 하니 잘되어 문제를 해결할 수 있었습니다.
application.propertices
파일에서 prefix를 다음과 같이 설정했는데 : spring.thymeleaf.prefix=classpath:/templates/
.jar
로 실행시 Controller
에서 "/basic/past;"
를 //
로 해석하여(//basic/past
와 같이) 경로 문제로 오류가 났던 것 이었습니다. 로컬에서 정상적으로 작동했던 이유는, IDE가 자동으로 처리해줘서 그런거였습니다.
✅ 이미지1
✅ 이미지2
✅ 이미지3
/ml/{id}
를 통해 ML 서버와 소통해 "현재 공연 중인 뮤지컬 작품 리스트"
를 받아올 수 있었으나,Entity
객체로 전달되어 웹 페이지에서 해당 데이터를 표현하는데 문제가 발생.-> DTO
로 변환해서 데이터 전달하는 방식을 해볼 예정이며, DTO 객체에 대해 알아볼 것 입니다.
뮤지컬 추천 페이지(결과 페이지) 작성
전체 코드 refactoring
팀 프로젝트를 계속 이어나가면서 배우는 점들이 많았고, 이전에 몰랐던 내용들이나 새로운 경험들을 다양하게 할 수 있어 좋았습니다. 앞으로 최종 완성본을 위해 끝까지 열심히 참여하겠습니다.