Skip to content

[정한샘] sprint 10#32

Open
koseha wants to merge 6 commits intocodeit-sprint-fullstack:express-정한샘from
koseha:express-정한샘-sprint10

Hidden character warning

The head ref may contain hidden characters: "express-\uc815\ud55c\uc0d8-sprint10"
Open

[정한샘] sprint 10#32
koseha wants to merge 6 commits intocodeit-sprint-fullstack:express-정한샘from
koseha:express-정한샘-sprint10

Conversation

@koseha
Copy link

@koseha koseha commented Mar 28, 2025

요구사항

기본

  • [x]
  • []
  • []

심화

  • [x]
  • []

주요 변경사항

스크린샷

멘토에게

  • 미구현 항목
    • 이미지 업로드
    • 프론트 요구 사항
    • 스웨거
  • javascript -> typescript 로 아예 새로 작성하였는데, 이 경우에 머지 충돌을 어떻게 해결하는 것이 좋을까요?

@dennis2311
Copy link
Collaborator

잘 하셨습니다.

  • 디렉토리 구조에 고민과 공을 들이신 흔적이 보이네요. 저희 서비스는 controller 파일 하나로만 작업하긴 부족해서, ~.get.controller, ~.post.controller, ... 처럼 메소드에 따라 파일을 나눠 관리하고 있습니다.
  • 백엔드에서는 데이터에 따라 기능을 묶는 것이 제일 좋습니다. 서비스가 커지면 자연히 느끼시게 될 부분일 겁니다. 따라서 middleware와 mapper들을 기능에 따라 분류하는 것이 아니라 데이터에 따라 해당 데이터 디렉토리로 넣는 것을 추천해드립니다.
  • JS에서 다루기 골치 아픈 것 중 하나가 Date 속성입니다. Date 형식이 DB에 저장된 걸 그대로 가져온다고 해서 JS에서 곧바로 쓸 수 있는 형태로 조회되지도 않고 사용자의 국가마다, OS마다 new Date()의 값이 달라지기 때문입니다. 그래서 저는 스키마에 Date 형식은 가능하면 쓰지 않고, Date 기본 내장 함수인 toISOString() 함수를 이용하여 일관된 형식의 문자열로 만들거나, 아래와 같이 정형화된 문자열을 반환하는 util 함수를 만들어 관리하는 편입니다.
    /**
  • 오전 7시를 기점으로 변경되는 날짜를 기준으로,
  • 인자로 받은 날짜를 YYYY-MM-DD 형식으로 변환해 반환합니다.
  • 인자가 주어지지 않았다면 현재 날짜를 반환합니다.
    */
    export function getUnifiedDateString(date?: string | Date) {
    const targetDate = date === undefined ? new Date() : new Date(date);
    targetDate.setHours(targetDate.getHours() - 7);

const year = targetDate.getFullYear();
const month = digitStandizer(targetDate.getMonth() + 1);
const day = digitStandizer(targetDate.getDate());
return ${year}-${month}-${day};
}

@dennis2311
Copy link
Collaborator

javascript -> typescript 로 아예 새로 작성하였는데, 이 경우에 머지 충돌을 어떻게 해결하는 것이 좋을까요?

브랜치를 어떻게 작업하신 건지 제가 잘 모르겠는데.. 선형적으로 작업하셨다면 merge conflict가 일어날 일은 없습니다. 만약 typescript 브랜치로 분기하여 작업하다가 다시 원본 브랜치로 돌아와 javascript 작업을 하신 것이라면, 좀 더 fast-forward 인 쪽을 직접 골라 conflict를 해결해 주셔야 합니다. 만약 한쪽이 명백히 최신 작업물이라면 VSCode의 accept all incoming, 혹은 accept all current 를 이용해 한꺼번에 처리해주시는 게 편리합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants