Skip to content

[권수형] 스프린트6#86

Merged
ByungyeonKim merged 14 commits into
codeit-bootcamp-frontend:Basic-권수형from
Ospac:Basic-권수형-sprint6
Aug 1, 2025

Hidden character warning

The head ref may contain hidden characters: "Basic-\uad8c\uc218\ud615-sprint6"
Merged

[권수형] 스프린트6#86
ByungyeonKim merged 14 commits into
codeit-bootcamp-frontend:Basic-권수형from
Ospac:Basic-권수형-sprint6

Conversation

@Ospac

@Ospac Ospac commented Jul 30, 2025

Copy link
Copy Markdown
Collaborator

https://awkward-panda-market.netlify.app/additem

요구사항

체크리스트 [기본]

상품 등록

  • 상품 등록 페이지 주소는 "/additem" 입니다.
  • 페이지 주소가 "/additem" 일때 상단네비게이션바의 '중고마켓' 버튼의 색상은 "3692FF"입니다.
  • 상품 이미지는 최대 한개 업로드가 가능합니다.
  • 각 input의 placeholder 값을 정확히 입력해주세요.
  • 이미지를 제외하고 input 에 모든 값을 입력하면 '등록' 버튼이 활성화 됩니다.
  • API를 통한 상품 등록은 추후 미션에서 적용합니다.

체크리스트 [심화]

상품 등록

  • 이미지 안의 X 버튼을 누르면 이미지가 삭제됩니다.
  • 추가된 태그 안의 X 버튼을 누르면 해당 태그는 삭제됩니다.

주요 변경사항

  • price Input에 숫자 및 화폐 처리 로직을 추가했습니다.

스크린샷

스크린샷 2025-07-30 오후 7 18 47

멘토에게

  • React-권수형 branch로 PR을 보내야할 것 같은데, 커밋 히스토리가 달라서 지정할 수가 없네요 ㅎ..(아마도 해당 브랜치에서 분리하지 않고 Basic branch에서 분리한채로 작업해서 그런 것 같습니다) 어떻게 하면 될까요..
  • 다음과 같이 객체로 input state를 관리하고 있는데, 일괄적으로 같은 set함수를 prop으로 내려줄 수 있다는 장점도 있지만, set할때 코드가 길어지는 단점이 있는 것 같습니다. 개별 state로 분리하는게 좋을까요?
const [values, setValues] = useState({
  imgFile: null,
  title: '',
  description: '',
  price: 0,
  tags: [],
}) 

Ospac added 13 commits July 4, 2025 13:21
- Items.js -> items.js 파일명 변경
- AllItemsSection.jsx의 imgUrl 값 변경
- getItemDisplayLimit -> util함수로 추상화, 좀더 명확히 의도가 드러나게 getItemDisplayLimitByscreenSize으로 이름 변경
- DropdownButton.jsx에서 명확함을 위해 isClicked -> isDropdownOpen 변수명 변경
- Items 페이지에서 검색어가 입력된 상태에서 필터 옵션을 변경하면 검색어가 반영되지 않는 문제
	- Search Input value State를 AllItemsSection.jsx으로 끌어올림
…change를 핸들하는 방식으로 변경 ( media 종류가 변경될때만 setState 실행)

+ 일부 변수명 변경
@Ospac Ospac requested a review from ByungyeonKim July 30, 2025 11:17
@Ospac Ospac self-assigned this Jul 30, 2025
@Ospac Ospac added the 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. label Jul 30, 2025
@Ospac Ospac changed the title 스프린트 미션6 [권수형] 스프린트 미션6 Jul 30, 2025
@Ospac Ospac changed the title [권수형] 스프린트 미션6 [권수형] 스프린트6 Jul 30, 2025

@ByungyeonKim ByungyeonKim left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

코드 잘 봤습니다 수형님! 전반적으로 접근성도 잘 지켜주셨고, 시맨틱 태그도 잘 사용해 주셨어요.
import문에 대한 Lint 규칙 덕분에 포맷팅도 깔끔했습니다.

아 그리고 현재 PR에는 없지만, build 관련 설정도 해주셨더라구요.

  build: {
    minify: "terser",
    terserOptions: {
      compress: {
        //build 시에 모든 console.log를 제거
        drop_console: true,
        drop_debugger: true,
      },
    },
  },

이런 디테일 너무 좋습니다! 혹시 여기서 경량화 도구를 terser로 선택하신 이유가 있으실까요?
현재 프로젝트에서, esbuild로 빌드 시 1.9초, terser의 경우 3.8초 정도 걸리더라구요.
별도로 설치할 필요 없이, 기본 도구인 esbuild도 동일하게 아래처럼 설정이 가능합니다!

  esbuild: {
    drop: ["debugger", "console"],
  },

좋습니다! 이제 질문에 대한 답변을 드릴게요.

  1. React-권수형 branch로 PR을 보내야할 것 같은데, 커밋 히스토리가 달라서 지정할 수가 없네요 ㅎ..(아마도 해당 브랜치에서 분리하지 않고 Basic branch에서 분리한채로 작업해서 그런 것 같습니다) 어떻게 하면 될까요..
    : upstream remote가 되어 있다는 가정하에 말씀드릴게요! 먼저, 로컬 React 브랜치부터 만들어 주세요.
git checkout -b React-권수형-sprint6 

이후 아래와 같이 옵션을 추가하면 pull 해올 수 있어요.

git pull upstream React-권수형 --allow-unrelated-histories

pull 하시면 충돌은 생기지 않을 거예요. vite_project 폴더는 지우셔도 됩니다! PR 요청 후 메시지 주시면 바로 승인드릴게요. 😊 궁금한 게 생기면 편하게 질문주세요!

  1. 다음과 같이 객체로 input state를 관리하고 있는데, 일괄적으로 같은 set함수를 prop으로 내려줄 수 있다는 장점도 있지만, set할때 코드가 길어지는 단점이 있는 것 같습니다. 개별 state로 분리하는게 좋을까요?
const [values, setValues] = useState({
  imgFile: null,
  title: '',
  description: '',
  price: 0,
  tags: [],
})

: 연관된 state를 그룹화한 것이기 때문에, 구조화를 잘하셨다고 생각해요. set 하는 코드가 많아져서 관리가 어렵다면, 커스텀 훅이나 리듀서로 관리하시는 것을 추천드려요!

Comment thread .prettierignore
Comment thread .prettierrc
Comment thread eslint.config.js
Comment thread src/pages/AddItem/TagInput.jsx
Comment thread src/pages/AddItem/index.jsx
Comment thread src/pages/AddItem/index.jsx
Comment thread src/components/layout/Header.jsx
Comment thread src/main.jsx
Comment thread src/pages/AddItem/TagInput.jsx
Comment thread src/components/layout/Header.jsx
@ByungyeonKim ByungyeonKim merged commit a50f35f into codeit-bootcamp-frontend:Basic-권수형 Aug 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants