오랜만에 잡아보는 C#
설 연휴를 이용해서 간단하게 구현해봤다.
요즘 TOEIC 스터디 하면서 단어 외우기가 한창인데, 너무 복습이 안되는 느낌이 있었다.
불과 10일전에 봤던 단어가 생소하니 원...
마침 스케쥴 관리가 필요하던 차, 직접 만들어 쓰자는 생각에 Memory Box 를 만들었다.
환경 : C#, .NET framework 2.0
다운로드 :
1. 시작하기
Release.zip 파일을 다운로드받아 압축을 풀면 3개의 파일이 나온다.
- MemoryBox.exe : 실행 파일
- myDB.txt : 단어 저장 파일
- myWeight.txt : 가중치 저장 파일
먼저 프로그램을 실행시켜보자.
MemoryBox.exe를 실행하면 아래와 같은 화면이 나온다.
뭐... 직관적이라 생각한다.
왼쪽 박스에 보이는 것이 외울 단어다.
중앙 박스에 단어의 뜻을 치면 네이버 사전을 검색해서 해당 단어의 원래 뜻을 찾아낸다. 만약 사용자가 입력한 단어의 뜻이 사전 내에 있을 경우 다음 단어로 넘어간다. 물론 틀리면 창의 색깔이 붉어지면서 틀렸다는 표시를 해준다.
틀린 단어에는 가중치가 적용된다. 가중치가 높아질수록 단어를 출력할 확률이 높아지며, 현재 최대 10까지의 가중치가 적용된다. 이게 무슨 말인고 하니...
Apple, Banana, Melon, Strawberry
이렇게 4개의 단어가 초기에 입력되었다고 하면, 각각의 단어가 출현할 빈도는 25%이다.
여기서 Apple의 뜻에다가 '사과'가 아닌 '사고'를 입력하게되면 Apple의 가중치가 1 증가하여 각각의 단어가 출현할 빈도는 아래와 같이 수정된다.
Apple(40%), Banana(20%), Melon(20%), Strawberry(20%)
이 가중치 시스템은 많이 틀리고 안외워 지는 단어를 많이 보여줌으로써 전반적으로 단어를 두루 외울 수 있도록 도와준다. 아니, 그렇게 하려고 만들었다! -_ -;;
외우는건 본인 몫이니...
2. 단어 추가 / 삭제
이제 MemoryBox의 빈 공간에서 마우스 우측 버튼을 클릭해 메뉴를 펼쳐보자.
각각의 메뉴는 아래와 같은 역할을 한다.
- Remove word : 현재 선택된 단어를 단어장에서 삭제한다.
- Normalize : 평소 화면
- Add words : 새로운 단어를 추가한다.
- Dictionary : 현재 선택된 단어의 뜻을 네이버 미니 사전으로 보여준다.
- Minimize : MemoryBox를 감춘다.
- Exit : 프로그램 종료
먼저 단어를 추가해보자. Add words 메뉴를 선택화면 아래와 같은 화면을 볼 수 있다.
왼쪽 하단 박스에 새로 추가하고자 하는 단어를 적고 Enter를 누르거나 마우스로 Insert 버튼을 클릭하면 '띡' 소리와 함께 단어가 추가된다.
단어의 입력은 마우스 '드레그 앤 드롭'으로도 할 수 있다. 인터넷 브라우저는 물론 PDF 및 모든 문서에서 원하는 단어를 블럭 지정해서 단어 박스(왼쪽 위 박스)에 드롭하게되면 자동 추가된다. 마우스 커서 모양이 변하므로 쉽게 이해할 수 있을 것이다.
단어의 삭제는, 원하는 단어가 선택되었을 때 삭제 메뉴를 실행하면 된다.
앗... 그럼 단어가 선택될때까지 계속 기다려야 한단 말인가?
이럴 땐 파일을 직접 열어 지우는 방법이 있다.
메모장이나 워드패드로 myDB.txt 파일을 열고 해당 단어를 찾아 삭제한다.
단, 이때 가중치 파일도 함께 수정해줘야 하는데 myWeight.txt 파일을 열어 삭제한 단어와 같은 라인에 있는 가중치 값을 삭제하면 된다.
마지막으로 사전 기능.
원하는 단어가 선택되었을 때 사전 메뉴를 선택하면 윈도우 크기가 확장되면서 네이버 미니 사전의 정보를 보여준다.
물론, Search 버튼 왼쪽 Box에 단어를 직접 입력해서 검색해볼 수도 있다.
프로그램의 종료는 반드시 Exit 메뉴로 해야한다.
Minimize 메뉴 또는 우측 상단의 X 버튼을 클릭하게되면 아래 화면과 같이 메세지가 출력되면서
background 상에서 Memory box가 실행되게 된다.
쉽게 말해서 화면에만 안보일 뿐 종료되지 않은 상태이다.
(리소스를 거의 잡아먹지 않으니 사실 상관없다.)
여기까지 MemoryBox ver 1.0의 소개를 마친다. - 슨보 -
Release.zip