HanJP IM

깊이있는 삽질 Ubuntu Korea Community Wiki
이동: 둘러보기, 검색

프로젝트 소개

HanJP IM 프로젝트는 한글로 일본어 발음을 입력하여 일본어를 입력하는 입력기 엔진을 개발하는 프로젝트 입니다.

입력기 엔진은 UIM 용으로 개발합니다. 라이브러리 형식으로, 서버/클라이언트 방식 입력기 프레임워크보다 개발이 쉽기 때문입니다.

기존에는 UIM 용으로 연구/개발 하였으나, 엔진 개발에 필요한 문서가 충분하지 않고 사용 언어 또한 Scheme 라는 생소한 언어로 해야 해서 UIM 으로 하지 않기로 하였으며, 대신 레퍼런스 문서가 잘 준비되어 있고, 비교적 익숙한 C 로 엔진을 작성 가능한 iBus 용으로 연구/개발 하기로 하였습니다.

프로젝트 참여자

  • 김광연 - 프로젝트 제안자, 리더 - hemool123@naver.com
  • 한영빈 - sukso96100@gmail.com
  • 하희목 - tekkon@naver.com
  • (개인 사정으로 활동 안함)강준영 - juneyoung_kang@outlook.com

프로젝트 모임 기록

모임 없는 날

  • 1.25 : 모임공간 지원해주는 회사 사정으로 인해 제공을 받지 못함.
  • 2.15, 2.17 : 설 연휴로 인해 모임을 가질 수 없음.

1회차

2017.12.30 태성빌딩 306호 연결지성센터(시청역 근처)

  • 참석자 : 한영빈, 신호석, 강준영, 김광연
  • 프로젝트 소개와 추후 일정 및 진행 방식 등 논의.
  • 우선 입력기 엔진 개발 관련 문서를 보면서 필요한 지식을 습득 및 학습할 예정.
  • 1~2주 안으로 입력기 엔진 스펙과 프로젝트 라이선스 등을 확정할 예정.

2회차

2018.01.07 태성빌딩 306호 연결지성센터(시청역 근처)

  • 참석자 : 한영빈, 신호석, 강준영, 김광연
  • UIM 에서 입력기 엔진을 스킴(Scheme) 프로그래밍 언어로 작성함 - 기본적인 문법에 대한 학습 필요.
  • The Scheme Programming Language, Fourth Edition - https://www.scheme.com/tspl4/
  • 프로그래밍 스킴 Scheme 1 다운로드부터 문법 대부분을 314초만에 알려줄게요 - http://avangs.info/study_etc/193523
  • Scheme 언어 인터프리터 - 우분투에서 scm 패키지로 제공
sudo apt install scm

3회차

2018.01.11 태성빌딩 306호 연결지성센터(시청역 근처)

  • 참석자 : 한영빈, 강준영, 김광연 / 신호석님은 회사 일로 불참
  • UIM 컴파일하여 설치 - https://github.com/uim/uim/wiki/InstallUim
  • 직접 컴파일 하는 경우 우분투용 패키지에 포함되는 설정 파일 등이 없음. 아래와 같은 방식으로 특정 프로그램에서 uim 테스트가 가능한 것으로 보임.
uim-xim& firefox # Firefox 에서 uim 붙여 테스트.

4회차

2018.01.13 태성빌딩 306호 연결지성센터(시청역 근처)

  • 입력기 분석 할것
    • 김광연 : 입력기 등록 방법 분석
    • 신호석 : 입력기 작동 흐름 분석
    • 한영빈, 강준영 : 벼루 입력기 로직 분석

5회차

2018.01.18 IT조선 사무실(시청역 근처 조선일보사 건물)

6회차

2018.01.20 IT조선 사무실(시청역 근처 조선일보사 건물)

  • 참석자 : 한영빈, 김광연, 신호석
  • 결석자 : 강준영(0XD 커뮤니티 관련 일정으로 불참)

7회차

2018.02.01 IT조선 사무실(시청역 근처 조선일보사 건물)

  • 참석자 : 한영빈, 김광연, 강준영 / 신호석님은 회사 일 문제로 당분간 불참.

8회차

2018.02.03 IT조선 사무실(시청역 근처 조선일보사 건물)

9회차

2018.02.08 IT조선 사무실(시청역 근처 조선일보사 건물)

  • 참석자 : 한영빈, 김광연 / 강준영님은 학교 개학으로 인해 불참, 신호석님은 회사 일 문제로 당분간 불참.

10회차

2018.02.10 IT조선 사무실(시청역 근처 조선일보사 건물)

  • 참석자 : 한영빈, 김광연
  • 불참 : 강준영(무단 - 별도 연락 없이 불참), 신호석(회사일로 불참)

11회차

2018.02.22 IT조선 사무실(시청역 근처 조선일보사 건물)

  • 참석자 : 한영빈, 김광연, 강준영
  • 한영빈 - iBus 엔진 코드 작성
  • 김광연 - Input Context 를 제공할 라이브러리 개발 작업 - libhangul 과 유사한 기능 제공
  • 강준영 - ibus 분석 작업.

12회차

2018.03.03 IT조선 사무실(시청역 근처 조선일보사 건물)

  • 참석자 : 한영빈, 김광연
  • 결적자 : 강준영 - 해커톤 스태프 활동으로 인해 불참

13회차

2018.03.11 IT조선 사무실(시청역 근처 조선일보사 건물)

  • 참석자 : 한영빈, 김광연, 강준영
  • 김광연 : libhanjp 라이브러리 작업
  • 한영빈 : ibus-hanjp - 키 이벤트 처리 함수 작업
  • 강준영 : ibus-hanjp - Preedit 업데이트 함수 작업

14회차

