개발

개발/Typescript

undefined vs null 차이

console.log(undefined === null) // falseconsole.log(undefined == null) // trueundefind: 변수만 선언하고, 값을 할당하지 않은 상태.null: 변수를 선언하고, 빈 값을 할당한 상태. - 두 차이는 무엇일까 ?아래 코드블럭을 보자.let x;console.log(x); // undefinedlet y = null;console.log(y); // object x와 y의 타입이 서로 다른 것을 볼 수 있다.  javascript에서는 return ; 이나, 몇몇 내장 메소드에서는 반환할 값이 없을 때 undefined를 반환한다. 얕은 비교(Shallow compare), 깊은 비교 시 차이가 있다.console.log(undefi..

개발/문제풀이

[프로그래머스] 정수 삼각형: 코드 예제로 쉽게 이해하기 (Javascript)

https://school.programmers.co.kr/learn/courses/30/lessons/431051. 문제 정의삼각형의 꼭대기에서 바닥까지 이동할 때, 거쳐간 위치의 숫자 합이 가장 큰 값을 찾아라. 2. 제한 사항1 0  3. 풀이1) 공간 복잡도 = O(n)Array: 삼각형 각 위치의 개수를 n개로 놓을 때, n개의 원소로 구성된 배열 1개. (힙 구조로도 풀 수 있다.)2) 시간 복잡도 = O(n) 3) 알고리즘위에서 아래로 내려가면서 층수가 올라간다고 가정했을 때, 2층에서부터 시작한다.위의 층(2층 기준 1층)의 자신 왼쪽 또는 오른쪽 노드를 확인하여 큰 값과 자신을 더한다. (노드가 한 개일 경우 그 값을 더 한다.)바닥에 계산된 결과 중 최대값을 찾는다.4. 예제 코드f..

개발/문제풀이

[프로그래머스] 무인도 여행: 코드 예제로 쉽게 이해하기 (Javascript)

https://school.programmers.co.kr/learn/courses/30/lessons/1545401. 문제 정의섬마다 놓인 식량이 있다. 각 섬에 있는 식량의 총량을 오름차순의 배열에 나타내고, 없다면 -1을 담아 리턴하라. 2. 제한 사항1) 격자의 크기는 3이상, 100이하이다.2) 각 값은 X 또는 1~9 사이의 자연수이다. 3. 풀이1) 공간 복잡도 = O(N^2)2-D Array: 하나의 섬 여부를 나타낼 입력 크기와 같은 2차원 배열 1개.2) 시간 복잡도 = O(N^2) 3) 알고리즘같은 섬을 찾는다.섬 별 식량의 총합을 구한다.섬별 식량 총량을 오름차순으로 정렬한다. 여기에서, 1. 같은 섬을 찾는다의 경우, 추상화를 많이 해둬, 좀 더 상세히 설명하자면 Recursion..

개발/Python

[MacOS] Python externally-managed-environment issue 해결

상황랩탑을 바꾸면서 기존 맥북에서 사용하던 환경변수, 서비스들을 마이그레이션 하는 과정에서, 파이썬 서버를 설치하다 위와 같은 문제를 마주쳤다.(MacOS에서 지원하는 migration이 너무 느려가지고.. 안했던 것도 이유가 될 지도.)그래서, externally-managed-environment 가 뭔데?파이썬 pep-0668 표준에 의해 OS 패키지 관리자와 파이썬 패키지 관리 도구의 충돌을 막기 위해 외부 환경(OS 패키지 관리자)이 파이썬 패키지를 관리하게 하는 일종의 마커이다. 파이썬 설치 시에 EXTERNALLY-MANAGED라는 마커 파일을 생성하여 OS 패키지 관리자에 의해 관리되고 있음을 나타낸다. 이를 통해 pip가 전역으로 패키지를 설치, 수정, 삭제할 수 없게 하는 경고문이다. ..

개발/Typescript

[TIL - Typescript] Truly, Falsy

1. 문제 상황일일 통계자료를 입력하는 화면을 만들고 있었다. 일일 통계자료에 Input이 몇 개 있었는데, 기본 값을 0으로 설정했더니 저장 버튼을 눌러도 Input Value가 없다는 결과가 떴다.(물론 내가 Empty를 방지해서 그렇다.) 그래서 원인을 분석해봤다. 2. 원인Truly, Falsy에 대해 어렴풋이 알고 있었기 때문이었다. Javascript의 큰 특징 중에는 Type Inference(타입 추론)가 있다. Runtime 시점에 필요한 타입을 정한다. 그렇기 때문에 어떤 타입이던 올 수 있다. 그렇다면? 특정 변수가 선언이 되어 있는지, 특정 타입의 유효한 값인지 확인하려면 정말 많은 조건처리를 해줘야 할 것이다. isNaN이나, undefined, null 등 비유효한 값이 들어올 ..

개발/React

[React] useCallback 헤딩해보기.

1. 동기 + 사전지식 useCallback은 useMemo의 함수 버전으로 알고 있다. 두 Hooks는 함수, 변수를 Memoization해서 재사용성을 높이고, 성능을 향상시킨다고 하는데, 실제 개발에서는 DOM 트리의 복잡도와 설계 복잡도가 높아짐에 따라 원하는 대로 작동하지 않았다. 예상 시나리오와 실제 결과를 테스트 하면서 몸소 익히고, 관련 개발문서 및 레퍼런스로 참고한 자료들을 적어둘까 한다. 2. 초기 코드 useCallback 테스트를 위해 예제 코드를 만들어보자. import { useState } from "react"; export const UseCallbackExample: React.FC = () => { const [todos, setTodos] = useState([]); ..

개발/Flutter

[해결] Flutter IOS Signing & Capabil'No profiles for were found' 에러 해결일지

문제 상황몇달 전 모바일 웹을 Flutter로 Wrapping하여 앱을 만들었다. 회사에서 애플 개발자 계정을 갖고 있지 않았던 시점에 개발했기 때문에, 개인 계정으로 Profile을 만들었다. 이후 회사 계정으로 App store에 배포할 일이 생겨 Signing Team을 회사 계정으로 변경했는데, 제목과 같은 에러가 발생했다.   시도 방법1차 시도(02.21) - Bundle Identifier 변경Bundle Identifier는 unique해야하기 때문에, 기존에 사용했던 계정 및 번들 식별자와 겹쳐서 문제가 생긴다고 생각이 들었다.그래서 Android, IOS, Pubspec을 모두 새로운 번들 식별자로 변경해줬다. Anroid: Android -> App -> Build.GradleIOS:..

개발

[에러 해결] nospc ENOSPC: no space left on device, open '/root/.npm/_cacache/tmp

문제상황 npm 프로젝트 코드를 수정하고, 배포하기 위해 Docker로 이미지를 굽는데, 제목과 같은 에러가 떴다. 문제가 될 만한 부분을 하나씩 찾아가며 결국 해결했다. 정확한 문제 원인을 찾기 위해 삽질한 결과를 적어보려 한다. 1-1 Nginx 처음으로 들여다 본 곳은 Nginx였다. Nginx에 대해서는 잘 모르기도 하고, 결정적으로 맥북에서 brew services를 찍어봤을 때 nginx의 status가 error로 뜨며 256 코드를 내뿜고 있었다. 그래서 error code 256 관련 포스팅을 찾아가며 해결하려 했지만 어떤 방법도 통하지 않았다.(재설치 너마저...) (스크린샷을 찍어놓은게 없어, 현재 찍은 것을 보여줘야 할 것 같다. status 에 error, 256으로 떴었다..)..

inseoking
'개발' 카테고리의 글 목록