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

[Release] 231116 week2 배포 #64

Merged
merged 28 commits into from
Nov 16, 2023
Merged

[Release] 231116 week2 배포 #64

merged 28 commits into from
Nov 16, 2023

Conversation

milk717
Copy link
Collaborator

@milk717 milk717 commented Nov 16, 2023

No description provided.

quiet-honey and others added 28 commits November 11, 2023 18:15
* test: Member API E2E 테스트 코드 작성

1. /api/member GET API 에 대한 성공 테스트
2. /api/member GET API에서 유효하지 않은 토큰 사용으로 인한 실패 테스트
위의 2가지의 경우에 대한 테스트 코드 작성

* style: lint 적용

* test: 인수 테스트 코드 로직 변경 완료

GET /api/member에 대한 E2E 테스트 완료

* style: Window 개행문자 관련 에러 해결을 위한 lint 설정 추가

* feat: TestingModule을 생성하는 Util 메서드 구현
* feat: InterviewCamera 내부 state 정의

* feat: 현재 브라우저에서 지원가능 한 MimeType을 명시

* feat: 현재 Media에 연결 기능 구현

* feat: 마운트시 바로 stream 연결

* feat: Record 시작함수 구현

* feat: record stop 함수 구현

* feat: Record Download 함수 구현

* feat: InterviewCamera 내부 state 정의

* feat: 현재 브라우저에서 지원가능 한 MimeType을 명시

* feat: 현재 Media에 연결 기능 구현

* feat: 마운트시 바로 stream 연결

* feat: Record 시작함수 구현

* feat: record stop 함수 구현

* feat: Record Download 함수 구현

* feat: InterviewCamera 내부 state 정의

* feat: 현재 브라우저에서 지원가능 한 MimeType을 명시

* feat: 현재 Media에 연결 기능 구현

* feat: 마운트시 바로 stream 연결

* feat: Record 시작함수 구현

* feat: record stop 함수 구현

* feat: Record Download 함수 구현

* feat: InterviewCamera 내부 state 정의

* feat: 현재 브라우저에서 지원가능 한 MimeType을 명시

* feat: 현재 Media에 연결 기능 구현

* feat: 마운트시 바로 stream 연결

* feat: Record 시작함수 구현

* feat: record stop 함수 구현

* feat: Record Download 함수 구현

* feat: InterviewCamera 내부 state 정의

* feat: 현재 브라우저에서 지원가능 한 MimeType을 명시

* feat: 현재 Media에 연결 기능 구현

* feat: 마운트시 바로 stream 연결

* feat: Record 시작함수 구현

* feat: record stop 함수 구현

* feat: Record Download 함수 구현

* feat: InterviewCamera 내부 state 정의

* feat: 현재 브라우저에서 지원가능 한 MimeType을 명시

* feat: 현재 Media에 연결 기능 구현

* feat: 마운트시 바로 stream 연결

* feat: Record 시작함수 구현

* feat: record stop 함수 구현

* feat: Record Download 함수 구현

* feat: InterviewCamera 내부 state 정의

* feat: 현재 브라우저에서 지원가능 한 MimeType을 명시

* feat: 현재 Media에 연결 기능 구현

* feat: 마운트시 바로 stream 연결

* feat: Record 시작함수 구현

* feat: record stop 함수 구현

* feat: Record Download 함수 구현

* feat: InterviewCamera 내부 state 정의

* feat: 현재 브라우저에서 지원가능 한 MimeType을 명시

* feat: 현재 Media에 연결 기능 구현

* feat: 마운트시 바로 stream 연결

* feat: Record 시작함수 구현

* feat: record stop 함수 구현

* feat: Record Download 함수 구현

* feat: video UI 기능 구현

* fix: log 문제

* fix: InterviewCamera 파일시스템 문제 해결

* chore: 상대경로 수정

* chore:  CameraRef 이름 변경
* refactor: 로그인 시 Access Token이 Header로 반환되도록 변경

* chore: JWT를 쿠키에 넣어 사용하기 위해 cookieParser 미들웨어 추가

* fix: 구글에 성 또는 이름이 등록되지 않은 경우에 undefined로 닉네임이 설정되는 버그 수정

* feat: auth api 엔드포인트를 /auth에서 /api/auth로 명세서에 맞게 변경

* feat: AuthGuard가 jwt를 accessToken이라는 key로 저장된 쿠키에서 추출하여 작동하도록 변경

* feat: accessToken 정보를 얻어오는 util 메서드가 accessToken이라는 키를 가지는 쿠키에서 얻어오도록 변경

* feat: 토큰 재발행 API가 새로 발급한 accessToken을 body로 넘기는 것이 아닌 쿠키로 넘기도록 로직 변경

* refactor: 동일한 CookieOption이 로그인 로직과 재발행 로직에서 반복적으로 사용되어 이를 하나의 상수로 선언하여 리팩터링 진행

* remove: 사용하지 않는 tokenResponse Dto 삭제

* feat: Header를 포함한 swagger ApiResponse Option을 생성하는 메서드 구현

* docs: 토큰을 cookie로 반환하는 내용을 swagger 문서에 적용
* feat: 질문을 추가하고 id를 통해 삭제하는 기능 구현

* fix: 누락된 코드 추가

* style: lint 적용

* refactor: auth api에도 /api/auth로 경로 명세 통일

* feat: 커스텀 질문을 저장하는 비즈니스 로직 구현

* feat: 컨트롤러에서 커스텀 질문을 저장하는 로직에 대한 리펙토링 진행 && 비즈니스 로직에서 일반 질문 저장 로직 주석처리

* docs: 게시물 생성에 대한 swagger 문서 추가

* feat: 게시글 삭제 로직 구현

* feat: 다대다 매핑의 Question, Member에서 Question을 삭제하는 비즈니스 로직 구현

* feat: 컨트롤러 로직에서 Bearer토큰을 이용한 AuthGuard가 적용되게 기능 추가

* style: lint 적용

* refactor: 카테고리 별 조회를 위한 쿼리문 수정
* feat: 면접 화면에 띄울 이름을 반환할 API 구현을 위한 플로우 설정

* feat: 토큰이 없는 비회원의 경우에 '면접자'를 반환하도록 구현

* feat: 토큰이 존재하는 회원의 경우에 현재 회원의 nickname을 반환하도록 구현

* docs: 면접 화면에 표출할 이름을 반환하는 메서드 Swagger 문서화 완료

* refactor: 토큰으로 회원 정보를 불러오는 로직을 메서드화하여 재사용성을 높임
* fix: box의 arg가 연결되어 있지 않았던 현상 해결

* refactor: shadow 색상 값도 color에서 관리하도록 수정

* design: modal 컴포넌트 compund component 패턴으로 UI 생성

- theme에 shadow값 추가
- svg 크기는 props로 넘겨야함

* feat: props 및 상태관리 추가

* refactor: modal 컴포넌트 조합을 재설정

- modal 사용 방법을 modal.laout에서 modal로 변경

* feat: ModalHeader close button에 close 파라미터 주입

* fix: closebutton 위치 재조정

- flex 범위를 벗어나지 않도록 변경

* fix: border 겹칠때 흰 공간 생기는 버그 해결

* fix: closeIcon text와 align이 맞도록 조절

- font 추가
* feat: setting 전역 상태 생성

* chore: atoms 경로 설정 추가

* fix: 선택된 문제 데이터 변환 수정
* feat: 존재하는 질문들의 카테고리를 조회하는 기능 구현

* test: 게시글을 저장할 때 비즈니스로직에서 성공/실패를 검증하는 테스트코드 추가

* refactor: 나만의 질문 내용을 입력하지 않으면 예외처리되도록 기능 수정

* test: 카테고리를 조회하는 단위테스트 추가

* test: 게시물 삭제에 대한 성공, 실패의 단위테스트 구현

* refactor: 비회원의 나만의 질문 카테고리 조회를 권한없음으로 처리하도록 수정

* chore: 반복적으로 생성되는 상수의 Member, Question, OAuthRequest를 Fixture모듈로 이동

* test: req.user를 중복적으로 사용해 Fixture로 분리 && 커스텀 질문 생성을 성공하는 컨트롤러 단위테스트 구현

* test: 커스텀 질문 생성에 실패하는 컨트롤러 단위테스트 구현

* test: 존재하는 카테고리를 조회하는 테스트코드 구현

* test: 나만의 질문을 삭제하는 것을 검증하는 단위테스트 구현

* test: 컨트롤러에서 나만의 질문이 권한없음으로 실패하는 것을 검증하는 단위테스트 구현

* chore: questionService의 CategoriesResponse를 Controller로 이동하며 import 제거

* test: 컨트롤러 통합테스트에서 토큰을 파싱해 통합테스트할 수 있게 supertest의 agent로 로직 수정

* test: 나만의 커스텀 질문을 저장하는 비즈니스로직에 대한 통합테스트 추가

* test: 카테고리를 조회하는 비즈니스 로직을 검증하는 통합테스트 추가

* test: 질문을 삭제하는 비즈니스 로직을 검증하는 통합테스트 구현

* build: 테스트를 위한 sqlite3 라이브러리 추가

* test: 전체 카테고리를 조회하는 컨트롤러 통합테스트 구현

* refactor: 어떤 경우에도 모든 카테고리가 정렬되어 나오도록 리펙토링

* test: Question API에 대한 컨트롤러 통합 테스트 추가

* test: 통합테스트에서 테스트 모듈을 만들어주는 로직을 재사용성있게 분리

* test: 컨트롤러 통합테스트 문제 수정
* feat: video 모듈과 video 엔티티 코드 작성

* feat: video 저장 로직 구현을 위한 controller, service 계층에 메서드 선언

* feat: 비디오 저장 API에서 Request Body로 사용할 CreateVideoRequest 클래스 정의

* feat: 질문 ID, 비디오 파일 이름과 url을 받아 비디오 정보를 DB에 저장하는 API 구현 완료

* refactor: video 객체 생성시 new에서 팩토리 메서드로 변경

* docs: 비디오 URL 저장 API Swagger 문서화 완료

* feat: 비디오 등록용 Pre-Signed URL 반환용 API를 위한 Controller, Service 계층 메서드 설계

* chore: idrive 사용을 위한 aws-sdk 의존성 추가

* feat: IDrive 사용을 위한 S3Client를 싱글톤으로 생성하고 이를 반환하는 메서드 구현

* feat: IDrive Pre-Signed Url을 발급하기 위한 API에서 사용할 Request Dto 정의

* chore: uuid 사용을 위한 UUID 의존성 추가

* feat: preSignedUrl GET API에 사용할 Response 객체 정의

* feat: 비디오 업로드를 위한 PreSignedUrl API 구현

* feat: 파일 이름(key)에 question의 content가 들어갈 수 있도록 변경

* feat: IDrive 내부 API 사용 시 에러 발생 핸들 로직 추가

* feat: question이 DB에 존재하지 않는 경우 '삭제된 질문'으로 표시되도록 구현

* chore: 윈도우에서만 발생하는 특이한 경우를 처리하기 위해 설정 변경

* docs: Pre-Signed URL 발급 API Swagger 문서화 완료

* refactor: 컨트롤러 단에서 Request의 Member를 파싱하는 것으로 통일

* refactor: controller 계층의 메서드 매개변수 변경을 service 계층에서 변경

* rename: 메서드 내 오타 수정
* feat: 카테고리 객체 생성'

* feat: Category를 DB에 저장하고, 조회하는 Repository구현

* fix: dev rebase를 위해 conflict나는 app.module 임시 롤백
* feat: SelectionBox 컴포넌트 추가

* style: typography에 title4 속성 추가
* chore: ga 설정을 위해 react-ga4 종속성 추가

* chore: env파일 사용을 위한 웹팩 플러그인 추가

* feat: Google Analytics 최소 설정 완료
* test: video api mocking 추가

- 일단 명세대로 만들었으나 의문이 드는 부분과 변경 요청을 드리고 싶은 부분이 있어서 2023.11.14일에 대면으로 만나서 의논할 예정

* test: video api mocking 완료

* test: video api name 필드의 이름을 videoName으로 변경
* feat: 전역적으로 기본 폰트 설정

* design: AnswerSelectionModal UI 생성

* test: 백엔드 api res 변경에 따른 mocking 값 변경

* fix: textArea 옳바르지 않는 타입 수정

* feat: API hook 생성

- 예시 답안을 추가하는 useQuestionAnswerMutation추가
- 예시 답안을 조회하는 useQuestionAnswerQuery 추가

* feat: hook 폴더 생성에 따른 경로 추가 설정

* feat: AnswerSelectionModal 상태 추가

- hook을 이용한 data fetch 연결

* feat: 답변 추가시에 답변 api를 재호출

* refactor: useInput hook으로 분리

* feat: 빈값을 입력할 경우 api를 호출하지 않도록 막는다

* refactor: Typography 컴포넌트 사용

* style: 중괄호 제거

* refactor: queryKey를 상수로 관리

* feat: getAPIResponseData 유틸함수 추가
* feat: video 전체 조회 로직 구현을 위한 controller, service 계층에 메서드 선언

* feat: 비디오 조회 객체, 리스트 객체 구현

* feat: 자신의 모든 비디오 정보를 반환하는 API 구현 완료

* docs: 자신의 모든 비디오 정보를 반환하는 API Swagger 문서화

* feat: member 정보가 정상적으로 넘어오지 못하는 경우 에러 핸들링 로직 추가

* fix: import 시 파일 이름의 첫글자를 대문자로 import 해오는 문제 해결

* refactor: !member가 아닌 명시적으로 isEmpty()를 활용해 유효성 여부를 확인하도록 변경

* refactor: 회원이 존재하지 않으면 ManipulatedTokenNotFiltered 에러를 throw하는 로직을 util 메서드로 분리
* test: TDD를 위한 컨트롤러/서비스의 단위테스트 모듈 추가

* feat: 테스트를 위해 실패하는 createCategory비즈니스 로직 추가

* test: 비즈니스 로직의 카테고리 생성에 대한 단위테스트 추가

* feat: 모든 단위테스트를 통과하는 카테고리 추가 비즈니스 로직 구현

* feat: Category에서 응답을 위한 dto구현

* test: 카테고리 생성을 검증하는 컨트롤러 단위테스트 구현

* test: 컨트롤러 단위 테스트 정리 && 이에 맞는 컨트롤러 로직 구현

* test: 카테고리 추가에 대한 컨트롤러 통합테스트 코드 추가'

* docs: swagger문서를 위한 코드 추가

* refactor: 비즈니스 로직에서 회원을 검증하는 로직을 token.util의 메서드 재사용하게 수정
* chore: svg 파일들 추가

GlobalSvgProvider에 이동될 예정이지만, 그 변화를 보이기 위해 진행하는 작업입니다

* feat: GlobalSvgProvider 기본 셋팅

* feat: Icon 컴포넌트 개발

* feat: App에 GlobalSvgProvider 적용

* fix: Icon 컴포넌트 내부 type 문제 해결

css props와 onClick 함수를 전달하기 위해서 도입

* fix: Icon 컴포넌트로 svg 대체

* feat: script svg 추가

* fix: next svg 추가

* fix: record-start svg 추가

* fix: record stop svg 추가

* fix: timer svg 추가

* fix: google-logo svg 추가

* chore: 사용되지 않는 svg 모두 제거

* fix: @svgr/webpack 제거

* fix: 전역적으로 사용하지 않는 type svg 제거
* design: Compound Component Pattern으로 Tabs 컴포넌트 제작

* feat: enhanceChildElementProps 타입 변경

자식 컴포넌트의 props가 옵셔널이 아닐 때 부모 컴포넌트에서 특정 부분만 새로운 props로 변경해줄 때 타입 문제로 인해 newProps 타입을 부분집합으로 변경

* feat: Tabs 컴포넌트의 Tab 안에서 SelectionBox를 사용할 수 있도록 변경

* fix: radio 영역 클릭시 탭 전환 안되는 문제 수정

* fix: 라벨 padding 영역에서는 radio가 동작하지 않은채로 탭만 전환되는 문제 수정

* design: 선택된지 않은 탭 요소는 회색 글자로 표시

* feat: 체크 기본값을 위해 SelectionBox에 Props 추가

* feat: tab 패널 전환 방식을 조건부 랜더링에서 display none 방법으로 변경

* rename: value -> initialValue로 이름 변경

* feat: Tabs의 selectedValue 초기값 설정시 initialValue가 없다면 initialContext의 값을 사용하는 로직 제거

* refactor: Tabs 컴포넌트와 SelectionBox 컴포넌트 사이의 종속성 제거
* test: 회원의 카테고리를 조회하는 비즈니스로직을 검증하는 테스트코드 구현

* feat: 회원의 카테고리를 CategoryResponse객체의 배열로 반환하는 비즈니스 로직 구현

* refactor: 통합테스트 추가 && 통합테스트에 맞게 리포지토리 로직 수정

* docs: 컨트롤러에서 카테고리를 조회하는 최종적인 형태 문서화

* test: 컨트롤러에서 현재 카테고리를 조회하는 로직에 대한 단위테스트 구현

* feat: 카테고리에 대한 컨트롤러 단위테스트 추가 && 회원/비회원을 모두 처리할 때 반복되는 함수들을 jwt-soft로 분리

* feat: 컨트롤러에서 jwt-soft미들웨어를 통해 회원/비회원을 상황에 따라 받고, 이를 통해 카테고리를 반환해주는 컨트롤러 로직 구현

* test: 컨트롤러의 http상에서의 요청과 응답을 검증하는 로직 추가

* test: 컨트롤러 통합테스트에서 비회원일 때 memberId가 null인 카테고리들이 default로 반환되는 기능 구현

* refactor: getTokenValue에 try-catch의 중복된 사용으로 내부적으로 try-catch하게 수정

* test: 각 테스트 실행 이후에 레코드를 삭제하는 쿼리 추가
* feat: video 상세 조회 로직 구현을 위해 controller, service 계층에 메서드 선언

* feat: 비디오 상세 정보 조회 객체 구현

* feat: 비디오 ID를 통한 단순 조회 메서드 구현

* feat: 비디오 정보 조회 시 에러 핸들링 로직 추가

1. 조작된 토큰이 AuthGuard를 통과해 member의 id 정보가 없는 경우 (500)
2. 사용자가 private한 다른 사용자의 비디오를 조회하려고 시도하는 경우 (402)

* feat: url 해시를 제외한 비디오 상세 조회 API 로직 구현 완료

* feat: 양방향 암호화를 위한 암호화/복호화 메서드 구현

* refactor: /api/video/all이 /api/video/:videoId에 매핑되지 않도록 컨트롤러 메서드의 순서 변경

* feat: 비디오를 DB에서 조회할 수 없는 경우에 대한 에러 핸들링 로직 추가

* docs: 비디오 상세 정보 API Swagger 문서화

