HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
프로그래머스 프론트엔드 데브코스 2기
프로그래머스 프론트엔드 데브코스 2기
/
🐱
기동1팀
/
🏁
프로젝트 개인 목표
🏁

프로젝트 개인 목표

 
프로젝트를 통해 이루고 싶은 개인적인 목표들을 정리 및 작성하여 원하는 포인트에 집중해서 프로젝트를 진행하기 위해 작성하려고 합니다. 각자 1차 프로젝트를 진행한 이후이기 때문에 이전 프로젝트에서 미흡했던 부분이나 개선하고 싶었던 점을 고려해서 작성해도 좋을 것 같습니다!
 

샘플

🚩
프로젝트 개인 목표 샘플 (Readonly)
 

권내영

기술적 측면
  • SSR에 대한 이해 및 적용(Next.js)
  • 채택된 라이브러리에 대해 공부하며 사용하기
    • react-query, recoil, jotai 등을 사용한다면 라이브러리에 대한 이해도를 높인 채 사용하기
경험적 측면
  • 백엔드 개발자들과의 협업 방식 습득하기
  • 프로젝트 회의 문서화, 기록 작업
    • 회의나 각자 한 일, 할 일 등을 일정 주기로 기록해 서로의 상황을 확인하고, 추후 활용 가능하도록 기록 작업
    • 템플릿을 만들어놓고 정리하는 시간 갖기
  • 프로젝트 시작 전 또는 초기 단계에 컨벤션 등을 정하고 문서화해 프로젝트 시 통일된 코드 또는 문서 작성
 
 

이지원

  • 애자일 방법론의 적용
    • 각 팀원들이 현재 작업 진행상황을 보다 자세히 공유할 수 있도록 git Project 활용
    • 주마다 혹은 더 짧게 스프린트를 정하고 스프린트의 반복으로 프로젝트 진행
      • 4주 전체 프로젝트를 분업하기에는 너무 단위가 크다
      • 4번으로 자른다고 가정하고 일을 분배를 하면 Git Project 일의 단위가 작아질것
    • 매일 정해진 시간에 짧게 프로젝트 진행 상황을 스크럼을 통해 공유
    • 매 스크럼 혹은 회의가 있을 때 마다 노션을 통해 간단한 회의록 작성 (돌아가면서)
  • 개발에 집중할 수 있는 환경을 미리 세팅
    • PR 템플릿
    • Commit Convention
    • Code Convention
    • 디렉토리 구조
    • 공통 컴포넌트에 대해서..
  • 프로젝트를 마무리하고 전체 프로젝트 흐름에 대한 이해가 남아있도록 작업
코드 컨벤션 예시

1. Components 이름은 Pascal case를 사용합니다.

  • Good : function Button = ...
  • Bad : function button = ...

2. Component 확장자는 JSX를 사용합니다.

  • Good: Button.jsx
  • Bad: Button.js

3. Component는 함수 표현식 + 화살표 함수로 작성합니다.

  • Good: const Button = () => {}
  • Bad: functon Button(), const Button = function(){}

4. props는 각 태그의 고유 기능을 잃지 않게 항상 할당해 줍니다.

  • Good:
