본문 바로가기

전체 글18

어떤 비즈니스를 해야할까? 개발자로 일한 두번째 직장을 퇴사하고쯤이었던 것 같다. 퇴사 이전에는 이에 대해 적극적으로 생각해본적은 없었다. 갑작스레 주어진 많은 시간과 자유로운 감정들 때문에 그랬는지는 몰라도, 다음 스텝으로 재취업을 고려하기보다는 자그마한 사업들을 여러개 벌려보고 싶다는 생각이 들었다. 다른 사람의 일이 아닌 내 일로 생계를 유지해나간다는 것은 꽤나 재미있는 경험일거라는 생각. 또 아직 배우고 싶은 것도 많고, 하고 싶은 것도 나의 삶을 살아보기 위해서 몇개의 캐시카우가 있다면 좋겠다는 낙관적인 상상이 한 몫 했다. 독일로 들어온 직후 Ludwigshafen의 airbnb 숙소에서 잠시 머물 때, 본격적으로 무언가 해봐야겠다는 생각이 들었다. 우선 닉네임을 만들고, 티스토리 블로그 디자인과 카테고리를 조금 손봤다.. 2024. 3. 1.
new Date()의 argument로 dateString을 사용할 때는 "yyyy-mm-dd"형식을 사용하자 javascript의 new Date() 생성자는 매개변수로 들어오는 string을 꽤나 유연하게 파싱한다. 시간에 대한 정보 없이 날짜에 대한 정보만을 string으로 넘겨봤을 때, 아래와 같은 형식들을 모두 수용한다. (현재 위치는 한국이고, 아래 코드들은 크롬 브라우저 콘솔에서 실행했다.) yyyy-mm-dd new Date("2023-07-22") // Sat Jul 22 2023 09:00:00 GMT+0900 (Korean Standard Time) yyyy/mm/dd new Date("2023/07/22") // Sat Jul 22 2023 00:00:00 GMT+0900 (Korean Standard Time) yyyy.mm.dd new Date("2023.07.22") // Sat Jul.. 2023. 7. 22.
timeoutID는 그냥 숫자였다. 최근 회사에서 시작한 프로젝트를 타입스크립트로 작성하면서 알게되는 새로운 사실들이 있다. 그 중 하나가 setTimeout이 리턴하는 값이 단순한 숫자라는 것이었다. const timeoutId: number = setTimeout(() => {}, 1000) 나는 이 값이 무슨 해시값이라도 되는 거라고 생각했었는데, 콘솔을 찍어보니 그냥 43 같은 아주 작고 단순한 숫자였다. id pool setTimeout 과 setInterval 이 리턴하는 id는 Window나 Worker 같은 Object가 가지고 있는 id pool에서 발급되는 값이다. 두 메소드가 각각 리턴하는 id는 사실 동일한 pool에서 발급되기 때문에, setTimeout으로 리턴받은 id를 clearInterval로 제거하는 등의 .. 2023. 7. 19.
빈 배열에 every() 를 실행하면 언제나 true를 리턴한다. function checkElement() {}; const processedArray = []; const result = processedArray.every(checkElement); 어떤 연산을 거쳐 선언된 배열 processedArray를 every()를 이용해 처리하던 도중 processedArray에 길이가 0인 빈 배열 이 들어가는 경우가 발생했다. 의도했던 바는 아니었지만, "배열의 모든(every) element가 true일때만 true를 리턴"하는 every의 의미로 미루어보아, 단 하나의 true 값도 리턴하지 않는 이 statement는 false를 리턴하리라 기대했다. 그러나 내 예상과는 다르게, processedArray.every(checkElement)는 true를 리턴했다.. 2023. 7. 15.
Array(n)에는 map()을 쓸 수 없다. Array() Constructor로 생성한 배열 객체 Array() Constructor의 인자로 한개의 값만 넣어주면, length 프로퍼티를 가진 배열 객체가 하나 생성된다. 예를 들어 길이 5의 배열 객체를 생성하면 다음과 같다. Array(5) 이제 5개의 빈 값(empty)들을 가지고 있는 이 배열 객체에, 모든 element를 숫자 5로 채워넣고자 map을 실행하면 어떻게 될까? Array(5).map(() => 5) 우리는 [5, 5, 5, 5, 5] 와 같은 결과를 기대했지만 아쉽게도 이 배열의 형태는 전혀 변하지 않았다. 왜 그럴까? 그 이유는 Array.prototype.map이 배열의 "빈 값"은 건너뛰도록 설계되었기 때문이다. (이런 "빈 값"이 들어있는 배열을 Sparse Arr.. 2023. 7. 14.
2022년 커리어 회고 (다른 플랫폼에서 작성했던 글을 옮겨왔음) 이직 올해 초 가장 굵직한 커리어의 변화는 이직이었다. 개발자로 일하기 시작한 지 만 1년을 조금 넘어갈 때쯤 모든 사람들이 한 번쯤 커리어에 대해 고민하게 된다는 그 시기를 나도 맞게 되었고, 이직을 추진하게 되었다. 불만족스러웠던 부분이 있었기에 결국 이직을 선택하고 나왔던 전 회사였지만, 그럼에도 나를 개발자로 일을 시작할 수 있게 해 준 첫 회사라는 점에서 고마운 마음을 가지고 있다. 스타트업 선 퇴사 이후 2달여의 이직준비 시기를 거쳐 5월부터 새로운 회사에서 근무하게 되었다. 스타트업에서 종사하는 누군가에게 스타트업에서 근무한다는 것이 어떤 경험인지 묻는다면 십중팔구 아마 자유로운 분위기, 높은 자율성과 그만큼의 책임, 또는 체계적이지 않은 업무방식과.. 2023. 6. 11.