728x90

분류 전체보기 121

배포 시, NextUI 적용이 안 되는 에러 → .npmrc 파일 추가 및 pnpm을 다시 설치해 해결

(1) 문제 인식(2) 해결을 위한 고민과 시도들(3) 해결(4) 문제의 원인이었던 pnpm과 패키지 매니저에 대하여  배포 시, NextUI 적용이 안 되는 에러 → .npmrc 파일 추가 및 pnpm을 다시 설치해 해결yarn을 사용했었던 직전 프로젝트에서는 NextUI가 잘 적용됐었는데, pnpm을 사용하는 이번 프로젝트에서는 적용이 수월하지 않아 2일 간 우울하기도 했고 고생했다. 하지만 깊게 몰입하여 문제를 해결한 경험이 하나 더 생겼다. UI 관련 문제로 꽤나 시간을 보내게 되다 보니 아예 ‘다른 디자인 시스템으로 변경’하거나 ‘내가 직접 CSS를 할지’에 대해 깊게 고민하며 갈등하였다.하지만 문제를 포기하는 것은 내키지 않아서 더욱 다양한 관점에서 바라보고, 시도를 해보았다. 다른 분들은 나..

[개발 공부 117일차] 컴퓨터 구조 | 2진법, 16진법, 문자 인코딩/디코딩

0. TL;DR1. 이진수와 2의 보수법2. 부동 소수점3. 문자 인코딩과 디코딩  0. TL;DR이진수: 모든 양수를 0과 1로 표현하는 방법2의 보수: 모든 음수를 0과 1로 표현하는 방법부동 소수점: 모든 소수(분수)를 0과 1로 표현하는 방법문자 집합 & 인코딩: 모든 문자를 0과 1로 표현하는 방법  들어가며컴퓨터는 0과 1만을 이해한다.데이터가 컴퓨터 내에선 어떠한 방식으로 표현이 되는지 알아보자. 이진수, 2의 보수, 부동 소수점, 문자 집합과 인코딩에 대해 중점적으로 살펴볼 것이다. 참고로,‘문자 집합’은 컴퓨터가 이해할 수 있는 문자들의 모음이다.‘인코딩’은 문자 집합을 이용해서 0과 1로 변환하는 과정이다.  1. 이진수와 2의 보수법이진법: 0과 1로 모든 수를 표기하는 방법이진수: ..

[개발 공부 116일차] 컴퓨터 구조 | 명령어 구조와 주소 지정

0. TL;DR1. 명령어2. 연산코드3. 주소 지정  0. TL;DR명령어: 무엇을 대상(오퍼랜드)으로 무엇을 수행(연산코드)하는 것주소 지정: 유효 주소*를 찾는 방법즉시 주소 지정직접 주소 지정간접 주소 지정레지스터 주소 지정레지스터 간접 주소 지정  1. 명령어: 무엇을 대상(오퍼랜드)으로 무엇을 수행(연산코드)하는 것이처럼 명령어는 명령의 대상과 동작으로 이루어진다. 명령어는 컴퓨터를 동작시키는 실질적인 정보다. 오퍼랜드(operand): 명령어를 수행할 대상대상(데이터)이 직접 명시되기도 하고, 대상의 위치*가 명시되기도 함연산코드(op-code): 오퍼랜드로 수행할 동작 👾 [중요] 대상의 위치: 레지스터(CPU에 있는 작은 임시 저장 장치)의 이름, 메모리 주소  실제 컴퓨터로 동작시키는..

[개발 공부 115일차] 컴퓨터 구조 | 컴파일, 인터프리트

0. 들어가며1. 저급 언어의 두 종류2. 고급 언어 → 저급 언어로 변환되는 대표적인 방식3. 컴파일과 인터프리트의 차이4. 명령어 관찰하기  0. 들어가며컴퓨터는 명령어를 이해한다.소스코드는 실행되기 전, 명령어(+ 데이터)로 변환되어 실행된다. 소스코드: 사람(개발자)가 이해하기 편한 언어 [고급 언어]명령어 & 데이터: 컴퓨터가 이해하기 편한 언어 [저급 언어] 즉, 고급 언어로 작성된 소스코드는 내부적으로 저급 언어로 구성된 명령어와 데이터로 변환된다.  1. 저급 언어의 두 종류기계어: 컴퓨터(CPU)가 이해하는 언어어셈블리어: 기계어를 사람이 이해하기 편하게 변환시킨 언어 CPU 혹은 컴파일러의 종류에 따라서, 변환되는 명령어의 종류(생김새)가 달라질 수 있다.  2. 고급 언어 → 저급 언..

[개발 공부 114일차] 컴퓨터 구조 | 컴퓨터의 4가지 핵심 부품

컴퓨터 구조모든 프로그램은 컴퓨터 부품이 실행한다. 컴퓨터 구조는 ‘컴퓨터의 부품을 학습’하는 것이다.그리고 컴퓨터 공학을 배워야 하는 이유는 성능, 용량, 비용 때문이다. (1) 프로그램을 이루는 정보 2가지즉, 0과 1로 이루어진 정보를 의미한다.명령어: 컴퓨터를 동작시키는 실질적인 정보데이터: 명령어의 대상 (재료) (2) 컴퓨터의 4가지 핵심 부품스마트폰, 태블릿, 데스크탑 모두 컴퓨터라고 볼 수 있다. 이것에 공통으로 들어가는 핵심 부품 4가지가 중요하다.  CPU: 명령어 해석 및 실행하는 장치레지스터: 임시 저장 장치ALU: 계산기 회로제어 장치: 명령어 해석, 제어 신호 내보냄메인 메모리 & 캐시 메모리: 실행 중인 프로그램(= 프로세스)을 저장하는 장치 (전원 꺼지면 삭제)보조기억장치: ..

