혜개바라
close
프로필 배경
프로필 로고

혜개바라

  • 분류 전체보기 (170)
    • 코테 준비 (46)
      • 알고리즘 (8)
      • [JS] 프로그래머스 (37)
      • [MYSQL] 프로그래머스 (1)
    • 언어 정리 (52)
      • JavaScript (52)
      • TypeScript (0)
    • 개발 공부 (26)
      • HTML (2)
      • CSS (2)
      • React-Next.js (6)
      • Vue (0)
      • Tanstack Query (1)
      • Webpack (4)
      • Github (2)
      • MYSQL (2)
      • 기타 (개발 공부) (7)
    • 프로젝트 (22)
      • Vanilla JS 문서편집기 (10)
      • 올해도 아좌좌 (5)
      • 개발괴발 (5)
      • 기타 (프로젝트) (2)
    • 회고 (18)
    • 블로그 관리 (0)
    • 기타 (4)
  • 홈
  • 코테 준비
  • 언어 정리
  • 개발 공부
  • 프로젝트
  • 회고
  • 태그
  • 방명록
  • github@suehdn
[Vanilla JS 문서편집기 설명 및 개선] 3. 사이드바 렌더링 최적화 및 성능 비용 절감

[Vanilla JS 문서편집기 설명 및 개선] 3. 사이드바 렌더링 최적화 및 성능 비용 절감

사이드바 렌더링 최적화기본적으로 사이드바의 동작은 페이지를 눌렀을 때 하위 항목을 보여주도록 되어있습니다. 이때, 기존 코드에선 사이드바 전체를 렌더링하고 있고 이 방식은 이미 존재하는 노드를 반복해서 그리기 때문에 자원을 낭비하게 됩니다. 따라서 렌더링을 최적화하기 위해 변경되는 부분만 추가&삭제하는 방식으로 렌더링 최적화를 하려 합니다.  사이드바 렌더링을 최적화하기 위해 다음과 같은 순서로 진행하였습니다. 1. 페이지의 열림 닫힘 여부 판단set을 이용해 열린 페이지의 id를 저장해 놓습니다. 만약 닫혀있는 페이지를 누르면 set에 해당 id가 입력되고, 열려있는 페이지를 누르면 set에 존재하는 해당 id가 삭제되는 방식으로 동작하게 합니다. (set의 시간복잡도는 O(1)이기 때문에 효율적이라 ..

  • format_list_bulleted 프로젝트/Vanilla JS 문서편집기
  • · 2024. 8. 21.
  • textsms

[Vanilla JS 문서편집기 설명 및 개선] 2. 서버 요청 로직

서버 요청 로직제가 만든 문서 편집기의 API 요청은 다음과 같이 정리됩니다.사이드바전체 문서 구조 불러오기 - GET문서 생성하기  - POST문서 삭제하기 - DELETE문서 편집기특정 문서의 조회하기 - GET특정 문서 수정하기 - PUTAPI를 요청하기 위해 request 함수를 만들어 API_END_POINT에 url, options를 이용해 그때그때 필요한 상황에 맞춰 사용할 수 있게 했고, 만약 API 처리 중 이상이 생기면 홈으로 돌아가도록 했습니다. export const request = async (url = "", options = {}) => { try { const res = await fetch(`${API_END_POINT}${url}`, { ...option..

  • format_list_bulleted 프로젝트/Vanilla JS 문서편집기
  • · 2024. 8. 9.
  • textsms

[Vanilla JS 문서편집기 설명 및 개선] 1. vite 번들러 추가

목적 기존 프로젝트에선 번들러를 따로 사용하지 않고 vscode의 Live Server를 이용해 페이지가 잘 동작하는지 확인했습니다. 하지만 프로젝트를 다시 다듬게 되었을 때 제가 여러가지를 놓치고 있다는 생각이 들었고, 해당 부분을 vite 번들러를 이용한다면 많은 부분을 해소할 수 있다고 생각했기 때문에 이번 기회에 추가해봤습니다.  제가 얻을 수 있는 장점은 다음과 같습니다.오류 사전 탐지 : 빌드했을 때 오류가 발생하는지코드 최적화의존성 관리 용이CSS, 이미지, 폰트 등 자산 관리호환성 : babel 등 트랜스파일러를 이용해 최신 JS 문법을 구형 브라우저에서도 동작할 수 있도록 변환 추후 github action을 이용해 main으로 merge시 build에 오류가 존재하지 않을 때만 merg..

  • format_list_bulleted 프로젝트/Vanilla JS 문서편집기
  • · 2024. 8. 8.
  • textsms
[23.06.27~23.07.06] 노션 클로닝 회고

[23.06.27~23.07.06] 노션 클로닝 회고

이번 23.06.27~23.07.06 약 2주간 노션 클로닝 프로젝트를 진행했습니다.먼저,기본 요구사항바닐라 JS만을 이용해 노션을 클로닝화면 좌측에 Root Documents를 불러오는 API를 통해 루트 Documents를 렌더링Root Document를 클릭하면 오른쪽 편집기 영역에 해당 Document의 Content를 렌더링해당 Root Document에 하위 Document가 있는 경우, 해당 Document 아래에 트리 형태로 렌더링각 Document 우측 + 클릭시 클릭한 Document의 하위 Document로 새 Document 생성 & 편집 화면으로 이동Document Save API를 이용해 지속적으로 서버에 저장History API를 이용해 SPA 형태로 제작보너스 요구사항div와..

  • format_list_bulleted 프로젝트/Vanilla JS 문서편집기
  • · 2024. 8. 6.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (170)
    • 코테 준비 (46)
      • 알고리즘 (8)
      • [JS] 프로그래머스 (37)
      • [MYSQL] 프로그래머스 (1)
    • 언어 정리 (52)
      • JavaScript (52)
      • TypeScript (0)
    • 개발 공부 (26)
      • HTML (2)
      • CSS (2)
      • React-Next.js (6)
      • Vue (0)
      • Tanstack Query (1)
      • Webpack (4)
      • Github (2)
      • MYSQL (2)
      • 기타 (개발 공부) (7)
    • 프로젝트 (22)
      • Vanilla JS 문서편집기 (10)
      • 올해도 아좌좌 (5)
      • 개발괴발 (5)
      • 기타 (프로젝트) (2)
    • 회고 (18)
    • 블로그 관리 (0)
    • 기타 (4)
최근 글
인기 글
최근 댓글
태그
  • #2023
  • #0단계
  • #회고
  • #코딩테스트준비
  • #JavaScript
  • #VanillaJS
  • #js
  • #프로젝트
  • #js메서드
  • #프로그래머스
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바