2025/03 7

[Inner Circle] FE과정 1주차 정리

Inner Circle 진행하면서 알게된 사실을 블로그에도 포스팅... 스택 : vite + TS + CSS 25/03/24forEach보단 for of문을 쓰자. (가독성+효율성 면에서 더 낫다)DOM 엘리먼트 변수에 붙이는 $ prefix는 최근 잘 안쓰인다. (jQuery 시절에나 쓰였다고...)import/export를 쓰려면 태그 안에 type="module"를 붙이면 된다. 안써도 되면 안붙여도 된다. 25/03/25타입 단언 (as ...) 는 웬만해선 안 쓰는 게 좋다. (차라리 narrowing이 낫다고 한다.)document.querySelector()는 제네릭 타입을 지정할 수 있다.input[type=number] 엘리먼트는 valueAsNumber로 값을 가져올 수 있다.비슷한 ..

IT/기타 2025.03.25

[IT/일상] 해킹송 가사 고찰

초딩때 많이 들었던 해킹송을 보면 아래와 같은 가사가 나옵니다.  "아이피 어떻게 알아냈지 공유기 사용중일텐데" ... 이 가사를 보면 해커는 공유기를 사용중인 작성자의 컴퓨터를 모종의 방법으로 해킹했습니다. 공유기는 공인 IP(외부 IP)를 사설 IP로 바꿔주는 역할을 합니다.공인 IP는 여전히 외부에 공개되어 있지만, 보통 보안을 위해 포트포워딩을 통해 '특정 포트'만 열어놓습니다.예를 들어, 223.xx.xx.xx이라는 공인IP의 50001 포트로 접속하면 사설 IP인 192.168.xx.xx의 3001 포트로 들어오도록 포워딩하는 것이죠. 그 밖에도 외부에서 내부로 접속하는 방법은 VPN 서버를 구축(특정 공유기 기종은 기본 제공하며, 윈도우에서도 제공함)하는 방법이 있다고 합니다. 어쨌거나 공유..

IT/기타 2025.03.23

[IT/일상] 패스트캠퍼스 INNER CIRCLE 풀스택 개발 OT 후기

INNER CIRCLE이 무엇인가재직자(연차 조건은 없으나, 3년차 정도가 적합하다고 보는듯) 대상 과정강의 없이 100% 프로젝트로 진행됨월화수목 19:30 ~ 22:30, 토 09:00 ~ 18:00 에 진행3개월 과정내일배움카드 있으면 무료웹캠 필요함 (저 없어서 오늘 다이소가서 사왔습니다)국비지원이라서 고용24 출결어플로 출첵함Slack, Notion, Figma, Github 사용 왜 신청했나이 과정은 같은 회사 다니는 분(갓생사는 엄청난 열정맨) 께서 알려 주셔서 신청하게 됐습니다. 그렇다고 해서 그냥 대뜸 따라 신청한 건 아니고, 평소에도 프론트엔드 개발자로서는 전문성이 떨어진다는 생각을 했으나 그걸 키울 방법도 마땅치 않은 것이었습니다... 이건 내일배움카드를 가지고 있으면 무료로 과정을 ..

IT/기타 2025.03.23

[일상] 2025.03.07

이제 한달만 더 있으면 제가 회사에 들어온지 3년이 됩니다.그동안 많은 일이 있었던 것 같기도 하고 별 일이 없었던 것 같기도 합니다.사실 기억력은 그다지 좋지 못해서 디테일한 일상은 매일 쓰는 일기에 의존하여 기억합니다. 이직 시도는 매번 좌절됐지만 그래도 실력이 늘고는 있는 것 같다는 생각은 듭니다. 라고 생각했는데...오늘 코드리뷰를 하면서 부장님께 피드백을 받았는데 세상에...정말 생각지도 못한 부분을 지적받아서 깜짝 놀라고 말았습니다. 어떤 상태가 있고, 상태 변경 시 한 스택 이전의 상태로 돌아가는 기능(undo)을 만들어야 하는 상황이었습니다.저는 DB에 히스토리를 남기는 식으로 작업했는데, 부장님께서 굳이 DB에 히스토리를 쌓지 않고 그냥 클라이언트에서 한 스택 이전의 상태를 남기면 되지 ..

일상 2025.03.07

[TypeScript] Record 해시 테이블로 switch문 대체하기

이것은 회사 후임분이 자주 쓰시던 팁인데, 좋아보여서 나도 사용해보기로 했다.일단 기존에 작성하던 방법은 아래와 같은 예시이다.export enum CharacterType { LANCER, ROUXLS, RALSEI}export const getCharacterOrderByName = (name: string) => { switch (name) { case "lancer": return CharacterType.LANCER; case "rouxls": return CharacterType.ROUXLS; case "ralsei": return CharacterType.RALSEI; }} enu..

[Next.js] RCC, RSC 활용 예시

원티드 프리온보딩 챌린지 "Next.js 확실히 알고 레벨업 하기" 4일차 내용 정리코드출처는 아래 링크입니다.https://github.com/himprover/wanted-2025-2-challenge RCC only'use client';interface Props { num: number;}export function RCC({ num }: Props) { const [json, setJson] = useState(null); const fetchHandler = async () => { const data = await fetchJson(num); setJson(data); }; useEffect(() => { fetchHandler(); // eslint-disable-next-line..

IT/React & Next.js 2025.03.03

[JavaScript/알고리즘] CountDiv

오랜만에 다시 하는 코딜리티...A와 B 사이에 K로 나눴을 때 몫이 0이 되는 수가 몇 개인지 세는 문제입니다. https://app.codility.com/demo/results/trainingGDW5F8-WJ7/ Test results - CodilityWrite a function: function solution(A, B, K); that, given three integers A, B and K, returns the number of integers within the range [A..B] that are divisible by K, i.e.: { i : A ≤ i ≤ B, i mod K = 0 } For example, for A = 6, B = 11 and K = 2, your fapp..