Skip to content
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

[#30] 카테고리 조회 API #32

Merged
merged 8 commits into from
Aug 16, 2021
Merged

Conversation

Choi-Jinwoo
Copy link
Member

@Choi-Jinwoo Choi-Jinwoo commented Aug 13, 2021

관련이슈

실제 소요시간

1.0h

체크리스트

  • base branch를 확인했나요?

설명

카테고리 모델 변경
기존 부모와 1:1인 관계에 오류가 있어 1:N으로 변경했습니다.
(부모 카테고리 하나에 여러 자식 카테고리가 존재할 수 있음)

계층 구조
카테고리를 1차, 2차, 3차 ...n차 를 계층적으로 구현하기 위해 재귀함수를 사용했습니다.
insertChildrenCategories함수는 재귀적으로 호출됩니다.

불변성
insertChildrenCategories의 함수의 매개변수로 자식을 넣어줄 부모 카테고리와 전체 카테고리 배열을 받습니다.
이때 함수의 불변성을 지키기위해 lodash.cloneDeep 함수를 사용했습니다.

API 응답

{
  "categories": [
    {
      "id": 1,
      "name": "1차 카테고리",
      "parentCategory": null,
      "childCategories": [
        {
          "id": 3,
          "name": "2차 카테고리",
          "parentCategory": {
            "id": 1,
            "name": "1차 카테고리"
          },
          "childCategories": [
            {
              "id": 4,
              "name": "3차 카테고리",
              "parentCategory": {
                "id": 3,
                "name": "2치 카테고리"
              }
            }
          ]
        }
      ]
    }
 ]
}

@Choi-Jinwoo Choi-Jinwoo added feature 기능 backend 백엔드 labels Aug 13, 2021
@Choi-Jinwoo Choi-Jinwoo added this to the 1주차 스프린트 milestone Aug 13, 2021
@Choi-Jinwoo Choi-Jinwoo self-assigned this Aug 13, 2021
@Choi-Jinwoo Choi-Jinwoo linked an issue Aug 13, 2021 that may be closed by this pull request
1 task
Copy link
Collaborator

@sanginchun sanginchun left a comment

Choose a reason for hiding this comment

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

재귀 호출하고 clonedeep까지.. 진우님이어서 금방 마무리된 작업인 것 같네요 ㅎㅎ 고생하셨습니다.

server/src/routers/category/index.ts Outdated Show resolved Hide resolved
server/src/services/category-service.ts Outdated Show resolved Hide resolved
Copy link
Collaborator

@juyoungpark718 juyoungpark718 left a comment

Choose a reason for hiding this comment

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

고생하셨습니다 !!! :) 👍
별거아닌데.. 브랜치 이름에 오타가 있네요 ! (fecth, 아니면 의도하신 걸까요 ?!)
그리고, loadash를 deepClone 하시려고 사용하셨는데, 이왕 lodash를 사용하는 김에 lodash 자체가 많은 함수들이 있으니까 그런 함수들 이용하면 좋을 것 같습니다. null인 부분을 판단하는 곳엔 isNull같은것도 있을 수 있겠고, chain 함수를 통해서 함수형프로그래밍도 가능한 것 같습니다(하지만 여기선 사실 딱히 사용할 필요가 없어보이네요..)

Copy link
Collaborator

@momongss momongss left a comment

Choose a reason for hiding this comment

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

고생하셨습니다! lodash 로 deepclone 할 수 있는 걸 배웠습니다. 감사합니다

@Choi-Jinwoo Choi-Jinwoo merged commit f8f6769 into develop Aug 16, 2021
@Choi-Jinwoo Choi-Jinwoo deleted the feat/category-fecth-api branch August 16, 2021 04:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend 백엔드 feature 기능
Projects
None yet
Development

Successfully merging this pull request may close these issues.

카테고리 조회 API
4 participants