Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
928ff0e
Feat:초기 세팅 완료
wokbjso Sep 26, 2023
d29d365
Feat:iPhone 레이아웃 생성
wokbjso Sep 26, 2023
ee05f87
Feat:Status Bar 생성
wokbjso Sep 26, 2023
e136536
Feat:Color 및 Typeface theme 파일에 정리
wokbjso Sep 26, 2023
3e32673
Feat:Home Indicator 생성
wokbjso Sep 26, 2023
d11f263
Feat:페이지 헤더 컴포넌트 생성
wokbjso Sep 26, 2023
c3dd42d
Feat:친구 목록 페이지 라우팅 생성
wokbjso Sep 26, 2023
766182f
Feat:내 프로필 페이지 라우팅 생성
wokbjso Sep 26, 2023
926d33e
Feat:페이지 navigate 훅으로 처리
wokbjso Sep 27, 2023
4aecf58
Feat:Divider 컴포넌트 생성
wokbjso Sep 27, 2023
2110b23
Feat:navigate 훅 수정
wokbjso Sep 27, 2023
7918977
Feat:채팅 목록 subHeader 생성
wokbjso Sep 27, 2023
0db5bb9
Feat:채팅 목록 subHeader 에 divider 추가
wokbjso Sep 27, 2023
dba98c5
Feat:채팅 목록 페이지 완성
wokbjso Sep 27, 2023
03e9811
Feat:디폴트 채팅 창 구현
wokbjso Sep 27, 2023
6700319
Feat:Input 입력 틀 생성
wokbjso Sep 28, 2023
79e1684
Feat:로컬스토리지에 채팅방 당 데이터 저장 & 더블클릭 시 좋아요 버튼 활성화
wokbjso Sep 28, 2023
b443984
Feat:채팅 입력 시 스크롤 맨 아래로 이동하는 훅 생성
wokbjso Sep 28, 2023
94fb084
Feat:엔터 키로도 텍스트 입력되도록 추가
wokbjso Sep 29, 2023
d34fbd6
Feat:채팅시간 현재 시간에 맞게 출력
wokbjso Sep 29, 2023
38ad7bd
Fefactor:엔터 입력 시 받는 :event 키값을 Enter 문자열과 비교
wokbjso Sep 29, 2023
754dfb5
Refactor:디폴트 채팅 데이터 map 으로 렌더링
wokbjso Sep 29, 2023
1c5db6f
Fix:첫 채팅 더블클릭시 좋아요 표시 안뜨는 현상 수정
wokbjso Sep 29, 2023
85f7fa9
Fix: 채팅 더블클릭하여 반응 추가시에도 스크롤 되는 현상 수정
wokbjso Sep 29, 2023
be4ab80
Design:유저 채팅 시 텍스트가 버블 오른쪽에 붙게 수정정
wokbjso Sep 29, 2023
02f6ba0
Feat:trim 으로 불필요한 공백 제거
wokbjso Sep 29, 2023
5402650
Fix:채팅 입력 안해도 빈 text로 채팅 추가되는 현상 수정
wokbjso Sep 29, 2023
6fec9ea
Refactor: 채팅 방 더미터 함수로 가져오기
wokbjso Sep 29, 2023
363d6a3
Feat:페이지 헤더 클릭 시 유저 변경 기능 추가
wokbjso Sep 29, 2023
3b3629a
Feat:채팅목록에서 개인으로 이동하면 리스트 안뜨도록 설정
wokbjso Sep 29, 2023
6222a4f
Fix:채팅 입력 완료하면 전송 버튼 활성화로 유지되는 버그 수정
wokbjso Sep 29, 2023
8fca7b4
Refactor:인풋 입력때마다 채팅 내용 re-rendering 방지
wokbjso Sep 29, 2023
8519713
Fix: 채팅 룸 사용자 변경 헤더 텍스트 클릭시에만 일어나도록 수정
wokbjso Sep 29, 2023
a03baf8
Feat:정의된 페이지 라우트 이외의 라우트 접근 시 홈 화면으로 Navigate
wokbjso Sep 29, 2023
a6e15bb
Feat:Favicon 및 Title 수정
wokbjso Sep 29, 2023
576db49
Design:채팅 넘어갈 시 스크롤 바 안보이게
wokbjso Sep 29, 2023
8ca814a
Design: 헤더 클릭 시 채팅 주체 변경 디자인 수정
wokbjso Sep 29, 2023
ca17858
Fix:채팅 룸에서 헤더 텍스트 누를 시에만 주체 변경
wokbjso Sep 29, 2023
af4a50b
Fix:공백 입력해도 채팅이 입력되는 현상 수정
wokbjso Sep 30, 2023
f408478
Docs:Readme.md 파일 변경
wokbjso Oct 4, 2023
e3e500b
Fix:QA 전체 -> Pretendard cdn 재설정
wokbjso Oct 4, 2023
9aef723
Fix:QA 전체 -> Pretendard cdn 재수정
wokbjso Oct 4, 2023
74e325c
Design:QA 1-a. 채팅 목록 _주요 채팅 및 별 아이콘 수정
wokbjso Oct 4, 2023
8e629ad
Design:QA 1-b. 채팅방 제목 - 수정
wokbjso Oct 5, 2023
d0efd80
Design:QA 1-c. 채팅목록_채팅 내용 글자 크기 수정
wokbjso Oct 5, 2023
e2a9958
Design:QA 2-a. 채팅방__채팅방 제목 글자 크기 수정
wokbjso Oct 5, 2023
c1b0443
Design:QA 2-b. 채팅방_파일첨부 글자 크기 수정
wokbjso Oct 5, 2023
3fb5431
Design:QA 2-c. 채팅방_말풍선 디자인 수정
wokbjso Oct 5, 2023
e05c972
Design:QA 2-c. 채팅방_말풍선 디자인 수정
wokbjso Oct 5, 2023
b2f66ef
Design:QA 2-d. 채팅방_채팅 입력 디자인 수정
wokbjso Oct 5, 2023
158aca6
Feat:프로필 페이지 프로필 정보 레이아웃 생성
wokbjso Oct 6, 2023
3ce6e24
Design:프로필 메인 레이아웃 border-radius 지정
wokbjso Oct 6, 2023
67a8890
Feat:프로필 페이지 바로가기 레이아웃 생성
wokbjso Oct 7, 2023
7d9d133
Feat:친구 목록 페이지 검색 헤더 레이아웃 생성
wokbjso Oct 7, 2023
9efc64c
Feat:친구 목록 파트 분리 헤더 레이아웃 생성
wokbjso Oct 7, 2023
26df787
Feat:친구 목록 페이지 친구 정보 레이아웃 컴포넌트 생tjd
wokbjso Oct 8, 2023
091b724
Feat:친구목록 디자이너 띄우기
wokbjso Oct 8, 2023
4193bf9
Feat:친구 목록 페이지 디자이너 정보 추가
wokbjso Oct 9, 2023
c0424ab
Feat:친구 목록 페이지 Divider 화면에 구현
wokbjso Oct 9, 2023
cf60130
Feat:친구 목록 페이지 개발자 목록 생성
wokbjso Oct 9, 2023
3a30b32
Design:채팅 목록 페이지 주요채팅 텍스트 컨테이너 margin 수정
wokbjso Oct 9, 2023
f3a036c
Design:채팅 목록 페이지 devider 색 수정
wokbjso Oct 9, 2023
055dda1
Design:백 버튼과 채팅 제목 사이 간격 수정
wokbjso Oct 9, 2023
917466e
Design:채팅 버블 텍스트 font-weight 수정
wokbjso Oct 9, 2023
9160340
Feat:채팅 버블 최대 width 설정
wokbjso Oct 9, 2023
684e353
Design:말풍선 삼각형 border-radius 적용
wokbjso Oct 9, 2023
934726c
Design:채팅 버블 시간 텍스트 디자인 수정
wokbjso Oct 9, 2023
e0d5bc4
Design:채팅 목록 리스트 사진과 텍스트 간격 수정
wokbjso Oct 9, 2023
2bb140d
Design:페이지 서브헤더 제목 text 색 수정
wokbjso Oct 9, 2023
508f870
Feat:채팅 목록 페이지 채팅 목록 레이아웃 margin 수정
wokbjso Oct 9, 2023
2dfa82b
Feat:검색 시 데이터 filter 하는 함수 제네릭으로 선언
wokbjso Oct 11, 2023
c7d5ce4
Feat:검색 함수 search text 가 빈 문자열이면 listData를 그대로 반환하도록 수정
wokbjso Oct 11, 2023
6d98e41
Feat:검색 창 입력때마다 해당되는 친구 리스트만 화면에 뜨도록 처리
wokbjso Oct 11, 2023
4e71015
Refactor:검색된 리스트 변수로 선언하여 사용
wokbjso Oct 11, 2023
31a6412
Feat:성능 저하 방지를 위한 debounce 처리
wokbjso Oct 11, 2023
f8b7d01
Feat:친구 목록 페이지 검색바 검색 아이콘 클릭 여부에 따라 화면에 보이도록 수정
wokbjso Oct 11, 2023
074e362
Feat:채팅 목록 페이지 검색바 검색 아이콘 클릭 여부에 따라 화면에 보이도록 수정
wokbjso Oct 11, 2023
aa1eecb
Feat:채팅 목록 페이지 검색바에 입력된 텍스트에 맞는 리스트만 화면에 보여지게 구현
wokbjso Oct 11, 2023
0e7ddbd
Design:검색 창 인풋 글자 크기 수정
wokbjso Oct 11, 2023
627456b
Design:친구 목록 페이지 칩 버튼 텍스트 사이즈 수정
wokbjso Oct 11, 2023
044919a
Design:친구 목록 페이지 Divider 색깔 수정
wokbjso Oct 11, 2023
69b39a1
Design:채팅 버블 텍스트 font-weight 수정
wokbjso Oct 11, 2023
05836e7
Design:채팅 버블 반응 및 시간 컨테이너 height 수정
wokbjso Oct 11, 2023
eef22dd
Design:채팅방 입력 컨테이너 위에 Divider 추가
wokbjso Oct 11, 2023
56b05d0
Design:채팅 입력 폰트 사이즈 채팅 버블 폰트 사이즈와 통일
wokbjso Oct 11, 2023
1a50468
Design:프로필 칩 버튼 디자인 수정
wokbjso Oct 11, 2023
d746d1a
Design:프로필 페이지 메일 아이콘 교체
wokbjso Oct 11, 2023
7d21724
Design: 프로필 페이지 링크 아이콘과 텍스트 사이 간격 수정
wokbjso Oct 11, 2023
168a8cb
Feat:프로필 페이지 바로가기 텍스트 디자인 수정
wokbjso Oct 11, 2023
3a0035d
Refactor:navigate 커스텀 훅 선언 취소
wokbjso Oct 11, 2023
7998dd9
Feat:검색 시 공백 입력 고려
wokbjso Oct 11, 2023
523596f
Refactor:서치바 보여주는 함수 처리 onClick에 바로 선언
wokbjso Oct 11, 2023
62fef4e
Design:채팅목록 페이지 Divider 색 수정
wokbjso Oct 11, 2023
20eff9d
Design: 채팅 리스트 페이지 Divider 에 margin 설정
wokbjso Oct 12, 2023
a66eb4e
Design:친구 정보 리스트 메세지 텍스트 크기 수정
wokbjso Oct 12, 2023
c6609d5
Design: 프로필 페이지 헤더 색 수정
wokbjso Oct 12, 2023
7c6ca31
프로필 페이지 route 에서 status bar 색 변경
wokbjso Oct 12, 2023
a17fcaa
Design:채팅 리스트 검색 시 sub chat만 있을 때 margin-bottom 추가
wokbjso Oct 12, 2023
fa6bdf6
Design:친구 목록 페이지에서 해당 사항 없는 헤더 UI 에서 안보이게 수정
wokbjso Oct 12, 2023
dc7fcea
Design:프로필 사진 배경이 흰색일때도 border 보이도록 수정
wokbjso Oct 12, 2023
341611d
Design:채팅 좋아여 버튼 디자인 수정
wokbjso Oct 12, 2023
8b62c1d
Feat:친구 목록 페이지에서 이름 누르면 해당 친구의 톡방으로 들어가는 flow 구현
wokbjso Oct 12, 2023
94fbc60
Chore:채팅 목록 리스트 클릭시 1:1 대화에서 단톡방 느낌으로 수정
wokbjso Oct 13, 2023
5e5ce05
Feat:친구 목록 페이지에서 단톡 클릭시 해당 데이터와 연동되어 화면에 띄워지게 구현
wokbjso Oct 13, 2023
c0f4a80
Refactor:채팅 룸 디폴트 데이터 초기에 chatData에 포함되어 렌더링되게 수정
wokbjso Oct 13, 2023
2ad67fa
Chore:친구 목록 페이지 프로필 사진 수정
wokbjso Oct 13, 2023
7477119
Feat:친구 목록 페이지에서 프로필을 클릭해도 해당 친구의 채팅방으로 이동하도록 수정
wokbjso Oct 13, 2023
90c479c
Refactor:디폴트 채팅 데이터 props 정의 import 하여 사용
wokbjso Oct 13, 2023
7e83b81
Refactor:채팅 wrapper 에서 bubble 로 props 넘길 때 Partial 유틸리티 타입 사용
wokbjso Oct 13, 2023
48c664f
Refactor:버튼 컴포넌트 타입 유틸리티 타입으로 재정의
wokbjso Oct 13, 2023
61e7c5b
Design:채팅 짧은 것을 고려하여 좋아요가 생기면 텍스트 버블이 같이 커지는 현상 방지
wokbjso Oct 14, 2023
52cb658
Design:채팅 버블 삼각형 크기 수정
wokbjso Oct 15, 2023
2c011d4
Feat:단체 톡방 클릭 시 인원 수 헤더에 뜨도록 수정
wokbjso Oct 15, 2023
4dca403
Fix:친구 채팅 리스트 색깔 회색으로 나오는 버그 수정
wokbjso Oct 15, 2023
d9c64cf
Design:채팅 레이아웃 수정
wokbjso Oct 15, 2023
1758146
Feat:채팅 보낼 때 같은 시간에 보낸 버블 텍스트에는 시간 표시 안하게 기능 추가
wokbjso Oct 16, 2023
2de9d69
Fix:영어 채팅에도 max-width 적용 되도록 수정
wokbjso Oct 16, 2023
ece3136
Refactor:status bar 시간 외부 훅에서 가져오도록 리팩토링
wokbjso Oct 16, 2023
913bd0f
ReName:홈 채팅 리스트 파일 이름 변경
wokbjso Oct 16, 2023
3dfe571
Refactor:프로필 컴포넌트에서 styled-components 태그에 props 유틸리티 타입으로 설정
wokbjso Oct 16, 2023
9f2ff05
Refactor:GroupChatDatabox의 props 전달 시 유틸리티 타입 Partial에서 Omit으로 변경
wokbjso Oct 16, 2023
8a4051b
Refactor:채팅 데이터 props 를 따로 관리
wokbjso Oct 16, 2023
04f17e8
Refactor:버튼 props 외부에서 따로 관리
wokbjso Oct 16, 2023
56a5be5
Refactor:버튼 컴포넌트들 props 유틸리티 타입 Partial 로 직관적이게 변경
wokbjso Oct 16, 2023
7546ca0
Refactor: 채팅 wrapper 에서 bubble로 props 넘길 때 유틸리티 타입 Omit으로 변경
wokbjso Oct 16, 2023
6af690a
Renaame:props 폴더 commonProps 로 rename
wokbjso Oct 17, 2023
b328d0b
Refactor:폴더&파일 구조 및 이름 재정비
wokbjso Oct 30, 2023
eb774c9
Feat:craco 로 절대경로 설정
wokbjso Oct 31, 2023
332d904
Feat:폴더 별 index.ts 파일 사용하여 파일별 import 줄이도록 작성
wokbjso Oct 31, 2023
79996e3
Feat:페이지 폴더 index.ts 파일들로 정리
wokbjso Oct 31, 2023
cae35ad
Refactor:Chip Button 컴포넌트로 재정의
wokbjso Oct 31, 2023
4a8b14c
Refactor:Chip Button 컴포넌트 props에 fontStyles 제거
wokbjso Oct 31, 2023
0175971
Refactor:프로필 링크 버튼 컴포넌트화
wokbjso Oct 31, 2023
593c7fc
Feat:링크 버튼 클릭시 이동되게 설정
wokbjso Oct 31, 2023
92f9e4b
Refactor:서치바 wrapper 서치바 컴포넌트에 통합
wokbjso Oct 31, 2023
1f7b49a
Refactor:그룹 채팅 리스트 type props로 주요채팅 구분
wokbjso Nov 1, 2023
2602394
Refactor:검색된 그룹채팅 type 에 따라 list를 반환하는 로직 함수로 작성
wokbjso Nov 1, 2023
78f0e62
Refactor:불필요한 styled 제거
wokbjso Nov 1, 2023
3a32e7e
Refactor:친구 리스트 통합
wokbjso Nov 1, 2023
f41a01f
Refactor:친구 리스트 filter 결과 const 로 선언하여 사용
wokbjso Nov 1, 2023
3f5f02d
Refactor:채팅 리스트 filter 결과 const 로 선언하여 사용
wokbjso Nov 1, 2023
177ed64
Refactor:filtering 함수 제네릭 함수로 선언하여 관리
wokbjso Nov 1, 2023
7e5f0db
Feat:친구들 프로필을 누르면 각 유저의 정보를 보여주도록 로직 수정
wokbjso Nov 1, 2023
0e5f036
Refactor:채팅 내용 state 파일화
wokbjso Nov 2, 2023
46dd6e1
Remove:불필요한 시간 저장 로직 삭제
wokbjso Nov 2, 2023
fac5c5c
Rename:status bar 시간 업데이트 해주는 파일 이름 수정
wokbjso Nov 2, 2023
07a0312
Refactor:헤더 클릭하여 유저 변경 로직 customHook으로 관리
wokbjso Nov 2, 2023
238490c
Refactor:채팅 입력 시 일어나는 로직 custom hook으로 정리
wokbjso Nov 2, 2023
edc4d61
Refactor:전송 버튼 클릭 시 로직 custom hook으로 관리
wokbjso Nov 2, 2023
aafb7cb
Refactor:친구 리스트 정보 state로 따로 관리
wokbjso Nov 2, 2023
5e7749e
Feat:친구들 프로필 클릭 시 다른 정보 보여지도록 설정
wokbjso Nov 2, 2023
48fab1d
Feat:페이지에 들어갈 때 input이 focus되도록 설정
wokbjso Nov 3, 2023
0402c59
Rename:친구 정보 state props 이름 변경
wokbjso Nov 4, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions Dockerfile.prod
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
FROM node:14 AS builder

# set working directory
WORKDIR /app


# install app dependencies
#copies package.json and package-lock.json to Docker environment
COPY package-lock.json ./
COPY package.json ./
# Installs all node packages
RUN npm i


# Copies everything over to Docker environment
COPY . ./
RUN npm run build

#Stage 2
#######################################
#pull the official nginx:1.19.0 base image
FROM nginx
#copies React to the container directory
# Set working directory to nginx resources directory
# WORKDIR /usr/share/nginx/html
COPY config/nginx/default.conf /etc/nginx/conf.d/default.conf
# Remove default nginx static resources
RUN rm -rf ./usr/share/nginx/html/*
# Copies static resources from builder stage
COPY --from=builder /app/build /usr/share/nginx/html/
# Containers run nginx with global directives and daemon off
EXPOSE 3000
ENTRYPOINT ["nginx", "-g", "daemon off;"]
83 changes: 37 additions & 46 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,57 @@
# 서론
# 4주차 미션: React-Messenger 💌

안녕하세요 🙌🏻 18기 프론트 운영진 김문기입니다. 이번 미션에서는 드디어 투두리스트에서 벗어나 새로운 프로젝트인 **messenger** 만들기를 진행합니다.
## 서론

이번주는 특별히 **디자이너와의 협업**으로 진행되는 미션입니다. 디자이너분께서 열심히 리디자인 한 메신저 프로젝트를 여러분들께서 구현해주시면 됩니다.
안녕하세요 🙌🏻 프론트엔드 운영진 김문기입니다.

동시에, 이번주부터는 새로 **TypeScript**를 적용해보려고 합니다.
다들 저번주 미션은 어떠셨나요? 이번주에는 저번 과제를 확장하여 보다 더 완성도 높은 메신저 서비스를 만들어 봅시다.

프로젝트의 규모가 커지게 될 수록, 컴포넌트가 가지는 props의 종류 또한 다양해지게 됩니다. 무지성 코딩을 하다보면 가끔 이 props의 구성과 이름, 어떤 타입이 들어가야 하는지 헷갈리기 마련이죠. 보통 그럴 때 다시 컴포넌트 정의 부분으로 돌아가 props의 구성을 보고 오곤 합니다.
이번주 과제의 목표는 React에서 **Routing**을 구현하는 방법과 **상태를 관리**하는 방법에 대해 익숙해지는 것입니다. 해당 부분을 잘 고려하시면서 미션을 수행해 주세요!

하지만 이럴 때, typescript를 적용한다면 컴포넌트의 구성과 그 이름, 심지어 타입까지 한번에 자동완성으로 편리하게 관리할 수 있고, 생산성이 증대되겠죠.
또한, 이번주에는 디자이너 측에서 QA를 전달해주실 예정입니다. 전달받은 QA에 대해 디자이너와 소통 후, 이를 고쳐보시는 과정도 수행해주세요!

또한, **React Hooks**에 조금 더 익숙해지는 것을 목표로 합니다. 여러 Hook들이 있지만 그 중에서도 `useState`, `useEffect`, `useRef`를 중점적으로 사용해 보는 미션인데요, React를 사용하면서 굉장히 자주 쓰이는 Hook들이기 때문에 이 부분을 집중적으로 공부해 보아요!
그럼 이번주도 파이팅입니다 😤

그럼 이번 미션도 파이팅입니다!!🎉
## 미션

# 미션
### 미션 목표

## Key Questions

- JavaScript를 사용할때에 비해 TypeScript를 사용할 때의 장점은 무엇인가요?
- 디자이너로부터 전달받은 피그마 링크 혹은, 피그마 캡처본
- 컴포넌트를 분리한 기준은 무엇인가요?
- 디자인 시스템을 적용하면서 느낀 점은 무엇인가요?
- 디자이너와 소통하며 느낀점은 무엇인가요?
- SPA의 개념을 이해하고, 그에 따른 라우팅을 구현합니다.
- 디자이너로부터 QA를 전달받고, 이에 대한 대응합니다.
- React에서 사용하는 상태 관리 방법에 익숙해집니다.
- UI 컴포넌트의 중복을 줄여 봅니다.
- 코드를 확장/재사용/리팩토링하는 방법을 이해합니다.

## 미션 목표
### 기한

- TypeScript를 사용해봅시다.
- useState로 컴포넌트의 상태를 관리합니다.
- useEffect와 useRef의 사용법을 이해합니다.
- styled-components를 통한 CSS-in-JS 및 CSS Preprocessor의 사용법에 익숙해집니다.
2023년 11월 3일 금요일 (기한 엄수!)

## 기한
### 필수 요건

2023년 9월 29일 금요일
- 친구 목록 페이지, 채팅 목록 페이지, 설정 페이지 세 부분으로 구성합니다.
- 채팅 목록을 누르면 3주차 미션에서 구현했던 채팅방으로 이동합니다.
- 검색 기능을 추가하여 검색한 내용과 일치하는 이름을 가진 사용자만 화면에 표시합니다.
- (선택) 각자 메신저에 추가하고 싶거나, 구현하고 싶은 기능 마음껏 구현합니다. ✨
- Custom hooks를 통해 중복되는 로직을 줄입니다.

## 필수 구현 기능
### 선택 사항

- 피그마를 보고 [결과화면](https://3th-fb-messenger.netlify.app)과 같이 구현합니다.
- 디자인 시스템을 구축합니다.
- 채팅방 상단의 프로필을 클릭하면 사용자를 변경할 수 있습니다.
- 메세지를 보내면 채팅방 하단으로 스크롤을 이동시킵니다.
- 메세지에 유저 정보(프로필 사진, 이름)를 표시합니다.
- user와 message 데이터를 json 파일에 저장합니다.
- UI는 **반응형을 제외**하고 피그마파일을 따라서 진행합니다.
- Recoil, Redux 등의 상태 관리 라이브러리를 적용해 봅니다.
- Base UI component system을 통해 UI 컴포넌트의 코드 재사용성을 높입니다.

### 추가 구현 기능

- 더블 클릭 하면 감정표현을 추가합니다.
- 그 외 추가하고 싶은 기능이 있다면 마음껏 추가해 주세요!
## Key Questions

참고로 이번 과제는 다음주까지 이어지는 과제이므로 **확장성**을 충분히 고려해 주세요. 참고로 **4주차 과제에서는 유저 및 기능 추가와 Routing을** 진행합니다. 이를 위해 [recoil](https://recoiljs.org/ko/)이나 [redux](https://ko.redux.js.org/introduction/getting-started/)를 이용한 상태관리를 미리 해보시는 것을 추천합니다!! 모두 공식문서 많이 읽어보시고 자신만의 상태관리 조합도 찾아보면 재밌을 거에요 XD
- 디자이너로부터 받은 QA 목록
- QA 반영한 커밋(or 브랜치) 링크 (커밋 분리 필수!!!)
- Routing
- SPA
- 상태관리

## 링크 및 참고자료

- [React docs - Hook](https://ko.reactjs.org/docs/hooks-intro.html)
- [React의 Hooks 완벽 정복하기](https://velog.io/@velopert/react-hooks#1-usestate)
- [useEffect 완벽 가이드](https://overreacted.io/ko/a-complete-guide-to-useeffect/)
- [코딩 컨벤션](https://ui.toast.com/fe-guide/ko_CODING-CONVENTION)
- [타입스크립트 핸드북](https://joshua1988.github.io/ts/intro.html)
- [리액트 프로젝트에서 타입스크립트 사용하기 (시리즈)](https://velog.io/@velopert/series/react-with-typescript)
- [디자인 시스템 구축기](https://yozm.wishket.com/magazine/detail/1830/)
- [[영상] : 컴포넌트에 대한 이해](https://www.youtube.com/watch?v=21eiJc90ggo)
- [Styled Component로 디자인 시스템 구축하기](https://zaat.dev/blog/building-a-design-system-in-react-with-styled-components/)
- [ts 절대경로 설정하기](https://tesseractjh.tistory.com/232)
- [React Router v6 튜토리얼](https://velog.io/@velopert/react-router-v6-tutorial)
- [(선택) react-router v6에서는 어떤 것들이 변했을까?](https://blog.woolta.com/categories/1/posts/211)
- [React 상태 관리 가이드](https://www.stevy.dev/react-state-management-guide/)
- [Flux 패턴이란?](https://velog.io/@huurray/React%EC%9D%98-%ED%83%84%EC%83%9D%EA%B3%BC-Flux-%ED%8C%A8%ED%84%B4%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC)
- [useReducer](https://www.daleseo.com/react-hooks-use-reducer/)

12 changes: 12 additions & 0 deletions config/nginx/default.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
server {
listen 3000;
root /usr/share/nginx/html;
index index.html;

location / {
try_files $uri /index.html;
}

error_log /var/log/nginx/api_error.log;
access_log /var/log/nginx/api_access.log;
}
12 changes: 12 additions & 0 deletions craco.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
const path = require("path");

module.exports = {
webpack: {
alias: {
"@common": path.resolve(__dirname, "src/common"),
"@features": path.resolve(__dirname, "src/features"),
"@pages": path.resolve(__dirname, "src/pages"),
"@styles": path.resolve(__dirname, "src/styles"),
},
},
};
6 changes: 6 additions & 0 deletions custom.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
declare module "*.svg" {
import React = require("react");
export const ReactComponent: React.FC<React.SVGProps<SVGSVGElement>>;
const src: string;
export default src;
}
Loading