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

[FE] feat: WritingViewer 컴포넌트 구현, 글 조회 api 연결, storybook msw 설정 #60

Merged
merged 11 commits into from
Jul 18, 2023

Conversation

yogjin
Copy link
Collaborator

@yogjin yogjin commented Jul 16, 2023

🛠️ Issue

✅ Tasks

  • WritingViewer 컴포넌트 추가
    • image
    • image
  • html sanitize를 위해 dompurify 라이브러리 설치
  • WritingViewer 스토리 추가
  • 글 조회 api를(GET /wrtings/writingId) 연결
  • 글 조회 api msw mocking
  • msw-storybook-addon 라이브러리 설치
  • storybook에 msw 설정

⏰ Time Difference

  • 0

📝 Note

  • WritingViewer 컴포넌트 내부 스타일링은 규모가 커보여서 따로 이슈 파서 진행하겠습니다.
    • 트리플 프로그래밍으로 진행하는 것이 좋아보여요
  • dangerouslySetInnerHTML로 html을 바로 주입하면 XSS 등의 위협이 있기 때문에 DOMPurify 라이브러리를 이용해 html sanitize 하여 주입합니다.
  • 추후 WritingViewer 스토리에 msw 관련 코드 리팩터링은 mocks/handlers 리팩터링과 함께 진행하겠습니다.
  • WritingViewer 스토리에서 Docs 는 예상대로 동작하지 않습니다. (msw 모킹이 공유되기 때문에 글 가져오기 성공 스토리도 실패로 보입니다) 따라서 각 스토리 Success, Failure 로 봐야합니다.
  • 찾아본 storybook mocking 관련 addon을 공유합니다.
    • https://storybook.js.org/addons/msw-storybook-addon/: 제가 설치한 addon
      • 라이브러리 msw의 handlers를 그대로 가져와 적용할 수 있다는 장점이 있습니다. 가장 인기있는 addon입니다.
    • https://storybook.js.org/addons/storybook-addon-mock/
      • msw의 handlers를 사용할 수 없고 정해진 형식의 mockData를 따로 넣어줘야합니다.
      • image
      • 하나의 스토리에서 여러 상황을 볼 수 있는 장점이 있지만.. msw와 분리된 mockData를 사용해야한다는 점이 아쉬웠습니다.
    • https://storybook.js.org/addons/storybook-msw-addon/: 위 두 라이브러리의 장점들을 합치려고 하는 라이브러리
      • msw의 handlers를 사용하고 하나의 스토리에서 여러 상황을 볼 수 있게 한 라이브러리입니다.
      • 제가 잘못한걸수도 있는데 적용이 안됐습니다.. 또 최근 커밋이 3달전이라 개발자도 작업의지가 없어보여 선택하지 않았습니다.
  • 많은 issue를 한 PR에 포함해서 죄송합니다.. 각 이슈들이 서로 연결되어 있어 어쩔수 없었습니다ㅠ

@yogjin yogjin self-assigned this Jul 16, 2023
@yogjin yogjin added ⚙️ setting 프로젝트 세팅 🎨 UI 디자인, UI 🖥️ frontend 프론트엔드 작업 🌟 feature 기능 추가 labels Jul 16, 2023
@yogjin yogjin changed the title feat: WritingViewer 컴포넌트 구현, 글 조회 api 연결, storybook msw 설정 [FE]feat: WritingViewer 컴포넌트 구현, 글 조회 api 연결, storybook msw 설정 Jul 16, 2023
@yogjin yogjin changed the title [FE]feat: WritingViewer 컴포넌트 구현, 글 조회 api 연결, storybook msw 설정 [FE] feat: WritingViewer 컴포넌트 구현, 글 조회 api 연결, storybook msw 설정 Jul 16, 2023
Copy link
Collaborator

@nangkyeonglim nangkyeonglim left a comment

Choose a reason for hiding this comment

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

공유해주신 문서랑 이슈 잘 확인했습니다!
크게 리뷰할 건 없었고 태그 별 스타일만 정하면 될 거같아요

frontend/src/components/WritingViewer/WritingViewer.tsx Outdated Show resolved Hide resolved
frontend/src/mocks/handlers.ts Outdated Show resolved Hide resolved
Copy link
Member

@jeonjeunghoon jeonjeunghoon left a comment

Choose a reason for hiding this comment

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

고생하셨습니다~! 따로 리뷰할 건 없어보여서 바로 Approve 할게용

Copy link
Collaborator

@nangkyeonglim nangkyeonglim left a comment

Choose a reason for hiding this comment

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

반영해주신거 확인했습니다 고생하셨습니다~

@yogjin yogjin force-pushed the feature/writing-get-api-connect-36 branch from edd209f to 909450d Compare July 18, 2023 07:14
@yogjin yogjin merged commit e34ca32 into develop Jul 18, 2023
@yogjin yogjin deleted the feature/writing-get-api-connect-36 branch July 18, 2023 07:14
echo724 added a commit that referenced this pull request Aug 4, 2023
* [BE] feat: 프로젝트 초기 설정 (#8)

* [All] chore: 이슈/PR 템플릿 추가 (#4)

* �chore: 이슈 템플릿 추가

* chore: PR 템플릿 추가

* feat: 프로젝트 초기 설정

---------

Co-authored-by: Eun-chan Cho <echo.backend@gmail.com>

* [All] chore: 이슈/PR 템플릿 추가 (#11)

* chore: 이슈 템플릿 업데이트

* chore: PR 템플릿 경로 변경

* chore: PR 템플릿에 추정 시간 차이 추가

* chore: 이슈 템플릿에 추정 시간 추가

* chore: 이슈 템플릿 오류 수정

* [FE] chore: 프론트엔드 개발 환경 설정 (#12)

* chore: webpack 설정

Co-authored-by: Youngjin Park <youngjin988@gmail.com>
Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>

* chore: prettier 설정

Co-authored-by: Youngjin Park <youngjin988@gmail.com>
Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>

* chore: eslint 설정

Co-authored-by: Youngjin Park <youngjin988@gmail.com>
Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>

* chore: tsconfig 설정

Co-authored-by: Youngjin Park <youngjin988@gmail.com>
Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>

* chore: styled-components 설정

Co-authored-by: Youngjin Park <youngjin988@gmail.com>
Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>

* chore: storybook 설정

Co-authored-by: Youngjin Park <youngjin988@gmail.com>
Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>

* chore: 설정 파일 이동

Co-authored-by: Youngjin Park <youngjin988@gmail.com>
Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>

* chore: 절대 경로 설정

Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>
Co-authored-by: Youngjin Park <youngjin988@gmail.com>

* chore: msw 설정

Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>
Co-authored-by: Youngjin Park <youngjin988@gmail.com>

---------

Co-authored-by: Youngjin Park <youngjin988@gmail.com>
Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>

* �[BE] feat: 뼈대 코드 구현 (#24)

* feat: 뼈대 코드 구현

Writing, Block, Style 엔티티 설계

* feat: Repository 구현

Writing, Block, Style Repository 인터페이스 구현

---------

Co-authored-by: HubCreator <chocomilk8604@gmail.com>
Co-authored-by: ingpyo <juninpyo726@naver.com>
Co-authored-by: ezzanzzan <eunzzann@gmail.com>

* [FE] chore: 프론트엔드 개발 환경 수정 (#26)

chore: 개발환경 수정

Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>
Co-authored-by: Youngjin Park <youngjin988@gmail.com>

* [FE] chore: 절대 경로 설정 수정 (#38)

chore: 절대 경로 설정 수정

* [FE] fix: eslint 적용 되지 않는 현상 수정 (#43)

fix: eslint 적용 되지 않는 현상 수정

* [FE] chore: 프론트엔드 개발환경 추가 설정 (#45)

* chore: `.svg` 파일 관련 환경설정

`webpack`, `storybook` 설정

* refactor: 스토리북 `autodocs` 설정을 `true`로 변경

* chore: eslint import 에러 관련 룰 설정

- `no-unresolved` 무시
- import order 룰 추가
- `ingorePatterns` 추가

* chore: `tsconfig` `paths` field 설정

* design: 스토리북 용 컴포넌트 추가

* chore: svg icon 리소스 추가

* [BE] refactor: 기본 엔티티 리팩토링 (#48)

Co-authored-by: HubCreator <chocomilk8604@gmail.com>
Co-authored-by: ingpyo <juninpyo726@naver.com>
Co-authored-by: ezzanzzan <eunzzann@gmail.com>

* [FE] feat: API 추상화 로직 구현 (#52)

feat: API 추상화 로직 구현

Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>
Co-authored-by: Youngjin Park <youngjin988@gmail.com>

* [FE] refactor: writings API 타입 추가 및 관련 메서드 수정 (#56)

* feat: writings api 타입 추가

* refactor: writings api 메서드 수정

* [FE] feat: 레이아웃 구현 (#49)

* feat: Layout 컴포넌트 구현

* feat: 글 페이지 구현

* [FE] feat: API 추상화 로직 구현 (#52)

feat: API 추상화 로직 구현

Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>
Co-authored-by: Youngjin Park <youngjin988@gmail.com>

* [FE] refactor: writings API 타입 추가 및 관련 메서드 수정 (#56)

* feat: writings api 타입 추가

* refactor: writings api 메서드 수정

* feat: Layout 컴포넌트 구현

* feat: 글 페이지 구현

* refactor: 레이아웃 스타일 수정

---------

Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>
Co-authored-by: Youngjin Park <youngjin988@gmail.com>

* [FE] feat: `Spinner` 컴포넌트 구현 (#54)

* feat: `rotation` 애니메이션 추가

* feat: `Spinner` 컴포넌트 구현

* test: `Spinner` 스토리 작성

* [FE] feat: 글 생성 API mocking (#58)

* feat: 글 생성 POST API mocking 구현

* fix: body 데이터에 body가 한번 더 감싸서 오는 문제 수정

* [FE] feat: `Button` 컴포넌트 추가 (#50)

* design: styled-components `theme` 에 color 객체 추가

* test: `Button` 공통 컴포넌트 스토리북 추가

* feat: `Button` 공통 컴포넌트 뼈대 추가

* design: `Button` 공통 컴포넌트 `text` variant 추가

`genVariantStyle` 로 variantStyle 리팩터링

* refactor: 아이콘의 `width`, `height`, `fill`을 커스텀할 수 있게 `.svg` 파일 수정

* test: `Button` 컴포넌트 `WithIcon` 스토리 추가

* design: `Button` 컴포넌트 `icon` props 추가

* design: `Button` 컴포넌트 `background-color` 추가

* refactor: `Button` 컴포넌트 사용하지 않는 props 삭제

* refactor: 중복되는 `theme` 코드 리팩터링

* [BE] feat: 글 가져오기 컨트롤러 및 예외 핸들링 로직 구현 (#53)

* feat: 로깅 설정 파일 작성

* feat: CORS 설정 추가

* feat: yml에 프로파일 설정 추가 및 파일 업로드 컨트롤러 구현

* feat: ExceptionHandler 추가 및 커스텀 예외 뼈대 코드 구현

* [FE] feat: 글 가져오기 기능 구현 (#57)

* feat: `FileUploader` 컴포넌트 구현

* feat: `useFileInput` hook 구현

* feat: 사이드바에 글 가져오기 버튼 추가

* refactor: `FileUploader`를 `useFileUpload` 훅으로 리팩토링

* [FE] feat: 글 발행 POST API mocking 구현 (#66)

feat: 글 발행 POST API mocking 구현

* �[FE] feat: 글 생성 API 연결 (#67)

* fix: devtool sourcemap 에러 해결

* fix: 핸들러에 추가되지 않은 요청 처리 에러 수정

* fix: `addWriting` API formData 그대로 전송되도록 수정

* fix: `AddWritingRequest` type 수정

* refactor: body 데이터를 받을 수 있도록 `useMutationQuery` 수정

* refactor: `useMutation`으로 네이밍 변경

* refactor: `isLoading`으로 state 명 변경

* feat: 글 생성 API 연결

* [BE] �feat: 텍스트 파싱 기능 구현 (#65)

* refactor: 생성자 및 toString 생성

* refactor: NormalContent 과 Style 의 양방향 의존성 추가

* feat: StyleType 정규표현식 추가

* feat: 입력값의 따른 Content 추출 기능구현

* feat: 주어진 styleType를 모두 제거하는 기능구현

* feat: 주어진 styleType를 제외한 모든 style제거 기능구현

* feat: 모든 styleType을 제거하는 기능구현

* feat: 입력된 문자열의 적용된 스타일을 전부 반환하는 기능구현

* refactor: 컨벤션 적용

* refactor: 컨벤션 적용

* refactor: 사용하지 않는 조건문 제거 및 final키워드 추가

* refactor: 개행 제거

* [FE] feat: `WritingViewer` 컴포넌트 구현, 글 조회 api 연결, storybook msw 설정 (#60)

* chore: html sanitize를 위해 `dompurify` 라이브러리 설치

* refactor: api url 상수 리팩터링

* feat: `getWriting` api 메서드 mock handler 추가

* feat: 메인 페이지 중간에서 글을 보여주는 `WritingViewer` 컴포넌트 뼈대 추가

* chore: msw와 storybook 연결을 위해 `msw-storybook-addon` 라이브러리 설치

* chore: storybook msw 설정

* test: `WritingViewer` 스토리 추가

* refactor: `WritingViewer` 스토리북 msw 코드 리팩터링

* refactor: msw `writingHandlers` 파일분리

* refactor: storybook msw `preview.tsx` 에서 설정하는 것으로 변경

msw handlers 내부에서 Success, Error 반환

* feat: `WritingViewer` 에 글 제목 렌더링 추가

디자인은 추후 진행

* [FE] feat: 글 발행 기능 구현 (#46)

* feat: BlogButton 컴포넌트 구현

* feat: BlogList 컴포넌트 구현

* feat: PublishingSection 컴포넌트 구현

* refactor: try catch문 추가

* refactor: 발행 버튼 리스트 컴포넌트 이름 수정 및 버튼 컴포넌트 교체

* refactor: 발행 버튼 리스트 컴포넌트 스토리북 args 추가

* refactor: 발행 영역 컴포넌트 props 추가

* refactor: 컨벤션에 맞게 Props 타입 네이밍 수정

* refactor: publishWriting 파라미터 수정

* feat: check SVG 컴포넌트 추가

* feat: 배포 버튼 아이템 컴포넌트 구현

* refactor: MSW 핸들러 수정

* feat: 오른쪽 사이드 네비에 배포 버튼 연결

* chore: eslintrc tsconfig 루트 디렉토리 경로 수정

* refactor: 배포 버튼 아이템 성공 실패 피드백 UI 추가

* design: Layout padding 수정 및 사이드바 텍스트 제거

* refactor: 배포 버튼 리스트 PublishingSection으로 병합

* feat: domain 타입 파일 추가

* design: 레이아웃 padding 단위 수정

* refactor: 코드 스타일 수정

* fix: merge conflict 해결

* refactor: `loading` -> `isLoading` 수정

* [BE] feat , refactor:  개행을 기준으로 각 줄을 읽는 기능 구현 및 Parser 리팩터링  (#72)

* feat: 블럭의 타입을 찾는 기능 구현

* refactor: 파라미터 위치 변경

* feat: 개행의 따른 블럭추출 기능 구현

* refactor: 가독성의 위한 메서드 분 및 리팩터링

* refactor: 테스트 메소드 수정

* refactor: 매직레직스 제거 및 컨벤션의 따른 수정

* refactor: 매직레직스 제거 및 컨벤션의 따른 수정

* feat: 입력값의 따른 파싱된 Contents반환 기능 구현

* [BE] feat: 글 객체를 HTML로 변환하는 기능 구현 (#71)

* feat: BlockType에 맞는 Html 태그 추가

- BlockType을 통해 일치하는 HtmlType을 반환하는 기능 추가

* feat: 객체를 Html 형식으로 변환하는 기능, 테스트 구현

- HtmlRenderer class 추가
- HtmlRendererTest class 추가

* feat: StyleType에 맞는 Html 태그 추가

- StyleType을 통해 일치하는 HtmlStyleType을 반환하는 기능 추가

* feat: Style 객체를 Html 형식으로 변환하는 기능, 테스트 구현

- HtmlStyleRenderer class 추가
- HtmlStyleRendererTest class 추가

* refactor: 코드 컨벤션 적용

- HtmlRenderer class 메소드 분리 및 코드 컨벤션 적용
- HtmlStyleRenderer class 메소드 분리 및 코드 컨벤션 적용
- HtmlStyleRenderer 패키지 이동

* refactor: 코드 컨벤션 적용 및 중복 로직 제거

- final 키워드 추가

* refactor: 접근제어자 변경 및 리스트 렌더링 오류 수정

- HtmlRenderer class 내부 메소드 접근 제어자 변경
- List BlockType 렌더링 과정 중 발생한 오류 수정

* refactor: StringBuilder를 String으로 변환하는 메소드 변경

- String.valueOf(result) -> result.toString

* refactor: 접근제어자 변경

* [BE] feat: Medium API 서비스 구현 (#74)

* feat: Medium API 서비스 클래스 구현

* style: 상수와 필드 사이에 공백 추가

---------

Co-authored-by: HubCreator <chocomilk8604@gmail.com>

* [BE] feat: 글 영속화 로직 구현 (#75)

feat: 글 영속화 로직 구현

* [BE] feat: 글 조회 API 구현 (#76)

feat: 글 조회 API 구현

* [BE] refactor: 렌더링 기능 수정 (#78)

refactor: `HtmlType` 코드 블록 태그 오류 수정

* [BE] feat: 글 발행 API 구현 (#80)

feat: 글 발행 API 구현

Co-authored-by: echo <echo.backend@gmail.com>
Co-authored-by: HubCreator <chocomilk8604@gmail.com>
Co-authored-by: ezzanzzan <eunzzann@gmail.com>

* [BE] feat: 글 정보 조회 API 기능 구현 (#83)

* feat: 글 정보 조회 controller 기능 구현

* feat: 글 정보 조회 service 기능 구현

* refactor: 글 정보 조회 api 명세 변경에 따른 기능 수정

---------

Co-authored-by: ezzanzzan <cjsdmswjd821@naver.com>
Co-authored-by: ingpyo <juninpyo726@naver.com>

* [BE] refactor: 글 발행 API 리펙토링 (#84)

* feat: MediumAPI의 예외 처리 추가

* refactor: Blog 내부 타입 Enum 변경

* refactor: PublishService 리팩토링

* fix: rebase 충돌 해결

* fix: PublishedAt null 체크 제거

현재 상황에서 draft 상태로 블로그에 보낸다는 가정 없이 바로 발행되는 것으로 간주하기 때문에 Null이 들어가는 상황 없음

---------

Co-authored-by: HubCreator <chocomilk8604@gmail.com>

* [FE] feat: `WritingViewer` 컴포넌트 내부 태그 별 스타일 추가 (#87)

* feat: Divider 컴포넌트 구현

Co-authored-by: 전증훈 <jeonjeunghoon@gmail.com>
Co-authored-by: Youngjin Park <youngjin988@gmail.com>

* design: Layout 스타일 수정

* refactor: `writingContentMock` 내용 수정

* chore: `hightlight.js` 패키지 설정

* feat: `WritingViewer` 태그 별 스타일 추가

---------

Co-authored-by: 전증훈 <jeonjeunghoon@gmail.com>
Co-authored-by: Youngjin Park <youngjin988@gmail.com>

* [FE] feat: 업로드 성공 시 `WritingViewer`를 보여주는 기능 구현 (#88)

* chore: react-router-dom 설치 및 설정

Co-authored-by: 전증훈 <jeonjeunghoon@gmail.com>
Co-authored-by: Youngjin Park <youngjin988@gmail.com>

* feat: 파일 업로드 성공 시 업로드 한 글 페이지로 이동

* refactor: msw 핸들러 writingId 변경

* refactor: writingId param에서 받아오도록 수정

* feat: `useMutation`훅 응답 타입 지정

---------

Co-authored-by: 전증훈 <jeonjeunghoon@gmail.com>
Co-authored-by: Youngjin Park <youngjin988@gmail.com>

* [BE] refactor: 데모데이 전 마지막 리팩터링 (#89)

* refactor: 패키지 분리

* refactor: 리팩터링

- 개행 제거
- 중복 로직 제거
- 커스텀 에외 추가
- 블로그 이름 getter 재정의

---------

Co-authored-by: HubCreator <chocomilk8604@gmail.com>
Co-authored-by: echo724 <echo.backend@gmail.com>
Co-authored-by: ezzanzzan <eunzzann@gmail.com>

* [All] chore: 동글 CI/CD 구축 (#68)

* chore: github actions dev workflow 추가

* chore: github actions prod workflow 추가

* chore: deploy에서 docker-compose를 이용하도록 변경

* chore: be production yml 수정

* chore: frontend 개발환경 cicd actions 추가

* chore: frontend production 환경 actions 추가

* chore: docker-compose-dev.yml 추가

* �chore: 프론트엔드 Dockerfile-dev 추가

* chore: github actions self-hosted 분리

- github actions runner를 ubuntu-latest와 self-hosted 두개를 각각 사용
- private registry -> ghcr.io로 변경

* chore: `Dockerfile` 추가 및 수정

* chore: production용 Dockerfile 이름 변경

* chore: 프론트에서 `npm run` 대신 nginx로 서빙하도록 변경

* chore: docker-compose와 frontend nginx를 위한 설정파일 추가

* chore: cicd dev actions에 docker 이미지 초기화 추가

* chore: `npm` -> `yarn` 변경

* chore: backend `properties` 확장자 `yml`로 변경

* [BE] refactor: test코드 수정 (#91)

refactor: test코드 수정

* [FE] feat: 2차 데모데이 프론트엔드 - 백엔드 연동 테스트를 위한 webpack 설정 수정 (#93)

* feat: webpack dev, production별 환경 설정 추가

* feat: api `baseURL` 추가

* refactor: mocking 코드 주석처리

* refactor: package.json scripts 명령어 수정

* [All] chore: github actions 오류 수정 (#95)

* chore: be  github actions build 오류 수정

* chore: fe github actions 경로 문제 수정

* [BE] feat: db 초기 데이터 삽입 기능 구현 (#94)

feat: db 초기 데이터 삽입 기능 구현

* [BE] refactor: MarkDown parser 리팩터링 (#98)

* refactor: MarkDown parser 리팩터링

* refactor: MarkDown parser test코드 이름 수정

* refactor: MarkDown parser test코드 이름 수정

* [FE] fix: `Layout` 관련 스타일 분리 및 2차 데모데이 대비 hotfix (#105)

* design: `Layout` 관련 스타일 분리 및 `WritingPage`의 `max-width` 추가

* refactor: 파일 업로드 성공 시 헤더에서 받아오는 `writingId` 얻는 방식 변경

* design: 코드 블럭 스타일(`pre > code`)은 `code` 스타일 적용되지 않도록 적용

* refactor: 사용하지 않는 `App.tsx` 파일 삭제

* !refactor: 데모데이를 위한 수정 (추후 수정요망)

* [FE] chore: `react-testing-library` 설치 및 설정 (#107)

* chore: `react-testing-library` 설치

* chore: `react-testing-library` 설정

* test: 예제 테스트 코드 작성

* fix: svg가 제대로 import 되지 않는 현상 수정

* [All] chore: github actions 수정 (#96)

* chore: github actions 수정

* chore: medium_token 환경변수 주입 추가

* chore: docker-compose 파일 경로 수정

* chore: 도커 설정 변경

* chore: actions 수정

* chore: prod profile 추가

* [BE] chore: mysql db 연결을 위한 h2 설정 제거 (#111)

chore: mysql db 연결을 위한 h2 설정 제거

* [BE] 마크다운 Parser 기능 추가 구현 (#115)

* feat: MarkDownParser 이미지 파싱 로직 구현

* feat: MarkDownParser 링크 파싱 로직 구현

* feat: MarkDownParser depth 파싱 로직 구현

* refactor: MarkDownParser 리팩토링

- Content class 문자열 필드 객체화
- MarkdownParser, MarkdownStyleParser 메서드 분리 및 매직넘버 상수화

---------

Co-authored-by: HubCreator <chocomilk8604@gmail.com>

* [FE] feat: `Tag` 컴포넌트 구현 (#118)

* feat: `close-rounded` svg 추가

* feat: `Tag` 컴포넌트 구현

* test: `Tag` 스토리북 구현

* [FE] feat: `WritingTable`, `WritingTablePage` 구현 (#113)

* feat: `GetCategoryIdWritingListResponse` 타입 추가

* feat: 카테고리 글 상세 목록 조회 get api msw handler 추가

* feat: 카테고리 글 상세 목록 조회: GET api fetcher 추가

* feat: `Date` 객체를 받아 원하는 format으로 변환해서 주는 유틸 함수 `dateFormatter` 추가

* feat: `WritingTable` 컴포넌트 마크업 뼈대 추가

* test: `WritingTable` 스토리 추가

* design: `WritingTable` 글 hover 시 scale 추가

* feat: 글 클릭 시 해당 글의 `WritingPage`로 이동하는 기능 추가

* test: `WritingTable` 스토리 `args` 추가

* feat: `WritingTablePage` 추가, `WritingTable`은 글 목록인 `writings`를 받아서 렌더링하는 것으로 수정

* feat: `WritingTablePage` routes 추가

* chore: tistory, medium `svg` 추가

* refactor: `PublishedDetail`의 `blogName` 필드 타입 `Blog` 로 수정

* feat: `WritingTable` 내부 배포한 블로그 로고 표시 기능 추가

* feat: 페이지 이동하는 훅 `usePageNavigate` 추가

* chore: storybook에서 react-router-dom 사용할 수 있도록`storybook-addon-react-router-v6` 설치

* feat: `WritingTable` component key 추가

* refactor: `WritingTable` 스토리북 수정

* fix: `PublishedToLogoIcon`에 height 추가

* fix: `WritingTable`에 `thead`, `tbody` 태그 추가

* design: `WritingTable`에서 `tbody`만 cursor:pointer 되도록 수정

* design: `WritingTable` column width 비율 설정

* design: `WritingTablePage`의 `max-width` 설정

* test: `writingTableMock` 긴 `title` 필드 추가

* refactor: 사용하지 않는 `Props` 타입 제거

* refactor: map 렌더링 시 구조분해할당 하도록 수정

* refactor: `col`태그  기본 속성 `width` 사용하여 `WritingTable` col 비율 정의

* chore: tistory 로고 색상 있는것으로 수정

* refactor: 블로그 아이콘 렌더링 방식 수정

* refactor: `publishedTo` 로고 styled-components 태그 사용하도록 수정

* [FE] feat: 발행 정보 입력 section 구현 (#121)

* feat: 태그, 왼쪽 화살표 svg 아이콘 추가

* design: `StoryItemContainer` css 수정

align-items default가 stretch여서 컴포넌트가 자신의 크기와 다르게 늘어나는 현상 수정

* feat: slide 애니메이션 추가

* feat: 공통 `Button` 컴포넌트에 secondary Variant 추가

* feat: `TagInput` 컴포넌트 구현

* test: `TagInput` 스토리 작성

* feat: `PublishingPropertySection` 컴포넌트 구현

* test: `PublishingPropertySection` 스토리 작성

* [BE] refactor: 엔티티 리팩터링 (#123)

* refactor: 엔티티에 equals & hashcode 재정의

* refactor: `WritingController`의 파일 업로드 로직을 `WritingService`로 이동

* refactor: `Block`과 `Content` 간에 cascade 설정 추가

* refactor: entity 내부 속성 객체화

* refactor: entity 내부 속성 객체화
- Writing class의 title 객체화
- Style class의 startIndex, endIndex 객체화

* refactor: `NormalContent`와 `Style` 간의 양방향 의존 관계 제거 및 모든 엔티티에 `BaseEntity` 추가

* refactor: `BackendApplication` fileName 변경

* feat: `StyleIndex`를 `StyleRange`로 수정 및 값 타입들에 `toString()` 추가

* refactor: `RawText`와 `Language`에 대한 정적 팩터리 메서드 추가

* fix: `StyleRange` 검증 로직 추가

---------

Co-authored-by: ezzanzzan <cjsdmswjd821@naver.com>

* [BE] feat: NotionParser 및 API 구현 (#124)

* feat: `NotionApiService`  구현

Co-authored-by: ingpyo <juninpyo726@naver.com>

* refactor: `NotionApiService` 리팩토링

Co-authored-by: ingpyo <juninpyo726@naver.com>

* feat: NotionParser 구현

Parser에서 사용되는 DTO 구현 및 Notion Block Type 별로 Parser 구현

Co-authored-by: ingpyo <juninpyo726@naver.com>

* feat: Notion Upload API 구현

Co-authored-by: ingpyo <juninpyo726@naver.com>

* refactor: Parser의 정적 팩토리 메서드에서 `NotionBlockNode`을 인자로 받는 것으로 변경

* fix: 테스트에서 `UpdatedAt`, `CreatedAt` 필드 검증 제거

* chore: `NOTION_TOKEN` 추가

---------

Co-authored-by: ingpyo <juninpyo726@naver.com>

* [FE] feat: `Header` 컴포넌트 구현 (#120)

* feat: `WritingTable` 내부 배포한 블로그 로고 표시 기능 추가

* chore: `SidebarLeftIcon`,`SidebarRightIcon`,`SettingIcon` 추가

* feat: `Header` 컴포넌트 마크업 추가

* feat: `useOutletContext` 이용해 `Outlet`으로 sidebar open여부 context 전달하는 로직 추가

* !design: sidebar open여부에 따라 다른 중간 페이지 width 구하는 `genMainPageWidth` 함수 추가

* feat: `Header`에 sidebar toggle 함수 prop 추가

* design: `WritingPage`, `WritingTablePage`의 `max-width` 스타일 추가

* chore: `msw` 1.2.3 버전 업데이트하여 버그 수정

mswjs/msw#1640

* design: `Header` 컴포넌트 스타일 상수 추가

* design: `Layout` 컴포넌트 마크업 `S.Row`의 `height` 추가

* design: `Layout` 컴포넌트 `S.Main` 스타일 추가

중앙정렬, border 추가, 오버플로우 스크롤 추가

* design: `~Page` 컴포넌트들의 스타일 변경

width 90%로 설정
border는 Layout 컴포넌트의 S.Main에서 이미 적용됨

* chore: `writingTableMock` 데이터 변경

* refactor: 왼쪽, 오른쪽 사이드바가 기본적으로 열려있도록 수정, 메인 페이지의 width을 `100%`로 설정

* refactor: 사용하지 않는 `genMainPageWidth` 삭제

* refactor: 웹 접근성을 위해 `Header`의 icon들을 button 태그로 감싸서 onClick 핸들러 설정

의미론적으로도 button이 적절함

* !feat: `Layout` 에 `activeWritingId` state 추가하여 현재 보고있는 글 id 상태 관리

글을 보고 있을때만(activeWritingId> 0)`PublishingSection` 컴포넌트 렌더링

`WritingPage`이  렌더링되면 현재 보고있는 글 id 상태 저장

`RightSidebarSection`은 `Layout`으로 이동

* feat: 글을 보고있을 때만 `Header`의 사이드바 토글 아이콘 보이게 설정

* refactor: 컨벤션 타입에 맞게 `activeWritingId` state에 `null`추가

* refactor: `className='icon'` 삭제

* refactor: 컨벤션에 맞게 props 네이밍 변경

* refactor: 불필요한 fragment 태그 제거

* refactor: 타입 컨벤션에 맞게 타입 이름에 `Type` 제거

* [FE] feat: 아코디언 컴포넌트 구현 (#119)

* feat: 아코디언 컴포넌트 구현

* test: 아코디언 컴포넌트 스토리 추가

* refactor: Accordion 컴포넌트 네이밍, props 수정

* refactor: 아코디언 컴포넌트 구조 수정

* feat: 아코디언 컴포넌트 구현

* chore: 잘못 올라간 파일 삭제

* feat: 아코디언 클릭 이벤트 props 추가

* refactor: onClick props 동작 트리거 수정

* fix: storybook 동작하도록 수정

* refactor: 사용되지 않는 Props 삭제

* refactor: title 클릭과 icon 클릭 핸들러 로직 분리

* refactor: 토클 버튼 클릭 핸들러 이름 수정

* feat: 토글 버튼 클릭 핸들러 실행 로직 추가

* feat: 아코디언 컴포넌트 구현

* refactor: Accordion 컴포넌트 네이밍, props 수정

* refactor: 아코디언 컴포넌트 구조 수정

* feat: 아코디언 컴포넌트 구현

* chore: 잘못 올라간 파일 삭제

* refactor: optional props partial로 리팩터링

* refactor: 네이밍 수정

* [BE] feat: 글 제목 수정 기능 구현 (#136)

* feat: 글 제목 수정 기능 구현

* test: 글 제목 수정 테스트 구현

- 글 제목 수정 테스트 구현
- 로컬 및 테스트 환경에서 사용할 더미 데이터 추가
---------

Co-authored-by: ezzanzzan <cjsdmswjd821@naver.com>

* [BE] feat: 카테고리 기능 구현 (#145)

* feat: `Category` 엔티티 추가

* feat: 카테고리 추가 기능 및 테스트 구현

- InitData에서 기본 카테고리 추가
- 카테고리 추가 시 이전 카테고리의 nextCategory 업데이트

* feat: 카테고리 이름 수정 기능 및 테스트 구현

- Category entity 정적 팩토리 메서드 추가
- 기본 카테고리 변경 시 예외 처리 로직 추가

* feat: 카테고리 삭제 기능 구현

* feat: 카테고리 목록 조회 기능 구현

* refactor: `Writing`과 `Category` 연관관계 맵핑

- Writing 과 Category ManyToOne Mapping
- WritingUploadApi requestBody에 categoryId 추가
- 관련 테스트 수정

* refactor: 카테고리 삭제 기능 리팩토링

- 카테고리 삭제 시 카테고리에 포함된 글들 기본 카테고리로 이동
- 삭제될 카테고리의 이전 카테고리의 nextCategory를 삭제될 카테고리의 다음 카테고리로 변경

* feat: 카테고리 내 글 목록 조회 및 삭제 시 발생하는 오류 수정

- 카테고리 삭제 시 발생하는 SQL 오류 수정

* feat: 카테고리 내의 글 상세 목록 조회 기능 추가

* refactor: 메소드 네이밍 변경 및 Transcational 적용 범위 수정

* refactor: 중복 메서드 분리 및 클래스 네이밍 변경

---------

Co-authored-by: ezzanzzan <cjsdmswjd821@naver.com>

* [FE] chore: 프론트엔드 환경변수(`.env`, `cross-env`) 설정 (#147)

* chore: 환경변수 설정을 위한 `dotenv-webpack` 추가

* chore: `cross-env` 설치하여 scripts에서 환경변수 설정

windows, mac 둘 다 호환되도록 함

* chore: package.json develop, production 환경에 따라 다른 `build` 스크립트 추가

* chore: webpack.dev.js의 Dotenv에 `.env.development` path 추가

* chore: `Dockerfile`의 프론트엔드 빌드 명령어 `yarn build:dev`로 변경

* chore: 프론트엔드 CICD 개발서버 환경변수 추가 `.env.development`

github secrets에 `BASE_URL_DEVELOPMENT` 추가해줘야함

* refactor: api 요청 `baseURL`을 환경변수에서 가져다 쓰는 것으로 변경

* chore: `.gitignore`에 환경변수 파일 `.env.*` 추가

* [FE] feat: `WritingSideBar` 컴포넌트 구현 및 분리 (#138)

* fix: 머지 충돌 해결

* refactor: Layout에 `WritingSideBar` 컴포넌트가 오도록 변경

* refactor: 탭 키 enum 타입으로 변경

* refactor: 불필요한 형변환 제거

* fix: `cicd-fe.yml` 환경변수파일`.env.development` 생성 스크립트 수정 (#149)

* [FE] feat: 글 정보 섹션 `WritingPropertySection` 구현 (#140)

* feat: 글 정보 GET API mocking

* feat: 글정보 API 응답 타입 수정

* feat: `WritingPropertySection` 구현

* test: `WritingPropertySection` 스토리 작성

* refactor: 리턴 값과 스타일드 컴포넌트 명 수정

* [BE] test: NotionParser 테스트코드 추가 (#141)

* test: NotionParser 테스트코드 추가

Co-authored-by: ingpyo <juninpyo726@naver.com>

* style: 리뷰 반영

Co-authored-by: ingpyo <juninpyo726@naver.com>

---------

Co-authored-by: ingpyo <juninpyo726@naver.com>

* [BE] 티스토리로 글을 발행하는 API 기능 구현 (#144)

* feat: PublishService 기능 구현

* feat: TistoryApiService 기능 구현

-발행 기능 구현
-발행된 글 정보 조회 기능구현

* feat: TistoryPublish DTO 생성

* feat: Tistory 응답값 json 맵핑 기능 구현

* refactor: 상태코드 검증 로직 수정

* refactor: token의 정보를 불러오는 방식 수정

* refactor: 외부 ApiService 메서드 에서 생성하도록 수정

* refactor: 불필요한 개행 제거 및 LocalDateTime파싱 로직 수정

* refactor: 메서드 분리 밑 ApiService초기화 부분 수정

* refactor: 접근제어자 수정 및 지연로딩 적용

* [FE] feat: 카테고리 컴포넌트 구현 (#126)

* feat: `categoryURL` 추가

* feat: `category` 타입 파일 추가

* feat: 카테고리 추가, 카테고리 목록 조회, 카테고리 글 목록 조회 mock 구현

* feat: 카테고리 추가, 카테고리 목록 조회, 카테고리 글 목록 조회 fetcher 구현

* refactor: 카테고리 글 목록 api fetcher 이름 수정

* refactor: category 타입 파일 타입 이름 수정

* feat: 카테고리 수정 mock, type 구현

* feat: delete, pencil icon 추가

* feat: 카테고리 수정 fetch api 구현

* feat: `Category` 컴포넌트 구현

* feat: 카테고리 삭제 api fetcher 구현

* feat: 카테고리 삭제 요청 api 구현

* refactor: Category 이벤트 핸들러 props 네이밍 컨벤션에 맞게 수정

* feat: 카테고리 삭제 api mocking 핸들러 구현

* feat: 글목록 컴포넌트 구현

* feat: `useGenerateCategoryTuple` 훅 구현

* feat: `useGetWritingsInCategory` 훅 구현

* feat: `useEraseCategory` 훅 구현

* feat: `usePatchCategory` 훅 구현

* feat: `CategorySection` 컴포넌트 구현

* refactor: 카테고리 글 목록 관련 hook 수정

* refactor: 카테고리 목록 관련 hook 수정

* refactor: `Category` 컴포넌트 구현

* feat: 카테고리 섹션 컴포넌트 구현

* feat: 카테고리 클릭 및 글 클릭 시 페이지 이동 기능 구현

* fix: mocking 되도록 수정

* feat: 카테고리 섹션 스토리 추가

* feat: 카테고리 추가 기능 구현

* chore: 폴더 구조 변경

* chore: `useCategoryDetail` 훅 이름 변경

* test: mock 데이터 추가

* feat: `useCategoryDetails` 훅 구현

* fix: WritingList key props 추가

* refactor: `category.ts` 에 있던 `Writing` type 분리

* fix: `Category` 제목 길어지면 아이콘 가리는 현상 수정

* feat: `Category` 컴포넌트 인풋 포커싱 처리

* feat: `useCategoryMutation` 훅 구현

* feat: `useCategoryInput` 훅 구현

* refactor: `useCategoryDetails` 훅 고도화

* feat: component/`category` 타입 추가

* fix: `Category` nested button 에러 수정

* feat: `CategorySection` 렌더링 구현

* refactor: `useCategoryWritings` 의 `categoryId` 분리

* refactor: `isOpenInput` -> `isInputOpen`

* refactor: `useCategoryDetails` 클린코드화

* refactor: 네이밍 수정

* feat: 레이아웃에 카테고리 섹션 추가

* chore: prod 환경으로 세팅

* fix: 잘못된 url 수정

* [FE] chore: 글로벌 폰트 추가 (#157)

feat: 스포카 한 산스 네오 폰트 추가

* [FE] feat: WritingSideBar 로직 변경 및 구현 (#154)

* feat: 블로그 대표 색상 추가

* feat: 명세에 맞게 `PublishWritingRequest` 타입 수정

* feat: 외부에서 TagInput의 값 가져올 수 있도록 구현

* feat: 불필요한 `BlogPublishButtonItem` 컴포넌트 제거

* feat: 발행정보와 함께 발행가능하도록 로직 구현

* test: 컴포넌트 변경에 따른 스토리 수정

* feat: 블로그 버튼을 눌렀을 때 발행하지 않고 발행정보 입력 section으로 이동

* test: 컴포넌트 변경에 따른 스토리 수정

* fix: enum 타입으로 변경된 탭 키 상수화 반영

* feat: 글 정보 탭 추가

* test: `WritingSideBar` 스토리 동작하도록 수정

* design: 태그 wrap 될 수 있도록 css 수정

* fix: radio input 값 변경 이벤트 onChange로 수정

* refactor: `PublishingSection` Props 네이밍 수정

* feat: 글 발행 성공시 글 발행 정보 탭으로 이동

* feat: 글 발행 중 로딩 구현

* fix: 글 post api baseURL 수정

* refactor: 어색한 함수 네이밍 변경

* [BE] feat: 글 순서 및 카테고리 순서 수정 기능 구현 (#158)

* feat: 글을 업로드 할 때 순서 처리 로직 추가
- Writing 엔티티에 순서를 나타내기 위한 nextWriting 필드 추가
- 글 업로드 시 해당 카테고리의 제일 마지막으로 업로드 되는 로직 구현

* feat: 글 순서 재정렬 기능 구현

* refactor: 리팩토링
- Response, Request DTO 정적 팩토리 메서드 추가
- WritingService, CategoryService 메서드 분리

* feat: 카테고리 순서 수정 기능 구현

* refactor: 메서드 분리 및 코드 컨벤션 적용

---------

Co-authored-by: ezzanzzan <cjsdmswjd821@naver.com>

* [BE] fix: git merge 충돌 오류 해결 (#162)

fix: git merge 충돌 오류 해결

- WritingService 내 NotionApiService 필드 제거
- TistoryApiServiceTest @disabled 적용

Co-authored-by: HubCreator <chocomilk8604@gmail.com>

* [BE] feat: Publish 후 Tags 영속화하는 기능 추가 (#159)

* feat: 블로그 발행 후 태그 영속화 및 글 정보 API 수정

Co-authored-by: ingpyo <juninpyo726@naver.com>

* refactor: 외부 API 예외 통합

Co-authored-by: ingpyo <juninpyo726@naver.com>

* refactor: 패키지 분리

Co-authored-by: ingpyo <juninpyo726@naver.com>

* refactor: 개행 제거 및 리펙토링

Co-authored-by: ingpyo <juninpyo726@naver.com>

---------

Co-authored-by: ingpyo <juninpyo726@naver.com>

* [BE] feat: StyleType Link HTML Render 기능 추가 (#165)

feat: StyleType Link HTML Render 기능 추가

Co-authored-by: echo724 <echo.backend@gmail.com>

* [BE] feat: https 적용 (#171)

feat: https 적용

* [FE] fix: styled components props 네이밍 문제 해결, cicd 수정 (#164)

* refactor: 사용하지 않는 styled-components prop 제거

* fix: styled-components props에 `$` 붙여서 버그 수정

* fix:`PlusCircleIcon`에 width, height 추가하여 svg 에러 해결

* fix: `Button` 컴포넌트 prop에 `$` prefix 추가

* chore: `cicd-fe.yml` 스크립트 수정

* [FE] 아코디언 및 카테고리 시안에 맞게 스타일 수정 (#169)

* style: 아코디언 및 카테고리 스타일 디자인에 맞게 수정

* feat: 빈 카테고리일 경우 `S.NoWritingsText` 렌더링

* style: 섹션 타이틀 커서 모양 변경

* [BE] fix: WritingService 버그 픽스 및 Render 수정 (#168)

* fix: WritingService 버그 픽스 및 Render 수정

Co-authored-by: ingpyo <juninpyo726@naver.com>

* style: 개행 제거

Co-authored-by: ingpyo <juninpyo726@naver.com>

---------

Co-authored-by: echo724 <echo.backend@gmail.com>

* [BE] fix: 클라이언트 요청 오류에 대한 예외 처리 기능 추가 (#176)

* fix: 클라이언트 요청 오류에 대한 예외 처리 기능 추가

Co-authored-by: ingpyo <juninpyo726@naver.com>

* refactor: PathVariable에 Valid검증하는 로직 제거

Co-authored-by: ingpyo <juninpyo726@naver.com>

---------

Co-authored-by: echo724 <echo.backend@gmail.com>

* [BE] feat: Swagger 의존성 추가 (#178)

feat: Swagger 의존성 추가

* [FE] feat: `Input` 컴포넌트 구현 (#174)

* feat: theme 컬러 추가

* feat: `Input` 컴포넌트 구현

* test: `Input` 스토리 작성

* refactor: red 색상 팔레트 추가

* refactor: htmlFor 속성 추가 및 outline css 수정

* [BE] fix: HttpMediaTypeNotSupportedException Handler 추가 (#181)

fix: HttpMediaTypeNotSupportedException Handler 추가

Co-authored-by: ingpyo <juninpyo726@naver.com>

* [FE] feat: `Notion`으로 부터 업로드 할 수 있는 기능 구현 (#166)

* feat: 노션 글 업로드 API 추가

* feat: `Modal` 컴포넌트 구현

* feat: `useModal` 훅 구현

* refactor: 아이콘 이름 수정

* test: `Modal` 스토리 작성

* test: `FileUploader` 스토리 작성

* feat: `FileUploader` 컴포넌트 구현

* refactor: `useFileUpload` 훅 수정

* feat: `useFileDragAndDrop` 훅 구현

* feat: Add post 버튼 클릭 시 모달이 띄워지도록 수정

* feat: 가져오기 아이콘 추가

* feat: `FileUploadModal` 구현

* refactor: 헤더 크기 시안에 맞게 수정

* feat: 파일 업로드 시 카테고리 아이디 추가

* refactor: 모달 backdrop 상수화

* refactor: 불필요한 함수 인자 제거 및 css inset 수정

* design: `Input` 컴포넌트 placeholder 색상 변경

* refactor: `Input` 컴포넌트로 기존의 노션 인풋 교체

* refactor: 테스트를 위한 불필요한 버튼 제거

* fix: 카테고리 API에 headers content type 추가

* fix: 글 업로드 시 categoryId 넘기는 방식 수정

* [BE] fix: 카테고리 오류 수정 및 개발 환경 수정 (#185)

* fix: 빈 카테고리 글 목록 조회 시 발생하는 오류 수정 및 테스트 추가

* fix: 비어있는 카테고리 삭제 시 발생하는 오류 수정 및 테스트 추가

* fix: 기본 카테고리가 비어있을 때 삭제된 카테고리의 글이 기본 카테고리로 이동되지 않는 오류 수정 및 테스트 추가

* chore: Production 환경의 JPA 테이블 생성 전략 수정

* fix: `RawText` 필드의 `@Lob`가 MySQL에서 `TINYTEXT`로 매핑되는 오류 수정
- 값 타입에 columnDefinition 조건 추가
- @lob 제거

---------

Co-authored-by: ezzanzzan <cjsdmswjd821@naver.com>

* [BE] feat: PROD용 서버 설정 변경 (#183)

* refactor: Actions DB url수정 및 docker compose 수정

* refactor: 서버 시간 수정

* [FE] 카테고리 API 요청 버그 수정 (#184)

* fix: 카테고리 CRUD 버그 수정

* feat: 카테고리에서 글목록페이지로 이동시 글목록페이지 리패칭 기능 추가

* chore: 사용하지 않는 상태 삭제

* fix: 렌더링 버그 해결

* refactor: 타입 수정

* refactor: `S.Input` -> `Input` 컴포넌트로 교체

* feat: `useGetQuery` arg에 `enabled` 추가하여 의미없는 API 요청 제거

* [BE] fix: RawText 컬럼 타입을 text로 변경 (#189)

fix: RawText 컬럼 타입을 text로 변경

Co-authored-by: HubCreator <chocomilk8604@gmail.com>

* [FE] feat: `WritingTableView`에서 글 추가 시 해당 카테고리로 추가되도록 구현 (#187)

* chore: root가 아닌 페이지에서 새로고침 시 404 뜨는 설정 수정

* refactor: 발행 된 블로그 없을 때 published 영역 제거

* feat: 카테고리에서 글 추가 시 해당 카테고리로 생성되도록 구현

* refactor: selectedCategoryId로 변수명 변경

* refactor: length를 이용한 조건문 Boolean을 이용해 명확하게 변경

* [FE] chore: 프론트엔드 배포서버 CI/CD 스크립트 작성, 웹팩 설정 추가 (#198)

* feat: 프로덕션 배포 스크립트 `cicd-fe-prod.yml`, `Dockerfile-prod` 작성

* feat: 프로덕션 배포를 위한 `webpack` 설정 파일들 수정

* [FE] chore: frontend 브랜치별 docker 이미지 분리 (#200)

chore: frontend 브랜치별 docker 이미지 분리

* [FE] fix: 배포 webpack 설정 변경 (#202)

* chore: 배포 테스트용 `start:prod` 스크립트 추가

* chore: 환경변수 `DefinePlugin`을 `webpack.common.js` 로 이동

* [FE] feat: 글 업로드 중에는 모달이 닫히지 않도록 수정 (#193)

* feat: `Modal` 컴포넌트에 close 옵션들 추가

* feat: 파일을 업로드 중일 때는 모달을 닫을 수 없도록 수정

* [FE] design: 전체 스타일 개선 및 스타일드 컴포넌트 버그 수정 (#194)

* design: 사이드바 레이아웃 수정

* refactor: 글 뷰어 로딩 스타일 개선

* fix: styled components 에러 해결

* design: 로딩 스타일 수정

* [FE] feat: 카테고리 제목 유효성 검사 로직 추가 (#196)

* feat: 카테고리 제목 유효성 검사 로직 추가

* feat: `isError` 추가

* [FE] feat: 시각장애인을 위해 글 추가, 카테고리, 글 발행 웹 접근성 관련 코드 추가 (#192)

* refactor: `html lang="ko"` 로 변경

* feat: 왼쪽 사이드바 토글 `aria-label` 추가

* feat: 글 업로드 버튼 `aria-label` 추가

* feat: 카테고리 폴더 왼쪽 사이드바 열기 `aria-label` 추가

* feat: 글 메인화면에 열기 `aria-label`추가

* feat: 카테고리 폴더 메인 화면에 열기 `aria-label` 추가

* refactor: mockData 수정

* refactor: `Modal`, `WritingViewer` 웹 접근성 개선

* refactor: `WritingSideBar` 탭 button으로 변경

* feat: 폴더 추가 입력 창 `aria-label` 추가

* refactor: html `title` 변경

* feat: 모달 닫기 `aria-label` 추가

* feat: 글 사이드바 탭 버튼 `aria-label` 추가

* feat:  영어 -> 한글로 수정

* feat: 폴더 메인 화면에 열릴 때 focus 글 테이블로 이동

* feat: 카테고리 열기 버튼 `aria-label` 추가

* refactor: 폴더 -> 카테고리

* feat: 오른쪽 사이드바 토글 버튼 `aria-label` 추가

* refactor: 글 배경 색상 대비 7:1이 되도록 수정

* feat: 카테고리 이름 수정, 삭제 버튼 `aria-label` 추가

* feat: 발행정보 섹션 `aria-label` 추가 , 영어 용어 -> 한글

* feat: `table`에 `summary` 추가

* design: 글자 명도를 4:1, 7:1 대비에 맞게 수정

* feat: 접근성을 위해 tab에 role 제공

* feat: 글 발행 시 성공 실패 여부 alert 출력

---------

Co-authored-by: nangkyeonglim <nangkyeonglim@gmail.com>
Co-authored-by: Nangkyeong Lim <57815133+nangkyeonglim@users.noreply.github.com>

* [FE] design: 카테고리 스타일 수정 (#204)

design: 카테고리 스타일 수정

Co-authored-by: Nangkyeong Lim <57815133+nangkyeonglim@users.noreply.github.com>

* [FE] fix: 글 정보가 새로 reload 되지 않는 현상 수정 (#206)

* fix: 글 정보가 새로 reload 되지 않는 현상 수정

* refactor: 불필요한 console.log 제거

---------

Co-authored-by: 헙크 <chocomilk8604@gmail.com>
Co-authored-by: 전증훈 <jeonjeunghoon@gmail.com>
Co-authored-by: Youngjin Park <youngjin988@gmail.com>
Co-authored-by: Nangkyeong Lim <nangkyeonglim@users.noreply.github.com>
Co-authored-by: ingpyo <juninpyo726@naver.com>
Co-authored-by: ezzanzzan <eunzzann@gmail.com>
Co-authored-by: Nangkyeong Lim <57815133+nangkyeonglim@users.noreply.github.com>
Co-authored-by: ingpyo <109223081+ingpyo@users.noreply.github.com>
Co-authored-by: ezzanzzan <cjsdmswjd821@naver.com>
Co-authored-by: nangkyeonglim <nangkyeonglim@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🌟 feature 기능 추가 🖥️ frontend 프론트엔드 작업 ⚙️ setting 프로젝트 세팅 🎨 UI 디자인, UI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

storybook에 msw 설정 글 조회 API 연결 WritingViewer 컴포넌트 구현
3 participants