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