Skip to content

Conversation

seyoung755
Copy link
Collaborator

안녕하세요 리뷰어님! team 14에서 백엔드 개발을 하고있는 Phil산토리입니다.
수요일까지 작업한 내용 PR드립니다.


작업 내용

1. DB 설계

기획서를 바탕으로 to-do list 구현에 필요해보이는 CARD, ACTION_LOG 테이블 2개를 생성하였습니다. 각 card의 STATUS 속성을 통해 어떤 column(할 일, 하고 있는 일, 완료한 일)에 속하는 카드인지 구별하였습니다. 그리고 해당 column 내에서 정렬하기 위해 ORDER_INDEX 속성을 사용하였습니다.
image

2. API 설계

기획서를 바탕으로 필요한 기능 단위로 api 기능을 명세했습니다.

  1. 카드 API

    • 카드 조회
      • GET 요청(parameter x)
      • column별 List 형태로 전달(각 column별 개수)
      • (order_index), title, content, author_system
    • 카드 등록
      • POST 요청으로 body에 title, content를 담아서 전달, view단에서 작성 시스템이 넘어오는 지 질문
      • DB에 요청에 해당하는 객체 저장
      • DB에 발생한 행동의 로그 저장
      • redirect로 메인화면
    • 카드 수정 요청
      • PUT 요청으로 body에 title, content을 담아서 전달
      • DB에 수정사항 반영
      • DB에 발생한 행동의 로그 저장
      • redirect로 메인화면
    • 카드 삭제
      • DELETE 요청으로 삭제할 카드의 id를 URI로 넘겨줌
      • DB에 해당 카드 soft deletion 진행
      • DB에 발생한 행동의 로그 저장
      • redirect로 메인화면
    • 카드 이동
      • PUT 요청으로 body에 이동할 카드의 id, 이동할 카드의 현재 위치 index, 이동할 column의 status값, 이동 위치의 index
      • DB에서 해당 id로 조회한 다음에 그 레코드의 status, index를 수정
      • DB에 발생한 행동의 로그 저장
        • (같은 column 내에서 이동이 발생한 경우 로그 처리는 어떻게 할까?)
        • 내부 column 이동은 로그가 남지 않는 것으로 초안
        • (조회한 카드의 status == 이동 column의 status)이면, 로그를 남기지 않도록 서비스단에서 처리 필요
      • redirect로 메인화면
  2. 로그 API

    • 로그 조회
      • GET 요청으로 parameter X
      • id 순으로 정렬해서 List 형태로 전달
      • (id), status, title, action, created_date, (prev_status) 전달

3. 구현 사항

  • CardController 구현
    • 요청/응답에 필요한 dto 객체 생성
  • Card 도메인 객체 생성
  • Swagger 연동

4. API 문서 작성

image
image
image
image
image


질문드릴 점

  • 카드 목록을 보여주는 각 column에 해당하는 속성을 DB 테이블에서 Enum으로 관리하는 것과 자바 코드 상에서 enum으로 관리하는 방식 중에 어떤 것이 좋은 방식일까요? 현재는 DB 상에서 enum으로 관리 중입니다. DB와 자바 코드 모두 enum으로 관리해줘야 할까요?

  • 카드 이동을 구현할 때 order_index 라는 속성을 매번 update 해주는 식으로 구현하려고 합니다. 최악의 경우에 모든 레이블의 order_index를 수정해야 하므로 레이블이 많아진다면 성능에 문제가 생길 것 같습니다. 카드를 이동시킬 때마다 DB상에서 linked list 방식으로 카드의 순서를 관리하는 방법이 있을까요?

리뷰해주셔서 감사합니다! 👍

