일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 큐
- RxJS
- pytorch
- 컨테이너
- 코딩테스트
- 웹팩
- 프론트엔드
- 배열
- 연결리스트
- APOLLO
- 자바스크립트
- 릿코드
- GraphQL
- 프로그래머스
- 포인터
- Machine Learning
- 해시테이블
- 타입스크립트
- 이진탐색
- RT scheduling
- alexnet
- vue3
- 프로세스
- 알고리즘
- 연결 리스트
- cors
- C
- 브라우저
- 스택
- 자료구조
- Today
- Total
목록FE (39)
프린세스 다이어리
테스트를 짜기는 했는데, 유사한 케이스가 너무 여러개인 경우에 대해 리팩토링을 진행했다. 안좋은 예시 테스트를 짰으니 테스트가 돌아가기는 하나, 테스트 케이스가 많아질 수록 코드 줄 수도 많아지고 뭘 적었는지 한눈에 보기 힘들다. describe('formatPhoneNumber 테스트 - 9자리 이상', () => { it('지역번호', () => { const result = formatPhoneNumber('0212341234'); expect(result).toBe('02-1234-1234'); }); it('지역번호 자릿수 미만', () => { const result = formatPhoneNumber('031123123'); expect(result).toBe('031-12-3123'); }..
1. 전체 거의 웬만한 국내 개인/업체 전화번호는 포맷팅 가능할듯. 물론 5자리 통신사 번호 같은 레어템은 안 침. const formatPhoneNumber = (str: string) => { if (typeof str !== 'string') return ''; str = str.replace(/[^0-9]/g, ''); if (str.indexOf('82') == 0) { return str.replace(/(^82)(2|\d{2})(\d+)?(\d{4})$/, '+$1-$2-$3-$4'); // +82 } else if (str.indexOf('1') == 0) { return str.replace(/(^1\d{3})(\d{4})$/, '$1-$2'); // 1588, 1566, 1677, ....
문제상황 탭을 클릭하면 탭별로 다른 컴포넌트를 불러오려고 하는데 다음과 같은 warning이 뜬다. 자매품: Invalid VNode type: undefined (undefined)도 이 문제 해결 중 떴다. 해결방법 컴포넌트가 제 때 잘 불러와지는지 확인해야 한다. 기존 코드 setup() { const componentName = ref(''); const selectedId = ref(0); const changeTab = (value: number) => { switch (value) { case 0: componentName.value = 'chart-one'; break; case 1: componentName.value = 'chart-two'; break; case 2: component..
문제상황 fetch 받아온 배열을 reduce 돌고 싶은데, reduce에 밑줄이 생기며 에러가 뜬다. reduce 뿐만 아니라 this.charData[0]와 같이 인덱스에 접근하는 곳에도 모두 타입에러가 떴다. 아마 map을 돌았어도 에러가 떴을 것이다. computed: { isChartDataEmpty(): boolean { return ( this.chartData.reduce((acc: number, cur: any) => acc + cur.y, 0) === 0 ); }, }, Property 'reduce' does not exist on type '(state: DashboardStateI) => ChartDataI[] | undefined'. 해결방안 chartData가 undefined..
문제상황 특정 시점에서 차트를 새로 그려주기 위해 methods에 다음과 같은 함수를 만들었다. refreshData(newData: dashboardData) { this.chart.series[0].setData(newData); }, 그런데 다음과 같은 타입에러가 떴다. 해결방법 기존에는 setUp에서 chart를 null로 초기화하고 타입을 지정하지 않았는데, 타입을 먼저 unknown으로 하고 내가 쓰고 있는 하이차트의 Chart 타입을 가져와 지정해 주었다. 수정 전 setup() { const chart = ref(null); ... return { chart, ... }; }, 수정 후 setup() { const chart = ref(null) as unknown as Chart; .....
상황: 웹뷰 진입 시, 앱에서 받아오는 특정 값을 다시 내가 어딘가로 전송해 줘야 하는데, 전송해 주는 값이 틀렸다고 QA 팀에서 이슈를 올려주심. 내가 잘못한건지 앱팀이 잘못한건지 확인하기 위해 앱 소스를 받아서 디버깅을 해보았다. swift 눈뜬 장님이 남이 짠 swift 코드에서 로그 찍어보는 방법을 소개한다. (별거없음) 1. xCode에서 프로젝트를 열고, 원하는 곳에 print(어쩌고)를 찍어준다. // ... if error == nil { print(data) } // ... - 참고로 swift에서는 null이 nil이다. 2. 원하는 곳에 breakpoint를 걸어준다. (옵션) - 뭔가 콘솔에 내가 잘 모르는 많은 로그가 찍혀서 쉽게 확인할 수 있도록 breakpoint를 찍어줬다. ..
1. 자바스크립트는 다른 언어와 달리 정수와 실수를 구분하지 않고 하나의 숫자 타입만 존재한다. // 모두 숫자 타입 var integer = 10; var double = 10.12; var negative = -10; 2. 자바스크립트는 2진수, 8진수, 16진수를 표현하기 위한 별도의 데이터 타입을 제공하지 않기 때문에 모두 10진수로 해석된다. var binary = 0b01000001; // 2진수 var octal = 0o101; // 8진수 var hex = 0x41; // 16진수 console.log(binary); // 65; console.log(octal); // 65; console.log(hex); // 65; console.log(binary === octal;) // true..
1. 값 값은 표현식(expression)이 평가(evaluate)되어 생성된 결과를 말한다. 10 + 20; //30 - 위의 식은 평가되어 숫자 값 30을 생성한다. 평가란, 식을 해석해서 값을 생성하거나 참조하는 것을 뜻한다. var sum = 10 + 20; - 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체, 또는 메모리 공간을 식별하기 위해 붙인 이름이다. 변수에는 값이 할당된다. - 변수 이름 sum이 기억하는 메모리 공간에 저장된 것은 10 + 20이 아니라 값 30이다. 따라서 10 + 20은 할당 이전에 평가되어 값을 생성해야 한다. 2. 리터럴 리터럴(literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법(notation)을 말한다. ..