애석하게도 번지수 잘못 찾았어.

그러게 왜 벌집을 건드려 ㅎㅎ



7cf3c028e2f206a26d81f6e04182776981



7ff3c028e2f206a26d81f6e04082756b8d

요것이 현재의 코드다.

comparison 내에서 왜 객체 생성을 하냐고? ㅎㅎ

저게 뭔지 알려주마.

설정 파일을 파싱하여 해석하는거다.

저거 작성한지 오래되어 잘 기억이 안나는데..

함 보여주마.

설정 파일은 이런 식으로 되어 있어.


7ef3c028e2f206a26d81f6e1408071649d


긍데 왜 객체 생성을 하냐고? ㅎㅎ

저 설정파일 보면 영문 설명 나오지? 그거 다국어로 화면에 표시된다.

그거 뭘로 했더라..

intl로 했던거 같은데

카타로그.

암튼, 작성한지 너무 오래되어 기억이 안나는데,

유닉스/리눅스 계통에서 메시지 카타로그 만드는 표준 방식있어.


78f3c028e2f206a26d81f6e14488706b8c

저러한 방식으로 .po를 .mo로 변환하는거지. 다국어.

그러면 .yaml 설정 파일을 읽어서 파싱을 하고, 메시지를 get 할 수 있어야 할 거 아냐.

그래서 객체를 생성하는거다.


7bf3c028e2f206a26d81f6e042857268f4

그리고 comparison에서 정렬을 하는데,

ascii로 정렬하면 안 된다.

유니코드는 정렬 방식이 아마 따로 있을거다..

콜레이트 함수던가.. ㅎㅎ

진짜 기억 가물가물하네.. ㅎㅎ

아.. 너가 말한거..

객체 생성/해제가 빈번히 발생한다는 의미 같군.

왜 캐싱을 안 하느냐. 최적화 관점에서의 의미인 것 같은데,

캐싱할 경우, 워킹 메모리 증가한다.

따라서 한번 쓰고 버리는 게 좋다.

입력기 전체 성능에 큰 영향 없음.

오래되어 기억이 잘 안 나네.

서버측에서 활성화되어 있는 언어 모듈 목록을

유니코드 순으로 정렬하여


int c_utf8_collate (const char * restrict s1, const char * restrict s2)
{
  char32_t *a, *b;

  a = c_utf8_to_char32 (s1);
  b = c_utf8_to_char32 (s2);

  int retval = c_char32_strcmp (a, b);

  free (a);
  free (b);

  return retval;
}


그 목록을 indicator로 전송하면,

indicator 측의 언어 메뉴가 아마 갱신되는 방식이었던가..

comparison 의 최적화는 필요해보이긴 하네.

하지만 캐싱 방식은 좋지 않아. 메모리 소비량 증가되므로.

마땅한 방법이 없어. ㅎㅎ

힙할당 말고, 스택할당 생성자도 만드는게 좋겠네.


그리고 허상 포인터 지적했었지? 싱글톤 말하면서.

서버측에서 언어 모듈로 언어 객체를 각 1개 생성 후,

그걸 여러 클라이언트에서 같이 사용하는 방법인데,

코드를 한번 살펴보자고.

ㅎㅎ

코드를 살펴보니 플러그인 구조이고 허상(댕글링) 포인터 문제는 없다.


7af3c028e2f206a26d81f6e14e877064a6



valgrind로 플러그인 로드/언로드/로드/언로드를 수백번 반복해봤다.

메모리릭 없고, 메모리 버그 없다.



75f3c028e2f206a26d81f6e040807768e1


그리고 내가 말했던 지연 해제 루틴도 보여주마. ㅎㅎ


74f3c028e2f206a26d81f6e04586756fb7


ㅆㅇㅆ아, 나는 너의 기분을 상하게 한 적이 없어.

너가 어떠한 글에 댓글을 달았을 때, 나도 그 글에 댓글 달을 권리가 있다.

너 기분 나쁘다하여 나를 모함하는 일 없었으면 좋겠다.

제발.

제발


아 그리고, 사람 우습게 보는거 같은데 대망의 콘솔 입력기 코드도 보여주마. ㅎㅎ


7ced9e36ebd518986abce89542867665fb3d

이룬 것도 있다. ㅎㅎ

너는 너 할 일이나 제대로 하고,

너는 너가 모르는 분야에 대해서는

알지도 못하면서 괜히 나서서 잘난척하지 말아라.

그리고 콘솔 입력기 소스코드는,,, 다음 글 스크롤하다보면 소스코드 전문이 있으니 ㅎㅎ

그 소스코드를 GPT나 제미니한테 올리고 개발자 실력이 어느 정도인지 물어보면 되겠다.


https://nimfsoft.art/ko/blog/2025/02/12/i-wont-make-a-linux-framebuffer-console-hangul-input-tool/


참고로 나는 로우레벨부터 GUI, 웹개발까지 모두 가능한 풀스택 개발자다.

큐티



님프소프트 - 저는 리눅스 프레임버퍼 콘솔 한글 입력기를 만들지 않겠습니다.

님프소프트 - 저는 리눅스 프레임버퍼 콘솔 한글 입력기를 만들지 않겠습니다.

nimfsoft.art