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

깃허브 액션 테스트 #99

Merged
merged 6 commits into from
Nov 14, 2024
Merged

깃허브 액션 테스트 #99

merged 6 commits into from
Nov 14, 2024

Conversation

Honghyeonji
Copy link
Collaborator

@Honghyeonji Honghyeonji commented Nov 13, 2024

아니 pr 이름 만들어질 줄 알고 깃허브 액션 테스트라고 한건데 브랜치가 만들어졌네요 당황스럽네요

🔗 Linked Issue #52

🙋‍ Summary (요약)

  • 깃허브 액션 스크립트 제작

😎 Description (변경사항)

깃허브 액션 스크립트 제작

on:
  push:
    branches: ['dev']
  pull_request:
    branches: ['dev']
  • 이번에 만든 action 스크립트는 dev용으로만 만들었습니다. 즉, 테스트 서버에 올라가는 부분에 대한 action 스크립트를 작성한 것입니다.
  • main으로 올라갈때에 대한 스크립트는 메인 서버 구축 및 배포 환경이 갖추어졌을 때 다시 제작하도록 하겠습니다.
jobs:
  build:
    ...
  deploy:
    needs: build
  • build와 deploy로 나누어 실행됩니다.

  • build는 dev 실행이 잘 되는지, docker 이미지가 잘 빌드 되는지 확인합니다.

  • deploy는 build가 오류 없이 실행된 후 실행됩니다. 실제 저희 테스트 서버에 자동으로 배포해주는 역할을 합니다.

  • build과정은 아래와 같이 이루어집니다.

    steps:
      - uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20.x'

      - name: Install Pnpm
        run: npm install -g pnpm

      - name: Package install with pnpm
        run: pnpm install:all

      - name: Set BE .env
        run: |
          echo "MONGO_URI=\"${{ secrets.MONGO_URI }}\"" > apps/server/.env
          ....
  • 기초적으로 실행할 node버전, pnpm 패키지 설치와 의존성 설치가 이루어집니다.
  • build과정에선 테스트 서버를 연결해두고 사용하는 것이 아니기 때문에 로컬환경에서 개발할 때와 똑같은 env 설정을 세팅해줍니다.
      - name: Build Frontend
        run: |
          cd apps/client
          pnpm run build

      - name: Build Backend
        run: |
          cd apps/server
          pnpm run build
  • client와 server 파일 빌드가 잘 이루어지는지 확인합니다.
  • 생각해보니 빌드파일이 잘 만들어지는지만 확인하면 백엔드 env 설정을 해줄 필요가 없지 않나 라는 생각이 들기도 하네요 흠 🤔🤔
      - name: Build base image
        run: |
          docker build . --file Dockerfile.base --tag ${{ secrets.DOCKERHUB_USERNAME }}/boolock_base_test:1.0
          docker tag ${{ secrets.DOCKERHUB_USERNAME }}/boolock_base_test:1.0 base-image

      - name: Build frontend and backend images
        run: |
          docker build . --file apps/client/Dockerfile --tag ${{ secrets.DOCKERHUB_USERNAME }}/boolock_client_test:1.0
          docker build . --file apps/server/Dockerfile --tag ${{ secrets.DOCKERHUB_USERNAME }}/boolock_server_test:1.0

      - name: Login to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_PASSWORD }}

      - name: Docker Hub push
        run: |
          docker push ${{ secrets.DOCKERHUB_USERNAME }}/boolock_base_test:1.0
          docker push ${{ secrets.DOCKERHUB_USERNAME }}/boolock_client_test:1.0
          docker push ${{ secrets.DOCKERHUB_USERNAME }}/boolock_server_test:1.0
  • docker 이미지를 빌드하는 과정입니다.
  • 수동으로 docker 이미지를 빌드할때는 docker-compose를 이용하여 base-image먼저 빌드 하고 이후 해당 이미지를 의존해 다른 이미지들이 빌드되는 과정을 겪는데, 하나하나 이미지들을 빌드해봐야하는 해당 과정에서는 다같이 처리하면 오류가 발생해 base 이미지 먼저 빌드 한 후 나머지 이미지를 빌드합니다.
  deploy:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Login to Docker Hub
        run: sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }}

      - name: Deploy with docker
        uses: appleboy/[email protected]
        with:
          host: ${{ secrets.SSH_HOST }}
          username: ${{ secrets.SSH_USER }}
          password: ${{ secrets.SSH_PASSWORD }}
          port: ${{ secrets.SSH_PORT }}
          script: |
            cd boolock/web31-BooLock
            git checkout dev
            git pull

            echo "MONGO_URI=\"${{ secrets.MONGO_URI }}\"" > apps/server/.env
            echo "IS_LOCAL=false" >> apps/server/.env

            sudo docker-compose build base
            sudo docker-compose pull
            sudo docker-compose down
            sudo docker-compose up -d
            sudo docker image prune -f
  • deploy같은 경우 먼저 ssh 접속한 후 실제 서버에서 실행시켜주는 스크립트를 작성했습니다.

🔥 Trouble Shooting (해결된 문제 및 해결 과정)

🤔 Open Problem (미해결된 문제 혹은 고민사항)

@Honghyeonji Honghyeonji requested a review from a team as a code owner November 13, 2024 12:19
@Honghyeonji Honghyeonji requested review from Ujaa and inhachoi and removed request for a team November 13, 2024 12:19
@Honghyeonji Honghyeonji self-assigned this Nov 13, 2024
@Honghyeonji Honghyeonji added the CICD 배포 label Nov 13, 2024
Copy link
Collaborator

@inhachoi inhachoi left a comment

Choose a reason for hiding this comment

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

당황하셨어요?

고생하셨습니다 ❤️

Copy link
Collaborator

@Ujaa Ujaa left a comment

Choose a reason for hiding this comment

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

갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지 갓 현 지 외 쳐 갓 현 지

@Honghyeonji Honghyeonji merged commit 2a06fcf into dev Nov 14, 2024
3 checks passed
@Honghyeonji Honghyeonji deleted the 깃허브-액션-테스트 branch November 14, 2024 05:00
lee0jae330 added a commit that referenced this pull request Dec 8, 2024
* [#1] 프로젝트 초기 개발 세팅 (#53)

* 🙀 chore: client 필요한 패키지 설치 및 폴더 구조 설정

* 🙀 chore: server 필요한 패키지 설치 및 폴더 구조 설정

* 🙀 chore: 모노레포 설정

* [chore] 이슈 템플릿 생성

* 🙀chore: 이슈 템플릿 수정

* ✨ feat: tailwind 세팅

* 🙀chore : PR 템플릿 추가

* ✨ feat: tailwindCss 환경 설정 추가 (#61)

* [#60] 아이콘 설정 (#62)

* 🎸 etc: 주요 아이콘(15개) 추가

* ✨ feat: vite-plugin-svgr 설치 및 import 확인

* 🚚 rename: icon 폴더 변경 (public -> src/shared/assets)

* 🙀 chore: import문 삭제

* [#58] 워크스페이스 헤더 정적 UI 구현 (#64)

* ✨ feat: svg 컴포넌트화를 위해 vite-plugin-svgr설치

* 🙀 chore: vite-plugin-svgr 추가

* ✨ feat: boolock 로고 이미지 추가

* ✨ feat: Workspace Header 위젯 추가

* 🙀 chore: svg stoke 색을 currentColor로 변경

* ✨ feat: undo, redo 버튼 같이 둥근 버튼ui 구현

* 🙀 chore: 불필요한 파일 삭제

* 🙀 chore: index.ts 추가 및 re-export 적용

* ✨ feat: workspace undoButton 추가

* ✨ feat: workspace redoButton 추가

* ✨ feat: workspace saveButton 추가

* 🙀 chore: feature레이어 index.ts 추가 및 re-export 추가

* ✨ feat: 워크스페이스 이름을 변경할 수 있는 NameInput 추가

* ✨ feat: workspace header ui 구현

* 🙀 chore: font 파일 경로 변경

* 🙀 chore: CircleButton의 크기 조절이 가능하게 변경

* [#2] swagger autogen 설정 및 storybook 설정 (#63)

* ✨ feat: swagger autogen 설정

* ✨ feat: storybook 설정

* [#54] 학습가이드 + 헤더 UI 작업 (#65)

* ✨ feat: 학습가이드 + 헤더 UI 작업

* 💄 design: 등록된 색상 사용

* 🎨 style: fsd 규칙에 맞춰 index.ts에서 모두 불러오게 캡슐화

* 🐛 fix: export 설정 변경

* 🐛 fix: 모듈 호환성 코드 추가

* [#56] 워크스페이스 그리드뷰 + 추가버튼 (#66)

* 🙀 chore: svg파일 타입 추가

* ✨ feat: FSD구조로 주요 요소 구성

* 💄 design: 워크스페이스 디자인 수정 & 디자인시스템 색상코드 수정

* 💄 design: grid 정렬시 커스텀 스타일 적용

* 💄 design: 그리드 row 간격 수정

* 🎨 style: 헤더버튼 CircleButton 활용

* 💄 design: 쓰레기통 추가 & hover시 빨간색

* 🔥 remove: example 삭제

* 🙀 chore: 문구통일(main->home) & 오타 수정

* [#68] 라우팅 설정 (#70)

* 🙀 chore: favicon 경로 수정

* 🙀 chore: logo icon 및 NotFound 이미지 svg 파일 추가

* ✨ feat: Logo 컴포넌트 추가 및 index.ts로 re-export

* 🔨 refactor: BooLock 로고 -> 로고 컴포넌트로 교체

* ✨ feat: 잘못된 url로 접근 시 화면에 표시되는 NotFound 페이지 추가

* ✨ feat: HomePage 추가

* ✨ feat: feat: Workspace Page 추가

* ✨ feat: react-router를 통한 라우팅 설정

* 🔨 refactor: App 컴포넌트에서 routing 컴포넌트 설정 및 App.tsx 디렉토리 변경

* 🚚 rename: 동일한 파일명, 클래스명 변경 Workspace/WorkspaceHeader => Workspace/WorkspacePageHeader

* 🙀 chore: workspace 페이지 라우팅 설정

* ✨ feat: 빈 워크스페이스 영역 구현 (#71)

* [#67] 백엔드 mongoDB 연동 (#73)

* 🙀 chore: server에서 dotenv 설정

* ✨ feat: mongoDB 연결 설정

* ✨ feat: 샘플용(Todos) CRUD 로직 추가 (프로젝트랑 관련된 코드x)

* 🐛 fix: autogen과 jsdoc에서 세팅되는 openapi(swagger version) version이 달라 생기던 오류 해결

* 🔨 refactor: db 연동 코드 app.ts 파일에서 config폴더의 dbConnection.ts 파일로 이동

* TODO 추가 (#76)

* 📝 docs: readme 브렌치 전략 이미지 수정

* 🙀 chore: TODO 작성

---------

Co-authored-by: Yujin <[email protected]>

* [#39] 워크스페이스 이름 변경 토스트 메세지 기능 추가 및 HomePage Css 수정 (#77)

* 🔨 refactor: feature 레이어 삭제 및 entities 레이어로 이동

* 🔨 refactor: App.tsx에서 라우팅 설정하도록 변경 + index.ts 추가

* 🚚 rename: feature 레이어에서 entities로 이동

* ✨ feat: HomeHeader에 isBlack Props 추가 => true : 검정배경 헤더, false : 흰 배경 헤더

* 🙀 chore: import문 수정

* 🎸 etc: 코드가 너무 긴 svg 파일들을 png로 교체

* 🙀 chore: svg 컴포넌트에서 img 파일로 변경

* 🙀 chore: 주석 삭제

* ✨ feat: react-hot-toast 패키지 설치

* 🙀 chore: 빈 워크스페이스에서 사용하는 이미지 및 아이콘 추가

* ✨ feat: 워크스페이스가 비어 있을 때 마우스 hover 여부에 따른 컴포넌트 추가

* 🎨 style: width를 1128px로 고정 및 gap 수치 조정

* ✨ feat: 워크스페이스 이름 input 창 focus 해제 혹은 enter키 입력 시 토스트가 나오도록 기능 추가 (api 연동 x)

* [#69] 워크스페이스 삭제시 재확인 모달 (#72)

* 🙀 chore: widget 경로 수정 (index에 추가)

* ✨ feat: 모달 요소 FSD로 분리

* ✨ feat: createProtal 활용하여 모달 띄움

* ✨ feat: SquareButton 컴포넌트 스타일 외부에서 조정

* ✨ feat: 모달 정적 UI 구현

* ✨ feat: zustand 활용하여 모달 열고 닫기

* 💄 design: 텍스트 스타일 추가

* 📝 docs: 리드미 수정

* 📝 docs: 리드미 수정

* 📝 docs: 리드미 수정

* 📝 docs: 리드미 수정

* 🙀 chore: CODEOWNER 생성(PR 생성시 랜덤 지정) (#81)

undefined

* ✨ feat: Blockly 기본 틀 구현 (#84)

* 🔨 refactor: db 연동 코드 수정 (#85)

* [#3] 워크스페이스 생성 기능 구현 (#86)

* 🙀 chore: server 디렉토리에 nodemon 패키지 설정 및 개발환경에서  nodemon으로 실행하도록 변경

* 🙀 chore: server 디렉토리 경로 별칭이 적용되지 않는 문제 해결을 위해 tsconfig-paths 패키지  설치 및 script 실행 시 os 상관없이  적용되게끔 cross-env 패키지 설치

* 🙀 chore: dev 모드 실행 시 tsconfig-paths가 적용되도록 스크립트 수정

* ✨ feat: workspace 스키마 정의

* ✨ feat: workspace 생성할 때  DB 로직 정의

* ✨ feat: workspace 생성 요청 로직 추가

* ✨ feat: api 요청처리 시 발생하는 에러 메세지를 저장하는 객체 추가

* ✨ feat: workspace route 추가 및 index 라우터에도 추가

* ✨ feat: 개발 시 로컬에서 클라이언트와 서버를 동시에 실행할 때 발생하는 CORS 정책 위반을 허용하기 위해 cors 패키지 설치 및 적용

* ✨ feat: axios Instance 생성 및 추가

* ✨ feat: Workspace 관련 api 처리 함수 및 workspace 생성 요청 메소드 추가

* ✨ feat: workspace 생성 요청 후 응답에 대한 DTO 타입 정의

* 🙀 chore: create 요청 DTO 속성명 변경

* ✨ feat: workspace 관련 api 요청 메소드 추가 및 workspace 생성 요청을 처리하는 createWorkspace 메소드 추기

* ✨ feat: shared/api 에 index.ts 추가

* ✨ feat: react-query를 사용한 useCreateWorkspace 커스텀 훅 생성 및 추가

* ✨ feat: 홈페이지 workspaceheader의 추가 버튼 클릭 시, workspace list에 아무것도 없을 때 마우스 호버 시 나타나는 컴포넌트 클릭 시 useCreateWorkspace를 통해 워크스페이스 생성 요청을 하도록 api 연동

* ✨ feat: react-query 사용을 위해 queryClinet 생성 및 App컴포넌트의 부모 컴포넌트로 QueryClinetProvider 추가

* 🙀 chore: circleButton을 비활성화 여부를 결정하는 props 추가

* ✨ feat: 토스트 최대 개수를 1로 설정한 토스트 컴포넌트 App 컴포넌트에 추가

* 🙀 chore: Toaster import 제거

* ✨ feat: api 요청 시 로딩에 대한 상태를 전역 상태로 관리

* ✨ feat: useCreateWorkspace 커스텀 훅에서 전역 상태 변수인 isPending 값을 설정하도록 추가

* ✨ feat: api 요청 대기 시 add 버튼 disable로 변경

* 🙀 chore: react-spinners 패키지 설치

* ✨ feat: 재사용 가능한 로딩 위젯 추가

* ✨ feat: 전역 상태 변수인 isPending에 따라 홈페이지에서 로딩 위젯이 렌더링 되도록 설정

* 🙀 chore: import문 변경

* 💬 comment: swagger jsDoc 추가

* [#24] 사용자는 “HTML” 탭을 누르면 현재 블록의 html 코드를 볼 수 있다. (#87)

* ✨ feat: Blockly 기본 틀 구현

* ✨ feat: html 코드를 파싱

* 🚨 !HOTFIX!: swagger autogen이 주석처리 설정을 못읽어오던 오류 해결 (#88)

* [#44] 사용자는 CSS 속성을 종류별로 확인할 수 있다. (#89)

* ✨ feat: css 속성 종류 확인 UI 구현

* 🔨 refactor: 삼항연산자 -> &&로 간소화

* 🔨 refactor: 데이터 key값 영어로 변경

* 🔨 refactor: 시맨틱 태그 사용 + 변수명 직관적 개선

* [#52] dockerfile 생성 및 수동 테스트 완료 (#91)

* 🎸 etc: docker 설정 파일 추가

* 🎸 etc: 테스트용 다른 docker 스크립트  제작

* 🎸 etc: 테스트용 docker 새로 제작

* 🎸 etc: 테스트용 docker 이전 버전으로 다시 테스트하기 위해 수정

* 🎸 etc: docker file 최종본

* 🎸 etc: 캐시활용을 위해 dockerfile.base 스크립트 코드 순서 변경

* 🙀 chore: 빌딩 시 오류 나는 부분 수정

* [#12] 워크스페이스 불러오기 기능 및 무한스크롤 기능 구현 (#92)

* 🙀 chore: concurrently 패키지로 client server 동시 실행하게 변경, cross-env를 통해 os 상관없이 script가 적용되게 변경

* 🙀 chore: 모달의 부덕이 이미지 SVG에서 PNG로 변경

* 🔨 refactor: workspaceId를 localStorage를 저장하는 방식에서 userId를 발급하여 userId를 로컬스토리지에 저장하는 방식으로 변경

* ✨ feat: workspace 스키마에 user_id 추가

* ✨ feat: skip, limit 메서드를 통해 db에서 페이지네이션 구현 return 값 : 총 워크스페이스 개수, 현재 페이지, 현재 페이지의 workspace, 페이지 당 workspace 개수

* ✨ feat: userid는 header, page는 쿼리스트링으로 전달 받음 + 페이지네이션 api 요청 로직 추가

* ✨ feat: workspace get 메서드 라우팅 추가

* 💬 comment: api 요청 메소드 JsDoc 추가

* ✨ feat: 오프셋 기반 페이지네이션에서 커서 기반 페이지네이션으로 로직 변경

* 🙀 chore: 최상위 루트에서 storybook을 시작할 수 있도록 스크립트 수정 pnpm storybook으로 실행 가능

* ✨ feat: userId를 localStorage에서 불러오거나 없으면 새로 생성하는 유틸 메소드 추가

* 🙀 chore: getUserId 유틸 메소드 적용

* ✨ feat: 워크스페이스 조회 api 연동

* ✨ feat: 워크스페이스를 불러오는 기능을 커스텀 훅으로 구현 -> useInfiniteQuery()를 사용하여 무한 스크롤로 구현할 예정

* ✨ feat: workspace를 조회했을 때 각 DTO에 대한  타입 정의

* ✨ feat: useGetWorkspaceList 커스텀 훅을 사용해 workspace를 불러오는 기능 구현

* 🙀 chore: 디버깅용 코드 삭제

* 🙀 chore: export 추가

* 🙀 chore: 디버깅용 코드 삭제

* ✨ feat: 무한스크롤 기능 적용

* 🙀 chore: 스켈레톤 UI에 필요한 svg 파일 추가

* ✨ feat: 워크스페이스 스켈레톤 UI 및 스켈레톤 UI List 컴포넌트 추가

* 🙀 chore: 디버깅용 코드 삭제

* ✨ feat: 초기로딩 여부를 알기 위해 isPending값도 반환하도록 추가

* 🎨 style: EmptyWorkspace 컴포넌트 width 조절

* ✨ feat: 워크스페이스 컴포넌트를 그리드 형태로 렌더링하는 WorkspaceGrid 컴포넌트 추가

* ✨ feat: 로딩 상태애는 스켈레톤 UI를 렌더링하도록 추가

* 🙀 chore: export 순서 설정

* 🙀 chore: 불필요한 fragment 태그 삭제

* 🙀 chore: server 디렉토리에 설치 되어 있는 cross-env 삭제

* 🙀 chore: server build 설정 변경 (#95)

* 🙀 chore: 사용안하는 import 선언 삭제

* [#18] “미리보기”, “HTML”, “CSS” 총 3개의 탭을 볼 수 있다. (#93)

* 💄 design: 미리보기 뷰 스타일 + 배치  개선 및 탭 적용

* ✨ feat: html 파싱 들여쓰기 (pre태그 + whitespace-pre-wrap 속성 활용)

* 💄 design: 스크롤바 커스텀

* [#23] 툴박스 카테고리 리스트 커스텀 (#94)

* ✨ feat: toobox custom

* 🔨 refactor: svg path 객체 파일 분리

* 🐛 fix: merge 오류 수정

* 🐛 fix: css layer 배치 수정

* [#96] db연동시 로컬/배포환경 분리를 위한 로직 추가 (#97)

* ✨ feat: db연동 로컬환경과 배포환경 분리하는 로직 구현

* 🎸 etc: server docker 파일 수정

* ✨[#90] Storybook 배포 및 자동화 (#98)

* ✨ feat: storybook 배포

* 🐛 fix: 깃허브 액션 pnpm 설치 코드 추가

* 깃허브 액션 테스트 (#99)

* Create boolock-dev-cicd.yml

* 🙀 chore: 깃허브 액션 스크립트 생성

* 🙀 chore: 깃허브 액션 mongo url 가져오는 부분 스크립트 수정

* 🙀 chore: 깃허브 액션 중 client docker가 base-image를 찾지 못하는 에러를 해결하기 위해 스크립트 수정

* 🙀 chore: ssh연결을 위한 비밀번호 설정 부분에서 key->password로 수정

* 🙀 chore: 액션 스크립트 오타 수정

* [#8] 워크스페이스 페이지 이동 기능, 워크스페이스 이름 변경 기능 구현 (#100)

* ✨ feat: 워크스페이스 요청 후 에러 발생 시 에러 발생을 알려주는 컴포넌트 추가

* ✨ feat: 워크스페이스 불러오기 시 에러가 발생한 경우 에러 컴포넌트를 렌더링하도록 변경 및 api 호출 영역 렌더링 조건 추가가

* 🔨 refactor: 편집 시간 format 메소드 shared/utils로 분리

* ✨ feat: WorkspaceItem에 onClick이라는 props 추가 및 카드 div 추가

* ✨ feat: 워크스페이스 item 클릭 시 workspace 페이지로 navigate 되도록 기능 추가

* ✨ feat: useGetWorkspaceList 반환값으로 isError를 리턴하도록 변경

* 🙀 chore: 워크스페이스 조회 api 엔드포인트 변경 /workspace -> /workspace/list

* 🙀 chore: swagger 스키마 추가 WorkspaceIdResposne, WorkspaceListDto, NextCursor 정의

* 💬 comment: 워크스페이스 목록 조회 api swagger 주석 추가

* 🙀 chore: swagger-output.json gitignore에 추가

* Remove swagger-output.json from tracking

* ✨ feat: 워크스페이스 하나만 조회하는 findWorkspaceByWorkspaceId 메소드 추가

* ✨ feat: GET /workspace?workspace=워크스페이스ID api 로직 추가

* ✨ feat: 라우팅 추가 및 swagger 주석 추가

* ✨ feat: 404 에러 메세지 추가

* 🙀 chore: 타입명 변경 TworkspaceDto => Tworkspace

* ✨ feat: 스웨거 WorkspaceDto 타입 추가

* 🙀 chore: find -> findOne 메소드 사용 및 workspace_id, name만 반환하도록 변경

* 🙀 chore: 404 에러 조건 변경

* 🙀 chore: findOne.projection 옵션 변경

* 🙀 chore: 스웨거 주석 수정

* 🙀 chore: UUID 패키지 설치

* ✨ feat: crypto 모듈은 브라우저에서 지원이 안되는 문제가 있어 uuid 모듈로 변경

* ✨ feat: workspace 정보 조회 시 응답 타입 정의

* ✨ feat: 단일 워크스페이스의 정보 api 요청하는 useGetWorkspace 커스텀 추가

* ✨ feat: 단일 워크스페이스 정보 조회 api 연동

* ✨ feat: WorkspacePageHeader, WorkspaceNameInput의 props 추가, 해당 props를 통해 현재 워크스페이스의 정보를 알 수 있음

* 🙀 chore: EmptyWorkspace가 WorkspaceGrid 자식 컴포넌트로 동작할 시 디자인이 변경되는 문제가 있어 컴포넌트 배치 변경

* ✨ feat: user_id, workspace_id 를 통해 document를 찾고 newName으로 해당 document를 업데이트하는 메소드 추가

* ✨ feat: 이름 변경 요청 api 로직을 처리하는 메소드

* ✨ feat: /workspace/name PATCH 라우팅 추가 및 스웨거 명세 작성

* ✨ feat: PATCH /workspace/name 메서드 연동

* ✨ feat: Workspace 정보를 관리하는 useWorkspaceStore 전역상태 커스텀 훅 추가

* ✨ feat: useGetWorkspace 커스텀 훅으로 workspace의 정보를 요청할 시 성공하면 workspace 의 name을 전역 상태로 관리, 실패하면 toast메세지 렌더링

* ✨ feat: 워크스페이스 정보를 불러오는 것을 실패하면 NotFound 페이지를 렌더링함

* 🔨 refactor: workspace 정보를 전역 상태로 관리함에 따라 props 삭제

* ✨ feat: 워크스페이스의 이름 변경을 요청하는 커스텀 훅 추가

* 🙀 chore: index.ts re-export 추가

* ✨ feat: 이름 변경 로직 추가, 이름 변경 요청 대기 시 input 창 비활성화 및 로딩 위젯 렌더링 기능 추가

* 🎨 style: 토스트 메세지 위치 변경

* Update boolock-dev-cicd.yml

* 🙀 chore: effect 임포트 변경

* [hotfix] 누락된 패키지 설치 및 package 스크립트 수정 (#102)

* 🙀 chore: 누락된 tsconfig-paths 추가

* 🙀 chore: pnpm dev 입력 시 swagger-auto 실행 후 클라이언트, 서버를 실행하도록 추가

* 🙀 chore: docker 설정 및 github action 스크립트 수정

* 📝 docs: 리드미 수정

* [#5] 워크스페이스 삭제 기능 구현 (PR 리뷰 반영) (#103)

* ✨ feat: userId, workspaceId로 workspace를 조회해서 DB에서 삭제하는 메소드 추가

* ✨ feat: workspace를 삭제하는 요청을 처리하는 controller 로직 작성

* ✨ feat: /workspace DELETE api를 호출하는 메소드 추가"

* ✨ feat: /workspace DELETE api 라우팅 설정 및 스웨거 명세 작성

* ✨ feat: Modal 전역상태에 modalContent, modalAction 및 set 메소드 추가"

* ✨ feat: props에 workspaceId 추가 및 modalContent 및 modalAction 정의 후 모달을 렌더링하도록 변경

* 🙀 chore: props가 추가됨에 따른 코드 변경

* 🙀 chore: 추가된 modal 전역상태로 값 변경

* ✨ feat: useMutation으로 workspace의 삭제 요청을 처리하는 커스텀 훅 추가

* 💄 design: blockly 워크스페이스의 z-index 보다 낮아서 렌더링 시 이상하게 되는 문제 해결

* ✨ feat: 모달의 callback이 로딩 상태인지를 알려주는 상태 변수 추가

* ✨ feat: 워크스페 이름 변경 시 getWorkspace, getWorkspaceList의 캐시된 데이터를 다시 정의하는 setQueryData, invalidateQuries를 호출하도록 함

* ✨ feat: delete 요청 시 모달의 로딩 상태를 설정하는 기능 추가

* ✨ feat: 버튼의 비활성화 여부를 가리키는 isDisabled 상태 변수 추가

* 🙀 chore: 모달의 로딩 상태인 isLoading을 SquareButton의 props로 전달

* 🙀 chore: 불필요한 코드 삭제

* 🙀 chore: 불필요한 줄바꿈 삭제

* 🙀 chore: 워크스페이스 페이지 진입 시 placeholder에 기본적으로 워크스페이스 이름이라는 값이 들어가도록 설정

* 🐛 fix: build 오류 수종

* 📝 docs: 리드미 수정

* 🙀 chore: PR 리뷰 반영 : 에러 메시지 수정

* 🙀 chore: PR 리뷰 반영 : 메소드 명 별칭 지정

* ✨ feat: 재사용 가능한 로딩 스피너 추가

* 🙀 chore: PR 리뷰 반영 : isDisable 기본값 설정 / children 타입을 string에서 ReactNode로 변경

* 🙀 chore: 모달 확인 버튼 클릭 후 로딩 시간동안 스피너 위젯을 띄우도록 변경

* 🙀 chore: 로딩 스피너 컴포넌트 변경

* 🙀 chore: 불필요한 캐싱 데이터 변경 로직 삭제

---------

Co-authored-by: Honghyeonji <[email protected]>

* [#105] Spinner 컴포넌트에 CSS 동적으로 적용되지 않는 문제 해결 (#106)

* ✨ feat: Spinner 컴포넌트에 적용되는 동적 css 속성들을 모아놓은 util 객체

* 🐛 fix: Spinner 컴포넌트에 css가 적용되지 않는 문제 해결

* 🚚 rename: 컨벤션에 맞게 파일명 변경

* [#23] HTML, CSS 탭 구현 (#107)

* ✨ feat: toobox custom

* 🔨 refactor: svg path 객체 파일 분리

* 🐛 fix: merge 오류 수정

* 🐛 fix: css layer 배치 수정

* ✨ feat: 탭 버튼 추가

* 🔨 refactor: type 없어서 build 안되는 오류 해결

* 💄 design: 워크스페이스 반응형으로 변경

* [#23] workspace 반응형으로 변경 (#108)

* ✨ feat: toobox custom

* 🔨 refactor: svg path 객체 파일 분리

* 🐛 fix: merge 오류 수정

* 🐛 fix: css layer 배치 수정

* ✨ feat: 탭 버튼 추가

* 🔨 refactor: type 없어서 build 안되는 오류 해결

* 💄 design: 워크스페이스 반응형으로 변경

* 🐛 fix: border box 잘못 넣은 것 빼기

* [#36] class 블록 동적 생성 (#109)

* ✨ feat: 커스텀 툴박스 돔 조작으로 생성

* ✨ feat: alert 창을 이용한 css 블록 동적 생성

* 🔨 refactor: 빈 값 입력시 거절 alert 추가

* 🙀 chore: 함수 위치 변경

* 🔨 refactor: 파일 분리

* 🙀 chore: fsd 구조에 맞게 캡슐화

* 🙀 chore: 시맨틱 태그 사용 + ifram에 title추가

* 🔨 refactor: 프리뷰 부분 컴포넌트화로 분리

* 🙀 chore: import 설정 변경

* 🐛 fix: ci/cd 에러 수정

* [#21] 사용자는 “미리보기” 탭을 누르면 블록으로 만든 웹 사이트를 미리 볼 수 있다. (#111)

* 🙀 chore: useState 로직 분리

* 🔨 refactor: css 탭 클릭하면 flyout만 뜨게 함

* 🙀 chore: tab 버튼 적절한 변수명으로 수정

* ✨ feat: 커스텀 flyout 시도

* ✨ feat: class 블록들 전역 관리

* 🙀 chore: 테스트 및 디버깅용 코드 제거

* ✨ feat: 성공, 실패시 alert창에서 toast 메세지로 변경

* ✨ feat: 스타일 탭 다시 클릭 안해도, 스타일 블록 실시간 갱신

* 🔨 refactor: 스타일 블록 이름 수정불가로 변경

* ✨ feat: 자동 변환 기능 추가

* [#37] CSS 속성 편집 기능 및 CSS 코드 생성 기능 추가 (#113)

* ✨ feat: css 카테고리 타입 정의

* ✨ feat: css 카테고리를 정의하는 객체 추가

* ✨ feat: css 카테고리 속성 편집창 정적 ui 구현

* 🙀 chore: 파일 구조 변경에 따른 import문 변경

* 🔥 remove: 파일 이동에 따른 파일 삭제

* ✨ feat: dev 브랜치에서 pull 후 변경사항 적용 및 툴팁 구현 (미완성)

* ✨ feat: css 툴팁 컴포넌트 추가 (미완성)

* ✨ feat: 마우스 좌표에 따른 css 툴팁 위치 계산 로직 추가 (미완성)

* ✨ feat: css 툴팁 컴포넌트 구현

* ✨ feat: debounce 메소드 구현

* ✨ feat: 브라우저 resize 이벤트 핸들링 후 innerWidth, innerHeight를 리턴하는 커스텀훅 추가

* ✨ feat: css 속성 편집 관련 커스텀 훅 제작

* ✨ feat: css 속성 툴팁 렌더링 위치 관련 로직을 제공하는 커스텀 훅 제공

* 🙀 chore: index.ts re-export 추가

* 🎨 style: input type=color 스타일 조정

* 🚚 rename: cssCategoryList 소스파일 shared/util 폴더로 이동

* 🚚 rename: tooltip 관련 커스텀 훅 소스파일 이름 변경

* 🙀 chore: useRef를 사용하는 부분 삭제

* 🔨 refactor: CssPropsSelectBox에서 header 컴포넌트 분리

* 🔨 refactor: CssPropsSelectBox에서 카테고리를 선택하는 부분 CategoryBar 컴포넌트로 분리

* 🔨 refactor: 카테고리 선택 버튼 컴포넌트로 분리

* 🔨 refactor: CssPropsSelectBox에서 CSS 옵션을 부여하는 부분 분리

* 🔨 refactor: CSS 옵션을 부여하는 컴포넌트 리스트에서 재사용 컴포넌트  분리

* ✨ feat: css 옵션 부여 관련 기능 커스텀훅 제작

* ✨ feat: Css 속성 설정 관련 상태 변수들을 전역변수화 시킴

* ✨ feat: tootlip 좌표 관련 상태 변수들을 전역변수화 시킴

* 🔥 remove: 불필요한 파일 삭제

* 🔨 refactor: CssPropsSelectBox 컴포넌트 분리 완료

* 🙀 chore: import문 변경

* 🙀 chore: 새롭게 추가된 컴포넌트 및 커스텀 훅 index.ts를 통해 re-export

* ✨ feat: 여러 개의 클래스에 css 옵션을 적용하도록 상태 변수 자료 구조 변경

* 🙀 chore: key 속성 부여

* ✨ feat: class명이 빈 문자열이거나 클래스를 선택해주세요 일 시 속성 편집이 불가능하게 변경

* 🙀 chore: isChecked, cssOption 상태변수로 전역 상태 변수값을 조정하도록 변경

* ✨ feat: css 속성의 체크 여부 isChecked, css 속성에 부여된 값 cssOption 상태변수 추가 및 초기화 로직 추가

* ✨ feat: 워크스페이스 페이지 렌더링 시 전역 상태 초기화 진행

* ✨ feat: css 코드 생성 메소드 작성

* 🙀 chore: 변환하기 버튼에 css 코드 생성 메소드 추가

* 🐛 fix: selected로 값 조작 시 react로 DOM 조작 시 문제가 발생할 수 있는 경고 해결

* 🐛 fix: class이름이 빈 문자열일 때도 css코드가 생성되던 문제 해결

* 🙀 chore: 불필요한 코드 삭제

* 🐛 fix: 빌드 오류 수종

* [HOTFIX] CSS 클래스 블록 동적 추가 기능과 CSS 코드 변환 기능 연동 (#115)

* 🙀 chore: re-export 추가

* 🙀 chore: 타입 추가

* 🙀 chore: css class 전역 상태 연동

* ✨ feat: css 변환 기능 연동

* ✨ feat: css 코드 미리보기 및 html 사이트 미리보기 추가

* 🐛 fix: 빌드 오류 해결

* tab 툴박스 plugin옵션으로 연결하도록 변경 (#112)

* ✨ feat: toobox custom

* 🔨 refactor: svg path 객체 파일 분리

* 🐛 fix: merge 오류 수정

* 🐛 fix: css layer 배치 수정

* ✨ feat: 탭 버튼 추가

* 🔨 refactor: type 없어서 build 안되는 오류 해결

* 💄 design: 워크스페이스 반응형으로 변경

* 🐛 fix: border box 잘못 넣은 것 빼기

* 🐛 fix: html 탭과 첫 번째 카테고리 선택되도록 수정

* 🐛 fix: 탭 한 번 선택되면 다시 눌렀을 때 안 꺼지게

* ✨ feat: 탭 선택 시 선택 해제되지 않도록 수정

* 🔨 refactor: tabbed Toolbox 커스텀 클래스로 분리

* 🔨 refactor: 불필요한 코드 정리

* ✨ feat: flyout 위치 고정

* ✨ feat: div로 변경하는 클래스 생성

* 🐛 fix: null로수정

* 🐛 fix: build 되도록 코드 수정

---------

Co-authored-by: leeyeongjae <[email protected]>

* 📝 docs: 리드미 수정

* 📝 docs: 리드미 수정

* 📝 docs: 리드미 수정

* [#117] api 요청 로직에서 불필요한 코드 제거, query key 팩토리 추가 및 워크스페이스 이름 상태 관리 방식 변경 (#118)

* 🔨 refactor: 불필요한 throw문 및 if문 삭제

* ✨ feat: workspace 관련 쿼리 키 팩토리 추가

* 🙀 chore: 기존 쿼리키를 쿼리 키 팩토리로 교체

* 🔨 refactor: 워크스페이스 이름을 전역 상태로 관리하는 것이 아닌 tanstack query로 관리하는 로직으로 변경

* 🙀 chore: 쿼리키 팩토리로 변경

* ✨ feat: 새로운 워크스페이스 생성 시 workspace, list 쿼리에 저장된 캐싱 데이터 업데이트

* 🔥 remove: 불필요한 전역 상태 삭제

* 🐛 fix: 배포된 서버에서 백엔드 연동이 제대로 되지 않는 오류 해결 (#119)

* 🙀 chore: - 특정 브랜치 PR approve 제한 테스트

* 🙀 chore: 특정 브랜치 리뷰어 지정X (chore, hotfix)

* [#28] 블록 커스텀 (#121)

* ✨ feat: 블록 path 커스텀

* ✨ feat: blockly constant를 오버라이딩 하여 path값을 정해주는 방식으로 블록 커스텀 구현

* ✨ feat: field label 배경 삽입 및 input field 부분 space-between 형식으로 만들기

* ✨ feat: head태그 블록 한줄블록으로 변경 및 한줄 블록시 minWidth를 자체적으로 적용될 수 있게 수정

* 🐛 fix: head태그를 한줄블록으로 바꿈에 따라 codeGenerator가 이상했던 오류 해결

* 🐛 fix: 클래스명 블록제작하는 클래스가 변경됨에 따라 생긴 스타일 오류 해결

* 🔨 refactor: 블록 커스텀 코드 분리

* 🙀 chore: 안쓰는 변수명 삭제

* 💬 comment: 코드 설명 추가 (차후에 익숙해지면 삭제해주세요)

* 🔨 refactor: 안 쓰는 기능 코드 삭제

* [#23] html/css 탭으로 이동해서 html 블록과 스타일 클래스 확인하기 (#128)

* ✨ feat: toobox custom

* 🔨 refactor: svg path 객체 파일 분리

* 🐛 fix: merge 오류 수정

* 🐛 fix: css layer 배치 수정

* ✨ feat: 탭 버튼 추가

* 🔨 refactor: type 없어서 build 안되는 오류 해결

* 💄 design: 워크스페이스 반응형으로 변경

* 🐛 fix: border box 잘못 넣은 것 빼기

* 🐛 fix: html 탭과 첫 번째 카테고리 선택되도록 수정

* 🐛 fix: 탭 한 번 선택되면 다시 눌렀을 때 안 꺼지게

* ✨ feat: 탭 선택 시 선택 해제되지 않도록 수정

* 🔨 refactor: tabbed Toolbox 커스텀 클래스로 분리

* 🔨 refactor: 불필요한 코드 정리

* ✨ feat: flyout 위치 고정

* ✨ feat: div로 변경하는 클래스 생성

* 🐛 fix: null로수정

* 🐛 fix: build 되도록 코드 수정

* 🐛 fix: contentarea로 수정

* ✨ feat: div 안에 svg 넣기

* 🐛 fix: flyout 사이즈 조절

* 🔨 refactor: 인터페이스 이름 변경

* ✨ feat: custom flyout register에 등록해서 가져다 사용하기

* 🐛 fix: 뒤에 요소 여러 개 렌더링 되는 거 해결

* ✨ feat: CSS스타일툴박스에 요소 추가 (input, button)

* 🐛 fix: 높이 0으로 다시 수정

* 🐛 fix: flyout 길이가 div를 넘치는 버그 수정

* 🐛 fix: flyout 이외 콘텐츠 제외 높이로 수정

* 🐛 fix: 콘텐츠 위에 높이만큼 제거

* 🔨 refactor: override 함수 표시]

* 💬 comment: flyout 설명 추가

* 💬 comment: fixedflyout 설명 추가

* 🔨 refactor: 불필요한 코드 삭제

* 🙀 chore: build 오류를 위해 주석처리

* 🙀 chore: 주석 처리

* 🙀 chore: 주석 처리

* 🙀 chore: 오류 해결

---------

Co-authored-by: leeyeongjae <[email protected]>
Co-authored-by: chichoc <[email protected]>

* [#43] 사용자는 커스텀한 "CSS 스타일" 탭 창을 볼 수 있다.  (#120)

* ✨ feat: toobox custom

* 🔨 refactor: svg path 객체 파일 분리

* 🐛 fix: merge 오류 수정

* 🐛 fix: css layer 배치 수정

* ✨ feat: 탭 버튼 추가

* 🔨 refactor: type 없어서 build 안되는 오류 해결

* 💄 design: 워크스페이스 반응형으로 변경

* 🐛 fix: border box 잘못 넣은 것 빼기

* 🐛 fix: html 탭과 첫 번째 카테고리 선택되도록 수정

* 🐛 fix: 탭 한 번 선택되면 다시 눌렀을 때 안 꺼지게

* ✨ feat: 탭 선택 시 선택 해제되지 않도록 수정

* 🔨 refactor: tabbed Toolbox 커스텀 클래스로 분리

* 🔨 refactor: 불필요한 코드 정리

* ✨ feat: flyout 위치 고정

* ✨ feat: div로 변경하는 클래스 생성

* 🐛 fix: null로수정

* 🐛 fix: build 되도록 코드 수정

* 🐛 fix: contentarea로 수정

* ✨ feat: div 안에 svg 넣기

* 🐛 fix: flyout 사이즈 조절

* 🔨 refactor: 인터페이스 이름 변경

* ✨ feat: custom flyout register에 등록해서 가져다 사용하기

* 🐛 fix: 뒤에 요소 여러 개 렌더링 되는 거 해결

* ✨ feat: CSS스타일툴박스에 요소 추가 (input, button)

* 🎨 style: 클래스 내 멤버 변수, 메서드 생성 및 TODO 표시

* 💄 design: 스타일 toolbox의 text, input, button 디자인

* ✨ feat: 스타일 추가시 input 값 초기화 + alert->toast 변경

* 🔨 refactor: 가독성 개선

* 🐛 fix: flyout 스크롤바 생기는 에러 수정

* 🙀 chore: 오타 수정

* 🙀 chore: 테스트 코드 삭제

* ✨ feat: 블록 삭제 기능 추가

* 🎨 style: 로직 순서 변경(블록 생성) 및 타입 추가

* 🎨 style: 스타일 형식 변경 (인라인 -> 클래스에 지정)

* 🔨 refactor: svg 경로 변경 + 코드 가독성 개선

* 🎨 style: 태그 변경(p>label) & DOM 요소명 통일 & 로직 순서 변경(전역상태 예외처리 후 불러오도록 수정)

* 💄 design: 디자인 디테일 수정 (px->rem, 기존 설정 활용, placeholder와 입력값/button hover시 색상차이)

* 🔨 refactor: css스타일블록 삭제 기능 개선

* 🐛 fix: 수정 전 코드 삭제

* 🐛 fix: conflict 재해결

* 🐛 fix: 타입 에러 재수정

* 🚚 rename: 명칭 수정 (스타일>클래스)

* 🚚 rename: 툴박스 명칭 수정 (스타일>클래스)

---------

Co-authored-by: Yujin <[email protected]>
Co-authored-by: Yujin Lee <[email protected]>
Co-authored-by: leeyeongjae <[email protected]>
Co-authored-by: chichoc <[email protected]>
Co-authored-by: chichoc <[email protected]>

* 🐛 fix: 블록 생성 위치 수정 (#131)

* [#130] 사용자는 HTML/CSS 코드를 코드 블록으로 확인할 수 있다. (#132)

* ✨ feat: CodeMirror 코드 편집기 라이브러리 활용 및 적용.

* 🐛 fix: 빌드에러 수정

* [#32]  'html', 'head', 'body' 블록 캔버스에 고정시키기 (#135)

* ✨ feat: 블록 카테고리 모두 추가

* 🐛 fix: text 블록 한 줄 블록으로 변경

* ✨ feat: html head body 태그 워크스페이스에 고정하기

* [#30] br / hr 태그 한 줄 태그로 수정 + 불필요한 form 태그 삭제 (#136)

* 🐛 fix: br / hr 태그 한 줄 태그로 수정 + 불필요한 form 태그 삭제 + tooltip 설명 추가

* 🐛 fix: 한 줄 태그도 코드 generate 잘 되도록 수정

* 🐛 fix: a 태그 삭제 및 카테고리명 변경

* [#129] 스크롤을 내리면 블록 드래그 위치 이상해지는 버그 수정 (#137)

* 🐛 fix: 블록 생성 위치 수정

* 🐛 fix: 스크롤을 내리면 블록 드래그 위치 이상해지는 버그 수정

* Update README.md

* [#40] 사용자는 기본으로 적용된 스타일을 [CSS RESET] 체크하여 초기화할 수 있다. (#139)

* ✨ feat: toobox custom

* 🔨 refactor: svg path 객체 파일 분리

* 🐛 fix: merge 오류 수정

* 🐛 fix: css layer 배치 수정

* ✨ feat: 탭 버튼 추가

* 🔨 refactor: type 없어서 build 안되는 오류 해결

* 💄 design: 워크스페이스 반응형으로 변경

* 🐛 fix: border box 잘못 넣은 것 빼기

* 🐛 fix: html 탭과 첫 번째 카테고리 선택되도록 수정

* 🐛 fix: 탭 한 번 선택되면 다시 눌렀을 때 안 꺼지게

* ✨ feat: 탭 선택 시 선택 해제되지 않도록 수정

* 🔨 refactor: tabbed Toolbox 커스텀 클래스로 분리

* 🔨 refactor: 불필요한 코드 정리

* ✨ feat: flyout 위치 고정

* ✨ feat: div로 변경하는 클래스 생성

* 🐛 fix: null로수정

* 🐛 fix: build 되도록 코드 수정

* 🐛 fix: contentarea로 수정

* ✨ feat: div 안에 svg 넣기

* 🐛 fix: flyout 사이즈 조절

* 🔨 refactor: 인터페이스 이름 변경

* ✨ feat: custom flyout register에 등록해서 가져다 사용하기

* 🐛 fix: 뒤에 요소 여러 개 렌더링 되는 거 해결

* ✨ feat: CSS스타일툴박스에 요소 추가 (input, button)

* 🎨 style: 클래스 내 멤버 변수, 메서드 생성 및 TODO 표시

* 💄 design: 스타일 toolbox의 text, input, button 디자인

* ✨ feat: 스타일 추가시 input 값 초기화 + alert->toast 변경

* 🔨 refactor: 가독성 개선

* 🐛 fix: flyout 스크롤바 생기는 에러 수정

* 🙀 chore: 오타 수정

* 🙀 chore: 테스트 코드 삭제

* ✨ feat: 블록 삭제 기능 추가

* 🎨 style: 로직 순서 변경(블록 생성) 및 타입 추가

* 🎨 style: 스타일 형식 변경 (인라인 -> 클래스에 지정)

* 🔨 refactor: svg 경로 변경 + 코드 가독성 개선

* 🎨 style: 태그 변경(p>label) & DOM 요소명 통일 & 로직 순서 변경(전역상태 예외처리 후 불러오도록 수정)

* 💄 design: 디자인 디테일 수정 (px->rem, 기존 설정 활용, placeholder와 입력값/button hover시 색상차이)

* 🔨 refactor: css스타일블록 삭제 기능 개선

* 🐛 fix: 수정 전 코드 삭제

* ✨ feat: 스타일 블록 툴팁으로 삭제 기능 추가

* 🙀 chore: 커스텀 flyout position 오버라이딩 삭제 및 개선

* ✨ feat: 클래스 블럭 Enter키에도 동작 + 클래스명 30자 제한

* 🐛 fix: conflict 중복 삭제

* 💄 design: 스타일 블록 색상 수정

* ✨ feat: reset css 체크박스 UI + 상태관리

* ✨ feat: reset css 연동

* 🙀 chore: padding 재설정 + 태그에 title추가

* ✨ feat: createPortal을 활용하여 tooltip 제공

* 🐛 fix: build 에러 수정

* 🙀 chore: "스타일" -> "클래스" 텍스트 변경

* 💄 design: 체크박스 디자인 수정

---------

Co-authored-by: Yujin <[email protected]>
Co-authored-by: Yujin Lee <[email protected]>
Co-authored-by: leeyeongjae <[email protected]>
Co-authored-by: chichoc <[email protected]>
Co-authored-by: chichoc <[email protected]>

* [#26] 워크스페이스 블록 삭제, 스케일 조정 기능 설정 및 커스텀 (#142)

* ✨ feat: zoom 관련 아이콘들 디자인 변경 및 렌더링 위치 변경

* ✨ feat: 부덕이 휴지통 커스텀 및 위치 변경

* 🙀 chore: github actions에 storage url 추가

* 🎨 style: customtrashcan 클래스 createDom 메소드 코드 형식 수정

* 🔨 refactor: 쓰레기통 위치 좌하단으로 이동

* 🙀 chore: 안 쓰는 변수 삭제

* ✨ feat: 헤더 undo/redo 기능 추가 (#144)

* [#29] HTML/CSS 탭에서 코드 복사 (#143)

* ✨ feat: HTML/CSS 탭만 복사 아이콘 추가& hover시 색상 변경

* ✨ feat: 복사아이콘 클릭시 복사 & toast로 안내

* 🔨 refactor: 코드 복사 로직 분리

* 🐛 fix: flyout 처음 랜더링시에 높이 이상한 버그 수정 (#147)

* [#74] prettier + eslint + husky  (#146)

* 🙀 chore: prettier 프로젝트 내부에 vscode auto save 설정

* 🙀 chore: eslint 설정 global과 하위 프로젝트로 분리

* 🙀 chore: package.json script 수정

* 🙀 chore: husky 테스트

* 🙀 chore: husky 테스트

* 🙀 chore: husky 테스트

* 🙀 chore: husky 테스트

* 🙀 chore: husky 테스트

* 🐛 fix: eslint 연결

* 🔨 refactor: 불필요한 test 파일 삭제

* ✨ feat: eslint server랑 client 모두동작하게 script 추가

* ✨ feat: eslint와 prettier를 수행하는 husky 연결

* ✨ feat: 테스트

* ✨ feat: test

* ✨ feat: husky 설정

* Update pre-commit

* Update commit-msg

* eslint 오류 수정 (#149)

* 🐛 fix: eslint 오류 수정

* 🐛 fix: node 버전 낮추기

* 🐛 fix: node 버전 낮추기

* ✨ feat: 블록에 커스텀 툴팁이 보이게 하기 구현 (#153)

* [#46] 사용자는 삭제 버튼을 통해 클래스 블록을 삭제할 수 있다. (#154)

* ✨ feat: toobox custom

* 🔨 refactor: svg path 객체 파일 분리

* 🐛 fix: merge 오류 수정

* 🐛 fix: css layer 배치 수정

* ✨ feat: 탭 버튼 추가

* 🔨 refactor: type 없어서 build 안되는 오류 해결

* 💄 design: 워크스페이스 반응형으로 변경

* 🐛 fix: border box 잘못 넣은 것 빼기

* 🐛 fix: html 탭과 첫 번째 카테고리 선택되도록 수정

* 🐛 fix: 탭 한 번 선택되면 다시 눌렀을 때 안 꺼지게

* ✨ feat: 탭 선택 시 선택 해제되지 않도록 수정

* 🔨 refactor: tabbed Toolbox 커스텀 클래스로 분리

* 🔨 refactor: 불필요한 코드 정리

* ✨ feat: flyout 위치 고정

* ✨ feat: div로 변경하는 클래스 생성

* 🐛 fix: null로수정

* 🐛 fix: build 되도록 코드 수정

* 🐛 fix: contentarea로 수정

* ✨ feat: div 안에 svg 넣기

* 🐛 fix: flyout 사이즈 조절

* 🔨 refactor: 인터페이스 이름 변경

* ✨ feat: custom flyout register에 등록해서 가져다 사용하기

* 🐛 fix: 뒤에 요소 여러 개 렌더링 되는 거 해결

* ✨ feat: CSS스타일툴박스에 요소 추가 (input, button)

* 🎨 style: 클래스 내 멤버 변수, 메서드 생성 및 TODO 표시

* 💄 design: 스타일 toolbox의 text, input, button 디자인

* ✨ feat: 스타일 추가시 input 값 초기화 + alert->toast 변경

* 🔨 refactor: 가독성 개선

* 🐛 fix: flyout 스크롤바 생기는 에러 수정

* 🙀 chore: 오타 수정

* 🙀 chore: 테스트 코드 삭제

* ✨ feat: 블록 삭제 기능 추가

* 🎨 style: 로직 순서 변경(블록 생성) 및 타입 추가

* 🎨 style: 스타일 형식 변경 (인라인 -> 클래스에 지정)

* 🔨 refactor: svg 경로 변경 + 코드 가독성 개선

* 🎨 style: 태그 변경(p>label) & DOM 요소명 통일 & 로직 순서 변경(전역상태 예외처리 후 불러오도록 수정)

* 💄 design: 디자인 디테일 수정 (px->rem, 기존 설정 활용, placeholder와 입력값/button hover시 색상차이)

* 🔨 refactor: css스타일블록 삭제 기능 개선

* 🐛 fix: 수정 전 코드 삭제

* ✨ feat: 스타일 블록 툴팁으로 삭제 기능 추가

* 🙀 chore: 커스텀 flyout position 오버라이딩 삭제 및 개선

* ✨ feat: 클래스 블럭 Enter키에도 동작 + 클래스명 30자 제한

* 🐛 fix: conflict 중복 삭제

* 💄 design: 스타일 블록 색상 수정

* ✨ feat: reset css 체크박스 UI + 상태관리

* ✨ feat: reset css 연동

* ✨ feat: 클래스명 유효성 검증 추가

* 🐛 fix: conflict 해결

* 💄 design: 커스텀 flyout 쪽 생성되는 블록의 x축 쪽이 조금 떨어지게 함 (임시)

* 🐛 fix: 우클릭시 뜨는 툴팁 미세한 스크롤 제거. !important 활용하여 css 적용

* 🙀 chore: 병합 시 충돌된 css 부분 수정

* 🐛 fix: 중복 선언 & 예전 명명 수정

---------

Co-authored-by: Yujin <[email protected]>
Co-authored-by: Yujin Lee <[email protected]>
Co-authored-by: leeyeongjae <[email protected]>
Co-authored-by: inhachoi <[email protected]>
Co-authored-by: chichoc <[email protected]>

* [#41] 워크스페이스 저장 기능 구현 (#156)

* ✨ feat: 워크스페이스 변경 사항에 대한 전역상태 추가

* ✨ feat: html 블록 관련 이벤트 발생 혹은 CSS 속성 변경 시 워크스페이스 변경사항 여부 변경

* ✨ feat: 변경사항이 있는데 워크스페이스 페이지 이탈 시 사용자에게 변경사항에 대해 안내하는 alert창을 보여주는 로직 구현 (미완성)

* 🎨 style: text-semibold-lg line-heigh 변경 1.25rem -> 1.75rem

* ✨ feat: 워크스페이스에 변경사항이 있을 때 페이지 이동, 닫기, 뒤로 가기, 홈 페이지 이동 전 저장하지 않은 내역이 있다고 안내하는 usePreventLeaveWorkspacePage 커스텀 훅 제작

* ✨ feat: 모달의 닫기 버튼 클릭 이벤트 핸들러 전역 상태 추가

* ✨ feat: 워크스페이스 변경사항 안내 모달 컴포넌트 추가

* 🙀 chore: 모달 버튼 재사용을 위해 buttonProps 타입 변경

* 🙀 chore: 변경 및 추가된 useModalStore 상태 반영

* 🙀 chore: 삭제 버튼 이벤트 핸들러 지정

* ✨ feat: 워크스페이스 페이지에서 로고 클릭 시 변경사항이 있으면 모달 렌더링 없으면 홈페이지를 이동하는 콜백 추가

* 🎨 style: blockly 워크스페이스 상위에 모달 렌더링을 위해 z 인덱스 조정

* 🐛 fix: 워크스페이스 페이지에서 뒤로가기 이벤트를 막는 기능이 제대로 동작하지 않는 버그 수정 중

* ✨ feat: useBlocker를 통해 뒤로가기, Link 태그로 페이지를 이동하는 이벤트를 막는 기능 추가

* ✨ feat: 워크스페이스 페이지 로딩 시 워크스페이스 변경 내역 상태 초기화

* ✨ feat: 워크스페이스 변경내역 초기화 함수

* 🙀 chore: 필요없어진 코드 삭제

* 🐛 fix: 색깔 속성의 기본값이 #000000으로 적용안되는 문제 해결

* 🔨 refactor: 재사용을 위해 워크스페이스 CSS 속성값에 대한 타입 추가

* 🔥 remove: 워크스페이스 페이지 이동 시 렌더링 되는 모달 컴포넌트 삭제

* ✨ feat: useBlocker 훅 사용을 통해 <BrowsercRouter>를 바로 사용하는 것이 아닌 createBrowserRouter 메서드 및 RouterProvider 를 사용하는 방식으로 변경

* 🙀 chore: 불필요한 import 삭제

* 🙀 chore: 불필요한 코드 삭제

* 🙀 chore: 주석 삭제

* 🔨 refactor: 재사용 컴포넌트들로 교체

* ✨ feat: 워크스페이스에서 조정한 css 값을 저장하는 api 라우트 추가 method : PUT , end-point : /api/workspace/css

* ✨ feat: controller에서 css 저장 api 요청을 처리하는 storeWorkspaceCssProperty 메서드 추가

* ✨ feat: 타입 추가

* ✨ feat: 워크스페이스 컬렉션 스키마 재정의 (CSS 관련 정보 추가)

* ✨ feat: DB에 cssList를 저장하는 로직 추가

* ✨ feat: controller 단에서 오류 처리 추가

* 🐛 fix: mongoDB 스키마와 동일한 객체 key명으로 변경

* 🐛 fix: input type이 color일 때 기본값으로 #000000으로 적용되지 않는 문제 해결

* 🙀 chore: 디버깅용 코드 삭제

* 🙀 chore: 변경된 URI 적용

* 💬 comment: css 저장 api 스웨거 명세 작성

* 🙀 chore: require 속성 삭제

* ✨ feat: 워크스페이스 css 저장 API 요청 메서드 추가

* ✨ feat: 새로운 CSS 블록 추가 시 전역상태인 totalCssProps에 해당 클래스를 추가하는 메서드 추가

* ✨ feat: 워크스페이스 정보 조회 및 이름 변경 후 반환되는 workspace 정보에 새로 추가된 row도 반환하도록 변경

* ✨ feat: swagger 스키마 변경

* 🙀 chore: 변경된 workspace 반환 데이터에 따른 타입 변경 및 추가

* ✨ feat: 워크스페이스를 저장하는 커스텀훅 추가

* 🙀 chore: index.ts re-export 추가

* ✨ feat: 전역상태 cssProp 및 classBlock 초기화 메서드 추가

* ✨ feat: data fetching 성공 시 전역상태 cssProps, classBlockList 초기화

* 🙀 chore: 변경된 타입 적용

* 🙀 chore: 불필요한 코드 삭제

* ✨ feat: 워크스페이스 저장 버튼 저장 기능 구현

* ✨ feat: classBlock 추가 시 새로운 class에 대한 cssProps 저으이

* 🔨 refactor: 메서드 분리

* 🙀 chore: workspace 관련 타입 추가

* ✨ feat: iframe 속성 중 sandbox 속성을 통해 script 실행 방지

* ✨ feat: feat/34 브랜치와 머지를 위해 커밋

* 🐛 fix: 스키마 타입 에러로 인한 오류가 발생하여 canvas를 string형식으로 저장

* ✨ feat: 워크스페이스 캔버스 블록 관련 저장 로직 추가

* ✨ feat: 워크스페이스 캔버스 블록 저장 요청 메소드 연동

* ✨ feat: Promise.all을 통해 css, 워크스페이스 캔버스 블록 상태 저장 진행

* ✨ feat: 워크스페이스 캔버스 관련 타입 정의

* ✨ feat: 전역상태인 워크스페이스를 통해 직렬화된 캔버스 정보를 얻어서 저장 요청

* 🐛 fix: eslint 오류 해결

* 💬 comment: window에서 이모지가 적용 안되는 문제 발생

* 🚚 rename: widgets 레이어에서 shared 레이어로 이동 blockly는 util느낌이 강해서 이동함

* 🐛 fix: eslint 오류 수정

* 🚚 rename: widgets/blockly 폴더 이동에 따른 코드 수정

* ✨ feat: 타입 추가 및 타입명 수정

* ✨ feat: css 속성, canvas 블록 상태, class 블록, reset css 적용 여부 저장 api 생성 및 연동

* ✨ feat: css 블록 생성 메서드 추가 및 워크스페이스 페이지 렌더링 시 블록 생성 진행

* 🐛 fix: canvasInfo가 null일 때 발생하는 문제 해결

* ✨ feat: 클래스 블록 삭제 시 totalCssProps에도 반영되게 변경

* Merge branch 'dev' of github.com:boostcampwm-2024/web31-BooLock into feat/41

* [#157] 워크스페이스 이름 변경 시 상태 관리 미적용, 워크스페이스에 저장된 블록이 있음에도 새로 고침 시 초기화 되는 문제 해결 (#159)

* 🐛 fix: 이름 변경 시 반환되는 workspace 속성 중 서버에서 변경된 부분 반영

* 🐛 fix: 타입 지정이 잘못되어 있던 오류 해결

* 🐛 fix: canvasInfo가 null이라 발생하는 에러 해결

* [#140] SEO (#160)

* 🔨 refactor: meta 태그 수정

* 🔨 refactor: react-helmet-async와 robots.txt 적용

* 🔨 refactor: react-helmet-async + robots.txt + img의 alt 적용

* 🔨 refactor: 썸네일 이미지 등록

* 🐛 fix: 블록 삭제 막기 (#161)

* Update README.md

* 🙀 chore: CODEOWNER 수정 (chore와 hotfix는 리뷰어 지정 비활성화)

* 🙀 chore: Github Actions 워크플로우 수정 (chore와 hotfix  형식 변경)

* chore: chore와 hotfix 브랜치 리뷰어 지정 비활성화 (순서 변경)

* 🙀 chore: actions/checkout@v2 재추가

* 🙀 chore: push시 브랜치명 체크하도록 수정

* 🙀 chore: 특정 브랜치에서 2명 approve 우회

* 🚚 rename: yml 형식으로 변경

* 🙀 chore: 특정 브랜치 PR Github Actions가 승인하도록 수정

* 🙀 chore: Github Token 추가

* 🙀 chore: checkout 추가

* 🙀 chore: PR Number 전달 코드 추가

* 🙀 chore: PR 승인을 위한 PAT 추가

* [#165] https 환경으로 배포 (#168)

* ✨ feat: ssl 인증서 적용하기

* 🙀 chore: dev/deploy action 스크립트 수정

* 🙀 chore: dev/deploy action 스크립트 수정 - ssl 디렉토리 생성

* 🙀 chore: dev/deploy action 스크립트 수정 - ssl 디렉토리 수정

* 🙀 chore: dev/deploy action 스크립트 수정 - ssl 디렉토리 생성

* 🙀 chore: docker 오타 수정

* [#134] 블록에서 태그 이름이 잘리는 버그 해결 (#163)

* 🐛 fix: 블록 필드라벨 텍스트가 길어지면 잘리던 오류 해결

* 🐛 fix: text 블록의 텍스트inputfield창이 자연스럽게 렌더링 되지 않았던 오류 해결

* 🎨 style: render info 값 상수화 추가

* 🔨 refactor: renderinfo finalize의 복잡했던 코드 private method로 분리 및 구조 개선

* 🔥 remove: 자동승인 하나의 PR이 아닌 계정만 가능하여 삭제

* [#167] select 디자인 변경 (#169)

* 💄 design: select 디자인 변경

* 🙀 chore: git pull origin dev script에 추가

* 🙀 chore: PR에서만 브랜치 체크하도록 수정

* [#152] 모든 컴포넌트 스토리북 제작 (#173)

* ☔️ test: NotHoveredEmptyWorkspace 컴포넌트 스토리북 테스트

* ☔️ test: WorkspaceLoadError 스토리북 테스트

* ☔️ test: button 스토리북 테스트

* ☔️ test: loading 컴포넌트 스토리북 테스트

* ☔️ test: logo  컴포넌트 스토리북 테스트

* ☔️ test: modal, skeleton, otaster 스토리북 테스트

* ✨ feat: storybook 기본 폴더 생성

* 🐛 fix: storybook tailwind 적용 안되는 문제 해결 및 스니펫 추가

* ✨ feat: storybook action 애드온 설치

* ✨ feat: shared/ui 컴포넌트 스토리북 제작

* ✨ feat: Redo, Save버튼 스토리북 컴포넌트 제작

* 🙀 chore: dev 브랜치 머지 후 변경되지 않은 saveButton 코드 변경

* 🙀 chore: dev 브랜치 최신 반영

* ✨ feat: WorkspaceNameInput 스토리북 컴포넌트 제작

* ✨ feat: Undo 버튼 스토리북 추가

* ✨ feat: CSS 툴팁 스토리북 추가

* 💬 comment: 저장버튼 description 작성

* ✨ feat: tanstack-query를 사용하는 컴포넌트를 스토리북에 추가하기 위해 데코레이터로 QueryProvider 적용

* ✨ feat: category버튼 props 변경 및 스토리북 제작

* 🙀 chore: CssCategoryButton Props 변경에 따른 코드 수정

* ✨ feat: 스토리북 변경

* 🙀 chore: storybook title 경로 변경

* 🚚 rename: storybook test를 위해 폴더 구조 변경

* 🐛 fix: Loading 컴포넌트가 docs에서 렌더링 되지 않는 문제 해결

* ✨ feat: docs layout 변경 centered -> fullscreen로 변경

* 🔥 remove: 중복된 파일 삭제

* ✨ feat: decorator로 MemoryRouter를 스토리북 컴포넌트에 적용

* ✨ feat: HoveredEmptyWorkspace 컴포넌트 추가

* ✨ feat: WorkspaceAdd 버튼 스토리북 추가

* ✨ feat: workspaceItems 스토리북 추가

* 🎨 style: workspaceId 스토리북 레이아웃 변경

* 🚚 rename: 스토리북 제작을 위해 폴더 구조 변경

* 🐛 fix: 클래스 블록 삭제 시 클래스를 선택해주세요가 선택되도록 설정

* 🚚 rename: css코드 생성기 파일 shared/blockly로 이동

* ✨ feat: widgets/workspace/css 컴포넌트 스토리북 제작

* ✨ feat: widgets/workspace 컴포넌트 스토리북 제작

* ✨ feat: widgets/home 컴포넌트 추가

* 🐛 fix: 빌드 시 폰트 파일 인코딩 문제 해결

* ✨ feat: CssOptionItem 스토리북 제작

* ✨ feat: 페이지 컴포넌트 스토리북 작성

* ✨ feat: react-helmet provider, MemoryRouterProvider, blockly 동적 import 설정

* 💬 comment: 모든 컴포넌트에 description 주석 작성

* 🔥 remove: 불필요한 라이브러리 삭제

* Update deploy-storybook.yml

* 🙀 chore: 이미지 깨짐 문제 해결을 위한 스크립트 수정

* 🐛 fix: 스크립트 오류 수정

* 🐛 fix: 이미지 경로 수정

---------

Co-authored-by: inhachoi <[email protected]>
Co-authored-by: Yujin Lee <[email protected]>

* [#172] 백엔드 에러핸들링 미들웨어 추가 (#174)

* ✨ feat: 백엔드 에러핸들링 미들웨어 추가

* 🙀 chore: 에러문구 수정

* 🙀 chore: 깃허브 check-branch 액션에 refactor 브랜치에 대한 처리도 추가

* 🙀 chore: 깃허브 check-branch 액션 스크립트 오타 수정

* [#178] 워크스페이스화면에서 로고 이미지가 깨져보이는 오류 해결 (#179)

* 🐛 fix: 이미지 경로 수정

* 🙀 chore: 프로필 사진 두는 요소 삭제

* [#176] html generator 적용 에러 (#180)

* ✨ feat: 최상위 블록이 html이 아니면 html 코드로 변환 안되게 막음

* 🙀 chore: styleFlyout 부분 주석 추가

* 🐛 fix: 전체 코드 생성 함수

* 🐛 fix: html 외부 블록은 빈 줄로 생성되는 오류 해결

* [#175] 워크스페이스 저정 버튼 클릭 시 미리보기 창 캡처 및 썸네일 적용 (#182)

* ✨ feat: s3 버킷 인스턴스 추가

* ✨ feat: 썸네일 저장 기능 구현 중

* 🙀 chore: 스토리북 빌드 파일 linting에서 제외

* 🙀 chore: preview iframe 기본 css 설정

* 🙀 chore: 미리보기 캡처 기능 함수로 분리

* ✨ feat: png -> webp 변환을 위해 sharp 라이브러리 설치

* ✨ feat: png -> webp 변환 후 리사이즈 적용 후 업로드 진행, DB 저장 로직에 트랜잭션 적용

* 🙀 chore: 스웨거 주석 추가 및 불필요한 api 삭제

* 🙀 chore: 불필요한 api 호출 메서드 삭제

* ✨ feat: 썸네일 css 조정 및 lazy loading 적용

* 🐛 fix: 이름 변경 시 useGetWorkspace에 적용된 캐싱 데이터를 초기화하는 것이 아닌 이름만 변경하도록 로직 수정

* [#177] 페이지별 ErrorElement 추가 (#181)

* ✨ feat: 워크스페이스 에러발생시 페이지 띄움 (NotFound 컨텐츠 분리하여 재사용)

* 🎨 style: 함수형으로 변경

* 💄 design: 텍스트길이와 상관없이 가운데 정렬

* 🙀 chore: 오타 수정 & 에러페이지 undefined 에러 수정

* Merge branch 'dev' into refactor/177

* 🐛 fix: totalCssPropertyObj undefined 에러 수정

* 🐛 fix: nextCursor undefined 에러 수정 & 홈 라우터에도 errorElement 추가

* ✨ feat: 폰트 선택 기능 추가 (#192)

* [#188] 클래스 블록 생성 시 blockly 기본 블록이 생성되는 문제 해결, 워크스페이스 초기 로딩 시 변경사항 감지 문제 해결 (#193)

* 🐛 fix: 워크스페이스 로딩 시 block 변경사항 감지 로직 변경

* ✨ feat: 블록 생성 시  CSS_ 라는 접두사를 blockType으로 사옹하게끔 변경

* ✨ feat: css 블록 class명에 붙은 접두사를 제거하는 메서드 추가

* 🙀 chore: class명에 붙은 접두사 제거 메서드 적용

* ✨ feat: css 클래스에 접두사를 붙이는 메서드 추가

* 🙀 chore: css 클래스 접두사 관련 적용 안된 부분 전체 적용

* 💬 comment: 주석 추가

* 🙀 chore: 깃허브 액션 env 설정 추가

* [#150] 코드 하이라이팅 구현 (#194)

* 테스트

* ✨ feat: 코드 하이라이트 구현

* ✨ feat: html 태그 내부 블록만 파싱하게 처리

* ✨ feat: 제일 안쪽 노드 들여쓰기

* ✨ feat: 코드 줄 계산 변경

* ✨ feat: 코드 라인 색상 하이라이팅 기능 추가

* ✨ feat: 코드 수정 부분 애니메이션 추가

* 🙀 chore: 불필요한 ref 삭제

* 💄 design: 불필요한 css 삭제

* ✨ feat: 선택한 블록의 코드 하이라이팅 기능 구현

* 🔨 refactor: 불필요한 코드 제거 및 가독성 향상

* 🔨 refactor: 코드 리팩토링

* ✨ feat: 코드 각 줄 앞에 두칸 공백 추가

* 🔨 refactor: 계산 코드 리팩토링

* 🙀 chore: 상수값 추가

* 🐛 fix: 자식 노드 파싱 에러 해결

* 🙀 chore: 코드 재사용

* 🙀 chore: http에서 https로 인해 변경된 메타정보 수정

* [#186] select 버그 수정 (#195)

* 🐛 fix: option 초기값 첫 번째 값으로 지정

* 🐛 fix: select 버그 수정

* 🐛 fix: flyout 크기 고정 (#196)

* [#198] 누락된 CSS 하이라이팅 기능 추가 (#199)

* 테스트

* ✨ feat: 코드 하이라이트 구현

* ✨ feat: html 태그 내부 블록만 파싱하게 처리

* ✨ feat: 제일 안쪽 노드 들여쓰기

* ✨ feat: 코드 줄 계산 변경

* ✨ feat: 코드 라인 색상 하이라이팅 기능 추가

* ✨ feat: 코드 수정 부분 애니메이션 추가

* 🙀 chore: 불필요한 ref 삭제

* 💄 design: 불필요한 css 삭제

* ✨ feat: 선택한 블록의 코드 하이라이팅 기능 구현

* 🔨 refactor: 불필요한 코드 제거 및 가독성 향상

* 🔨 refactor: 코드 리팩토링

* ✨ feat: 코드 각 줄 앞에 두칸 공백 추가

* 🔨 refactor: 계산 코드 리팩토링

* 🙀 chore: 상수값 추가

* 🐛 fix: 자식 노드 파싱 에러 해결

* 🙀 chore: 코드 재사용

* 🙀 chore: http에서 https로 인해 변경된 메타정보 수정

* ✨ feat: 클래스블록 꾸미기 기능도 추가

* [#185] 워크스페이스 샘플 만들기 (#197)

* 🐛 fix: option 초기값 첫 번째 값으로 지정

* 🐛 fix: select 버그 수정

* ✨ feat: 워크스페이스 샘플 추가 버튼 생성

* ✨ feat: 샘플 추가 기능 구현

* ✨ feat: 커스텀의 어려움이 있어서 css 속성 및 폰트 추가

* ✨ feat: class 블록 누르면 css 옵션 선택 창에서 css 클래스 선택됨

* 🐛 fix: css 클래스 블록 삭제하면 workspace에서도 삭제

* 💄 design: workspace item border 추가

* 🐛 fix: 플 복제만들 때는 이미지도 s3에 올려서 url 새로 만들기

* ✨ feat: box-shadow 스타일 추가 + preview 탭스크롤바 커스텀

* ✨ feat: 새 유저면 샘플 기본 1개 생성

* 🐛 fix: console 삭제

* 🐛 fix: 스토리북 삭제

* 🐛 fix: 잘못지운 거 복구

* [추가 작업] 누락된 CSS 하이라이팅 기능 추가 (#204)

* 테스트

* ✨ feat: 코드 하이라이트 구현

* ✨ feat: html 태그 내부 블록만 파싱하게 처리

* ✨ feat: 제일 안쪽 노드 들여쓰기

* ✨ feat: 코드 줄 계산 변경

* ✨ feat: 코드 라인 색상 하이라이팅 기능 추가

* ✨ feat: 코드 수정 부분 애니메이션 추가

* 🙀 chore: 불필요한 ref 삭제

* 💄 design: 불필요한 css 삭제

* ✨ feat: 선택한 블록의 코드 하이라이팅 기능 구현

* 🔨 refactor: 불필요한 코드 제거 및 가독성 향상

* 🔨 refactor: 코드 리팩토링

* ✨ feat: 코드 각 줄 앞에 두칸 공백 추가

* 🔨 refactor: 계산 코드 리팩토링

* 🙀 chore: 상수값 추가

* 🐛 fix: 자식 노드 파싱 에러 해결

* 🙀 chore: 코드 재사용

* 🙀 chore: http에서 https로 인해 변경된 메타정보 수정

* ✨ feat: 클래스블록 꾸미기 기능도 추가

* 🐛 fix: 코드 병합시 생긴 중복 코드 제거

* 🙀 chore: 충돌 로직 해결

* 💄 design: 이미지 css 속성 변경

* 📝 docs: 리드미 수정

* Update README.md

* 📝 docs: 리드미 수정

* [#202] 워크스페이스 목록에서 샘플 이미지 깨지는 문제 해결, 미리보기 캡처 시 css 적용 안되는 문제 해결 및 자잘한 버그 해결 (#211)

* 🙀 chore: image width를 800px로 고정

* ✨ feat: reset-css 클래스 추가

* 🙀 chore: 주석 삭제

* ✨ feat: iframe document로 새로운 div를 만든 후 해당 div를 캡처하는 유틸 메소드 추가

* 🙀 chore: 썸네일 캡처 로딩 추가

* 🙀 chore: sample 생성 시 s3에 업로드 된 샘플 썸네일 이미지 링크를 첨부하도록 변경

* 🙀 chore: 썸네일 캡처 후 webp로 blob 인코딩을 하여 불필요한 이미지 변환이 사라져 패키지 삭제

* 🙀 chore: 워크스페이스 초기 로딩 시 클래스 블록을 가장 먼저 생성하도록 변경

* ✨ feat: 사용자 변경사항 감지 조건 추가

* 🙀 chore: console.log 삭제

* 🙀 chore: className 선택 시 CSS_ 접두사를 제거하도록 변경

* 🙀 chore: iframe document body를 div로 변경하여 html2canvas로 캡처할 수 있도록 변경

* 🙀 chore: class 블록 클릭 시 classList에서 class를 탐색할 때 CCS_를 제거한 다음에 탐색하도록 변경

* 🙀 chore: class블록 삭제 시 안내 문구에 CSS_ 접두사도 같이 출력되는 문제 해결

* ✨ feat: 워크스페이스 이름을 바로 바꿀 수 있게끔 변경, workspace name을 전역 변수화시킴 + 캐시 무효화로 인한 리페치 때문에 css 값이 초기화 되는 문제도 같이 해결

* 🐛 fix: 저장할 때 워크스페이스 상태가 초기화 되는 문제 해결

* 🐛 fix: css 클래스 블록 삭제 시 class List에서 사라지지 않는 문제 해결

* 🙀 chore: 불필요한 코드 삭제

* 🙀 chore: 저장 시 workspaceList 리페치 추가

* Update deploy-storybook.yml

* 📝 docs: readme 수정

* [HOTFIX] 스토리북 이미지 깨짐 문제 해결 (#214)

* 🙀 chore: image width를 800px로 고정

* ✨ feat: reset-css 클래스 추가

* 🙀 chore: 주석 삭제

* ✨ feat: iframe document로 새로운 div를 만든 후 해당 div를 캡처하는 유틸 메소드 추가

* 🙀 chore: 썸네일 캡처 로딩 추가

* 🙀 chore: sample 생성 시 s3에 업로드 된 샘플 썸네일 이미지 링크를 첨부하도록 변경

* 🙀 chore: 썸네일 캡처 후 webp로 blob 인코딩을 하여 불필요한 이미지 변환이 사라져 패키지 삭제

* 🙀 chore: 워크스페이스 초기 로딩 시 클래스 블록을 가장 먼저 생성하도록 변경

* ✨ feat: 사용자 변경사항 감지 조건 추가

* 🙀 chore: console.log 삭제

* 🙀 chore: className 선택 시 CSS_ 접두사를 제거하도록 변경

* 🙀 chore: iframe document body를 div로 변경하여 html2canvas로 캡처할 수 있도록 변경

* 🙀 chore: class 블록 클릭 시 classList에서 class를 탐색할 때 CCS_를 제거한 다음에 탐색하도록 변경

* 🙀 chore: class블록 삭제 시 안내 문구에 CSS_ 접두사도 같이 출력되는 문제 해결

* ✨ feat: 워크스페이스 이름을 바로 바꿀 수 있게끔 변경, workspace name을 전역 변수화시킴 + 캐시 무효화로 인한 리페치 때문에 css 값이 초기화 되는 문제도 같이 해결

* 🐛 fix: 저장할 때 워크스페이스 상태가 초기화 되는 문제 해결

* 🐛 fix: css 클래스 블록 삭제 시 class List에서 사라지지 않는 문제 해결

* 🙀 chore: 불필요한 코드 삭제

* 🙀 chore: 저장 시 workspaceList 리페치 추가

* 🙀 chore: 이미지 경로 s3로 변경

* 📝 docs: 리드미 수정

* 📝 docs:

* 📝 docs: 리드미 수정

* [#200] preview 창 잘리는 에러 + CSS 클래스 탭 잘 안보임 (#216)

* 🐛 fix: 미리보기 세로 비율 수정, 클래스 탭 색상 잘보이게 수정

* 🐛 fix: 라인 배경색이 전체로 안먹는 에러로 배경색 삭제

* 📝 docs: readme 수정

* [#203] main banner 제작 (#215)

* ✨ feat: banner 생성

* ✨ feat: 베너 웹사이트 UI 추가

* 🐛 fix: 문구 수정

* 🔨 refactor: 머지

* [#35] 추가 태그 블록 제작 (#206)

* ✨ feat: a 태그 블록 구현

* ✨ feat: 이미지 선택 모달창 추가

* ✨ feat: 이미지 업로드 및 삭제 crud 추가 및 이미지 커스텀 버튼 필드 추가

* ✨ feat: 백엔드에 블록id-url 정보 저장 및 image관련 데이터들도 가져올 수 있게 추가

* ✨ feat: 삭제됐던 tooltip css 속성 다시 추가

* 🐛 fix: 저장된 imageList, imageMap 설정 안되던 오류 해결

* 🙀 chore: 쓸모없는 코드 삭제

* 🐛 fix: 누락됐던 스타일 속성 재추가

* 🔨 refactor: imageModalStore를 modalStore로부터 분리

* 💄 design: 버튼 필드 호버 효과 적용

* 🔨 refactor: 컴포넌트 분리 및 로직 일부 개선

* 🐛 fix: 병합 후 코드하이라이팅 및 보이는 html 코드 img 태그 파싱이 잘못되던 오류 해결

* 🐛 fix: 이미지 이름 잘못 저장하던 오류 해결

* 🙀 chore: 필요없는 주석 제거

* 🔨 refactor: css 클래스 속성 코드에 추가하는 방식 수정

* 🎨 style: transferTabBlockToCode 코드 형식 개선 및 설명 주석처리

* 💬 comment: 이미지 태그 관련 컴포넌트 및 필드 설명 주석 추가

* 🚚 rename: imageUploadModal->imageTabModal로 이름 변경

* 🎨 style: 변수 이름 변경

* 🐛 fix: 이미지 모달창 열어도 이전 임시 업로드 요소가 남아있던 오류 해결 및 파일 이름 저장이 이상하게 되었던 오류 해결

* 🐛 fix: delete해도 이미지 src가 남아있던 오류 해결

* Merge branch 'dev' into feat/35

* ✨ feat: 디자인 시안대로 변경 및 파일 업로드 시 바로 백엔드에 저장되게 수정

* 🎨 style: ImageTagModalSrc 컴포넌트 파일 삭제 및 ImageTagModal에 병합

* 📝 docs: readme 수정

* 📝 docs: README 수정 (줄바꿈 추가)

* [#183] 사용자 가이드 (#217)

* ✨ feat: 코치마크 생성 및 전역상태로 관리

* 🎨 style: CircleButton props 사용 용이하게 수정

* ✨ feat: 도움말 버튼 추가 및 저장/undo/redo 컴포넌트 분리

* 💄 design: 도움말 아이콘 추가

* ✨ feat: 코치마크 시작시 1단계로 초기화

* 🎨 style: 마지막 단계(=5)인 경우 버튼 문구 시작하기로 수정

* 🙀 chore: TOOD 표시 (이전버튼 추가 여부)

* ✨ feat: 이전 버튼 추가 및 CircleButton TODO 표시

* ✨ feat: 마지막 단계(5)인 경우 '시작하기'버튼 클릭시 모달 닫기

* 🙀 chore: TODO 수정 (이전 버튼, 아이콘 색깔 논의 제외)

* ✨ feat: 3,4,5 단계 관련 컴포넌트 하이라이팅

* ✨ feat: 사용자가이드 2단계인 경우 CSS 클래스 Flyout 하이라이팅

* 🙀 chore: 완료한 TODO 제거

* 💄 design: CircleButton outline스타일 추가 & 클래스 변수로 구분

* ✨ feat: 단계별 텍스트 중 주요 단어 강조

* 🎨 style: 단계별 문구 utils로 분리

* 🎨 style: 코치마크 디자인 디테일

* ✨ feat: 3,4 단계 하이라이팅 개선

* ✨ feat: 그만보기 클릭시 더이상 띄우지 않기 (버그 TODO 추가)

* 🐛 fix: 빌드 에러 수정

* ✨ feat: 기본 블록 추가 (html text, css class)

* 🐛 fix: hotfix 및 chore 브랜치 리뷰어 지정하지 않도록 수정

* 🐛 fix: Invalid 에러 수정

* [HOTFIX] 워크스페이스 처음 생성시 에러 해결 (#221)

🐛 fix: 워크스페이스 초기 생성시 에러 해결

* 🚨 !HOTFIX!: html 클래스 속성 제거

* [#224] 자잘한 버그 수정 (#226)

* 🐛 fix: 쓰레기통 수정

* 🐛 fix: 반응형

* 🐛 fix: 탭

* 🐛 fix: 자잘하 버그 수정

* [#223] 코드 내보내기 버튼 추가 (#225)

* ✨ feat: iframe 전역 상태 추가

* 🔨 refactor: iframe 관련 에러 메세지 코드 분리

* 🙀 chore: 코드 분리 및 iframe 전역상태로 변경

* ✨ feat: html 코드 다운 메소드 추가

* ✨ feat: 코드 내보내기 버튼 추기

* ✨ feat: 전역상태 iframe 초기화

* 🙀 chore: console.log 제거

* ☔️ test: CodeExportButton 스토리북 추가

* [#164] 워크스페이스 캔버스 모션 설정 변경 (#227)

* ✨ feat: 컨트롤+마우스 휠 동작으로 캔버스 확대 축소 기능 변경

* 🎨 style: import 경로 수정

* 🙀 chore: 변경사항 감지 로직 변경 (#229)

* [hotfix] favicon, 썸네일 이미지 파일 추가 (#230)

* 🙀 chore: 파비콘 정적 파일 추가

* 🙀 chore: boolock 썸네일 이미지 파일 추가

* 🐛 fix: css class 블록을 전부 불러오지 않는 문제 해결 (#232)

* [#201] Lighthouse 기반 최적화 (#234)

* 🔨 refactor: 레이지 로딩 적용

* 🔨 refactor: aria 태그, alt, placeholder, title 속성 추가로 접근성 개선

* 🙀 chore: 누락된 aria 속성 추가

* 🔨 refactor: ul 내부에 li 태그 사용하게 수정 + 순차적인 헤딩 계층 태그 사용

* 🔨 refactor: 접근성 및 퍼포먼스 개선

* 🐛 fix: gird 수정

* 🐛 fix: girditem 수정

* Update README.md

* 🐛 fix: gird 수정

* 🐛 fix: shadow 수정

* 🐛 fix: gird 수정

* 🚨 !HOTFIX!: ul, li 태그 div로 변경

* 🐛 fix: css클래스 삭제 후 똑같은 이름으로 생성 후 css 부여 시 에러 발생하는 버그 수정 (#236)

* Update README.md

* Update README.md

* 🐛 fix: item 수정

* 🐛 fix: event 수정

* [#223] 스토리북 처리 안 되어있던 컴포넌트들 스토리북 추가 (#237)

* ✨ feat: 스토리북 추가

* 🔥 remove: 가이드 영상 컴포넌트 삭제

* 🐛 fix: a태그 셀프 속성 제거

* 🐛 fix: 빌드 중 생긴 오류 해결

* 📝 docs: 리드미 수정

* Update workspaceService.ts

* [#238] 홈페이지 초기 로딩 시 스켈레톤 UI 적용 및 code-highlighter 컴포넌트 스토리북 제작 (#239)

* 🙀 chore: 로딩 시 스켈레톤 UI 추가 및 무한스크롤 커스텀 훅으로 분리

* ✨ feat: 코드 high-lighter storybook 추가

* 🙀 chore: let -> const로 변경

* [#155] 워크스페이스 캔버스, html 태그, css 클래스 블록 우클릭 시 발생하는 에러 해결, CSS 툴박스 input창 클릭 시 에러 발생 해결 (#241)

* 🐛 fix: 워크스페이스 캔버스에서 우클릭 시 발생하는 에러 발생 문제 해결

* 🐛 fix: html 태그 블록 우클릭 시 발생하는 에러 해결

* 🐛 fix: CSS 클래스 블록의 context 메뉴가 툴박스에서만 렌더링되도록 변경

* 🐛 fix: CSS블록 툴박스 input창 클릭 시 발생하는 에러 해결

* 🐛 fix: 빌드 오류 수정

* 🚨 !HOTFIX!: 툴박스 카테고리가 선택안되는 문제 해결 (#243)

* [#240] 사용자 가이드 하이라이팅 컴포넌트가 모달에서도 하이라이팅 (#244)

* 🐛 fix: 사용자 가이드 도중에 닫는 경우 상태 초기화

* 🐛 fix: 툴박스 관련 로직 코치마크로 이동

* 🙀 chore: TODO 삭제

* 💄 design: 코드 내보내기 버튼 배경색 추가

* 💄 design: 도움말 버튼 hover시 색상 좀 더 진하게 적용

* [hotfix] 메타 태그 인식되지 않는 문제 해결 (#245)

* 🚨 !HOTFIX!: 툴박스 카테고리가 선택안되는 문제 해결

* 🚨 !HOTFIX!: meta 태그를 인식하지 못하는 문제 해결

---------

Co-authored-by: Yujin <[email protected]>
Co-authored-by: inhachoi <[email protected]>
Co-authored-by: chichoc <[email protected]>
Co-authored-by: Honghyeonji <[email protected]>
Co-authored-by: Honghyeonji <[email protected]>
Co-authored-by: chichoc <[email protected]>
Co-authored-by: Yujin Lee <[email protected]>
Co-authored-by: chichoc <[email protected]>
Co-authored-by: inhachoi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CICD 배포
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants