JavaScript 코딩테스트 대비 정리 (레벨 4)
·
Language/JavaScript
레벨 4에서는 심화된 알고리즘과 자료구조를 JavaScript로 다룰 수 있어야 합니다. 그래프와 트리 등 복잡한 구조의 탐색, 백트래킹, 동적 계획법, 그리고 언어의 한계를 뛰어넘는 최적화 기법 등이 요구됩니다.그래프 탐색 (DFS/BFS 활용)그래프 표현: 인접 리스트/행렬로 표현방문 처리: 배열 또는 Set 사용다중 컴포넌트 탐색 필요가중치 그래프: 다익스트라(우선순위 큐 필요), 0-1 BFS, A* 알고리즘트리 구조 및 조작트리 순회: 전위, 중위, 후위 (DFS/BFS 활용)트라이(Trie) 구현:class TrieNode {constructor() { this.children = {}; this.end = false; }}class Trie {constructor() { this.root =..
JavaScript 코딩테스트 대비 정리 (레벨 3)
·
Language/JavaScript
레벨 3에서는 재귀 알고리즘과 자료구조를 직접 구현하거나 활용하는 문제가 등장합니다. 재귀 호출, 그래프 탐색, 큐/스택 구현, 이진 탐색과 같은 알고리즘 패턴을 자바스크립트로 다룰 수 있어야 합니다. 또한 문자열/배열 조작 기법과 일부 유용한 메서드의 심화 사용이 요구됩니다.✅ 재귀 함수재귀는 함수가 자기 자신을 호출하여 문제를 해결하는 기법입니다. 예를 들어 팩토리얼 계산이나 DFS 탐색을 재귀로 구현할 수 있습니다. 종료 조건(base case)을 명확히 해야 하며, 너무 깊은 재귀는 Maximum call stack size exceeded 오류가 발생할 수 있습니다.function factorial(n) { if (n ✅ DFS / BFS (깊이/너비 우선 탐색)DFS재귀 또는 스택으로 구현하..
JavaScript 코딩테스트 대비 정리 (레벨 2)
·
Language/JavaScript
코딩테스트에서 기본적인 문제를 해결하려면 자바스크립트 문법 중에서도 조금 더 실전적인 도구들을 다룰 줄 알아야 합니다.레벨 2에서는 고차 함수, 객체/Set/Map 활용, 정렬과 정규식, 그리고 ES6 이상의 편의 문법들을 중심으로 정리합니다.✅ 고차 함수 (map, filter, reduce)map: 각 요소에 함수를 적용해 새로운 배열 생성[1, 4, 9].map(x => x * 2); // [2, 8, 18]filter: 조건에 맞는 요소만 걸러냄[5, 12, 8].filter(x => x >= 10); // [12]reduce: 모든 요소를 누적 계산[2, 4, 6].reduce((sum, num) => sum + num, 0); // 12※ reduce 사용 시 빈 배열 체크 & 초기값 설정 주..
JavaScript 코딩테스트 대비 정리 (레벨 1)
·
Language/JavaScript
코딩테스트를 준비할 때 반드시 알고 있어야 할 JavaScript 기초 문법과 함수들을 정리한 문서입니다.이 문서는 레벨 1 (입문) 수준으로 구성되어 있으며, 변수 선언, 조건문, 반복문, 배열/문자열 처리, 내장 함수 사용 등을 포함합니다.✅ 변수 선언: var, let, constvar: 함수 스코프, 중복 선언 가능, 호이스팅 발생 (초기화 없이 사용 가능). 사용 비추천.let: 블록 스코프, 호이스팅은 되지만 TDZ(일시적 사각지대)로 초기화 전 사용 불가.const: 블록 스코프, 재할당 불가. 기본적으로 상수 선언에 사용.일반적으로 const → 재할당 없는 값, let → 재할당 가능한 값, var는 사용 지양.✅ 조건문 (if / 삼항 연산자)if (조건) { // 실행 코드} els..
프론트엔드 개발자를 위한 AI 용어 완전 정리
·
Frontend Development
최근 웹 개발에서 AI 기능 통합이 급증하면서, 프론트엔드 개발자도 AI 관련 용어를 정확히 이해해야 할 필요성이 커지고 있습니다. ChatGPT API 연동부터 이미지 생성 AI까지, 다양한 AI 서비스를 프론트엔드에 통합하는 프로젝트가 늘어나고 있기 때문입니다.이 글에서는 프론트엔드 개발자가 꼭 알아야 할 AI 핵심 용어들을 체계적으로 정리했습니다. 각 용어의 정의와 함께 실제 프론트엔드 개발에서 어떻게 활용되는지 설명하겠습니다.기본 AI 개념AI (Artificial Intelligence, 인공지능)인간의 지능을 모방하여 학습, 추론, 문제 해결 등을 수행하는 컴퓨터 시스템입니다. 프론트엔드에서는 주로 REST API나 WebSocket을 통해 AI 서비스와 통신합니다.머신러닝 (Machine L..
시간복잡도와 공간복잡도: 개발자가 알아야 할 성능 최적화의 기초
·
Frontend Development
프론트엔드 개발에서 성능은 사용자 경험을 좌우하는 핵심 요소입니다. 특히 대용량 데이터 처리, 복잡한 UI 렌더링, 실시간 검색 기능 등을 구현할 때 알고리즘의 효율성이 직접적으로 성능에 영향을 미칩니다. 이 글에서는 시간복잡도와 공간복잡도의 개념부터 실무에서의 활용 방법까지 체계적으로 정리하겠습니다.알고리즘 복잡도란 무엇인가?성능 평가의 필요성실제 개발에서 동일한 기능을 구현하는 여러 가지 방법이 존재할 때, 어떤 방법이 더 효율적인지 판단해야 합니다.// 배열에서 최댓값 찾기 - 방법 1function findMaxMethod1(arr) { let max = arr[0]; for (let i = 1; i max) { max = arr[i]; } } return max;}// 배..
[JWT 가이드] 개념부터 React 실무 구현까지 - Session 비교, 보안, TypeScript 예제 총정리
·
Frontend Development
프론트엔드 개발에서 사용자 인증은 거의 모든 프로젝트의 핵심 요구사항입니다. 전통적인 세션 기반 인증에서 토큰 기반 인증으로의 전환이 가속화되면서, JWT(JSON Web Token)는 현대 웹 애플리케이션의 표준 인증 방식으로 자리잡았습니다. 이 글에서는 JWT의 개념부터 실제 구현까지 체계적으로 정리하겠습니다.목차JWT란 무엇인가?JWT의 구조와 동작 원리JWT vs Session 인증 방식 비교JWT의 장점과 단점실제 구현 예시보안 모범 사례결론 및 실무 가이드JWT란 무엇인가?JWT(JSON Web Token)는 당사자 간에 정보를 JSON 객체로 안전하게 전송하기 위한 컴팩트하고 자체 포함된(self-contained) 방식을 정의하는 개방형 표준(RFC 7519)입니다.JWT가 필요한 이유현대..
React Hooks 규칙: useState를 조건문에서 사용하면 안 되는 이유
·
Frontend Development
React Hooks는 함수형 컴포넌트에서 상태 관리와 생명주기를 다루는 혁신적인 기능입니다. 하지만 Hooks를 올바르게 사용하기 위해서는 몇 가지 중요한 규칙을 지켜야 합니다. 특히 useState를 조건문 안에서 사용하는 것은 심각한 버그를 야기할 수 있습니다.React Hooks의 내부 동작 원리Fiber와 Hook 연결 리스트React는 내부적으로 Fiber라는 자료구조를 사용하여 컴포넌트를 관리합니다. 각 함수형 컴포넌트는 Hook들의 연결 리스트(Linked List)를 가지고 있으며, 이 리스트는 Hook 호출 순서에 따라 구성됩니다.// React 내부 구조 (단순화된 버전)function Component() { // Hook 1: 첫 번째 useState const [name, s..
Git branch 전략
·
Frontend Development
소프트웨어 개발에서 Git 브랜치 전략은 팀의 개발 효율성과 코드 품질을 결정하는 핵심 요소입니다. 프로젝트의 규모, 팀 구성, 배포 주기에 따라 적절한 브랜치 전략을 선택하는 것이 중요합니다.1. Git Flow정의와 구조Git Flow는 Vincent Driessen이 제안한 브랜치 전략으로, 대규모 프로젝트에서 안정적인 릴리스 관리를 위해 설계되었습니다.브랜치 구조:main: 프로덕션 배포 브랜치develop: 개발 통합 브랜치feature/*: 기능 개발 브랜치release/*: 릴리스 준비 브랜치hotfix/*: 긴급 수정 브랜치워크플로우1. feature 브랜치에서 기능 개발2. develop 브랜치에 병합3. release 브랜치에서 QA 진행4. main 브랜치에 최종 병합5. 필요시 ho..
무한 스크롤 vs 페이지네이션, 내가 내린 선택과 후회
·
Frontend Development
최근 회사에서 관리자 페이지를 리뉴얼하면서 "페이지네이션을 할까, 무한 스크롤을 할까" 고민이 생겼습니다. 처음에는 단순하게 생각했는데, 막상 구현하다 보니 생각보다 복잡한 문제들이 많더라고요. 특히 백엔드 API와의 협업에서 예상치 못한 이슈들을 겪으면서 배운 것들을 공유해봅니다.처음 마주친 상황우리 관리자 페이지에는 주문 목록, 사용자 목록, 상품 목록 등 데이터가 많은 테이블들이 있었어요. 기존에는 단순한 테이블에 20개씩 보여주고 페이지 번호로 넘기는 구조였는데, 새로 디자인된 UI는 좀 더 모던한 느낌이었거든요.React로 구현하면서 처음에는 간단하게 생각했어요:const [currentPage, setCurrentPage] = useState(1);const [data, setData] = u..