* refactor: video 전체 조회 API의 Swagger 문서 상에서 사용하는 예시 내용을 video.fixture.ts로 이동

* feat: 암호화/복호화 시의 에러 핸들링 로직 추가
* style: createVideoRequest 파일 이름 변수명 변경

* feat: 로그인 완료 시 마이페이지로 리다이렉트 되도록 FE 요구 사항 반영
* feat: 해시값으로 비디오 정보 불러오는 API를 위한 controller, service 계층 메서드 구조 구현

* feat: 해시값으로 비디오 정보 불러오는 API를 위한 repository 계층 메서드 구현

* feat: 해시값으로 비디오 정보 불러오는 API 구현 완료

* docs: 해시값으로 비디오 정보 불러오는 API Swagger 문서화 완료
* feat: Interview Header 컴포넌트 개발

* feat: InterviewCamera 컴포넌트 개발

1. 최소한의 반응형을 지원할것,
2. height를 고정후 width를 변화시키지만 over-flow : hidden 속성으로 x축 스크롤 방지
3. Question div 와  Answer Div 에 대한 기능 구현

* feat: InterviewFooter 컴포넌트 개발

1. 최소 기능 부여 (녹화 시작, 녹화 종료, 녹화 저장)

* feat: 최소 로직에 대한 기능 구현

* style: components/interviewPage의 컴포넌트 구조변경

* fix: Typograpy 디자인 반영

* fix: 저장하기 로직 예외처리

* style: Interview 페이지 내부 theme 적용

* feat: 면접 종료 Modal 구현

* fix: InterviewPageFooter의 Button 간격 수정

* feat: InterviewIntro 모달 구현

* fix: Interview Intro 모달의 문구 변경

* feat: interview finish 모달 구현

* feat:  InterviewTimeOver 모달 구현

* feat:  Interview 페이지 내부 false 상태로 modal 적용

* fix: record-stop 버튼에 대한 버그 수정

* feat: 위로 스크롤시 배경이 가려지는 문제 해결

* fix: 상단에 Question 고정
* remove: MyPageHeader 중복 파일 제거

* design: 버튼 border-radius 수정

* design: 로고 왼쪽 정렬로 수정

* design: 마이페이지 헤더, 프로필 영역 마크업

* design: padding에 맞춰 박스 사이즈 조절되도록 layout의 높이를 auto로 설정

* feat: VideoListBox 마크업 완료

* feat: Tabs 적용해서 마이페이지 탭  마크업

* design: 로고가 좌측 상단에 위치하도록 레이아웃 수정

* design: Thumbnail 컴포넌트 따로 분리

* design: 글자 줄 수 늘어나도 날짜 위치는 변하지 않도록 고정

* feat: 호버시 검정색 Cover 생성해주는 Card Cover 컴포넌트 생성

* design: CardCover 컴포넌트 적용해서 VideoItem 구성

* design: 비디오 공유 페이지에서도 VideoItem을 사용할 수 있도록 이동

* rename: VideoListBox에서 VideoListTabPanel로 이름 변경

* feat: video 플레이어 페이지 마크업 완료

* feat: 로고 누르면 랜딩페이지로 이동하도록 변경

* design: 스크롤 생기지 않게 비디오 사이즈 조정

* feat: idrive에 있는 url로 동영상 변경

* feat: 비디오 페이지에 면접 시작 버튼 추가

* chore: 메타설정 (favicon, title 등)
@milk717 milk717 added FE 프론트엔드 코드 변경사항 BE 백엔드 코드 변경사항 labels Nov 16, 2023
@milk717 milk717 added the feature 새로운 기능이 추가 된 경우 label Nov 16, 2023
@milk717 milk717 self-assigned this Nov 16, 2023
@milk717 milk717 merged commit ff5a89d into main Nov 16, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드 코드 변경사항 FE 프론트엔드 코드 변경사항 feature 새로운 기능이 추가 된 경우
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants