SchBoard 2 개발일지 - I

Sch·2022년 4월 9일

SchBoard 2

목록 보기
1/16

SchBoard에서 가장 마음에 들지 않는 것은 현재 만들고 있는 보드의 상태를 저장할 수 없다는 것이다. 물론 기능을 만들기가 별로 어렵지 않지만, 코드가 너무 복잡하게 짜여져 있어서 무엇이 무엇인지 알 수 없다는 점이 상당히 불편했다.

따라서 철저한 계획을 거쳐 새로운 SchBoard를 만들기로 했다.

오늘은 SchBoard에서 결여되었던, 필요한 기능들에 대해서 알아봤고, 간단한 HTML 파일을 제작했다.

SchBoard에는 SchBoard에서 가장 중요한 기능인 유닛 추상화 (Unit Abstractisation) 기능만이 구현되어 있었다. 사용자의 편의를 위하는 기능들은 그 어느 것도 구현되어있지 않았다는 점이 SchBoard의 사용을 힘들게 하는 점이었다. 따라서 SchBoard 2에 필요한 기능 몇 가지를 추려보았다.

  • 추상화: 회로를 추상화하고 하나의 유닛으로 사용할 수 있도록 한다.
    • 소켓 라벨링: 소켓에 이름을 지어주어 사용하기 쉽도록 한다.
    • 영구 추상화와 임시 추상화: 추상화한 기계를 유닛 목록에 추가할지, 아니면 그냥 추상화하기만 할지 결정하도록 한다.
  • 보드 패킹: 보드의 현재 상태를 저장하고 그것을 다시 불러와 사용할 수 있도록 한다.
  • 역추상화: 추상화가 되어있는 유닛의 내용물을 확인해볼 수 있도록 한다.
  • 온라인 기능: 다른 사람과 함께 SchBoard를 사용할 수 있도록 한다.
  • 라벨링: 보드의 특정 부분이나 유닛을 라벨링하여 볼 수 있도록 한다.
  • 전선 배치: 일자로 연결되었던 지금까지의 전선과 다르게, 구부러진 전선을 배치할 수 있도록 하여 선 정리를 쉽게 한다.
  • 디스플레이: 디스플레이를 커스터마이징하도록 한다. 메모리 안에 있는 내용물 등을 확인할 수 있게 하기 위해서라도 디스플레이는 추상화하더라도 계속 보일 수 있게 해야 한다.
  • 탭: 한 보드에서는 하나의 회로만 사용할 수 있기 때문에 여러 개의 탭을 만들도록 한다.

이외에도 유닛 배치를 정수 단위로 한다던지, 소켓의 위치를 유닛의 위치처럼 다룬다던지 하는 여러가지 구상을 해 두었다.

오늘은 실질적으로 프로그래밍을 한 부분은 없으며, 프로그램의 전반적인 분위기가 어떻게 형성될지와 같은 외부적인 요소들을 정해두었다.

profile
https://me.shtelo.org/

0개의 댓글