본문 바로가기

반응형

분류 전체보기

(367)
[자료 구조] 여기 까지 구현해본 단일 연결 리스트의 장점과 단점에 대한 생각 단일 연결 리스트를 구현해보면서 느낀 장점과 단점 배열과 비교했을 때는 이런게 장점인 것 같다. 일단 본인이 판단하기로 단일 연결 리스트의 장점은 배열과 달리 연속적인 메모리 공간 할당을 필요로 하지 않기 때문에, 메모리 관리 측면에서 매우 효율적이라는 생각이 들었다. 또한, 노드의 추가 및 삭제, 검색, 조회 등에 있어서도 일반적인 배열에 비해서, 참조관계를 바탕으로 노드를 순회하며 찾아가면 되기 때문에, 비번한 삽입 및 삭제가 반복되는 상황에서는 배열 보다 더 활용하기 좋아보였다. 자바스크립트에서 기본적으로 사용되는 arr =[ ] 의 경우에는 배열의 앞 부분에 요소를 추가하게 되면, 각 요소들이 메모리 공간을 연속적으로 할당받아 사용하므로 기존의 요소들이 새요소로 인해서 한 자리씩 뒤로 밀리게 되는..
[자료구조] 단일 연결 리스트에서 특정 노드를 제거하는 함수를 구현해보자 이전 시간까지 단일 연결 리스트에서 노드를 찾아서 조회하는 기능을 구현하였는데, 이번에는 타겟이 되는 노드를 검색해서 삭제하는 기능을 구현해볼 것이다. 단일 연결리스트에서 특정 노드를 삭제하려면 단일 연결리스트에서 특정 노드를 삭제하려면 우선적으로 연결 리스트 전체를 순회해야 한다. 왜냐 하면, 단일 연결리스트의 참조는 단방향이기 때문에 전체 노드를 순회해야 타겟 노드를 찾을 수 있기 때문이다. 또한, 타겟이 되는 노드를 제거하기만 하면 되는 것은 아니며, 타겟 노드를 이전 노드가 가리키는 다음 노드의 참조를 타겟 노드의 다음 노드에 해당하는 노드로 변경해주어야 한다. 예를 들어 5 -> 3 -> 1 이라는 연결리스트가 있다고 가정할 때, 2 라는 노드를 제거한다면 5 -> null -> 1 와 같은 형..
[성능최적화 모음집] 웹 성능을 최적화하기 위한 방법을 정리해서 모아둡니다. 이 포스트는.. 해당 포스트는 제가 웹 개발 시 참고하기 위한 웹 성능 최적화 기법을 모아두는 아카이브로서 역할을 합니다. 한글 문서 등에 별도로 정리해두었던 내용들을 하나 씩 블로그에 옮기고 있습니다. 추가되는 내용이 있을 때 마다 최신 날짜를 기준으로 포스트가 갱신됩니다. [이미지 최적화] 이미지 지연로딩을 통해 CPU 가 열일 하는 걸 줄여주자 보통 이미지 지연로딩을 사용하지 않고, 대량의 이미지를 로드하는 페이지를 렌더링하면, 무수히 많은 이미지를 렌더링 하기 위해 CPU 는 엄청난 과부하를 경험하게 됩니다. 브라우저의 경우에는 싱글 스레드로 동작하기 때문에 CPU 가 이미지 렌더링에 많은 시간을 소요하게 되면, 사용자 입장에서는 렉이 심하게 걸려서 마우스 조작도 힘든 버벅이는 화면을 오랫동안 볼..
[모음집] 유용한 CSS 속성을 모아두는 아카이브 이 포스트는.. 해당 포스트는 제가 판단하기로 유용한 기능이나 개념이라 생각되는 부분이 있으면 모아두는 저장소 용도의 포스트 입니다. 각 챕터의 순서는 정해져 있지 않는 각각의 독립된 콘텐츠로 생각하고 참고하시면 좋을 것 같습니다. 내용은 최대한 짧게 필요한 핵심만 정리하는 것을 원칙으로 하고, 매번 업데이트가 될 때 마다 최근 날짜를 기준으로 리스트가 갱신됩니다. 오늘의 명언 inset 속성 보통 저희는 position 속성에서 절대적 위치를 나타내는 absolute 나 고정된 절대값을 가지는 fixed 를 이동시킬 때 left, right, top, bottom 속성을 따로 지정하여 위치를 변경합니다. 그런데, 이 모든 속성의 축약형이 존재하는데 inset 속성이 그렇습니다. inset: 10px; ..
무한슬라이드 보호되어 있는 글입니다.
실행 컨텍스트(execution context) 를 다시보자 이 포스트는..사실 많은 분들이 실행 컨텍스트에 대해서 포스트를 작성했죠. 저 또한 과거에 작성한 이력이 있고, 기술 블로그라면서 기술에 대한 포스트 보다는 이론에 대한 포스트라서 자격지심이 들기도 하지만!! 그래도 스스로의 공부를 위해서 복습하는 겸 정리해봅니다. 실행 컨텍스트실행 컨텍스트란 동일한 조건이나 환경을 지니는 코드들을 실행하는 데 필요한 조건이나 환경정보를 의미한다. 쉽게 말해, 소스 코드를 실행하는데 필요한 정보를 저장하고 있는 객체이다. 여기서 동일한 조건이나 환경을 지니는 코드들을 하나의 덩어리로 나눠서 본다면 총 4가지로 구분 되는데, Global, Function, eval, module 으로 구분한다. eval 은 보안상의 문제, 크로스 브라우징 문제 등의 이유로 사용을 추천하지..
[나만의 명언집] 처음 해보는 프로젝트 회고 [들어가는 말] 프로젝트 회고..? 뭘 적으면 좋을까제가 이번에 도전한 프로젝트의 주제는 명언 웹 이었습니다. 사실 아직도 완성이라고 하기에는 현실적인 제약에 부딪혀 미완성 상태이지만, 그래도 어느 정도 돌아가고는 있으니 회고라는 핑계로 분풀이를 해볼까 합니다. 다른 회고 글을 보면 기능 명세서도 작성하고, ERD도 기술적으로 정리하는 등 엄청 잘 작성된 글들이 많이 보였는데요. 그걸 따라하기에는 A 부터 Z 까지라는 체계적인 순서를 지키며 개발한 것은 아니다 보니, 나름대로 목차와 흐름을 정해서 회고를 시작해볼까 합니다. [본문] 프로젝트 소개(+ 디자인 변경점)우선 제가 어떤 프로젝트를 했는지 소개를 해야겠죠? 명언 웹 사이트는 말그대로 명언 목록을 조회하고, 검색하고, 마음에 드는 명언은 픽 해서 ..
[JS] MDN 에 꼭 읽어봐야 할 브라우저 동작 원리 에 대한 포스트가 있어요 - MDN Web Docs 이 글은 MDN contributors 에 의해 작성된 포스트를 재사용한 것으로 Creative Commons Attribution-ShareAlike 4.0 International License 를 근거로 MDN 문서를 재가공한 것입니다. 정확한 내용은 공식문서를 참고하세요.- 이 포스트는.. 이번에 AWS EC2 를 사용하여 사이트 배포를 진행해보면서 브라우저의 동작원리에 대해서 많은 궁금증이 생겼는데, 이에 대한 문서가 MDN 에 있어서 이를 정리해 보았습니다. 웹페이지를 표시한다는 것: 브라우저는 어떻게 동작하는가 사용자는 로드가 빠르고 상호작용이 원활한 컨텐츠로 이루어진 웹 경험을 원합니다. 따라서 개발자는 이 두 가지 목표를 달성하기 위해서 부단히 노력해야합니다. ..

반응형