-
Notifications
You must be signed in to change notification settings - Fork 74
[team-14][BE] To-do list 그룹 프로젝트 1주차(수) PR #11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Phil, 산토리 안녕하세요~ 리뷰어 프레디 입니다!
프로젝트 세팅단계라 크게 고칠 부분은 없지만, 여유가 된다면 리뷰 드린 부분들도 살펴보시면 더 좋을 것 같아요 ㅎㅎ
혹시 너무 고민되는 부분이 있으면 따로 dm을 주셔도 좋고 pr을 올려주셔도 좋습니다.
API 문서를 스웨거로 만든 것은 좋습니다. 아직 배포가 되어있지 않고 스웨거는 대부분 사용법을 알테지만, 그래도 사진 뿐만 아니라 어떻게 볼 수 있는지 방법을 pr 메세지 혹은 README 같은 곳에 적어주시면 더 좋았을 것 같습니다.
질문 답변 드리겠습니다
1-1. 가능한 enum을 사용하면 좋습니다. 경우에 따라 프로퍼티로 관리하는게 더 좋을 수도 있지만, db에서 enum으로 관리할 수 있을 정도로 static한 값이면 enum이 찰떡입니다.
다양한 장점이 있지만, 제가 생각할 때 가장 큰 장점은 어떤 값들을 사용하는지 소스레벨에서 파악할 수 있고, IDE와 컴파일러의 도움을 받을 수 있다는 점입니다. 그리고 enum도 클래스이기 때문에 다양하게 활용할 수 있습니다.
혹시 제가 말한 장점들이 잘 와닿지 않는다면 enum에 대해 학습을 다시 한 번 해보시길 바랍니다!
1-2 . 이건 경우에 따라 다를텐데요, Java 코드에서만 enum을 사용할 경우와 Java 코드와 DB모두 enum으로 관리할 경우의 장단점을 좀 더 고민해보시거나 찾아보시면 좋을 것 같아요.
2-1. 맞습니다. 모든 데이터를 다 수정하게된다면 로우가 많아질수록 속도가 느려지겠죠 👍 order_index 만으로도 해결법을 찾을 수 있을 것 같은데, 좀 더 고민해보시면 좋을 것 같습니다.
링크드리스트를 사용하는 것도 해결책이 될 수 있을건데, order_index만을 사용하는 방법과 비교해보시며 장단점을 파악해보시면 좋을 것 같네요!
2-2. 테이블을 링크드리스트처럼 동작할 수 있게 설계하시면 될 것 같네요
@@ -0,0 +1,27 @@ | |||
--- |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 이슈 템플릿을 만드셨군요 ㅋㅋ 좋습니다
여유가 된다면 pr이나 commit 템플릿도 만들 수 있으니 살펴보시는 것도 좋겠네요 👍👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
오..!! 저만의 템플릿도 한번 고민해서 프로젝트에 요긴하게 써보겠습니다 ㅎㅎㅎ
id 'java' | ||
} | ||
|
||
group = 'com.example' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이번 프로젝트는 이미 만들었으니 그냥 진행하시되, 다음 부터는 의미 있는 이름으로 해주시면 더 좋을 것 같아요~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
프로젝트 만들때 신경을 미처 못썼네요!! 리뷰 감사합니다 👍
import springfox.documentation.spring.web.plugins.Docket; | ||
|
||
@Configuration | ||
@EnableWebMvc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
스웨거 설정이 잘 안 돼서 사용하셨을 것 같은데 맞나요? ㅎㅎ
어떤 역할을 하는지 어떤 주의사항이 있는지 살펴보시기 바랍니다
그리고 다른 해결 방법도 있을건데, 이건 여유되시면 찾아보시면 좋을 것 같습니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵!! Swagger에 대해서는 더 공부해보겠습니다 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵!! Swagger에 대해서는 더 공부해보겠습니다 👍
Swagger 보다는 @EnableWebMvc
에 대해 알아보시면 좋을 것 같습니다. 어떨 때 사용하는 어노테이션이고, 어떤 역할을 하는지 알아보시면 스프링과 스프링 부트의 차이에 대해서도 생각해보실 수 있을 것 같아요!
private Long id; | ||
private String title; | ||
private String content; | ||
private String authorSystem; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
질문입니다 😀
변수명만 봐서는 감이 잘 안오는데 어디에 사용되는건가요??
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
각 카드별로 작성된 환경(authored by iOS/web)을 표시해주는 부분이 기획서에 들어있어서 그 정보를 저장하는 column입니다
@@ -0,0 +1,20 @@ | |||
package com.example.backend.domain; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dto 패키지에 들어가야 할 것 같은데 잘못 넣으신거죠??
만약 아니라면 각 계층의 역할에 대해 다시 한 번 생각해보시면 좋을 것 같습니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
역할 상 dto가 맞는 것 같네요!! 감사합니다 :)
@@ -0,0 +1,25 @@ | |||
package com.example.backend.web.dto; | |||
|
|||
public class CardListResponseDto { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
응답과 요청 DTO를 각각 만들어주셨네요 👍
spring: | ||
datasource: | ||
driver-class-name: org.h2.Driver | ||
url: jdbc:h2:tcp://localhost/~/todo |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
임시로 h2를 사용하는 것은 괜찮은데, 인메모리로 하지 않은 이유가 있나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
별 고민없이 서버 모드가 익숙해서 쓰게 되었습니다 ㅎㅎ 인메모리도 한번 사용해보겠습니다!
id int AUTO_INCREMENT PRIMARY KEY, | ||
title varchar(50) NOT NULL, | ||
content varchar(500), | ||
author_system varchar(20) NOT NULL, | ||
status ENUM('to_do', 'in_progress', 'done'), | ||
deleted tinyint(1) DEFAULT 0, | ||
order_index int NOT NULL |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이런 부분도 인덴트가 잘 나눠져있으면 가독성이 훨씬 좋아질겁니다. 예시는 참고만 해주세요~
id int AUTO_INCREMENT PRIMARY KEY, | |
title varchar(50) NOT NULL, | |
content varchar(500), | |
author_system varchar(20) NOT NULL, | |
status ENUM('to_do', 'in_progress', 'done'), | |
deleted tinyint(1) DEFAULT 0, | |
order_index int NOT NULL | |
id int AUTO_INCREMENT PRIMARY KEY, | |
title varchar(50) NOT NULL, | |
content varchar(500), | |
author_system varchar(20) NOT NULL, | |
status ENUM('to_do', 'in_progress', 'done'), | |
deleted tinyint(1) DEFAULT 0, | |
order_index int NOT NULL |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
가독성 개선 팁 감사합니다 👍
INSERT INTO CARD (title, content, author_system, status, order_index) VALUES ( | ||
'테스트 글 제목1', '테스트 내용', 'iOS', 'to_do', (SELECT count(*) FROM CARD WHERE status = 'to_do') | ||
); | ||
INSERT INTO CARD (title, content, author_system, status, order_index) VALUES ( | ||
'테스트 글 제목2', '테스트 내용', 'iOS', 'in_progress', (SELECT count(*) FROM CARD WHERE status = 'in_progress') | ||
); | ||
INSERT INTO CARD (title, content, author_system, status, order_index) VALUES ( | ||
'테스트 글 제목3', '테스트 내용', 'iOS', 'to_do', (SELECT count(*) FROM CARD WHERE status = 'to_do') | ||
); | ||
INSERT INTO CARD (title, content, author_system, status, order_index) VALUES ( | ||
'테스트 글 제목4', '테스트 내용', 'iOS', 'to_do', (SELECT count(*) FROM CARD WHERE status = 'to_do') | ||
); | ||
INSERT INTO CARD (title, content, author_system, status, order_index) VALUES ( | ||
'테스트 글 제목5', '테스트 내용', 'iOS', 'done', (SELECT count(*) FROM CARD WHERE status = 'done') | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
꼭 여러번에 걸쳐서 해야하는 걸까요? 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
저희도 이 부분 작성하면서 고민했는데 개선할 방법이 있는지 공부해보겠습니다 ㅎㅎㅎ
* Chore: 개발환경 추가 - module css-loader sass-loader - plugin MiniCssExtractPlugin HtmlWebpackPlugin devServer 속성 * Docs: ignore dist, style.css.map Style: ignored 된 파일 삭제 Docs: ignore dist * Style: 파일 이름 수정 * Chore: devtool 변경
* Update issue templates * docs: Update Readme Readme 1차 업데이트 * docs: Update Readme 기술 스택 추가 * Design: reset scss 적용 * HTML, CSS 작업 - Header, Sidebar (#11) * design: header HTML markup Related to: #8 * design: header css style Related to: #8 * design: sidebar HTML markup Related to: #8 * design: sidebar css style Related to: #8 * 메뉴 - 우측 히든 레이어 생성, 애니메이션 구현 (#12) * feat: sidebar 메뉴 버튼 사이드바 메뉴 버튼 클릭시 사이드바 숨김,보임 기능 구현 Related to: #10 * design: sidebar 애니메이션 왼쪽방향으로 나타나고 오른쪽 방향으로 숨겨지는 애니메이션 구현 Related to: #10 * 메뉴 - 우측 히든 레이어 생성, 애니메이션 구현 (#13) * feat: sidebar 메뉴 버튼 사이드바 메뉴 버튼 클릭시 사이드바 숨김,보임 기능 구현 Related to: #10 * design: sidebar 애니메이션 왼쪽방향으로 나타나고 오른쪽 방향으로 숨겨지는 애니메이션 구현 Related to: #10 * feat: action분리 action에 따라 sidebar 리스트의 comment를 다르게 출력함 Related to: #10 * feat: timestamp 기능 구현 현재 시간을 기준으로 투두리스트 작성 및 변경 시간을 보여주는 timestamp 구현 Related to: #10 * feat: 을/를, 으로/로 구분 단어의 마지막 글자 종성에 따라 모음을 다르게 렌더하는 기능 구현 Related to: #10 * HTML, CSS 작업 - Card List (#14) * design: main column list html markup Related to : #9 * move: svg file move to public/svg * 기존 public 에 있던 svg 파일을 svg 폴더 내로 이동 * icon-add.svg 파일 추가 Related to : #9 * Design: font mixin 함수 추가 Related to : #9 * design: column list scss style 작성 Related to: #9 * design: column task list scss style 작성 Related to: #9 * design: task commnet padding 을 margin 으로 변경 Related to: #9 * design: sccs convert to css Related to: #9 * fix: icon svg 파일 경로 수정 Related to: #9 * chore: 빌드환경구성 (#16) babel, webpack 적용 Related to: #15 * 메뉴 - 사용자 액션 리스트 구현 (#19) * feat: sidebar 액션 리스트 히든레이어 영역을 애니메이션 효과와 함께 숨김,보임 기능 구현 Related to: #17 * design: sidebar 액션리스트 애니메이션 Related to: #17 * move: package.json, gitignore * feat: sidebar 스크롤 기능 구현 액션리스트 기록이 많아지면 스크롤을 이용하여 다음 기록을 확인할 수 있음 Related to: #17 * design: 액션리스트 스크롤 구현 Related to: #17 * feature: json server 생성 및 db.json 추가 (#21) * json server 설치하고 db.json 에 필요한 데이터들을 추가함 Related to: #18 * HTML, CSS 작업 - Card (#22) * feat: todo-list 입력창 높이 자동 조절 todo-list를 입력하거나 지울 때 입력창의 높이를 자동으로 조절하는 기능 구현 Related to: #20 * design: column button hover color 칼럼 타이틀의 +,x 버튼을 hover할 때 버튼 색상 변경 Related to: #20 * design: 수정카드 디자인 구현 Related to: #20 * 리팩토링 - 1주차 리뷰 반영 (#24) * refactor: getFinalConsonant 매직넘버 제거 Related to: #23 * refactor: calcTimeForToday 함수 리팩토링 * 매직 넘버 제거 * DayDifference 식 수정 * 몇 년전 조건 추가 Related to: #23 * refactor: writeTime -> timeStamp Related to: #23 * refactor: identifyCategory 함수 리팩토링 * 구조 분해 할당 적용 Related to: #23 * refactor: svg 파일 경로 변수로 분리 * svg 파일 경로를 constants의 imagePath에 변수로 생성해서 관리하도록 변경 Related to: #23 * feat: fetchData 함수 구현 Related to: #23 * chore: bundle.js Related to: #23 * refactor: sidebar model 리팩토링 Related to: #23 * refactor: activationStore import 방식 변경 Related to: #23 Co-authored-by: Hemdi <[email protected]> Co-authored-by: Hemudi <[email protected]>
[Android] 스타크 - ToolBar 구현 및 DataBinding 설정
* [COMMON] 개발환경 설정 및 마크업 (#6) * chore: Delete unnecessary prettier setting * refactor: Modify the project structure * refactor: Separate the server.js file * fix: Add action when request comes in * feat: Create action contents upon request * feat: set scss structure, markup and styling Co-authored-by: younggil <[email protected]> Co-authored-by: JinJeon <[email protected]> * [REVIEW] 액션 레이어 생성 (#11) * [Jamie] 액션 레이어 생성 (#7) * feat: Create card component * feat: Create column component Co-authored-by: younggil <[email protected]> Co-authored-by: JinJeon <[email protected]>
KanbanViewController 구성하기 (#11)
* 카드 등록 - 새로운 카드 등록 기능 구현 (#29) * feat: todolist column과 task를 스크립트로 렌더링 list view와 task view를 클래스로 생성하고 db.json의 todolist를 하나의 배열로 묶음 * feat: column add button 칼럼의 추가버튼으로 등록카드 생성,삭제 기능 구현 * feat: task cancle button 등록카드의 취소버튼을 누르면 등록카드를 삭제하는 기능 구현 * refactor: 메인 렌더링 영역을 list에서 main으로 수정 entry point에서 mainInit의 parent를 list에서 main으로 리팩토링 * refactor: input event를 메인에서 task 모듈로 분리 입력창을 autoResize하는 이벤트를 task 모듈로 분리함 * rename: index.js * 카드 등록 - 새로운 카드 입력창 생성 기능 구현(1) (#32) * feat: 등록버튼 활성화 기능 구현 등록카드에 내용을 입력하면 등록버튼을 활성화, 입력할 수 있는 최대 글자수는 500자 * refactor: registration activation을 todoListStore에서 관리 activiation관리를 task에서 todoListStore로 변경 * 카드 이동 - 드래그앤드랍으로 카드 이동 구현(1) (#33) * design: task cursor 변경 * task -> grab * delete button -> pointer * feat: mousedown 시 copyTask 생성 기능 구현 * Task 에 mousedown 이벤트 발생 시 드래그 할 복사본 Task 요소를 생성하는 기능 구현 * feat: index에서 todoList render 후에 dragEvent 등록 기능 구현 * 카드 등록 기능 구현 된 로직에 dragEvent 설정 로직 병합 * 그 외 자잘한 수정 포함 * feat: task 요소 좌표 설정 기능 구현 * 클릭 이벤트가 발생한 좌표로 task 요소의 좌표를 설정하는 로직 구현 * feat: drag 기능 구현 * body에 mousemove 이벤트 등록해서 이벤트가 발생할때마다 해당 이벤트의 좌표로 task 요소를 이동되도록 구현 * feat: mouseup 이벤트 발생 시 드랍 & 복사 task 요소 삭제 기능 구현 * 복사한 task 요소에 mouseup 이벤트 설정 * Design: column task list height, hidden 클래스 추가 * Design: 잔상 처리용 클래스 blur 추가 * feat: drag and drop 기능 구현 * 선택 된 origin task item , 드래그 되고 있는 task item, 이동 된 task item 3개의 요소를 활용 * remove: todolistStore.js * rename: todolistStore -> todoListStore * 카드 이동 - 드래그앤드랍으로 카드 이동 구현(2) (#34) * design: task cursor 변경 * task -> grab * delete button -> pointer * feat: mousedown 시 copyTask 생성 기능 구현 * Task 에 mousedown 이벤트 발생 시 드래그 할 복사본 Task 요소를 생성하는 기능 구현 * feat: index에서 todoList render 후에 dragEvent 등록 기능 구현 * 카드 등록 기능 구현 된 로직에 dragEvent 설정 로직 병합 * 그 외 자잘한 수정 포함 * feat: task 요소 좌표 설정 기능 구현 * 클릭 이벤트가 발생한 좌표로 task 요소의 좌표를 설정하는 로직 구현 * feat: drag 기능 구현 * body에 mousemove 이벤트 등록해서 이벤트가 발생할때마다 해당 이벤트의 좌표로 task 요소를 이동되도록 구현 * feat: mouseup 이벤트 발생 시 드랍 & 복사 task 요소 삭제 기능 구현 * 복사한 task 요소에 mouseup 이벤트 설정 * Design: column task list height, hidden 클래스 추가 * Design: 잔상 처리용 클래스 blur 추가 * feat: drag and drop 기능 구현 * 선택 된 origin task item , 드래그 되고 있는 task item, 이동 된 task item 3개의 요소를 활용 * remove: todolistStore.js * rename: todolistStore -> todoListStore * feat: set drag and drop event * 카드 등록 - 새로운 카드 입력창 생성 기능 구현(2) (#35) * feat: 등록버튼 활성화 기능 구현 등록카드에 내용을 입력하면 등록버튼을 활성화, 입력할 수 있는 최대 글자수는 500자 * refactor: registration activation을 todoListStore에서 관리 activiation관리를 task에서 todoListStore로 변경 * 카드 등록 - 새로운 카드 입력창 생성 기능 구현(1) (#30) * [team-19] Todo-list 1주차 #1 코드리뷰 요청 (#32) * Update issue templates * docs: Update Readme Readme 1차 업데이트 * docs: Update Readme 기술 스택 추가 * Design: reset scss 적용 * HTML, CSS 작업 - Header, Sidebar (#11) * design: header HTML markup Related to: #8 * design: header css style Related to: #8 * design: sidebar HTML markup Related to: #8 * design: sidebar css style Related to: #8 * 메뉴 - 우측 히든 레이어 생성, 애니메이션 구현 (#12) * feat: sidebar 메뉴 버튼 사이드바 메뉴 버튼 클릭시 사이드바 숨김,보임 기능 구현 Related to: #10 * design: sidebar 애니메이션 왼쪽방향으로 나타나고 오른쪽 방향으로 숨겨지는 애니메이션 구현 Related to: #10 * 메뉴 - 우측 히든 레이어 생성, 애니메이션 구현 (#13) * feat: sidebar 메뉴 버튼 사이드바 메뉴 버튼 클릭시 사이드바 숨김,보임 기능 구현 Related to: #10 * design: sidebar 애니메이션 왼쪽방향으로 나타나고 오른쪽 방향으로 숨겨지는 애니메이션 구현 Related to: #10 * feat: action분리 action에 따라 sidebar 리스트의 comment를 다르게 출력함 Related to: #10 * feat: timestamp 기능 구현 현재 시간을 기준으로 투두리스트 작성 및 변경 시간을 보여주는 timestamp 구현 Related to: #10 * feat: 을/를, 으로/로 구분 단어의 마지막 글자 종성에 따라 모음을 다르게 렌더하는 기능 구현 Related to: #10 * HTML, CSS 작업 - Card List (#14) * design: main column list html markup Related to : #9 * move: svg file move to public/svg * 기존 public 에 있던 svg 파일을 svg 폴더 내로 이동 * icon-add.svg 파일 추가 Related to : #9 * Design: font mixin 함수 추가 Related to : #9 * design: column list scss style 작성 Related to: #9 * design: column task list scss style 작성 Related to: #9 * design: task commnet padding 을 margin 으로 변경 Related to: #9 * design: sccs convert to css Related to: #9 * fix: icon svg 파일 경로 수정 Related to: #9 * chore: 빌드환경구성 (#16) babel, webpack 적용 Related to: #15 * 메뉴 - 사용자 액션 리스트 구현 (#19) * feat: sidebar 액션 리스트 히든레이어 영역을 애니메이션 효과와 함께 숨김,보임 기능 구현 Related to: #17 * design: sidebar 액션리스트 애니메이션 Related to: #17 * move: package.json, gitignore * feat: sidebar 스크롤 기능 구현 액션리스트 기록이 많아지면 스크롤을 이용하여 다음 기록을 확인할 수 있음 Related to: #17 * design: 액션리스트 스크롤 구현 Related to: #17 * feature: json server 생성 및 db.json 추가 (#21) * json server 설치하고 db.json 에 필요한 데이터들을 추가함 Related to: #18 * HTML, CSS 작업 - Card (#22) * feat: todo-list 입력창 높이 자동 조절 todo-list를 입력하거나 지울 때 입력창의 높이를 자동으로 조절하는 기능 구현 Related to: #20 * design: column button hover color 칼럼 타이틀의 +,x 버튼을 hover할 때 버튼 색상 변경 Related to: #20 * design: 수정카드 디자인 구현 Related to: #20 * 리팩토링 - 1주차 리뷰 반영 (#24) * refactor: getFinalConsonant 매직넘버 제거 Related to: #23 * refactor: calcTimeForToday 함수 리팩토링 * 매직 넘버 제거 * DayDifference 식 수정 * 몇 년전 조건 추가 Related to: #23 * refactor: writeTime -> timeStamp Related to: #23 * refactor: identifyCategory 함수 리팩토링 * 구조 분해 할당 적용 Related to: #23 * refactor: svg 파일 경로 변수로 분리 * svg 파일 경로를 constants의 imagePath에 변수로 생성해서 관리하도록 변경 Related to: #23 * feat: fetchData 함수 구현 Related to: #23 * chore: bundle.js Related to: #23 * refactor: sidebar model 리팩토링 Related to: #23 * refactor: activationStore import 방식 변경 Related to: #23 Co-authored-by: Hemdi <[email protected]> Co-authored-by: Hemudi <[email protected]> * 카드 등록 - 새로운 카드 등록 기능 구현 (#29) * feat: todolist column과 task를 스크립트로 렌더링 list view와 task view를 클래스로 생성하고 db.json의 todolist를 하나의 배열로 묶음 * feat: column add button 칼럼의 추가버튼으로 등록카드 생성,삭제 기능 구현 * feat: task cancle button 등록카드의 취소버튼을 누르면 등록카드를 삭제하는 기능 구현 * refactor: 메인 렌더링 영역을 list에서 main으로 수정 entry point에서 mainInit의 parent를 list에서 main으로 리팩토링 * refactor: input event를 메인에서 task 모듈로 분리 입력창을 autoResize하는 이벤트를 task 모듈로 분리함 * rename: index.js * feat: 등록버튼 활성화 기능 구현 등록카드에 내용을 입력하면 등록버튼을 활성화, 입력할 수 있는 최대 글자수는 500자 * refactor: registration activation을 todoListStore에서 관리 activiation관리를 task에서 todoListStore로 변경 Co-authored-by: Hemdi <[email protected]> Co-authored-by: Hemudi <[email protected]> * Revert "카드 등록 - 새로운 카드 입력창 생성 기능 구현(1) (#30)" (#31) This reverts commit 7155f85. * merge develop2 * feature: +버튼으로 등록 카드 생성 등록 카드가 이미 생성된 상황에서 다른 탭을 누르면, 기존의 카드가 사라지고 해당 탭에 새로운 카드를 생성 * feature: task에 이벤트 등록 task 인스턴스를 생성할때 이벤트 등록 Co-authored-by: Hemdi <[email protected]> Co-authored-by: Hemudi <[email protected]> Co-authored-by: mogooee <[email protected]>
- HeaderView 구현 후 컨트롤러에 addSubview
[iOS] Section Header 재구현 및 layout 수정
* 카드 등록 - 새로운 카드 입력창 생성 기능 구현 (#36) * feature: 등록버튼을 누르면 새로운 카드, 카드 개수 렌더링 등록카드의 등록버튼으로 리스트에 새로운 카드를 추가하고 리스트의 카드 개수를 렌더링한다. * rename: todolistStore.js->todoListStore.js * feat: 새로운 카드 데이터 post 요청 등록버튼을 누르면 새로운 카드의 데이터를 post 요청하여 업데이트 * 카드 수정 - 내용 수정 기능 구현 (#37) * feat: 더블 클릭시 수정카드 전환, 수정버튼 활성화 롱클릭과 더블 클릭을 구분하고 수정카드에 기존과 다른 데이터가 입력되면 수정버튼을 활성화 * feat: 등록카드, 수정카드 데이터 fetch 요청 put 메소드로 변경된 카드 데이터를 서버에 보냄 * refactor: activationStore -> todoListStore 모델의 state를 todoListStore모듈에서 관리함 * 카드 삭제 - X 버튼 마우스 오버 이벤트 & 삭제 알럿창 구현 (#41) * design: delete alert 창 구현 * feat: task x delete button mouseover 이벤트 구현 * mouseover 시 task item 색 변화 * mouseout 시 원래대로 돌아옴 * feat: task title을 이용하여 task 를 삭제하는 함수 구현 * feat: 삭제 Alert 창 생성 기능 구현 * design: delete-button hover 이벤트 클래스로 분리 * feat: Alert 창 결과에 따른 Task 스타일 변화 기능 구현 * remove: todolistStore.js * rename: todoListStore.js * 카드 이동 - 리스트 중간에 카드 추가 기능 구현(1) (#42) * 카드 등록 - 새로운 카드 입력창 생성 기능 구현(1) (#30) * [team-19] Todo-list 1주차 #1 코드리뷰 요청 (#32) * Update issue templates * docs: Update Readme Readme 1차 업데이트 * docs: Update Readme 기술 스택 추가 * Design: reset scss 적용 * HTML, CSS 작업 - Header, Sidebar (#11) * design: header HTML markup Related to: #8 * design: header css style Related to: #8 * design: sidebar HTML markup Related to: #8 * design: sidebar css style Related to: #8 * 메뉴 - 우측 히든 레이어 생성, 애니메이션 구현 (#12) * feat: sidebar 메뉴 버튼 사이드바 메뉴 버튼 클릭시 사이드바 숨김,보임 기능 구현 Related to: #10 * design: sidebar 애니메이션 왼쪽방향으로 나타나고 오른쪽 방향으로 숨겨지는 애니메이션 구현 Related to: #10 * 메뉴 - 우측 히든 레이어 생성, 애니메이션 구현 (#13) * feat: sidebar 메뉴 버튼 사이드바 메뉴 버튼 클릭시 사이드바 숨김,보임 기능 구현 Related to: #10 * design: sidebar 애니메이션 왼쪽방향으로 나타나고 오른쪽 방향으로 숨겨지는 애니메이션 구현 Related to: #10 * feat: action분리 action에 따라 sidebar 리스트의 comment를 다르게 출력함 Related to: #10 * feat: timestamp 기능 구현 현재 시간을 기준으로 투두리스트 작성 및 변경 시간을 보여주는 timestamp 구현 Related to: #10 * feat: 을/를, 으로/로 구분 단어의 마지막 글자 종성에 따라 모음을 다르게 렌더하는 기능 구현 Related to: #10 * HTML, CSS 작업 - Card List (#14) * design: main column list html markup Related to : #9 * move: svg file move to public/svg * 기존 public 에 있던 svg 파일을 svg 폴더 내로 이동 * icon-add.svg 파일 추가 Related to : #9 * Design: font mixin 함수 추가 Related to : #9 * design: column list scss style 작성 Related to: #9 * design: column task list scss style 작성 Related to: #9 * design: task commnet padding 을 margin 으로 변경 Related to: #9 * design: sccs convert to css Related to: #9 * fix: icon svg 파일 경로 수정 Related to: #9 * chore: 빌드환경구성 (#16) babel, webpack 적용 Related to: #15 * 메뉴 - 사용자 액션 리스트 구현 (#19) * feat: sidebar 액션 리스트 히든레이어 영역을 애니메이션 효과와 함께 숨김,보임 기능 구현 Related to: #17 * design: sidebar 액션리스트 애니메이션 Related to: #17 * move: package.json, gitignore * feat: sidebar 스크롤 기능 구현 액션리스트 기록이 많아지면 스크롤을 이용하여 다음 기록을 확인할 수 있음 Related to: #17 * design: 액션리스트 스크롤 구현 Related to: #17 * feature: json server 생성 및 db.json 추가 (#21) * json server 설치하고 db.json 에 필요한 데이터들을 추가함 Related to: #18 * HTML, CSS 작업 - Card (#22) * feat: todo-list 입력창 높이 자동 조절 todo-list를 입력하거나 지울 때 입력창의 높이를 자동으로 조절하는 기능 구현 Related to: #20 * design: column button hover color 칼럼 타이틀의 +,x 버튼을 hover할 때 버튼 색상 변경 Related to: #20 * design: 수정카드 디자인 구현 Related to: #20 * 리팩토링 - 1주차 리뷰 반영 (#24) * refactor: getFinalConsonant 매직넘버 제거 Related to: #23 * refactor: calcTimeForToday 함수 리팩토링 * 매직 넘버 제거 * DayDifference 식 수정 * 몇 년전 조건 추가 Related to: #23 * refactor: writeTime -> timeStamp Related to: #23 * refactor: identifyCategory 함수 리팩토링 * 구조 분해 할당 적용 Related to: #23 * refactor: svg 파일 경로 변수로 분리 * svg 파일 경로를 constants의 imagePath에 변수로 생성해서 관리하도록 변경 Related to: #23 * feat: fetchData 함수 구현 Related to: #23 * chore: bundle.js Related to: #23 * refactor: sidebar model 리팩토링 Related to: #23 * refactor: activationStore import 방식 변경 Related to: #23 Co-authored-by: Hemdi <[email protected]> Co-authored-by: Hemudi <[email protected]> * 카드 등록 - 새로운 카드 등록 기능 구현 (#29) * feat: todolist column과 task를 스크립트로 렌더링 list view와 task view를 클래스로 생성하고 db.json의 todolist를 하나의 배열로 묶음 * feat: column add button 칼럼의 추가버튼으로 등록카드 생성,삭제 기능 구현 * feat: task cancle button 등록카드의 취소버튼을 누르면 등록카드를 삭제하는 기능 구현 * refactor: 메인 렌더링 영역을 list에서 main으로 수정 entry point에서 mainInit의 parent를 list에서 main으로 리팩토링 * refactor: input event를 메인에서 task 모듈로 분리 입력창을 autoResize하는 이벤트를 task 모듈로 분리함 * rename: index.js * feat: 등록버튼 활성화 기능 구현 등록카드에 내용을 입력하면 등록버튼을 활성화, 입력할 수 있는 최대 글자수는 500자 * refactor: registration activation을 todoListStore에서 관리 activiation관리를 task에서 todoListStore로 변경 Co-authored-by: Hemdi <[email protected]> Co-authored-by: Hemudi <[email protected]> * Revert "카드 등록 - 새로운 카드 입력창 생성 기능 구현(1) (#30)" (#31) This reverts commit 7155f85. * feat: 칼럼 사이 카드 이동 마우스 포인터를 기준으로 드래그중인 카드 아래 새로운 카드 존재 여부에 따라 해당 카드 앞 또는 가장 아래에 드래그 카드 추가 * rename: deleteMenu.js->alertDelete.js * feat: 드래그앤 드랍 적용 task 인스턴스에 드래그앤드랍 기능 적용 * refactor: export 방식 변경 Co-authored-by: Hemdi <[email protected]> Co-authored-by: Hemudi <[email protected]> * feat: task id 추가 + id를 이용한 삭제 기능 구현 (#44) * 기존 task title 을 이용해 삭제했던 기능을 id 를 이용해 삭제하는 방식으로 변경 Co-authored-by: Hemdi <[email protected]> Co-authored-by: Hemudi <[email protected]>
안녕하세요 리뷰어님! team 14에서 백엔드 개발을 하고있는
Phil
과산토리
입니다.수요일까지 작업한 내용 PR드립니다.
작업 내용
1. DB 설계
기획서를 바탕으로 to-do list 구현에 필요해보이는

CARD
,ACTION_LOG
테이블 2개를 생성하였습니다. 각 card의STATUS
속성을 통해 어떤 column(할 일, 하고 있는 일, 완료한 일)에 속하는 카드인지 구별하였습니다. 그리고 해당 column 내에서 정렬하기 위해ORDER_INDEX
속성을 사용하였습니다.2. API 설계
기획서를 바탕으로 필요한 기능 단위로 api 기능을 명세했습니다.
카드 API
(order_index)
,title
,content
,author_system
title
,content
를 담아서 전달, view단에서 작성 시스템이 넘어오는 지 질문DB
에 요청에 해당하는 객체 저장DB
에 발생한 행동의 로그 저장title
,content
을 담아서 전달DB
에 수정사항 반영DB
에 발생한 행동의 로그 저장id
를 URI로 넘겨줌DB
에 해당 카드 soft deletion 진행DB
에 발생한 행동의 로그 저장id
, 이동할 카드의 현재 위치index
, 이동할 column의status
값, 이동 위치의index
값DB
에서 해당 id로 조회한 다음에 그 레코드의status
,index
를 수정DB
에 발생한 행동의 로그 저장로그 API
(id)
,status
,title
,action
,created_date
,(prev_status)
전달3. 구현 사항
4. API 문서 작성
질문드릴 점
카드 목록을 보여주는 각 column에 해당하는 속성을 DB 테이블에서
Enum
으로 관리하는 것과 자바 코드 상에서enum
으로 관리하는 방식 중에 어떤 것이 좋은 방식일까요? 현재는 DB 상에서 enum으로 관리 중입니다. DB와 자바 코드 모두 enum으로 관리해줘야 할까요?카드 이동을 구현할 때
order_index
라는 속성을 매번 update 해주는 식으로 구현하려고 합니다. 최악의 경우에 모든 레이블의order_index
를 수정해야 하므로 레이블이 많아진다면 성능에 문제가 생길 것 같습니다. 카드를 이동시킬 때마다 DB상에서 linked list 방식으로 카드의 순서를 관리하는 방법이 있을까요?리뷰해주셔서 감사합니다! 👍