본문 바로가기

Web Development

(78)
[Web] Git 브랜치 병합 방법과 에러 해결하기 이번 포스팅에서는 Git에서 브랜치를 병합할 때 발생할 수 있는 에러를 해결하는 방법과 병합 전략에 대해 자세히 알아보겠습니다.에러 상황 분석 및 해결발생한 에러 상황dev 브랜치에서 작업 후 push (a 작업)feature/something 브랜치에서 작업 후 push (b 작업)feature/something 브랜치에서 dev 브랜치의 변경 사항을 가져오려고 할 때 에러 발생에러 내용이는 dev 브랜치와 feature/something 브랜치가 서로 다른 작업 내역을 가지고 있어 조정이 필요하다는 의미입니다.해결 방법: Rebase와 강제 푸시feature/something에서 아래 명령어 입력git rebase devgit push -f git rebase dev: 현재 브랜치(feature/so..
[Web] 이미지 프리로딩과 브라우저 캐시 저장 원칙 이미지 프리로딩의 장점이미지를 미리 로딩하면, 필요한 시점 이전에 이미지를 미리 다운로드 받아 브라우저의 캐시에 저장할 수 있습니다. 이렇게 하면 실제로 이미지가 필요할 때는 이미 캐시된 이미지를 가져와서 다운로드 속도를 높일 수 있습니다. 이는 로딩 스피너와 CSS 효과를 통해 이미지 전환이 자연스러워 보이게 하는 것보다 실질적인 다운로드 속도를 줄이는 데 도움이 됩니다.브라우저 캐시 저장의 기본적인 원칙브라우저의 기본 캐시 동작:대부분의 브라우저는 서버로부터 받은 리소스를 캐시하려고 합니다. 이는 페이지 로드 성능을 향상시키기 위함입니다.이미지 파일은 일반적으로 캐시 가능 리소스로 간주됩니다. 따라서 브라우저는 이미지 요청이 있을 때 이를 캐시에 저장하려고 합니다.캐시 제어가 없는 경우:명시적인 Ca..
[자료구조] 셋(Set) 무엇인가?셋(Set)은 순서가 없고 중복을 허용하지 않는 자료구조이다.3가지 Set의 구현체가 존재한다.- Hash 알고리즘을 이용한 HashSet   hash 테이블을 이용하여 map형태로 값을 보관하고 그에 따라 탐색 속도가 다른 구현체들보다 훨씬 빠르다.- 이진 탐색 트리를 사용하여 오름차순 정렬까지 해주는 TreeSet   정렬된 순서값을 구할 수 있다. 하지만, 값을 저장할때 정렬을 매번해주게 되어서 시간이 걸리며    순회작업을 진행할 때 hashSet보다 느리다.- Set에 순서를 부여해주는 LinkedHashSet 왜 사용하는가?- 집합 관련 문제에서 유용하게 사용할 수 있다. Set은 집합이라는 의미를 가진다.- 중복 처리를 고려해야 할 경우- 중복 처리와 검색 속도가 중요할 때자바스크립..
[자료구조] 해시테이블(Hash Table) 무엇인가?해시 테이블은 키/값 쌍 데이터를 저장하는 데 사용되는 데이터 구조이다. 해시 테이블은 해시 함수를 이용하여, index를 설정하고, 그 내부에 데이터를 저장한다.해시 테이블을 사용하면 O(1)의 성능으로 데이터를 참조, 수정, 삭제할 수 있다.왜 사용하는가?장점- 효율적인 데이터 검색 및 관리해시 함수를 통해서 계산된 인덱스를 사용하여 데이터를 O(1)의 시간 복잡도를 가지고 참조, 수정, 삭제가 가능하다.- 데이터 중복 방지키의 유일성을 통해 중복 데이터 삽입을 방지할 수 있다.- 동적 크기 조정데이터의 양에 따라 해시 테이블의 크기를 동적으로 조정할 수 있어, 자원의 효율적인 사용이 가능하다.단점- 해시 충돌 두 개 이상의 키가 동일한 해시 값을 가질 경우, 충돌이 발생하고, 이는 데이터..
[자료구조] 덱 (Deque) 무엇인가?doubled-ended queue의 약자로, 양 끝에서 데이터를 추가하거나 삭제할 수 있는 자료구조덱 자료구조를 사용하여, 큐와 스택을 선택적으로 구현할 수 있다.(큐 : FIFO, 선입 선출 / 스택 : LIFO, 후입 선출) 왜 사용하는가?양방향 큐가 필요할 경우 사용양쪽 끝에서 요소를 추가하거나 제거해야 할 경우, 덱은 이를 효율적으로 수행할 수 있다.예를 들어, 사용자의 명령어를 undo(취소)하고 redo(재실행, )하는 기능을 구현할 때, 유용하다.데이터 스트림 처리데이터의 최신 항목과 가장 오래된 항목을 동시에 관리해야 할 때, 덱을 사용하면 쉽게 접근하고 업데이트할 수 있다.리소스 풀 관리여러 자원에 대한 접근을 관리할 때, 덱을 사용하면 자원을 효율적으로 추가하고 제거하는 데 ..
[자료구조] 큐 (Queue) 큐?리스트의 한쪽 끝에서만 삽입과 삭제가 일어나는 스택과는 달리 리스트의 한쪽 끝에서는 원소들이 삭제되고 반대쪽 끝에서는 원소들의 삽입만 가능하게 만든 순서화된 리스트. 가장 먼저 리스트에 삽입된 원소가 가장 먼저 삭제되므로 선입 선출(先入先出)인 FIFO(first in first out) 리스트라고 한다.[네이버 지식백과] 큐 [queue] (컴퓨터인터넷IT용어대사전, 2011. 1. 20., 전산용어사전편찬위원회)무엇인가일반 명사 : 대기 행렬, (무엇을 기다리는 사람·자동차 등의) 줄, 줄을 서서 기다리다고유 명사 : 선입 선출 구조(First In First Out)로 먼저 삽입된 자료부터 출력 혹은 삭제되는 리스트 형태의 자료구조스택의 후입선출(LIFO) 특성이 필요한 곳에 사용한다.왜 사용..
[자료구조] 양방향 연결리스트 (Doubly Linked List) 단방향 연결리스트와 양방향 연결리스트의 차이점- 연결리스트는 데이터의 연결이 한 방향으로 되어 있다.    그러나, 양방향연결리스트는 이름 그대로, 데이터끼리 양방향으로 연결되어 있다.단방향 연결리스트와 비교한 양방향 연결리스트의 장단점장점- 각 노드의 앞과 뒤에 있는 노드들의 정보를 저장하기 때문에, 리스트의 앞, 뒤에서 모두 접근이 가능하다.단점- 단방향 연결리스트보다, 메모리의 사용이 좀 더 많다.사용처본인의 경우, 큐 자료구조를 만들기 위해서 사용했다.큐는 FIFO 특성을 가진 자료구조이다.즉 먼저 들어온 것이 먼저 나가야한다.단방향 연결리스트를 사용해서 큐를 구현하게되면,"데이터의 삽입"은 편하지만,"데이터의 제거"가 필요할 경우, head에서 tail까지의 이동한 후, 데이터를 삭제해야한다. ..
[ETC] 어떤 기능을 개발하기 전 생각해볼 것 1. 이 기능이 필요한가?2. 이 기능으로 발생할 수 있는 상황이 구체적으로 몇가지나 되고 어떻게 일어나는가?2. 어떤 방법으로 구현할 것인가?3. 이 방법말고 다른 방법은 없는가?같은 실수를 반복하지 않기 위해서,생각 나는대로 추가 예정입니다.