당근 프론트엔드 엔지니어 인턴 2주차 키워드 회고 보호된 글입니다.
당근 프론트엔드 엔지니어 인턴 1주차 키워드 회고 당근 알바(Local Jobs)팀에서 프로덕트 엔지니어, 그 중에서도 프론트엔드 인턴으로 일하게 되었다. 사실 당근 알바팀의 프론트엔드 인턴 포지션은 내가 7개월 전, 학교다니며 준비가 부족한 상태로 처음으로 면접을 봤던 포지션이기도 하다. 이전부터 당근과 잘 어울린다는 말을 많이 들었기에 가장 가고 싶은 회사가 당근이었다. 그 중에서도 나와 가장 Fit 하다고 느낀 당근 알바팀이 나의 첫번째이자 마지막 채용 프로세스라니! 나만 느끼는 운명적인 이야기 ..~ 다른 회사에서도 합격 연락을 받았지만 가지 않았을 정도로 당근은, 그 중에서도 알바팀은 너무나 함께하고 싶은 팀이었다. 프로덕트에 진심인 엔지니어는 어떻게 일할까? ① | 당근 블로그당근 팀이 일하는 문화와 방식을 소개해요.about.da..
타입챌린지 [쉬움] 난이도 중 인사이트 정리 ✅ 1. 14 - First문제: 배열의 첫 번째 요소의 타입을 추출하라.type arr1 = ['a', 'b', 'c']type arr2 = [3, 2, 1]type head1 = First // expected to be 'a'type head2 = First // expected to be 3type cases = [ Expect, 3>>, Expect 123, { a: string }]>, () => 123>>, Expect, never>>, Expect, undefined>>,]type errors = [ // @ts-expect-error First, // @ts-expect-error First,]type First = T extends [] ? never : T[0];빈 배열..
CursorAI + MCP 로 생산성 100배 부스트하기 (Sequential Thinking과 TalkToFigma) CursorAI와 MCP(Model Context Protocol)는 개발자에게 강력한 도구로 세상이 시끄럽다. CursorAI 에 크게 놀랐는데, MCP 를 결합하면 더 엄청나다는 이야기를 유튜브에서 보고 몇가지 활용해보았다. CursorAI와 MCP의 소개CursorAI는 인공지능을 활용하여 코드 작성, 디버깅, 최적화 등을 지원하는 도구로, 개발자의 생산성을 크게 향상시킨다. MCP는 다양한 플랫폼과의 통합을 가능하게 하여, 개발자가 여러 도구를 유기적으로 활용할 수 있도록 돕는다.내가 사용해본 MCP 1 -  Sequential Thinking 🧠Sequential Thinking은 복잡한 문제를 단계별로 접근하여 해결하는 방법론으로, 개발 과정에서의 논리적 사고를 강화한다. 단계별로 명확하게 ..
Cursor AI 등 .. 코딩할 때 AI 툴을 사용하며 느낀 개인적인 생각, 부작용 AI 코딩의 위험성오늘 실제 프로젝트 마이그레이션을 진행하면서 깨달은 중요한 점이 있다.코드에 대한 깊은 이해 없이 AI를 사용하는 것은 매우 위험할 수 있다는 사실이다.기존 코드는 제가 직접 기능을 구상하고, 하나씩 함수를 작성한, '이해도가 높은 코드' 였다. 오늘 cursorAI 를 사용하여 타입스크립트로 마이그레이션하고, 기존의 Redux 적용 범위를 확장하면서 주의하고, 다음부턴 어떻게 해야할 지 회고가 필요할 것 같아서 이 글을 작성하게 되었다. 1. 왜 위험한가?첫번째로 기능 손상의 위험이 크다. AI가 코드의 전체적인 맥락을 완벽히 이해하지 못하는 경우가 생각보다 많았다. 그래서 기존 기능의 의도나 로직을 보존하지 못한 것을 뒤늦게 발견하기도 했다. 두번째로 손상된 기능을 알아채는 것이 ..
🌗 Styled Components로 라이트/다크 모드 전환하기 실제 프로젝트에서는 사용자에게 다크 모드와 라이트 모드를 제공하는 것이 중요한 UX 요소 중 하나이다.styled-components와 ThemeProvider를 활용하면 전역 테마 전환을 매우 간단하게 구현할 수 있다.✅ 1. 테마 객체 정의하기// themes.jsexport const lightTheme = { textColor: "#111", backgroundColor: "whitesmoke",};export const darkTheme = { textColor: "whitesmoke", backgroundColor: "#111",};✅ 2. App에서 테마 상태 관리여러개의 property를 가진 객체를 두개 (다크/라이트) 설정함으로써 간편하게 theme을 바꿀 수 있다.  // Ap..
Styled Components - 애니메이션, 컴포넌트 선택자, 중첩 스타일링 이번에 더듬어볼 기억은 ..  keyframes 도 const 로 따로 빼서 관리하는 거 + styled component 조건문처럼 쓰기 !! ✅ 회전 애니메이션 만들기먼저 keyframes를 사용해 회전하는 애니메이션을 정의한다.import styled, { keyframes } from "styled-components"; const rotationAnimation = keyframes` 0% { transform: rotate(0deg); border-radius: 0px; } 50% { border-radius: 100px; } 100% { transform: rotate(360deg); border-radiu..
Styled Component에서 컴포넌트 확장하기 옛날에 리액트 처음 익힐때 다 공부했던 것 같은데, 프로젝트들을 하다보니 비슷한 컴포넌트를 생성하는 경우가 많은데 무시하고 계속 하다가 .. '아 옛날에 이거 공부했었는데 .. ' 싶어서 정리하게됐다.  일단 그 전에 styled component 를 쓰는 이유는 기존에 div를 만들고 className 이나 style을 부여하는 식이었지만,대신 styled를 임포트 해서 우리가 사용할 html 에서 사용하고 싶은 태그를 지정하고, 백틱 안에 css코드를 적어준다. -> 컴포넌트 이렇게 하게 되면 스타일링 된 컴포넌트를 사용함으로써, 컴포넌트 함수 안에 스타일을 적을 필요가 없고, 가독성이 좋아진다.  나는 큼직한 or 많이 사용할만한 컴포넌트들은 스타일 컴포넌트로 지정하고, 그 안의 자잘한 텍스트나 버..
자바스크립트에서의 BFS와 DFS 1. BFS (Breadth-First Search)BFS는 시작 노드에서부터 가까운 노드부터 차례로 방문하는 알고리즘입니다.보통 큐(Queue, FIFO: First-In, First-Out)를 사용합니다.최단 경로, 레벨 순회 등에 유용합니다.function bfsWithVisited(start, getNeighbors) { const queue = [start]; const visited = new Set(); visited.add(start); console.log("초기 visited:", Array.from(visited)); while (queue.length > 0) { const current = queue.shift(); // 큐에서 가장 앞의 원..