프론트 개발자를 위한 여정

모든 영역을 안내하는 개발자

JavaScript 7

[algorithm 공부] DFS/BFS 쉬운 개념 js 구현 방법

탐색 알고리즘인 DFS(깊이 우선 탐색)와 BFS(너비 우선 탐색)에 대해 알아보겠습니다.이 두 알고리즘은 그래프나 트리 구조를 탐색하는 데 매우 유용한 방법입니다.특히, JavaScript를 기준으로 쉽게 구현하는 방법을 살펴보겠습니다.1. DFS와 BFS의 개념 이해DFS는 깊이 우선 탐색으로, 가능한 깊게 노드를 탐색한 후에 더 이상 탐색할 노드가 없으면 이전 노드로 돌아가서 다른 경로를 탐색하는 방식입니다. 반면, BFS는 너비 우선 탐색으로, 시작 노드에서 가까운 노드를 먼저 탐색하고, 그 다음으로 멀리 있는 노드를 탐색하는 방식입니다. 이 두 알고리즘은 각각의 특성에 따라 다양한 상황에서 유용하게 사용됩니다.이미지 출처DFS와 BFS의 탐색 경로를 보여주는 다이어그램입니다.2. DFS와 BFS..

Algorithm 2025.01.06

[프로그래머스] 연습문제 / 미로탈출 / Lv2 / JS / 접근법, 문제풀이 공유

문제 이해하기주어진 문제는 다음과 같습니다:미로는 O(빈칸), X(벽), S(시작점), L(레버), E(출구)로 구성됩니다.S에서 L로, L에서 E로 이동해야 합니다.O만 지나갈 수 있으며, X는 벽이라 지나갈 수 없습니다.최단 거리로 이동하는 방법을 찾는 게 목표입니다.예제 입력["SOOOL", "XXXXO", "OOOOO", "OXXXX", "OOOOE"]​  위 미로에서 우리는 S(0, 0) → L(0, 4) → E(4, 4)로 이동하는 경로를 찾아야 합니다.알고리즘을 어떻게 접근할까?이 문제를 해결하기 위해 두 가지 개념을 사용합니다:1. 미로 탐색2. 최단 거리 찾기최단 거리 탐색에 적합한 BFS최단 거리를 찾기 위해 BFS (Breadth-First Search), 즉 너비 우선 탐색을..

프론트엔드에서 Dead Code란 무엇인가? 관리와 제거 방법

프론트엔드에서 Dead Code란 무엇인가? 관리와 제거 방법프로젝트가 커질수록 사용되지 않는 코드가 쌓이고, 디버깅 중 문제를 해결하려다 보면 실제로는 사용되지 않는 코드가 원인처럼 보이는 상황을 경험한 적이 있으신가요? 오늘은 이런 Dead Code의 정의와 이를 효과적으로 관리하는 방법에 대해 알아보겠습니다.Dead Code란 무엇인가?Dead Code란 애플리케이션에서 더 이상 사용되지 않거나 실행되지 않는 코드를 말합니다. 이는 기능 수정이나 삭제, 요구사항 변경, 또는 코드를 작성하는 과정에서 자연스럽게 발생할 수 있습니다. 프론트엔드 개발에서는 Dead Code가 다음과 같은 형태로 나타날 수 있습니다:Dead Code의 주요 유형사용되지 않는 변수 및 함수 선언만 되었지만 실제로 호출되거나..

Frontend 2024.12.25

화살표 함수(Arrow Function)

화살표 함수란?화살표 함수(Arrow Function)는 ES6(ECMAScript 2015)에서 도입된 JavaScript의 기능으로, 함수를 작성하는 새로운 간결한 문법입니다.등장 배경간결한 문법의 필요성기존의 function 키워드를 사용한 함수 선언 방식은 코드가 길어지고 가독성이 떨어질 수 있었습니다. 특히 콜백 함수나 익명 함수가 자주 사용되는 상황에서 더더욱 간단한 방식이 필요했습니다.this 바인딩 문제 해결JavaScript에서의 this는 함수가 호출되는 방식에 따라 달라집니다. 그러나 화살표 함수는 this를 작성된 위치에서 상속받아 사용합니다(렉시컬 스코프). 이로 인해 복잡한 상황에서의 this 문제를 해결하기 위해 추가 코드(예: .bind()나 self = this 패턴)를 작..

Frontend/JavaScript 2024.12.19

React StrictMode란 무엇인가?

React에서 StrictMode는 애플리케이션의 잠재적인 문제를 식별하고 개선하기 위해 사용하는 개발 모드 도구입니다. 이는 UI의 의도치 않은 동작이나 비효율적인 코드, 그리고 React의 향후 버전과의 비호환성 문제를 사전에 파악할 수 있도록 돕습니다.StrictMode는 실제로 애플리케이션에 런타임 동작에 영향을 미치지 않으며, 개발 환경에서만 활성화됩니다. 배포 환경에서는 제거되기 때문에 성능에 영향을 주지 않습니다.왜 StrictMode를 사용하는가?React의 점진적인 개선과 최신 버전의 도입을 원활하게 하기 위해서는 기존 코드가 최신 React 관행과 잘 호환되는지 확인해야 합니다. StrictMode를 사용하면 다음과 같은 문제를 쉽게 발견할 수 있습니다:1. 안전하지 않은 생명주기 메서..

Frontend/React 2024.12.04

Javascript 비동기 프로그래밍, 클로저와 스코프, 모듈화, ES6

JavaScript 심화 개념 정리이번 글에서는 JavaScript에서 중요한 심화 개념들을 다룹니다. 비동기 프로그래밍, 클로저와 스코프, 모듈화, 최신 문법(ES6+)을 포함한 각 개념을 예제와 함께 설명합니다.1. 비동기 프로그래밍JavaScript는 기본적으로 싱글 스레드로 동작하며, 이로 인해 비동기 프로그래밍이 필요합니다. 콜백, 프로미스(Promises), async/await을 활용해 비동기적인 작업을 효율적으로 처리할 수 있습니다.1.1 콜백콜백 함수는 비동기 작업이 완료되었을 때 호출되는 함수입니다. 하지만 중첩된 콜백을 사용할 경우 콜백 지옥이 발생할 수 있습니다.function fetchData(callback) { setTimeout(() => { callback..

Frontend/JavaScript 2024.11.13

Next.js란 무엇인가?(설명,배경,특징,기능,사용하는 이유)

Next.js는 React 기반의 강력한 웹 프레임워크로, 서버 사이드 렌더링(SSR)과 정적 사이트 생성(SSG)을 손쉽게 구현할 수 있게 합니다. 이 글에서는 Next.js의 개념과 주요 기능들을 처음 접하는 개발자들도 쉽게 이해할 수 있도록 설명합니다.목차Next.js 소개Next.js의 탄생 배경Next.js의 주요 특징Next.js의 기본 기능Next.js를 사용해야 하는 이유마치며1. Next.js 소개Next.js는 React의 확장된 프레임워크로, SSR(Server-Side Rendering)과 SSG(Static Site Generation)를 통해 웹 애플리케이션의 성능을 최적화하고 SEO 친화적인 환경을 제공합니다. Vercel에서 개발했으며,현재는 많은 기업들이 선택하는 인기 있는..

Frontend/NextJs 2024.10.28