목록분류 전체보기 (106)
기술 블로그
문제 상황: Type Guard와 every 메서드의 한계TypeScript는 코드의 타입 안전성을 보장하기 위해 컴파일 시점에 타입을 검사한다. 이 과정에서 타입 가드와 타입 단언을 활용해 컴파일러가 타입을 정확하게 추론하도록 돕는다. 하지만 때로는 타입 가드를 사용했음에도 TypeScript가 배열의 타입을 확신하지 못하는 경우가 생긴다.예시 코드다음 예제에서 result 배열이 FileSystemFileEntry 또는 FileSystemDirectoryEntry로만 구성되어 있는지를 every 메서드를 통해 확인하고자 한다.if ( result.length > 0 && result.every(entry => isFileSystemFileEntry(entry) || isFileSystemD..
타입스크립트에서 배열 요소 타입 가드: 왜 작동하지 않는가?타입스크립트는 정적 타입 기반의 언어로, 타입을 명확히 정의하고 코드의 안정성을 높이는 데 중요한 역할을 한다. 그중에서도 타입 가드(Type Guard)는 변수가 특정 조건을 만족할 때 해당 변수의 타입을 좁히는 기능을 담당한다. 하지만 배열 요소에 타입 가드를 적용할 때는 예상치 못한 오류가 발생할 수 있다. 이번 글에서는 배열 요소에 타입 가드가 제대로 작동하지 않는 이유와 이를 해결하는 방법을 살펴보겠다.타입 가드란?타입 가드는 변수의 타입을 안전하게 좁히기 위해 사용하는 조건문이다. 대표적인 예로 typeof, instanceof, in 연산자가 있다. 이들은 특정 조건을 만족할 때 타입스크립트가 변수를 더욱 구체적인 타입으로 추론하도록..
작성중

왜 하는가? 정확히는 자동화된 테스트를 왜하는가 개발자가 변경한 어떤 요소가 웹 어플리케이션에 손상을 유발할 수 있다고 이를 뒤늦게 발견하여 비용을 발생시킬 수 있다. 수동 테스팅이 중요하지 않다는 것이 아니다. 추후 발생할 문제를 발생하기 위해 테스트 코드를 작성하여 자동적으로 손상을 감지하고 해결할 수 있다. 즉 더 나은 코드 품질을 보장하는 것이다. 이중에서도 단위 테스트를 이해하고 수행해보고자 한다. 종류 단위 테스트 함수나 컴포넌트등 개별적 대상으로 테스트한다. 가장 일반적이며 중요하다. 통합테스트 e2e 테스트 전구간 테스트 애플리케이션 전체의 워크플로우, 전체 시나리오를 테스트한다. 본 글은 기본적인 환경 설정 세팅 이후라고 가정하고 작성되어있다. ㅡ screen.getAllByRoll() ..

정확한 알람 예약은 기본적으로 거부됨 https://developer.android.com/about/versions/14/behavior-changes-all?hl=ko 안드로이드 14부터 정확한 알람 권한이 비활성화 되어 사용자로 부터 권한을 받아야 한다. 사내에서 운영 중인 어플리케이션은 rn 서드파티 라이브러리를 통해 권한을 요청하고 관리해왔지만 현 시점 대응한 라이브러리가 없어 직접 네이티브 모듈을 구축해야했다. SCHEDULE_EXACT_ALARM은 선택적 권한이 아니기 때문에 알림상자로 권한 승인은 불가능하고 해당 앱의 설정으로 이동시켜주는것이 최선이다. // android/app/src/main/AndroidManifest.xml . . // android/app/src/main/java/..
axios와 fetch모두 데이터 패칭을 위한 도구이다. 가장 큰 차이점은 axios는 외부 라이브러이인 반면 fetch는 자바스크립트에서 기본으로 제공한다. fetch fetch('https://cataas.com/cat') .then(response => { if (!response.ok) { throw new Error('Network response was not ok'); } return response.blob(); }) .then(blob => { document.getElementById('catImage').src = URL.createObjectURL(blob); }) .catch(error => { console.error('There was a problem with the fetc..
from collections import deque def solution(priorities, location): #배열을 만들어야함 arr=[ i for i in range(len(priorities))] print(arr) at = priorities[location] answer = 0 q = deque(arr) while True: n = q.popleft() # 인덱스 dn = priorities[n] #실값 if dn
1. 디자인패턴 라이브러리/프레임워크: 공통으로 사용될 수 있는 특정 기능을 모듈화한 것 디자인 패턴: 프로그램설계시 문제발생을 예방하고 객체 간 상호 관계를 이용해 해결할 수 있도록 한 규약 싱글톤 패턴 하나의 클래스에 하나의 인스턴스만 가지는 패턴 특징 데이터베이스 연결 모듈에 자주 사용 인스턴스를 공유하여 인스턴스 생성 비용 감소 단점 의존성이 높아짐 의존성:소프트웨어 개발에서 한 요소나 모듈이 다른 요소나 모듈에 어떻게 의존하고 있는지를 나타내는 개념 다른 클래스나 모듈에서 해당 싱글톤 인스턴스에 접근할 수 있고 이로인해 코드가 더 긴밀히 결합되어 하나의 클래스나 모듈이 변경되면 다른 클래스나 모듈도 영향을 받을 수 있음 이는 유지보수와 확장성 측면에서 문제을 일으킬 수 있음 → 그러나 의존성 주..

코딩테스트 문제 복기 문제 조건 배열로 아이템이 제공된다. 각 아이템은 name, score 쌍의 데이터를 가진다. score을 기준으로 들어온 아이템을 정렬해야한다. score, 들어온 순으로 우선순위를 가진다. 만약 같은 name으로 기존보다 더 높은 score가 들어온다면 업데이트한다. score순으로 정렬되었을때 특정 갯수(이하 K) 안에서 순위에 변동(순위에 영향을 끼치지 못하는 정도의 score변동은 미해당)이 있을 때 count를 +1 한다. 알맞은 count를 반환하시오 분석 위 문제에 대해 주요 포인트는 2가지 이다. 중복된 name값을 가진 아이템은 업데이트 할것 score값에 따라 정렬할 것 이전 값과 비교하여 변화를 count 할것 3번의 경우에는 최신 업데이트한 rank값과 직전..
100~ 정보 응답 100 클라이언트가 서버에 요청의 초기 부분을 보내도 되는지 확인하고 서버가 준비 되었으면 나머지를 보내도록 요청 즉 상태가 괜찮음을 알리는 임시적 응답 200~ 성공 응답 200 성공 201 요청이 성공적으로 처리되었으며 새로운 리소스 생성 post,put 204 요청이 성공적이었으나 컨텐츠를 제공하지 않음 헤더는 있을 수 있음 300~ 리다이랙션 응답 301 요청한 리소스 url이 영구적으로 변경됨 302 요청한 리소스가 일시적으로 다른 url로 이동 304 클라이언트에게 응답이 수정되지 않았음을 알림 (캐시 유용) 400~ 클라이언트 에러 400 서버가 요청을 이해할 수 없음 401 인증 페이지 혹은 인증 리소스 요청 - 인증필요 403 클라이언트가 콘텐츠에 접근할 권리가 없음 ..