프라이D
프라이Develog(❁´◡`❁)
프라이D
전체 방문자
오늘
어제
  • ALL (378)
    • TDD, Cleancode with JavaScr.. (5)
    • 프로젝트 (32)
      • work (3)
      • 직접 만드는 기술 블로그 (2)
      • 데일리 옥션 (19)
      • 모락모락 (8)
    • Computer Science (1)
    • Algorithm & 자료구조 (94)
      • 알고리즘 w.JavaScript (53)
      • 자료구조 (5)
      • (인프런) 자바스크립트 알고리즘 문제풀이 (34)
    • JavaScript (45)
      • JavaScript (41)
      • 모던 자바스크립트 Deep Dive (4)
    • WEB (13)
    • 회고 (12)
    • TIL (109)
    • WIL (7)
    • Stacks (20)
      • React.js (6)
      • Next.js (1)
      • Redux (3)
      • Node.js (2)
      • GIT (2)
      • SAP (1)
    • 15일 메이킹 프로젝트 (15)
    • 이전 기록 (14)
    • ETC. (5)
    • ---------------2021 (6)
      • 내일배움단-웹개발 5주 (2)
      • 정보처리기사 (4)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 모던자바스크립트딥다이브
  • 코드스테이츠
  • vanilaJS
  • 국비지원
  • MySQL
  • Til
  • JavaScript
  • 자바스크립트
  • 자바스크립트비트마스크
  • 비트마스크
  • nomadcoder
  • 내일배움단
  • 2023 인프콘 후기
  • 자바스크립트알고리즘
  • nomadcoders
  • 내일배움카드
  • 투포인터알고리즘
  • 알고리즘
  • 코딩프로젝트
  • 스파르타코딩클럽

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
프라이D

프라이Develog(❁´◡`❁)

[Day 65] 2022-0920: 스택/큐 자료구조 & Tailwind CSS
TIL

[Day 65] 2022-0920: 스택/큐 자료구조 & Tailwind CSS

2022. 9. 21. 01:13

🐈오늘 공부한 것

✔️스택/ 큐 자료구조

먼저 자료구조란 데이터를 효율적으로 정리해서 저장하는 방법을 의미한다. 이런 의미에서 알고리즘은 효율적으로 정리된 데이터를 효율적으로 접근하고 사용하는 방법이 아닐까 싶다. 스택과 큐 모두 자바스크립트에서는 배열을 이용하면 간단하게 구현할 수 있는데, 이를 클래스로 정의한 문법은 아래와 같다 (큐). 

// 클래스로 구현한 Queue
class Queue {
  constructor(array) {
    this.array = array || [];
  }
  getBuffer() {
    return this.array.slice();
  }
  isEmpty() {
    return this.array.length === 0;
  }
  peek() {
    return this.array[0];
  }
  // push 메서드는 요소를 추가하고, 배열의 새로운 길이를 리턴한다.
  enqueue(value) {
    return this.array.push(value);
  }
  dequeue() {
    return this.array.shift();
  }
}

재귀나 DFS 에서 종종 접한 스택은 크게 낯설지 않았는데, 큐는 제대로 본 적이 없어서 개념도 문제도 어렵게 느껴졌다. 큐에 자료를 추가하는 것을 enqueue, 자료를 제거하는 것을 dequeue 라고 한다. 큐는 버퍼(임시 저장 공간)를 만들 때 활용될 수 있다. 예를들어 어떤 두 프로그램이 있을 때 하나는 이벤트가 불규칙하게 발생하고 다른 하나는 이벤트를 일정한 속도로 처리하게 된다. 이 둘 사이의 시간차를 안정적으로 조절하기 위해서 이벤트나 데이터들을 버퍼에 담아두고 하나씩 꺼내어 전달해줄 수 있다. 

순차적으로 데이터가 나가고 들어오는 큐도 있지만, 시작과 끝이 계속 빙글빙글 도는 원형 큐나, 자료가 들어오면서 우선순위에 따라 재배열되는 우선순위 큐 등이 존재한다. 

 

오늘 연습문제에 findIndex 메서드를 활용하는 답안이 있었는데, 잊고있는 메서드가 많은 것 같아서 최대한 활용해보려고 노력해야겠다.

✔️Tailwind CSS

https://tailwindcss.com/docs/plugins

Tailwind 버전에 포함되지는 않았지만 공식적으로 지원하는 써드파티 플러그인을 사용할 수 있다. 특정 요소에 대해 추가적인 클래스를 제공한다. 공식문서에 잘 설명되어있음.

 

웹폰트 적용

눈누 || 구글폰트에서 제공하는 웹폰트를 루트 css 파일을 통해 적용할 수 있었다.

/* globals.css */
@font-face {
  font-family: 'MonoplexKR-Regular';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_Monoplex-kr@1.0/MonoplexKR-Regular.woff2')
    format('woff2');
  font-weight: 400;
  font-style: normal;
}

@layer base {
  html {
    font-family: 'MonoplexKR-Regular';
  }
}

그 외.. 챌린지를 하면서 postCSS 나 css 기본 스타일 초기화를 위한 코드 등 여러가지를 보았다. 궁금할법한 모든 내용이 공식문서에 너무나도 정리가 잘 되어있다. 궁금한 정보를 바로 찾기도 좋고 디자인도 너무 예뻐서 테일윈드에 익숙해지는데 도움이 많이 되었다.

 

챌린지까지 진행하니까 어느정도 클래스 이름도 유추가 가능했고, html이 복잡하게 느껴지는 것을 제외하면 정말 빠르게 스타일링을 할 수 있는 것 같다. 자주 등장하는 코드는 컴포넌트화해서 사용하면 되니까 사실 복잡하게 느껴지는 부분도 크게 무리가 없을 것 같음. 다만 공부할 것들이 많아서 Tailwind에 대한 깊은 내용은 차차 알아가는 것으로 하고 다음 인증 파트로 넘어가야겠다. 

🐈더 공부할 것

1.컴포넌트화

2.스택/큐 자료구조 정리

🐈오늘의 느낀 점

문제를 푸는게 힘들어서 그런지 유난히 더 지치는 하루였다. 알고리즘 문제 풀기를 제외한 나머지를 다 했기 때문에 그래도 잘 한 하루라고 생각함. 챌린지는 기한이 정해져 있다보니 쳐지지 않고 할 수 있는 것 같다. 기한이 없었다면 조금만 힘들어도 바로 쳐졌을 것 같은데... 때로는 적절한 발등의 불(?)이 지속하는데 도움이 되는 것 같다.

저작자표시 (새창열림)

'TIL' 카테고리의 다른 글

[Day 71] 2022-0926  (0) 2022.09.27
[Day 66] 2022-0921: 트리/그래프 자료구조, 알고리즘, 스터디?  (1) 2022.09.22
[Day 64] 2022-0919: 기술면접 준비/ Tailwind css를 접하고 느낀점  (0) 2022.09.20
[Day 63] 2022-0918: 알고리즘, Tailwind CSS  (0) 2022.09.19
[Day 62] 2022-0916: 솔로 프로젝트 프로토타이핑, Next.js 등  (0) 2022.09.17
    'TIL' 카테고리의 다른 글
    • [Day 71] 2022-0926
    • [Day 66] 2022-0921: 트리/그래프 자료구조, 알고리즘, 스터디?
    • [Day 64] 2022-0919: 기술면접 준비/ Tailwind css를 접하고 느낀점
    • [Day 63] 2022-0918: 알고리즘, Tailwind CSS
    프라이D
    프라이D
    틀린내용 정정 및 개선사항은 언제든지 댓글 달아주세요 :D

    티스토리툴바