Swing Page

오류 공장장·2026년 2월 1일

Swing Page

목록 보기
1/2

Swing Page는 내가 만들 프레임워크이다.

  • 목표
    JDK 하나만으로 자바와 프레임워크에 대한 이해도를 높인다.

"개발자가 시스템에 로직을 전달한다"

개발자는 페이지와 이벤트, 공유 데이터 이 세가지만 고려한다.
페이지 전환의 역할은 프레임워크에 맡긴다.

  • 각 페이지는 다른 페이지를 직접적으로 접근하지 않는다.
  • 각 페이지는 이벤트를 발생시킬 뿐이다.
  • 이벤트를 수신한 프레임워크가 페이지를 전환한다.

나의 프레임워크 근간은 다형성이다.

인터페이스와 추상 클래스를 충분히 활용하여 골격을 짜두어
개발자는 규칙에 맞게 페이지와 이벤트를 개발한다.

본 프레임워크 추상화 계층엔
이벤트 발행과 수신의 역할이 숨겨져 있다.


  • 비록,
    페이지 간 데이터를 전송하는 부분에서 미흡한 부분이 존재하고,
    리플렉션을 사용하지 않으며,
    객체의 생명 주기를 관리하지는 않는다.

  • 그럼에도,
    개발자가 고려해야 할 점을 줄여서 생산성을 높이도록
    개발자의 로직을 가져와 전체 시스템에서 활용하기 때문에
    프레임워크를 이해하는데 충분히 도움이 될 것이라고 판단하였다.


교육 계획

  1. v1: 기존 JavaFX 프레임워크를 Swing으로 전환
    자바 초심자를 대상으로 하였다.
    최근 JDK엔 JavaFX가 포함되지 않는 경우가 많다.
    인터페이스와 추상 클래스로 뼈대가 잡힌 다형성,
    이벤트 발행-구독 패턴으로 페이지 간 느슨한 결합,
    레이어드 아키텍처로 책임을 분리,
    빌더 패턴으로 프레임워크에 개발자가 작성한 로직 등록하기 등을
    보여주는데 JDK만 있도록 했다.
    -> 추상화에 대한 이해도 향상

  2. v2: 모듈 분리
    멀티 모듈의 관점으로 프로그램을 바라보게 한다.
    "패키지 디폴트 대신 자바 모듈 시스템 활용?"
    "배포의 과정에서 모듈 분리의 장점?"
    "모듈 간 또는 클래스 간 의존성 관계?" 등의
    질문을 던질 수 있도록 계획하였다.
    -> 의존성 및 모듈화, 배포에 대한 이해도 향상

  3. V3: 뒤로가기, 앞으로가기
    스택을 활용하여 브라우저의 뒤로가기, 앞으로가기를 이해
    -> 자료구조 활용

  4. v4: 다크 모드 추가 및 직접 커스텀 메뉴 추가
    다크 모드는 프레임워크 유틸로써 기능을 추가할 수 있다.
    개발자의 커스텀 메뉴를 추가한다.
    -> 확장성에 대한 이해도 향상

이렇게 각 단계를 계획하고 개발하였다.

단순히 프레임워크를 가져와 쓰는 것이 아니라,
프레임워크의 기초를 직접 코드로 바라보며 이해하고,
직접 만들 수 있도록 경험할 수 있길 바랐다.


나는 4학년 1학기 이후에야,
위의 내용들을 체감할 수 있었다.

모쪼록 다른 사람에게 도움이 될 수 있길 간절히 바란다.
프로그램에 대한 시야를 넓힐 수 있는 기회가 될 수 있으면 되도록..

난.. 세상과 사람에 대한 시야를 넓히고 싶다.
아 맞다.. 부족하지만 함께 개발할 수 있다면 더 좋을 것 같다:D

기존 프로그램이 1년도 넘어 기억이 가물 가물하고,
최근에 개발한 위의 각 버전이 돌아가는 것을 단순하게 테스트하였고,
스윙에 대한 이해도가 부족하여 잘못된 프로그램일 수도 있지만..

나 이번엔 자신감있게 마무리 짓는다.

profile
오류 그만 만들자!

0개의 댓글