최단 경로 알고리즘은 다음과 같이 분류단일 출발점(Single-Source): 하나의 노드에서 모든 노드까지의 최단 경로 계산 → 다익스트라, 벨만-포드(Bellman-Ford)전체 쌍(All-Pairs): 모든 노드 쌍 사이의 최단 경로 계산→ 플로이드-와샬, 존슨(
정점과 간선으로 구성되어 네트워크 구조를 추상화한 비선형 자료 구조그래프 특징정점(Vertex)과 간선(Edge)의 집합다양한 그래프 종류를 혼합하여 표현 가능그래프 종류방향 그래프(Directed Graph) : 간선에 특정 방향이 존재하는 그래프(A -> B로 표현
그래프의 일종으로 두 노드 사이의 하나의 간선만 연결되어 있는, 최소 연결과 계층 형태의 비선형 자료 구조노드(node) : 하나 이상의 값을 갖는 객체 단위간선(edge) : 두 노드를 연결하는 선루트 노드(Root node) : 부모가 없는 최상위 노드단말 노드(L
먼저 해시함수란?임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수해시 함수 특성압축성 : 다양한 가변 길이의 입력에 대해 고정된 크기의 결과값을 반환하는 성질효율성 : 어떤 입력 값에 대해서도 많은 자원과 시간이 소요되지 않고 처리되는 성질저항성 : 결과값을
우선순위 큐는 각 요소에 우선순위가 부여되고, 우선순위가 높은 요소가 먼저 처리되는 추상 자료형(ADT)입니다. 일반 큐(FIFO)와 달리 요소의 추가/제거 순서가 우선순위에 의해 결정되며, 동일한 우선순위인 경우에는 삽입 순서(FIFO)를 따름우선순위 기반 처리: 높
스택(Stack)은 데이터를 쌓아 올린 형태의 선형 자료구조로, LIFO(Last In, First Out) 원칙을 따릅니다. 즉, 가장 마지막에 추가된 데이터가 가장 먼저 제거되는 구조실생활에서는 접시를 쌓아두는 모습, 프링글스 통에서 감자칩을 꺼내는 모습이 대표적인
연결리스트는 각 노드가 오직 한 방향(다음 노드)으로만 연결되어 있는 선형 자료구조각 노드는 두 가지 정보를 가짐.데이터(Data): 저장하고자 하는 값포인터(Next): 다음 노드를 가리키는 참조(주소)리스트의 시작은 헤드(Head) 노드로, 끝은 null(혹은 No
알고리즘 성능 평가 지표정확성작업성메모리 사용량최적성효율성시간 복잡도공간 복잡도시간 복잡도입력 크기의 값에 대해 단위 연산을 몇 번 수행하는지 계산하여, 알고리즘의 수행시간을 평가하는 방법3가지 점근적 표현법빅오 : 최악의 상황을 고려하여 성능 측정 결과 표현세타 :
이벤트 위임은 부모 요소에 단일 이벤트 리스너를 추가하여 자식 요소의 이벤트를 처리하는 방식.이벤트 버블링을 활용하여 자식 요소에서 발생한 이벤트가 부모 요소로 전파되도록 함.성능 최적화:많은 자식 요소에 각각 이벤트 리스너를 추가할 필요 없이 부모에 단일 리스너만 추
beforeunload는 사용자가 페이지를 떠나거나 새로고침하려고 할 때 발생하는 브라우저 이벤트.이 이벤트를 활용하면 페이지를 벗어나는 시점에 특정 작업(예: 상태 저장)을 수행할 수 있음.주로 다음과 같은 경우에 사용됨:세션 상태 저장사용자 데이터를 서버에 전송사용
localStorage, sessionStorage, 그리고 Cookies는 모두 브라우저에서 데이터를 저장하는 데 사용되지만, 각각의 특성과 사용 사례가 다름특징: 영구적으로 데이터를 저장하며, 브라우저를 닫아도 데이터가 유지.사용 사례:사용자 환경설정 저장 (예:
DOMContentLoaded와 window.onload의 차이는 주로 이벤트 발생 시점과 사용 사례에 따라 나뉨.이 이벤트는 브라우저가 HTML 문서를 완전히 로드하고 DOM 트리를 생성한 직후 발생스타일시트, 이미지, 서브프레임과 같은 외부 리소스는 로드되지 않아도
웹 개발에서 레이아웃을 구성할 때, 복잡한 계산식보다는 가변적이고 단순한 단위를 사용하는 것이 중요합니다. 이는 브라우저의 계산 부담을 줄이고, 팀원들 간의 코드 이해도를 높이는 데 도움이 됩니다. 이번 글에서는 박스 모델을 활용해 복잡한 계산식을 피하는 방법과, 가변
웹 개발에서 CSS 단위 선택은 디자인의 반응성과 접근성을 결정하는 중요한 요소입니다. px와 rem은 각각 고유한 특성과 장단점을 가지고 있으며, 프로젝트의 요구 사항에 맞게 적절히 선택해야 합니다. 이번 글에서는 px와 rem의 차이점과 사용 사례를 살펴보고, 이를
웹 개발에서 레이아웃을 구성하는 방법은 여러 가지가 있으며, 각 방법은 고유한 특성과 장단점을 가지고 있습니다. 이번 글에서는 Flexbox, Grid, Float의 사용 사례와 예외적인 경우를 살펴보고, 이를 선택하는 기준을 정리해 보겠습니다.1차원 배열: 주로 수평
초기 코드에서는 개별 요소에 호버/포커스 효과를 적용해 전체적인 상호작용이 부자연스러웠습니다.예: 카드와 아이콘이 별도로 반응해 UX 일관성 저하.부모 요소 중심 제어: :focus-within을 사용해 자식 요소의 포커스도 캐치.상태 동기화: 카드 호버 시 모든 하위
웹 개발에서 시맨틱 태그와 적절한 속성 사용은 웹 접근성을 높이고 유지보수를 용이하게 만듭니다. 이번 글에서는 h1 태그와 alt 속성의 의미 있는 사용, 그리고 nth-child 대신 클래스를 활용한 스타일링의 중요성을 이론과 예제를 통해 정리해보겠습니다.초기 코드에
웹 개발에서 시맨틱 태그를 사용하는 것은 구조적 의미를 명확히 하고, 웹 접근성을 향상시키는 데 중요한 역할을 합니다. 시맨틱 태그는 콘텐츠의 목적을 명확히 하여 검색 엔진 최적화(SEO)와 접근성 도구(스크린 리더 등)의 효율성을 높입니다.예를 들어, ul과 li는
예외를 처리하는 방법, 특정 문 실행시 에러가 발생한다면 나머지 코드를 계속 실행하는 것은 의미가 없음그래서 이러한 예외를 처리해서 우회하는 방법이나 다양하게 처리를 하는 것, 사용자에게 예외 사항을 알려주는 경우도 포함기본적으로 에러를 다룰 때 try-catch 구문
모듈은 독립적인 특성을 가진 기능 단위의 부품프로그램의 기능을 독립적인 부품으로 분리한 것, 동시에 여러 다른 모듈과 함께 조합하여 재사용될 수 있음여기서 중요한 것은 내가 만든 코드가 어떻게 재활용 할 수 있는가도 중요함예전에는 즉시 실행함수, 클로저등으로 모듈로 응