[java] 스택을 이용한 웹 브라우저 기록 저장하기

이번에는 자바 프로그래밍 언어를 사용하여 스택을 이용해서 웹 브라우저의 방문 기록을 저장하는 방법을 알아보겠습니다.

스택(Stack)이란?

스택은 데이터를 한쪽에서만 삽입하고 삭제할 수 있는 선형 자료구조입니다. 마지막에 삽입된 데이터가 가장 먼저 삭제되는 후입선출(LIFO - Last In First Out) 방식을 따릅니다. 즉, 스택의 맨 위에 있는 데이터에만 접근할 수 있습니다.

웹 브라우저 기록 저장을 위한 스택 구현

아래는 스택을 이용하여 웹 브라우저의 방문 기록을 저장하는 자바 코드입니다.

import java.util.Stack;

public class WebBrowserHistory {
    private Stack<String> history;

    public WebBrowserHistory() {
        history = new Stack<>();
    }

    public void visitPage(String url) {
        history.push(url);
    }

    public String goBack() {
        if (!history.isEmpty()) {
            return history.pop();
        }
        return null;
    }

    public void clearHistory() {
        history.clear();
    }

    public void printHistory() {
        if (history.isEmpty()) {
            System.out.println("방문 기록이 없습니다.");
        } else {
            System.out.println("방문 기록:");
            for (String url : history) {
                System.out.println(url);
            }
        }
    }

    public static void main(String[] args) {
        WebBrowserHistory browserHistory = new WebBrowserHistory();
        browserHistory.visitPage("https://example.com");
        browserHistory.visitPage("https://google.com");
        browserHistory.visitPage("https://stackoverflow.com");
        browserHistory.printHistory();

        String previousPage = browserHistory.goBack();
        System.out.println("이전 페이지: " + previousPage);

        browserHistory.clearHistory();
        browserHistory.printHistory();
    }
}

위 코드에서 WebBrowserHistory 클래스는 Stack 자료구조를 이용하여 방문 기록을 저장합니다. visitPage 메서드는 주어진 URL을 스택에 추가하고, goBack 메서드는 스택에서 가장 최근에 추가된 URL을 꺼내 반환합니다. clearHistory 메서드는 방문 기록을 모두 지우고, printHistory 메서드는 현재까지의 방문 기록을 출력합니다.

main 메서드에서는 예시로 몇 개의 URL을 방문하고 기록을 출력해보고, goBack 메서드를 이용해 이전 페이지로 이동한 후 방문 기록을 다시 출력해봅니다.

참고 자료