seyoung755 and others added 13 commits April 4, 2022 18:01
- application.yml에 db 연결정보 작성
- build.gradle에 h2 의존성 추가
[BE][#13] 데이터베이스 Schema 작성
- 조회/등록/수정/삭제/이동 기능 지원
- Column 객체는 각 column별 카드 목록을 담고 있는 객체로 생성하였습니다.
- 나머지 dto 객체는 각 요청에 대한 데이터를 담고 있는 dto입니다.
- 관련 의존성 추가
- configuration class 생성 및 빈 등록
[BE][#15] 카드 기능 컨트롤러 및 도메인 구현
@seyoung755 seyoung755 added the review-BE Improvements or additions to documentation label Apr 6, 2022
@seyoung755 seyoung755 requested a review from Dae-Hwa April 6, 2022 07:36
@seyoung755 seyoung755 changed the title [team-14][BE] 그룹 프로젝트 1주차 PR-1 [team-14][BE] To-do list 그룹 프로젝트 1주차(수) PR Apr 6, 2022
Copy link

@Dae-Hwa Dae-Hwa left a 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 @@
---
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 이슈 템플릿을 만드셨군요 ㅋㅋ 좋습니다
여유가 된다면 pr이나 commit 템플릿도 만들 수 있으니 살펴보시는 것도 좋겠네요 👍👍

Copy link
Collaborator Author

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'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이번 프로젝트는 이미 만들었으니 그냥 진행하시되, 다음 부터는 의미 있는 이름으로 해주시면 더 좋을 것 같아요~

Copy link
Collaborator Author

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
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

스웨거 설정이 잘 안 돼서 사용하셨을 것 같은데 맞나요? ㅎㅎ
어떤 역할을 하는지 어떤 주의사항이 있는지 살펴보시기 바랍니다
그리고 다른 해결 방법도 있을건데, 이건 여유되시면 찾아보시면 좋을 것 같습니다

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵!! Swagger에 대해서는 더 공부해보겠습니다 👍

Copy link

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;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

질문입니다 😀
변수명만 봐서는 감이 잘 안오는데 어디에 사용되는건가요??

Copy link
Collaborator Author

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;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dto 패키지에 들어가야 할 것 같은데 잘못 넣으신거죠??
만약 아니라면 각 계층의 역할에 대해 다시 한 번 생각해보시면 좋을 것 같습니다

Copy link
Collaborator Author

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 {
Copy link

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
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

임시로 h2를 사용하는 것은 괜찮은데, 인메모리로 하지 않은 이유가 있나요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

별 고민없이 서버 모드가 익숙해서 쓰게 되었습니다 ㅎㅎ 인메모리도 한번 사용해보겠습니다!

Comment on lines +3 to +9
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
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이런 부분도 인덴트가 잘 나눠져있으면 가독성이 훨씬 좋아질겁니다. 예시는 참고만 해주세요~

Suggested change
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

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

가독성 개선 팁 감사합니다 👍

Comment on lines +21 to +35
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')
);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

꼭 여러번에 걸쳐서 해야하는 걸까요? 🤔

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저희도 이 부분 작성하면서 고민했는데 개선할 방법이 있는지 공부해보겠습니다 ㅎㅎㅎ

junzero741 pushed a commit that referenced this pull request Apr 6, 2022
* Chore: 개발환경 추가

- module
css-loader
sass-loader

- plugin
MiniCssExtractPlugin
HtmlWebpackPlugin

devServer 속성

* Docs: ignore dist, style.css.map

Style: ignored 된 파일 삭제

Docs: ignore dist

* Style: 파일 이름 수정

* Chore: devtool 변경
guswns1659 pushed a commit that referenced this pull request Apr 6, 2022
[후] .github 설정 파일(템플릿) 작성
ju-kkim added a commit that referenced this pull request Apr 7, 2022
mogooee added a commit that referenced this pull request Apr 7, 2022
* 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]>
@Dae-Hwa Dae-Hwa merged commit aff4a55 into codesquad-members-2022:team-14 Apr 7, 2022
renovatio0424 pushed a commit that referenced this pull request Apr 8, 2022
[Android] 스타크 - ToolBar 구현 및 DataBinding 설정
astraum pushed a commit that referenced this pull request Apr 9, 2022
tmdgusya pushed a commit that referenced this pull request Apr 9, 2022
snowjang24 pushed a commit that referenced this pull request Apr 9, 2022
Chore: prettier, eslint 설정
zel0rd added a commit that referenced this pull request Apr 10, 2022
* [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]>
GangWoon pushed a commit that referenced this pull request Apr 10, 2022
GangWoon pushed a commit that referenced this pull request Apr 10, 2022
GangWoon pushed a commit that referenced this pull request Apr 10, 2022
dev-Lena pushed a commit that referenced this pull request Apr 10, 2022
dev-Lena pushed a commit that referenced this pull request Apr 10, 2022
eve712 pushed a commit that referenced this pull request Apr 10, 2022
* 카드 등록 - 새로운 카드 등록 기능 구현 (#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]>
eeeesong pushed a commit that referenced this pull request Apr 11, 2022
- HeaderView 구현 후 컨트롤러에 addSubview
eeeesong pushed a commit that referenced this pull request Apr 11, 2022
wnsxor1993 pushed a commit that referenced this pull request Apr 11, 2022
[iOS] Section Header 재구현 및 layout 수정
jinan159 pushed a commit that referenced this pull request Apr 12, 2022
dev-Lena pushed a commit that referenced this pull request Apr 14, 2022
dev-Lena pushed a commit that referenced this pull request Apr 14, 2022
eve712 pushed a commit that referenced this pull request Apr 14, 2022
* 카드 등록 - 새로운 카드 입력창 생성 기능 구현 (#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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-BE Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants