최신글
-
자바스크립트 정수가 소수로 표현되는 이유 : 부동소수점
1. 배경한 항목 수익률을 구하기 위해 퍼센티지 계산을 했다.0.2814 * 100> 28.13999999999999728.14%가 아닌 다른 값을 반환했다. 2. 문제 확인자바스크립트는 숫자를 64비트 형식(IEEE-754)으로 표현한다.64 비트 중 - 52비트는 유효 숫자를 - 11비트는 지수를 - 1비트는 부호 저장한다0.1 ≈ 0.10000000000000000555...0.2 ≈ 0.20000000000000001110...위 예시처럼자바스크립트 숫자(부동소수점)는 근사치로 표현된다.정수 또한 부동소수점으로 저장되며,가끔 2진수로 정확히 표현되지 않는 숫자는 근사치로 저장된다.0.2814 * 100 === 28.14> false 부동소수점의 구조적 한계로 계산에서 불일치가 발생하는 것이 원인이..
2026.02.19 15:40 -
React Native 이미지 동적 호출 안 되는 이유
1. 문제 상황React Native 개발 중 더미 데이터에 포함된 로컬 이미지 경로를 source에 그대로 할당했을 때 오류가 발생했다.웹에서는 data.img를 그대로 넣어도 정상적으로 이미지가 표시되었지만, React Native에서는 동작하지 않았다. 2. 웹에서는 왜 가능했을까?웹에서는 이미지가 서버에 저장되어 있고, 브라우저가 런타임에 HTTP 요청을 통해 이미지를 로드했다. 3. React Native는 왜 다를까?React Native는 로컬 자산을 빌드 시점에 번들에 포함했다.RN 빌드는 Metro 번들러가 담당한다.Metro Bundler 설명을 살펴보면When bundling, each of the modules gets assigned a numeric id, meaning no d..
2026.02.19 14:40 -
React Invalid Hook Call 해결 : pnpm Monorepo에서 React 중복 원인
1. 문제 상황하위 프로젝트(client)를 하나 더 생성했을 때 pnpm test 오류가 발생했다.[ 디렉터리 구조 ] apps/ ├── admin/ └── client/ ⭠ 새로 생성한 프로젝트 2. 문제 확인client 디렉터리를 생성해도 컴포넌트, 훅 테스트를 개별로 실행하면 오류가 발생하지 않았다.컴포넌트와 훅이 결합된 기능 테스트를 할 때 오류가 발생했다. 3. 해결 방안 탐색"Hooks can only be called inside the body of a function component."오류 출력 문구에서 3가지 이유를 볼 수 있었다.1. React와 React DOM 버전 불일치 2. 훅 사용 규칙 미준수 3. 동일 앱에서 React 중복 사용하나씩 알아봤다.1번 문제) pnpm l..
2026.02.19 11:20
기록일지
-
1월, 다 때가 있다 아마도.
'우아한테크코스 최종 테스트 당일'최종 테스트가 끝났다. 지금은 스터디 카페 기간권이 끝나는 마지막 날로 1월 1~2주를 기록하고 있다. 작년 12월에 최종 테스트 대상자로 선별되고 2주 동안 매일 미션을 반복 구현했다. 미션 구현 2바퀴를 돌 때는 1월 첫째 주였다. 처음 할 때는 시간이 금방 흘렀지만 두 바퀴 때는 시간이 남고 지루했다. 언제 끝나나 하루를 보내다 테스트 전 날이 됐다. 뭐 이리 긴장되는 건지. 놀란 심장을 헬스로 진정시켰다.시험 당일 날, 폭설이 내린다 했지만 블러핑이었다. 평소대로 전철을 타고 잠실에 도착했다. 롯데타워가 건너 편에 있었는데 이렇게 가까이서 본 적은 오랜만이었다. 시험 건물로 들어갔는데 다른 사람들도 보였다. 옹기종기 모여 엘리베이터를 타고 14층 시험장으로 들어..
2026.01.24 14:40 -
12월, 처음으로 밖에서 보낸 크리스마스와 사주
"아무것도 안 한 주말"지난 주말은 아무것도 하지 않았다. 정확히는 스터디 카페를 가지 않았다. 생산적인 일을 하지 않는다는 불안감이 엄습했지만 침대에 누워 있을수록 몸은 편안함에 길들여졌다. "할 일도 없는데 굳이 가야 할까"라는 고민 끝에 이틀간 집을 지켰지만, 결과는 명확했다. 공부 외에 무엇이라도 하고 싶다면 일단 집 밖으로 나가는 게 답이다.집에만 있으면 발이 시리고, 그 차가움이 싫어 발을 내딯기조차 꺼려진다. 결국 침대 속으로 파고들게 된다. 온종일 태블릿으로 영상만 보다 지겨워지면 거실에 나와 잠시 서 있다가, "아 추워"하고 다시 침대로 돌아갔다. 그나마 가장 생산적인 일이 붕어빵 장사 계획이었다. 계획을 마친 뒤에도 침대에 누워 있는 내 모습이 탐탁지 않아 PC방으로 향했다. 지난주에 ..
2025.12.28 16:00 -
11월, 예상치 못한 서류 합격과 3일 김장기
"예상치 못한 서류 합격과 코딩 테스트"가볍게 지원한 기업에서 서류 통과 메일이 왔다. 우테고 프리코스를 진행 중이어서 한 번 넣어본 건데 될 줄 전혀 예상 못했다. 주어진 일주일 동안 코딩 테스트를 준비해야 했다. 테스트는 CodeSignal에서 진행된다고 안내받았다. LeetCode에서 알고리즘 테스트 연습을 해서 영어로 출제되어도 상관없었다. 다만 제대로 코딩 테스트를 본 적이 없어서 알고리즘을 잘 모르는 상황이었다. 이미 내 일정도 꽉 차 있는 상황이어서 코딩 테스트는 주말에 봐야 했다. 길게 준비해도 결과는 비슷할 거 같았고 문제 접근 방식만 빠르게 습득할 계획으로 진행했다.다행히 관련 기업 코딩 테스트 후기가 있었고 문제에 대한 직접적인 언급은 없었지만 문제 유형을 유추해서 연습했다. 문자열 ..
2025.11.30 14:00
Frontend
-
자바스크립트 정수가 소수로 표현되는 이유 : 부동소수점
1. 배경한 항목 수익률을 구하기 위해 퍼센티지 계산을 했다.0.2814 * 100> 28.13999999999999728.14%가 아닌 다른 값을 반환했다. 2. 문제 확인자바스크립트는 숫자를 64비트 형식(IEEE-754)으로 표현한다.64 비트 중 - 52비트는 유효 숫자를 - 11비트는 지수를 - 1비트는 부호 저장한다0.1 ≈ 0.10000000000000000555...0.2 ≈ 0.20000000000000001110...위 예시처럼자바스크립트 숫자(부동소수점)는 근사치로 표현된다.정수 또한 부동소수점으로 저장되며,가끔 2진수로 정확히 표현되지 않는 숫자는 근사치로 저장된다.0.2814 * 100 === 28.14> false 부동소수점의 구조적 한계로 계산에서 불일치가 발생하는 것이 원인이..
2026.02.19 15:40 -
React Native 이미지 동적 호출 안 되는 이유
1. 문제 상황React Native 개발 중 더미 데이터에 포함된 로컬 이미지 경로를 source에 그대로 할당했을 때 오류가 발생했다.웹에서는 data.img를 그대로 넣어도 정상적으로 이미지가 표시되었지만, React Native에서는 동작하지 않았다. 2. 웹에서는 왜 가능했을까?웹에서는 이미지가 서버에 저장되어 있고, 브라우저가 런타임에 HTTP 요청을 통해 이미지를 로드했다. 3. React Native는 왜 다를까?React Native는 로컬 자산을 빌드 시점에 번들에 포함했다.RN 빌드는 Metro 번들러가 담당한다.Metro Bundler 설명을 살펴보면When bundling, each of the modules gets assigned a numeric id, meaning no d..
2026.02.19 14:40 -
React Invalid Hook Call 해결 : pnpm Monorepo에서 React 중복 원인
1. 문제 상황하위 프로젝트(client)를 하나 더 생성했을 때 pnpm test 오류가 발생했다.[ 디렉터리 구조 ] apps/ ├── admin/ └── client/ ⭠ 새로 생성한 프로젝트 2. 문제 확인client 디렉터리를 생성해도 컴포넌트, 훅 테스트를 개별로 실행하면 오류가 발생하지 않았다.컴포넌트와 훅이 결합된 기능 테스트를 할 때 오류가 발생했다. 3. 해결 방안 탐색"Hooks can only be called inside the body of a function component."오류 출력 문구에서 3가지 이유를 볼 수 있었다.1. React와 React DOM 버전 불일치 2. 훅 사용 규칙 미준수 3. 동일 앱에서 React 중복 사용하나씩 알아봤다.1번 문제) pnpm l..
2026.02.19 11:20 -
pnpm install 오류 원인: pnpm-workspace.yaml 위치 문제
1. 문제 상황모노레포 프로젝트에서 하위 프로젝트(client)를 생성할 때,Next를 설치하고서 pnpm install 오류가 발생했다.[ 디렉터리 구조 ]apps/├ admin/└ client/ ⭠ 패키지 설치 오류 발생 2. 문제 확인"packages field missing or empty" 검색해 본 결과,루트 디렉터리에서 pnpm-workspace.yaml 파일이 없거나 하위 디렉터리에서 유효한 package.json을 가진 디렉터리를 하나도 찾지 못하면 오류가 발생했다.하지만 루트 디렉터리에서 pnpm-workspace.yaml 파일은 이미 작성되어 있었다. 3. 해결 방안 탐색디렉터리를 살펴보던 중 이상한 파일을 찾았다.최상단 작업공간을 정의하는 pnpm-workspace.yaml 파일이 ..
2026.02.08 14:00 -
Override 기능으로 개발자 도구 감지 우회하기
1. 문제 상황방탈출 예약을 하기 위해 예약 시간을 훑어보던 중에 전부 선택할 수 없었다.예약은 가능한 건지, 선택 가능한 날은 어떻게 표시되는지 궁금했다. 2. 문제 확인DOM을 확인하기 위해 개발자 도구를 열어보려 하는데,마우스 우클릭, F12, ctrl+shift+i 전부 실행되지 않았다.웹 더보기에서 직접 개발자 도구를 열었는데갑자기 화면이 전환되었다.뭐가 화면을 전환시킨 건지 원인을 찾던 중,콘솔 패널에서 출력이 반복되는 js 파일을 확인했다. devtools-detector.min.js가 매번 실행되면서개발자 도구 사용 여부를 감지했다.해당 파일 링크를 클릭하고 소스 패널로 넘어갔다. 3. 해결 방안 탐색유튜브 쇼츠로 본 Override 디버깅 방법이 떠올랐다.해당 js 파일을 빈 코드로 덮어..
2026.01.13 14:25
우아한테크코스 8기
-
[자문자답] 우테코 8기 최종 테스트 결과
1. 무엇을 하면서 2주(01.10.~01.23.)를 기다렸는지?2주 동안 코드를 보지도, 작성하지도 않았다. 2년 동안 개발 공부하면서 이렇게 긴 시간 동안 아예 개발하지 않은 적은 처음이었다. 한 주는 블로그 글 작성, 기묘한 이야기 정주행, 방탈출, 취업박람회를 갔고 다른 한 주는 마켓컬리 일용직, 도서관, PC방에 가면서 시간을 보냈다. 2. 최종 테스트 결과는 어떻게 되었는지?예제 테스트 결과 "예기치 않은 오류"처럼 탈락했다. PC방에서 롤 랭크전을 끝내고 메일을 확인했는데 다들 웃고 있는 곳에서 나만 울고 있으니 처량했다. 3. 심정이 어떤 지?결과를 본 지 하루가 지나서 마음이 조금 진정된 상태다. 전날은 슬픔, 분노, 자책이 가득 차 있었다. 스무 살이 지나서 이렇게 많이 울고 자책한 적..
2026.01.24 13:30 -
우테코 8기 최종 테스트 후기 "예기치 못한 오류로 인하여 실행에 실패하였습니다."
2026.01.10.(일) FE 테스트 본 날, 귀갓길에 작성 불친절한 미션 리드미"예기치 않은 오류"를 마지막으로 최종 테스트가 종료됐다. 미션 제출 전에 어떻게 PR을 하면 되는지 미션 내용에 적혀 있지 않아서 다른 사람들의 PR을 보고 따라 했다. 브랜치 이름도 아이디로 해야 할 거 같아서 17시 되기 직전에 급히 main에서 깃허브 아이디로 브랜치 생성해서 PR 보냈다. PR 생성 시간이 17시까지인 줄 착각했다. 도움 되지 않았던 준비해 간 소감문 제출이 17시부터였고 17시 이후로는 추가 push가 불가능했다. 16:57 쯤에 PR을 생성했고 17시부터 소감문을 작성했다. 혹시 모를 상황에 소감문을 "."으로 작성해서 임시방편으로 일단 제출했다. 소감문 작성이 중요하다고 생각해서 예제 테스트 ..
2026.01.12 14:25 -
우테코 8기 최종 테스트 선발 발표 30분 전, 한 달 되돌아보기 (+결과)
오픈미션이 끝난지 한 달이 지났다. 오픈 미션을 할 때처럼 최종 테스트 결과를 기다리는 것도 지친다. 길어질수록 마음이 붕 떴지만 결과 발표일이 다가올수록 긴장됐다.우테코가 끝나고 어떻게 지냈는지 공유하고 싶어서 글을 쓰게 됐다.지금 시간으로 발표(15:00)까지 30분 정도 남았다. 미션 끝나고 한 것들- 평일평일 오전에는 알고리즘을 알기 위한 자료구조를 공부했다. 커리큘럼을 따로 세운 건 아니지만 유데미 알고리즘 강의가 대부분 자료구조-알고리즘 순서로 되어 있어서 자료구조를 먼저 공부했다.1. Master the Coding Interview: Data Structures + Algorithms2. [한글자막] JavaScript 알고리즘 & 자료구조 마스터클래스이 두 강의를 들었다.유데미는 할인을 ..
2025.12.29 14:30
도서정리
-
[도서] 나라 운영에 관한
"경제활동이 순조롭게 진전되기 위해서는 평화 유지가 전제이며, 정치적 혼란은 경제에 심한 타격을 준다."앤드류 크레피네비치 · 베리 와츠, 「제국의 전략가」 - NATO 회원국들이 가장 높은 군사적 효율을 위해 합리적으로 행동할 거라고 가정했다. 즉, 관료적이고 조직적인 힘이 결과에 매우 큰 영향을 미친다는 것이다. 데이비드 E 생어, 「퍼펙트 웨폰」 - '중립'은 결코 비정치적인 것이 아니라는 사실과 어떤 사람들은 증오 발언이라고 생각하는 것을 다른 많은 사람들은 일상적인 정치 주장이라고 여긴다는 사실이었다. 에드 콘웨이, 「물질의 세계」 - 충분한 노력과 자원이 있으면 한 국가의 산업을 활성화하는 일은 얼마든지 가능하다. 그러나 제품 생산에 필요한 원료는 만들어 낼 수 없다.- 흥분과 논쟁에 휩싸인 ..
-
[도서] 플라톤과 낭만주의
" 이상주의가 훌륭한 것이고 현실주의가 나쁜 것이라는 생각이 낭만주의가 낳은 결과물이다. "플라톤, 「크리톤」 "전문 지식을 갖지 못한 다수의 판단을 존중한다면, 그는 몸을 망치게 된다.""정의롭지 못한 법적 명령에 복종하는 것은 결국 정의롭지 못한 짓을 하는 셈이 되니 말이다." 플라톤, 「고르기아스」 "자연과 법, 이것들은 대부분 서로 대립하는 것입니다. 그래서 누구라도 부끄럼을 느껴 자신이 생각하는 것을 말할 엄두를 못 내면 자기모순적인 말을 하도록 강요받게 되지요." 플라톤, 「국가론」 "절제의 미덕을 발휘해 작은 것에도 만족할 줄 안다면 늙음이 그리 괴롭지 않습니다.""안전하게 부정을 행할 수 있는 한 인간은 누구나 악행을 저지릅니다. 만일 그렇지 않은 사람이 있다면 그는 단지 남들의 이목이 두..
-
[도서] 능력주의
"정보는 이미 학생들에게 차고 넘친다. 그보다 더 필요한 것은 정보를 이해하는 능력이고, 중요한 것과 중요하지 않은 것의 차이를 식별하는 능력이다."비카스 샤, 「생각을 바꾸는 생각들」 - 부가 최상위층에 과도하게 집중되는 불평등은 거의 예외 없이 부패를 낳습니다.- 문제를 해결하려면 감추는 것이 아니라 오히려 밖으로 드러내야 한다.- 나이가 젊다고 해서 능력이나 통찰력이 미숙하다는 의미는 아닙니다. 나이를 먹으면 경험이 조금 쌓일 뿐이에요.- 민주주의는 다른 모든 정부체제에 비하면 가장 덜 나쁜 체제다. 유발 하라리, 「21세기를 위한 21세기 제언」 - 국민투표와 선거는 언제나 인간의 느낌에 관한 것이지 이성적 판단에 관한 것이 아니다.- 이슬람교는 무슬림이 만들어내는 것이다.- 21세기에 가장 성공..
-
[도서] 과거부터 현재에 이른 인류 사회
"과거의 검열은 정보의 흐름을 차단하는 방식으로 작동했다. 그런데 21세기 검열은 사람들에게 관계없는 정보들을 쏟아붓는 방식으로 작동한다."(2) 애덤 알터, 「만들어진 생각, 만들어진 행동」 - 어쩌면 우리 주위의 세계에서 가장 광범위한 단서는 우리가 바깥에서 시간을 보낼 때마다 매 순간을 규정하는 날씨일지 모른다.- 편견이 생기는 이유는 사람들이 낯선 것과 다른 것을 선천적으로 싫어하기 때문인데, 이 둘은 모두 매슬로가 말한 안전의 욕구를 위협하는 것이다.- 임의로 갖다 붙인 명칭을 통해서도 평소 똑똑하던 사람이 무기력한 사람으로 바뀔 수도 있다는 사실을 잘 보여준다. 유발 하라리, 「호모 데우스 미래의 역사」 - 그들은 적을 도발해 과잉반응을 유도한다. 테러리즘의 본질은 쇼다.- 우리가 변화를 두려..