const Button = ({...props}) => { //생략 return <StyledButton {...props} /> }

5. styled component에 인라인 스타일을 넣는 것은 최대한 지양합니다.

  • Bad : <StyledButton style={{...}}>

6. prop에 명시하는 이벤트는 on~, 핸들러 함수를 정의할 때 는 handle 접두사를 사용하고 이벤트의 이름을 사용합니다.

  • Good: <StyledButton onClick={handleClick} />
  • Bad: <StyledButton onClick={somethingElse} />

7. 동일한 이벤트를 다루는 핸들러가 여러개 존재 할 경우 정확히 어떤 컴포넌트에 할당되는 이벤트인지 명시해서 구분합니다. (handle + 컴포넌트 + 이벤트)

const handleButtonClick=()=>{} const handleTimeBoxClick=()=>{} return <> <TimeBox onClick={handleTimeBoxClick} /> <Button onClick={handleButtonClick} /> </>
PR Template 예시

개요

구현 배경 (이슈, Ticket Number)을 작성하고 무엇을 구현했는지 간단히 설명

구현 내용

구현 방식에 대해서 자세하게 설명

추가 이슈

개발 중 발생한 추가적인 이슈 등 에 대해서 명세

조계진

  • 초기 기획을 기한 내에 모두 이루기(현실적인 시각이 필요할 것) + 트러블 슈팅
    • 제한적인 비용 안에서 기획을 이루기 위해선 생산성이 높은 도구를 활용하는 것이 좋을 것 같음(Next.js, Typescript, React-query)
    • 태스크를 인원별로 분배 후 예상 작업 기간을 기록하기
  • 디자인 툴 익히기(전에는 Figma 안에서 Chakra-ui의 kit을 이용)
  • 후에 리팩토링 할 일이 적어지게 컨벤션을 확실히 정하고 팀원이 서로 이해했는지 확실히 확인하기
    • ESLint나 Prettier로 커버가 안되는 부분(컴포넌트 내에서 함수나 변수 간의 띄어쓰기), TS를 사용한다면 interface or type
      • import ⇒ interface ⇒ component ⇒ style
  • 서로의 작업 상황 확인
    • PR에 대해서 리뷰를 달 상황이 안되더라도 approve 남기기

하신영

경험적 측면
  1. 프론트 개발자로서 백엔드 개발자와 협업하는 방법 배우기
  1. 어떻게 하면 팀원들과 효율적으로 소통할 수 있는지 연구
      • 협업툴 선택과 활용( Notion, Github: issues, projects, Slack, Discord )
      • 업무 분담을 어떻게 하면 효율적으로, 합리적으로 할 수 있을지
      • 테크 스펙 사용 https://blog.banksalad.com/tech/we-work-by-tech-spec/
      예시
      issue 사용( 여기에 pr단위의 테크 스펙 적기) ⇒ propjects 보드에서 각 팀원의 업무 파악 (sprint단위)
      pr 예시
      기존 템플릿에 마감일이 없어서 추가가 필요하다고 생각
      ### 기능 이슈 #### 제목: \[feature\] 기능이름 #### 기능: <!-- 기능을 설명해주세요. --> #### 기능 세부 설명: <!-- 세부적인 설명을 설명해주세요. --> #### 기타 <!-- 버그 발생시 활용! --> ### 버그 이슈 #### 제목: \[bug] 에러명 #### 어디에서 <!-- 버그가 발생된 위치 --> #### 의도했던 상황 <!-- 의도하고자 했던 상황을 설명하세요 --> #### 현재 상황 <!-- 예시: 상황이 발생하는 대략적인 진행 사항을 단계적으로 설명 해주세요. --> #### 어떤 버그가 ( 에러메시지 ) <!-- 에러메시지를 넣어주세요. -->
      • 좋은 코드 리뷰를 하려면?
  1. 맨데이 파악하기
  1. 디버깅, 및 시행착오 그날 바로 문서화
기술적 측면
  1. NextJS, TypeScript를 적용
  1. 컴포넌트 다이어그램 적용 x
  1. 아토믹 디자인 시스템 적용해서 재사용성, 확장성이 강한 컴포넌트 만들기 x - 디자인 시스템 필요
    1. 아토믹 디자인을 활용한 디자인 시스템 도입기
      카카오엔터테인먼트 FE 기술블로그
      아토믹 디자인을 활용한 디자인 시스템 도입기
      https://fe-developers.kakaoent.com/2022/220505-how-page-part-use-atomic-design-system/
      아토믹 디자인을 활용한 디자인 시스템 도입기

시간이 된다면 하고 싶은 것
  1. 스토리북 적용: Atom, Molecule, Organism 까지 완성을 해보고 싶다. 또한 데이터가 많이 들어온 경우 테스트도 해보면 좋을 듯.
 
 

번외

 
스쿼시머지합시다!!