Dseok의 실전 예제로 웹개발 한방에 끝내기

웹개발, 혼자 하려니 막막하고 힘드시죠? 저 또한 그렇습니다. 힘든 웹개발... 실전 예제를 통해 함께 공부해요!!!!😁📕

Javascript

[Dseok의 코딩스터디] javaScript push() & pop() 한방에 끝내 | 개념 & 실용 예제 10가지

Dseok 2025. 2. 28. 09:03
반응형
SMALL

📌 push()pop()란?

push()pop() 메서드는 JavaScript의 배열(Array) 조작 메서드로, 데이터를 쉽게 추가하거나 제거할 수 있습니다.
이 메서드는 스택(Stack) 자료구조처럼 LIFO(Last In First Out) 원칙을 따릅니다.

 

✅ 기본 문법

// push(): 배열의 끝에 요소 추가
array.push(element);

// pop(): 배열의 마지막 요소 제거
array.pop();
  • push(element): 배열의 끝에 새로운 요소를 추가하고 배열의 길이를 반환
  • pop(): 배열의 마지막 요소를 제거하고 제거된 값을 반환

📌 push() & pop() 실용 예제 10가지

1️⃣ 배열에 요소 추가 및 제거

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>push & pop 예제</title>
</head>
<body>

<button id="add">추가</button>
<button id="remove">제거</button>
<ul id="list"></ul>

<script>
let items = [];

// 리스트 업데이트 함수
function updateList() {
  document.getElementById("list").innerHTML = items.map(item => `<li>${item}</li>`).join("");
}

// push(): 요소 추가
document.getElementById("add").addEventListener("click", function() {
  items.push("새로운 아이템 " + (items.length + 1));
  updateList();
});

// pop(): 마지막 요소 제거
document.getElementById("remove").addEventListener("click", function() {
  items.pop();
  updateList();
});
</script>

</body>
</html>

설명: 버튼을 클릭하면 배열에 아이템을 추가하거나 제거할 수 있습니다.

 

2️⃣ 최근 방문한 페이지 저장하기

<button id="back">뒤로 가기</button>
<p id="currentPage">현재 페이지: Home</p>

<script>
let historyStack = ["Home"];

function updatePage() {
  document.getElementById("currentPage").innerText = "현재 페이지: " + historyStack[historyStack.length - 1];
}

// 페이지 이동 (push 사용)
function visitPage(page) {
  historyStack.push(page);
  updatePage();
}

// 뒤로 가기 (pop 사용)
document.getElementById("back").addEventListener("click", function() {
  if (historyStack.length > 1) historyStack.pop();
  updatePage();
});

visitPage("About");
visitPage("Contact");
</script>

설명: push()pop()을 활용하여 최근 방문한 페이지 히스토리를 관리할 수 있습니다.

 

3️⃣ 입력한 데이터 저장 및 제거 (To-Do List 기능)

<input type="text" id="task" placeholder="할 일을 입력하세요">
<button id="addTask">추가</button>
<button id="undo">실행 취소</button>
<ul id="tasks"></ul>

<script>
let tasks = [];

function updateTasks() {
  document.getElementById("tasks").innerHTML = tasks.map(task => `<li>${task}</li>`).join("");
}

// 새로운 할 일 추가
document.getElementById("addTask").addEventListener("click", function() {
  let task = document.getElementById("task").value;
  if (task) {
    tasks.push(task);
    document.getElementById("task").value = "";
    updateTasks();
  }
});

// 마지막 입력 실행 취소
document.getElementById("undo").addEventListener("click", function() {
  tasks.pop();
  updateTasks();
});
</script>

설명: push()를 이용해 입력한 데이터를 저장하고, pop()을 이용해 실행 취소 기능을 추가할 수 있습니다.

 

4️⃣ 브라우저 탭 관리하기

<button id="newTab">새 탭 열기</button>
<button id="closeTab">탭 닫기</button>
<ul id="tabs"></ul>

<script>
let tabs = ["Home"];

function updateTabs() {
  document.getElementById("tabs").innerHTML = tabs.map(tab => `<li>${tab}</li>`).join("");
}

document.getElementById("newTab").addEventListener("click", function() {
  tabs.push("새로운 탭 " + (tabs.length + 1));
  updateTabs();
});

document.getElementById("closeTab").addEventListener("click", function() {
  tabs.pop();
  updateTabs();
});
</script>

설명: push()를 활용해 새로운 브라우저 탭을 관리하고, pop()으로 닫을 수 있습니다.

 

5️⃣ 최근 검색어 저장 및 삭제

<input type="text" id="search" placeholder="검색어 입력">
<button id="saveSearch">검색 저장</button>
<button id="clearLast">마지막 검색 삭제</button>
<ul id="searchList"></ul>

<script>
let searchHistory = [];

function updateSearchList() {
  document.getElementById("searchList").innerHTML = searchHistory.map(term => `<li>${term}</li>`).join("");
}

document.getElementById("saveSearch").addEventListener("click", function() {
  let term = document.getElementById("search").value;
  if (term) {
    searchHistory.push(term);
    document.getElementById("search").value = "";
    updateSearchList();
  }
});

document.getElementById("clearLast").addEventListener("click", function() {
  searchHistory.pop();
  updateSearchList();
});
</script>

설명: push()pop()을 활용해 최근 검색어 저장 및 삭제 기능을 구현할 수 있습니다.

 

6️⃣ 최근 닫은 창 기록 저장

<button id="closeWindow">창 닫기</button>
<button id="restoreWindow">복원</button>
<ul id="windowList"></ul>

<script>
let closedWindows = [];

function updateWindowList() {
  document.getElementById("windowList").innerHTML = closedWindows.map(win => `<li>${win}</li>`).join("");
}

document.getElementById("closeWindow").addEventListener("click", function() {
  closedWindows.push("창 " + (closedWindows.length + 1));
  updateWindowList();
});

document.getElementById("restoreWindow").addEventListener("click", function() {
  closedWindows.pop();
  updateWindowList();
});
</script>

설명: push()로 창을 닫고, pop()으로 복원하는 기능을 구현합니다.

 

7️⃣ 방문한 웹사이트 목록 저장

<button id="visit">웹사이트 방문</button>
<button id="undoVisit">마지막 방문 취소</button>
<ul id="visitedSites"></ul>

<script>
let visitedSites = [];

function updateSites() {
  document.getElementById("visitedSites").innerHTML = visitedSites.map(site => `<li>${site}</li>`).join("");
}

document.getElementById("visit").addEventListener("click", function() {
  visitedSites.push("사이트 " + (visitedSites.length + 1));
  updateSites();
});

document.getElementById("undoVisit").addEventListener("click", function() {
  visitedSites.pop();
  updateSites();
});
</script>

설명: 방문한 웹사이트 목록을 push()로 저장하고, pop()으로 삭제할 수 있습니다.

 

8️⃣ 웹페이지 입력 히스토리 저장

<input type="text" id="userInput" placeholder="입력하세요">
<button id="saveInput">저장</button>
<button id="undoInput">되돌리기</button>
<ul id="inputHistory"></ul>

<script>
let inputHistory = [];

function updateInputHistory() {
  document.getElementById("inputHistory").innerHTML = inputHistory.map(input => `<li>${input}</li>`).join("");
}

document.getElementById("saveInput").addEventListener("click", function() {
  let input = document.getElementById("userInput").value;
  if (input) {
    inputHistory.push(input);
    document.getElementById("userInput").value = "";
    updateInputHistory();
  }
});

document.getElementById("undoInput").addEventListener("click", function() {
  inputHistory.pop();
  updateInputHistory();
});
</script>

설명: 사용자가 입력한 데이터를 push()로 저장하고, pop()으로 삭제할 수 있습니다.

 

9️⃣ 로그인한 사용자 기록 관리

<button id="login">로그인</button>
<button id="logout">로그아웃</button>
<ul id="users"></ul>

<script>
let users = [];

function updateUsers() {
  document.getElementById("users").innerHTML = users.map(user => `<li>${user}</li>`).join("");
}

document.getElementById("login").addEventListener("click", function() {
  users.push("사용자 " + (users.length + 1));
  updateUsers();
});

document.getElementById("logout").addEventListener("click", function() {
  users.pop();
  updateUsers();
});
</script>

설명: push()를 활용하여 로그인한 사용자를 저장하고, pop()으로 로그아웃할 수 있습니다.

 

🔟 웹 브라우저 뒤로 가기/앞으로 가기 구현

<button id="back">뒤로 가기</button>
<button id="forward">앞으로 가기</button>
<p id="current">현재 페이지: Home</p>

<script>
let backStack = [];
let forwardStack = [];
let currentPage = "Home";

document.getElementById("back").addEventListener("click", function() {
  if (backStack.length > 0) {
    forwardStack.push(currentPage);
    currentPage = backStack.pop();
    document.getElementById("current").innerText = "현재 페이지: " + currentPage;
  }
});

document.getElementById("forward").addEventListener("click", function() {
  if (forwardStack.length > 0) {
    backStack.push(currentPage);
    currentPage = forwardStack.pop();
    document.getElementById("current").innerText = "현재 페이지: " + currentPage;
  }
});
</script>

설명: push()pop()을 활용해 브라우저의 뒤로 가기 및 앞으로 가기 기능을 구현할 수 있습니다.

 

📌 마무리 🎯

  • push()배열 끝에 새로운 요소 추가
  • pop()배열의 마지막 요소 제거
  • push()pop()을 활용하면 데이터 관리, 방문 기록, 입력 취소 등 다양한 기능 구현 가능
  • 실제 개발에서는 장바구니 기능, 브라우저 히스토리 관리, 음악 재생 목록, 로그인 시스템 등에서 많이 활용됨

반응형
LIST