2018.03.18 스타벅스 한국프레스센터점

  • 참석자 : 한영빈, 김광연, 강준영
  • 김광연 :
    • libhanjp Makefile 작성과 컴파일 테스트. 컴파일은 잘 됨, 아직 Makefile의 install 부분은 작성되지 않았음. 라이브러리 잘 작동하는지 테스트 필요
    • ibus-hanjp 같이 작업 시작
  • 한영빈 : 키 입력 처리 함수 작업중 - 노트북 임시 교체로 인해 일부 코드 다시 작성중
  • 강준영 : preedit 관련 함수 작업 및 ibus-hangul 에서 관련소스 같이 분석중.

15회차

2018.03.25 스타벅스 광화문점

  • 참석자 : 강준영, 한영빈
  • 김광연님은 개인 사정으로 불참
  • 각자 엔진 키 입력 이벤트 처리와, 프리에딧 업데이트 부분 작업

16회차

2018.04.08 스타벅스 한국프레스센터

17회차

2018.04.22 스타벅스 한국프레스센터

  • 참석자 : 한영빈, 김광연
  • 강준영 님은 학교 중간고사 준비로 인해 불참
  • 4.28 에 예정된 Ubuntu 18.04 Release Party 에서 발표할 프로젝트 진행 현황 보고 발표 준비.

18회차

2018.05.05 스타벅스 한국프레스센터

  • 참석자 : 강준영, 한영빈
  • 김광연 님은 본가로 가야해서 불참
  • 학교 과제 차 방문한 고등학생분 인터뷰 후 각자 작업 진행.
  • Autotools 문서를 잠깐 읽음.

19회차

2018.05.13 토즈 마이스 광화문센터

  • KossLab 모임공간 지원을 통해 진행
  • 참석자 : 김광연, 한영빈
  • 강준영 님은 교육청 강의 참석으로 인해 불참
  • libhanjp 구조 변경에 대해서 논의
  • ibus 엔진쪽 preedit 문자열 처리에 대한 논의

20회차

2018.05.19 KossLab(공개소프트웨어개발자랩)

  • GNOME Korea 와 함께 조인트로 모임 진행
  • 참석자
    • 우분투한국커뮤니티 Hanjp-IM 팀 측 : 한영빈, 김광연, 강준영
    • GNOME Korea 측 : 조성호, 류창우, 문관경, 성대현
  • GNOME Korea 측에서 먼저 libhangul, ibus 등 입력기 구조와 한글 입력 처리 등에 대해 정리하여 발표
  • Hanjp-IM 팀 측에서 libhanjp 소스코드를 보여주며 libhanjp 의 구조와 작동 방식에 대하여 간단히 발표
  • libhanjp 시연 - 시연 자체는 실패했지만, 컴파일/gdb 디버깅 부분 도움을 받아 실행을 시도 하는 데 까지 성공함.
  • cursor_pos 에 관해 질문 - preedit 상에서의 커서 위치인것으로 답변 받음
  • 문관경 님께서 그놈 셸 개발 환경에 대해 소개해 주심(화면에 나타나는 요소를 선택해 볼 수 있는 looking glass 등)

21회차

2018.06.10 토즈 마이스 광화문센터 / KossLab(NIPA) 지원으로 모임 진행

  • 참석자 : 한영빈, 김광연 / 강준영님은 집안 사정으로 인해 불참
  • 6월 모임 일정 부분적으로 조율
  • libhanjp 구조 변경에 관한 논의
    • 현제 구조로는 처리가 복잡하며 제대로 작동하지 않음. 이를 해결한 새 libhanjp 구조 설계를 김광연님께서 제안.
  • 컴파일과 디버깅에 관한 논의 진행

22회차

2018.06.26 토즈 마이스 광화문센터 / KossLab(NIPA) 지원으로 모임 진행

  • 참석자 : 한영빈, 김광연
  • libhanjp 제작성 관련 논의
  • 역할 분담 : 한영빈 - hanjp eater, 김광연 - input context

23회차

2018.06.30 토즈 마이스 광화문센터 / KossLab(NIPA) 지원으로 모임 진행

  • 참석자 : 한영빈, 김광연
  • libhanjp 개발 작업
  • 한영빈 : hangul_to_kana 함수 작업
  • 김광연 : eater_push 함수 작업

24회차

2018.07.06 토즈 마이스 광화문센터

  • 참석자 : 한영빈, 김광연
  • libhanjp 개발 작업
  • hangul_to_kana 함수 구현 방법에 대한 논의
  • 작업한 코드 리뷰 및 병합 작업

25회차

2018.07.15 토즈 마이스 광화문센터 / KossLab(NIPA) 지원으로 모임 진행

  • 참석자 : 한영빈, 김광연
  • libhanjp 개발 작업
  • hangul_to_kana 함수
    • 요음 처리에 관한 논의.
      • 현제 함수 반환 타입은 ucschar 인데, 요음은 글자 두개를 리턴하거나, 요음애 해당하는 한글 마디를 분해해서 hangul_to_kana 를 두번 호출해야 함.
      • 한글 마디를 분해하여 두번 호출하기 보단, 그대로 넘기고. 리턴타입은 void 로, 대신 포인터 매개변수 통해 전달 하기로 함.
  • 한영빈 : hangul_to_kana 함수 - 탁음, 반탁음 입력 로직 작업
  • 김광연 : hangul_to_kana 함수 리뷰

26회차

2018.07.21 토즈 마이스 광화문센터 / KossLab(NIPA) 지원으로 모임 진행

27회차

2018.08.10 토즈 마이스 광화문센터 / KossLab(NIPA) 지원으로 모임 진행

  • 참석자 : 한영빈, 하희목
  • 새로 들어오신 분께 Hanjp 프로젝트 소개