일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 투포인터
- SSR
- CI/CD
- 인터섹션
- async/await
- 호이스팅
- 반공변성
- app router
- 결정 알고리즘
- 이분 검색
- 리터럴 타입
- TS
- dfs
- 태그된 유니온
- 공변성
- autosize
- 무한 스크롤
- tailwind
- map
- Promise
- Cypress
- ESlint
- RTK Query
- recoil
- React
- useAppDispatch
- 타입 좁히기
- CORS
- webpack
- Jest
- Today
- Total
목록전체 글 (510)
짧은코딩
line-height line-height: 2.5; 글의 줄 간격을 조절할 수 있다. letter-spacing letter-spacing: 2px; 글자 사이의 간격을 조절할 수 있다. 한 개의 클래스 제외하고 다 선택하는 법 body > *:not(.footer) { padding: 0px 140px; } 이렇게하면 footer이란 클래스를 가진 박스 말고 다 선택된다.
타입 가드 function numOrStr(a:number|string) { a.toFixed(1); } numOrStr('123'); numOrStr(1); 이렇게 하면 ts는 모든 가능성을 열어두기 때문에 오류가 난다. 왜냐하면 toFixed는 number에서만 사용할 수 있기 때문이다. toFixed는 매개변수 숫자만큼 소수점이 생긴다. function numOrStr(a: number | string) { if (typeof a === "number") { a.toFixed(1); } else { a.charAt(3); } } numOrStr("123"); numOrStr(1); 따라서 이렇게 표시하면 number인 것이 확실해서 오류가 발생하지 않는다. 그리고 else 문으로 가면 string인..
설치하기 $ npm i @fortawesome/fontawesome-svg-core $ npm i @fortawesome/free-solid-svg-icons @fortawesome/free-regular-svg-icons @fortawesome/free-brands-svg-icons $ npm i @fortawesome/react-fontawesome 우선 이 명령어를 이용해서 다 설치한다. 적용하기 -적용할 아이콘 fontawesome에서 이 아이콘을 적용해보는 예시이다. -import import { faCaretUp } from '@fortawesome/free-solid-svg-icons'; 이렇게 사용할 폰트를 import 한다. 위 사진에서는 "fa-caret-up"으로 나와있다. 하지만 리..
내 해결법 나는 indexOf를 이용해서 t의 위치를 다 구해줬다. 그리고 이중 반복문을 사용해서 거리를 구했다. 비효율적이라고 생각한다. 내 코드 강사님 풀이 큰 값을 하나두고 t값이 나오기 전까지 +1을 하다가 t값이 나오면 그 큰 값을 0으로 만든다. 그리고 이것을 오름차순, 내림차순으로 for문을 2번 사용하면 자연스럽게 가까운 값이 구해진다. 이때 2번째 for문에서는 둘 중에서 작은 값을 선택하면 된다. 강사님 코드 이렇게 p를 문자 최대 길이보다 크게 두고 문제를 해결하면 된다.
해결법 isNaN 함수를 활용해야한다. 반복문을 돌면서 isNaN 함수에 문자를 넣었을 때 false가 나오면 숫자이다. 따라서 ! 연산자를 이용해서 숫자를 answer에 넣어주면 된다. 코드
해결법 -내 생각(비효율적 + 틀림) 나는 문자를 반으로 잘라서 뒤에 자른 문자는 다시 뒤집어서 푸는걸 생각했다. 틀렸지만 여러 함수를 배웠으니 정리하려고 한다. 내 코드 정규 표현식을 사용했다. 그리고 문자열을 배열로 만들려면 Array.from(s) 이렇게 사용해야 한다. 해결법 -강사님 풀이 이걸 통째로 뒤집어서 원본과 비교한다. 내 풀이에 비해서 굉장이 단순하다. 강사님 풀이 정규 표현식은 a-z가 아닌 문자를 다 없앤다는 의미이다. 그리고 문자열에서 배열로 만든는 것도 split로 간단하게 했다.
해결법 -for문으로 해결 우선 대소문자 구별을 하지 않으니까 대문자나 소문자로 통일해야 한다. 그리고 for문으로 문자 길이의 절반만 돌면서 자기와 대칭되는 문자가 같은지 다른지 보면된다. 코드 -for문으로 해결 해결법 -함수로 푸는법 마찬가지로 먼저 대소문자 통일을 해야한다. 그리고 문자를 배열로 쪼개고 거꾸로 정렬을 하고 다시 문자열로 만들어주면 된다. 이때 join() 함수가 사용된다. -join() join 함수는 배열을 문자열로 만들어 줄 수 있다. const arr = ['바람', '비', '물']; console.log(arr.join()); // 바람,비,물 console.log(arr.join('')); // 바람비물 console.log(arr.join('-')); // 바람-비-물..
해결법 이 문제는 우선 입력된 점수 길이 만큼의 1로 이루어진 배열을 만들어야한다. 그리고 이중 for문을 두고 첫번째 for문 i를 기준으로 비교하면서 두번째 for문 j를 비교한다. i번째 있는 점수가 j번째 있는 점수보다 작으면 등수를 올려야해서 처음 만들 배열에 i 번째 위치를 +1을 해준다. 강사님 코드 Array.from을 사용하면 1을 n개 만큼 가진 배열을 쉽게 만들 수 있다.
axios 요청 axios 요청을 할 때는 기본적으로 백엔드 개발자가 api 주소와 body 등을 고려해야 한다. 그리고 withCredentials를 true로 해서 쿠키를 허용해주는 것도 중요하다. 가장 많이 하는 실수 1. 조건에 맞는지 체크 내가 가장 많이 하는 실수로는 요청만 보내고 그 전에 기준은 설정하지 않는다는 점이다. 예를 들면 어떤 것을 입력하고 그것을 보내는데 그 값이 빈 배열이 인지 확인을 해야한다. e.preventDefault(); if (!newWorkspace || !newWorkspace.trim()) return; if (!newUrl || !newUrl.trim()) return; 혹은 form 태그로 작성했을 경우 preventDefault도 해야한다. 2. 전송을 하..
프로세스 프로세스: 컴퓨터에서 실행되고 있는 프로그램, CPU 스케줄링의 대상이 되는 작업(task) 스레드: 프로세스 내 작업의 흐름 프로그램이 메모리에 올라감 -> 인스턴스화 -> OS 스케줄러에 따라 CPU가 프로세스 실행 프로세스와 컴파일 과정 프로세스: 프로그램으로부터 인스턴스화된 것 ex) exe 확장자를 가진 프로그램을 실행하면 프로세스가 된다. 또한 프로그램은 컴파일러가 컴파일하여 컴퓨터가 이해하는 기계어로 번역되는 파일이 되는 것을 의미한다. C 언어 기반의 프로그램은 컴파일을 거쳐야 하지만 파이썬 같은 인터프리터 언어는 컴파일 과정 필요 없이 한줄씩 읽어서 실행한다. -전처리 코드에서 주석을 제거하고 #include 같은 헤더 파일을 병합해 매크로를 치환한다. -컴파일러 오류 처리, 코..