상세 컨텐츠

본문 제목

[2회] 팀 회고

해커톤 프로젝트

by young1403 2022. 9. 7. 09:24

본문

2번째 팀 회고

이번주팀 회고도 여러가지 배운점이 많았다.

 

이번주는 현재 진행중인 프로젝트와 밀접하게 관련되어있는 템플릿엔진 thymeleaf에 대해 발표를 했다.

프로젝트가 프론트 없이 진행되고 있다보니 view쪽을 스스로 코드를 짜고 매칭시켜야 한다. 템플릿을 사서 기본 layout을 만들고 본인이 원하는 페이지를 가져다가 부분적으로 사용하고 있는데 값을 주고 받기위해 thymeleaf를 사용하고 있다. 그러다보니 자바코드보다 html코드를 더 많이 사용하게 된다.

 

발표의 첫번째 주제는 url링크 였다. id값이나 model에 주입하는 값들같은 경우 어디에서 어디로 이동하고 어떻게 사용하면 되는지에 대해 발표하였다.

 

두번째는 th:each를 사용한 화면에 반복출력. 게시물이나 댓글같은 경우 List를 통해 값을 넘겨주고 th:each를 사용해 값을 뽑았다.

 

그리고 그에 자율성을 더해줄 th:block.

 

자바스크립트 인라인의 장점

 

템플릿조각 , layout 사용법 등

크게 이렇게 다섯가지에 대해 발표하였다.

 

이 주제를 정하고 싶었던 이유 중 하나가 템플릿조각에 대한 이해가 많이 떨어진다는 느낌에서 였다.

우연의 일치인진 모르겠지만 이 발표 이후에 팀 프로젝트에 fragment형식으로 댓글형식의 파일만 따로 예를들면 post 밑단에

넘길수 없는가 였다. 생각만하면 될것 같아 팀장과 얘기하던중 '안될것 같다'는 회의적인 태도가 한두자 코드를 쳐보면서 '어 ? 될거같은데?'로 바뀌었고 아래와같이 코드를 줄일 수 있었다.

주석처리한 코드는 fragment를 붙인 파일을 따로 만들어 관리하게 하였다. (해당시점 댓글만 나오는 코드엿지만 현재는 좋아요 기능과 댓글 수정, 삭제기능까지 추가하여 코드가 더 길다)

 

이렇게 '댓글'이라는 부분을 따로 관리하면 코드의 재사용성 확장성을 높일 수 있다. 파일하나로 댓글이라는 form을 재사용 가능하며 

여러 형태의 게시글에 이 댓글 form을 가져다 쓸 수 있기 때문이다.

 

발표자료를 준비하고 스스로 발표를 해봄으로써 개념에 대한 이해가 더 심화됨을 느끼고 그 유의미한 결과가 바로 이렇게 결과물로 나온점에 있어서 굉장히 큰 뿌듯함을 느꼈다.

 

현재팀원과 9월까지 진행될 이 팀회고를 매회 가치있게 보내도록 노력해야겠다.


9/7 수정
1. fragment로 나눈 댓글을 통해 post뿐만 아니라 place 게시판쪽도 댓글을 확장하려 시도했다.
팀회고중에 나온 내용인데 이렇게되면 프로젝트 파일 내에서는 댓글이라는 fragment파일 하나로 관리하여 깔끔해 보이지만
db입장에서 봤을때는 Reply의 id값이 어떤거는 Place 어떤거는 Post쪽에 분별없이 생기기때문에 DB를 보면 어지러울 수 있다는 단점이 있다는 것이었다.

역할(place와 post라는)을 구분한 것처럼 그곳에 영속되는 Reply도 역할별로 따로 관리가 필요하다는 말이었다. fragement화 함으로써 확실히 코드의 재사용성은 높일 수가 있지만 역할에 따른 분리는 필요함을 생각하게 되었고 이번 팀에서 기능구현을 목표로한 기간이 지나면 ReplyPlace, ReplyPost 등으로 나누어서 크게 리팩토링을 한번 진행해야겠다.


2.git 협업방식에 큰 변화가 생겼다. 이전에 git-flow 방식이라고 올린 방식은 git-flow가 아니었다... develop브랜치에서 다같이 작업하고 commit과 update를 하는것이(feature을 쓸 예정이었지만 pr을 생략하려 했기때문에) git flow방식인 줄 알았다. (당시엔 update로 반영되는게 git flow인줄 알았다.)
초창기에 팀원끼리 pr올리고 그것을 리뷰하고 merge하는 방식의 단점이, 리뷰가 늦어지면 merge가 늦어지고, 리뷰가 달려도 merge를 안해버리면 develop브랜치에 반영이 늦어지기 때문에 번거롭게 느껴져 없앴었다. 하지만 프로젝트를 진행하면서 commit을 되돌아가고 clone을 뜨게되는 상황이 나 포함 팀원에게 연속해서 발생함으로써 문제점을 찾아보았고, 여기에서 협업방식에 문제가 있음을 알게되었다. 이 부분은 따로 글을 포스팅 할 예정이다.!

 

관련글 더보기

댓글 영역