일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 공변성
- 무한 스크롤
- 호이스팅
- RTK Query
- 태그된 유니온
- 투포인터
- React
- 반공변성
- dfs
- tailwind
- Promise
- 타입 좁히기
- async/await
- Cypress
- Jest
- ESlint
- 인터섹션
- useAppDispatch
- app router
- TS
- CI/CD
- CORS
- 리터럴 타입
- map
- 이분 검색
- recoil
- SSR
- autosize
- webpack
- 결정 알고리즘
- Today
- Total
목록전체 글 (510)
짧은코딩
해결법 사실 해결법은 간단하다. 하지만 난 일일히 비교해서 풀었다. 강사님 풀이에서는 A가 이기는 기준을 다 나열하고 아닌 경우 B 가 이긴 경우로 했다. 내 풀이 하나하나 다 경우의 수를 생각했다. 강사님 풀이 우선 비기는 경우와 A가 이기는 경우를 두고 else로 B가 이기는 경우를 했다.
함수 리턴값 타입 위치 function add(x: number, y: number): number { return x + y; } 리턴값 타입 위치는 이렇게 매개변수 뒤쪽에 붙여야한다. function add(x: number, y: number): number; function add(x, y) { return x + y; } 혹은 이렇게 타입만 선언하고 다음에 내용을 선언하는 경우도 있다. 화살표 함수 const add: (x: number, y: number) => number = (x, y) => x + y; 이렇게 매개변수의 타입 위치가 찾기 어렵게 있다. 이런 경우 타입을 다 지웠을 때 js 문법에 맞게 되도록 코딩을 하면 어느정도 맞다. type Add = (x: number, y: num..
네트워크 기기의 처리 범위 네트워크 기기는 계층별로 처리 범위가 다르다. 상위 계층의 기기는 하위 계층을 처리할 수 있지만 반대로는 불가능하다. 애플리케이션 계층: L7 스위치 인터넷 계층: 라우터, L3 스위치 데이터 링크 계층: 브리지, L2 스위치 물리 계층: NIC, 리피터, AP 스위치: 여러 장비를 연결하고 데이터 통신을 중재해 목적지 포트로만 전기 신호를 보내는 통신 네트워크 장비이다. 애플리케이션 계층을 처리하는 기기 L7 스위치 L7 스위치는 로드밸런서라고 불리며 서버 부하를 분산한다. 클라이언트로 오는 요청들을 여러 서버로 나누고 시스템이 처리할 수 있는 트래픽 증가를 목표로 한다. URL, 서버, 캐시, 쿠키 기반으로 트래픽을 분산한다. 바이러스, 불필요한 외부 데이터를 걸러 필터링도..
indexOf let s = "abcabc" console.log(s.indexOf('a')); //0 a가 0번째 위치에 있어서 0이 나온다. 즉 indexOf는 원하는 문자를 문자열 중에서 가장 처음 위치에 있는 문자의 인덱스 번호를 찾아준다. let s = "abcabc" console.log(s.indexOf('a', 1)); //3 이렇게 두번째 매개변수도 넣어주면 그 숫자 이후부터 있는 문자를 찾아준다. 만약 찾는 숫자가 없으면 -1을 반환한다. 해결법 indexOf를 이용해서 문제를 풀면된다. for문을 돌리면서 문자 하나하나를 확인하는데 만약 중복되는 문자가 있다면 indexOf를 했을 때 자기의 인덱스 번호와 다를 것이다. 코드
substr() substr() 함수는 s.substr(start, length) 이렇게 하면 start부터 length 만큼 잘라서 반환해준다. const s = "abcdef"; console.log(s.substr(1, 3)); //bcd 이렇게 출력이 된다. substring() s.substring(start, end) 이렇게 사용한다. substring()는 시작 인덱스 번호부터 마지막 인덱스 번호를 가져와준다. const s = "abcdef"; console.log(s.substring(1, 3)); //bc 이렇게 출력이 된다. slice() substring() 함수와 사용법이 같다. s.slice(start, end) 이렇게 하면 된다. const s = "abcdef"; consol..
모달 기능 모달을 구현하기 위해서 생각할 부분은 어떤 버튼, 부분을 눌렀을 때 모달이 뜨고 사라져야한다. 모달 바깥 부분을 누르면 모달이 사라져야 한다. 모달 자기 자신을 누르면 사라지면 안된다. 이렇게 3가지를 고려해야 한다. 구현 방법 -1번 모달이 뜨고 사라는 부분을 구현하기 위해서는 const onClickUserProfile = useCallback(() => { setShowUserMenu((prev) => !prev); }, []); 이렇게 state와 함수를 만들어서 구현하면 된다. -2번 모달 바깥 부분을 누르면 모달이 사라져야 하는 기능은 하나의 큰 div를 만들고 그 안에 모달을 구현한다. 큰 div는 화면 전체를 차지 하도록 한다. position을 absolute로 만들어서 전체를..
stopPropagation() 현재 event가 캡처링/버블링 단계에서 더 이상 전파되지 않게 한다. 전파를 방지해도 이벤트의 기본 동작은 실행된다. 즉 링크나 버튼의 클릭을 막진 못한다. 이런 동작을 방지하려면 preventDefault()를 사용한다. e.preventDefault()와 e.stopPropagation() 차이 -e.preventDefault() from 안에서 submit 같은 동작을 할 때 e.preventDefault()가 그 동작 중단한다. -e.stopPropagation() $(".last-el").click(function(e){ e.stopPropagation(); alert("last-el"); }); $(".third-cover").click(function(){ ..
해결법 문자를 for문으로 확인하면서 현재 문자와 현재 문자를 toUpperCase를 사용한 것과 비교해서 같으면 카운트를 올려주면 된다. 코드
해결법 t를 기준으로 split로 나눈다. 그러면 나눈 집합이 나오는데 그 개수에서 -1 한 것이 답이다. 만약 특정 문자열이 중복되어 있거나 마지막에 있더라도 집합에 '' 값이 들어가기 때문에 length를 구해서 -1을 하면 된다. 코드