[개발 공부 113일차] Map과 Set 딥 다이브

0. Map과 Set 딥 다이브 계기1. Set2. Map3. Set과 Map 차이4. Set과 Map, 일반 객체의 차이점5. 왜 일반 객체는 키가 문자열로 변환되는 거고, Map은 객체나 배열도 키로 저장되게끔 설계된 걸까?  0. Map과 Set 딥 다이브 계기 여느 때처럼 알고리즘 문제를 풀기 위해 돌아다니던 중, '캐시'라는 문제를 발견했다.기업에서 실제로 낸 코테 문제를 좋아하는 나는 어렵든 말든 일단 도전해봤다.  LRU랑 cache hit, cache miss가 뭔지 도통 전혀 모르겠어서 다른 분의 풀이를 보며 찬찬히 이해하기 시작했다. function solution(cacheSize, cities) { // DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 let answer..

[프로그래머스 Lv.1] 2016년 (JS, 특정 날짜로 요일 반환)

0. 문제 설명 및 제한 조건1. 작성한 답안 코드2. 풀이 과정3. AI가 한 리팩토링4. Date 객체  0. 문제 설명 및 제한 조건  1. 작성한 답안 코드function solution(a, b) { const date = '2016-0'+ a + '-' + b; const week = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']; return week[new Date(date).getDay()];}  2. 풀이 과정문제를 봤을 때, 되게 흥미로웠다. 날짜를 반환하거나 날짜 포맷을 변환하는 것은 보고, 코드를 직접 작성해 본 적도 있었지만 요일 반환은 해본 적이 없기 때문이다. 그래서 어떻게 코드를 작성해야 할지 감이 안 옴과 ..

[개발 공부 112일차] DB 개론 | 성능을 고려한 데이터 모델링

0. TL;DR1. 정규화, 반정규화2. PK, FK 순서 조정3. 컬럼 수가 많은 테이블의 1:1 분리4. 대용량 테이블 파티셔닝*5. 복잡한 모델의 단순화로 성능 향상6. 일관성 있는 데이터 타입7. 좋은 모델링이란  0. TL;DR정규화, 반정규화 성능 향상: 데이터 무결성 및 관리에 대한 주의 필요PK, FK 순서 조정[매우 중요] PK가 여러 속성으로 구성된 복합 식별자일 경우, PK 순서에 따라 성능 차이가 발생FK로 사용되는 컬럼에 인덱스를 추가하여 성능 향상일관성 있는 데이터 타입 설정: 동일한 속성의 컬럼에 데이터 타입이 맞지 않으면 DB는 같은 데이터라고 생각하지 않음비즈니스 도메인을 잘 이해하는 것이 좋은 모델링을 도출함  1. 정규화, 반정규화정규화가 잘 되어 있으면 입력, 수정, ..

[개발 공부 111일차] DB 개론 | 데이터 모델링 문제 및 해소

0. TL;DR1. 1:1 관계2. M:N 관계3. 엔티티 타입 통합4. 이력(log, 기록) 엔티티 타입 설계  0. TL;DR1:1 관계1개의 엔티티 타입으로 통합: PK가 동일하게 사용 or 한 시점에 2개의 엔티티 타입이 동시 발생 금지부분 통합: PK 속성들의 구조가 모두 비슷한 경우, 편의상 하나로 통합하여 표현슈퍼 엔티티 타입 생성: PK와 의미가 동일하고, 속성의 일부만 다를 경우 슈퍼 타입으로 통합M:N 관계관계 엔티티 타입 분리주 식별자 통합부모 엔티티 타입에 속성 추가이력 엔티티 타입 설계이력 관리: 하나의 업무가 시간 흐름에 따라 발생하는 데이터이력 데이터 발생 유형발생 이력변경 이력진행 이력  1. 1:1 관계: 엔티티 타입 간 관계가 1:1로 대응하는 것즉, 해당 엔티티 타입의 ..

[개발 공부 110일차] DB 개론 | 3차 정규화, 보이스-코드 정규화, 4차/5차 정규화

0. TL;DR1. 정규화2. 오브젝트 분석과 정규화 엔티티 타입 분석 차이점3. 1차 정규화4. 2차 정규화  0. TL;DR3차 정규화: 속성에서 종속적인 속성을 분리하는 것보이스-코드 정규화: 복잡한 식별자 관계에 의해 발생하는 문제를 해결하기 위해 3차 정규화를 보완한 정규화4차 정규화: 보이스-코드 정규화를 만족해야 하며, 다치 종속(Multi-Value Attribute)이 없어야 하는 정규화5차 정규화: 중복을 제거하기 위해 분해할 수 있는 만큼 전부 분해하는 과정  1. 3차 정규화: 속성에서 종속적인 속성을 분리하는 것 1차 정규화 및 2차 정규화 이후, 속성 간의 종속관계가 발생한다면 3차 정규화 진행이행적 함수 종속 제거, 기본키가 아닌 모든 속성 간에서는 서로 종속될 수 없음  [예..

728x90