2026-01-21

Linux From Scratch Book Korean Translation

Linux From Scratch Book Korean Translation 현재 한국어 버전 9. 영문 Linux From Scratch Book은 최근 버전 12. 기존 한국어 번역을 업데이트 해서 12 버전 만드는 건 포기. 영문 최근 버전 12 갖고 와서 한국어 버전 만드는 중. 배우는 게 많다. 

https://www.linuxfromscratch.org/lfs/download.html 에서 Current Development 보면서 진행 중. 아직은 잘 모르겠다. 내가 맞는 길로 가고 있는지. 그래도 좋다. 여기 저기 헤매면서 바른 길 찾아가는 과정에서 배우는 게 많다.

시작점은 어디? 바로 아래.

git://git.linuxfromscratch.org/lfs.git

2026-01-15

gpdf.py

pdftk 참 좋은데 명령어 방식이라 좀 불편. PyQt 활용. 간단한 기능만 GUI 버전으로 만들어 봄.

gpdf.py

import sys

import subprocess

from PyQt6.QtWidgets import (QApplication, QWidget, QVBoxLayout, QPushButton, 

                             QListWidget, QFileDialog, QHBoxLayout, QMessageBox)

from PyQt6.QtCore import Qt


class PDFJoiner(QWidget):

    def __init__(self):

        super().__init__()

        self.initUI()


    def initUI(self):

        self.setWindowTitle('PDF 도우미 (pdftk GUI)')

        self.setGeometry(300, 300, 500, 400)


        layout = QVBoxLayout()


        # 파일 목록 표시창

        self.file_list = QListWidget()

        layout.addWidget(self.file_list)


        # 버튼 레이아웃

        btn_layout = QHBoxLayout()

        

        btn_add = QPushButton('파일 추가')

        btn_add.clicked.connect(self.add_files)

        

        btn_remove = QPushButton('삭제')

        btn_remove.clicked.connect(self.remove_item)


        btn_up = QPushButton('위로')

        btn_up.clicked.connect(lambda: self.move_item(-1))


        btn_down = QPushButton('아래로')

        btn_down.clicked.connect(lambda: self.move_item(1))


        btn_layout.addWidget(btn_add)

        btn_layout.addWidget(btn_remove)

        btn_layout.addWidget(btn_up)

        btn_layout.addWidget(btn_down)

        layout.addLayout(btn_layout)


        # 실행 버튼

        self.btn_run = QPushButton('PDF 합치기 실행')

        self.btn_run.setStyleSheet("background-color: #4CAF50; color: white; font-weight: bold; height: 40px;")

        self.btn_run.clicked.connect(self.merge_pdfs)

        layout.addWidget(self.btn_run)


        self.setLayout(layout)


    def add_files(self):

        files, _ = QFileDialog.getOpenFileNames(self, "PDF 파일 선택", "", "PDF Files (*.pdf)")

        if files:

            self.file_list.addItems(files)


    def remove_item(self):

        for item in self.file_list.selectedItems():

            self.file_list.takeItem(self.file_list.row(item))


    def move_item(self, direction):

        current_row = self.file_list.currentRow()

        if current_row < 0: return

        

        target_row = current_row + direction

        if 0 <= target_row < self.file_list.count():

            item = self.file_list.takeItem(current_row)

            self.file_list.insertItem(target_row, item)

            self.file_list.setCurrentRow(target_row)


    def merge_pdfs(self):

        count = self.file_list.count()

        if count < 2:

            QMessageBox.warning(self, "알림", "합칠 파일이 2개 이상 필요합니다.")

            return


        save_path, _ = QFileDialog.getSaveFileName(self, "저장 경로 선택", "merged_output.pdf", "PDF Files (*.pdf)")

        

        if save_path:

            input_files = [self.file_list.item(i).text() for i in range(count)]

            

            # pdftk 명령어 구성

            # pdftk file1.pdf file2.pdf cat output combined.pdf

            command = ["pdftk"] + input_files + ["cat", "output", save_path]

            

            try:

                subprocess.run(command, check=True)

                QMessageBox.information(self, "성공", f"성공적으로 합쳐졌습니다!\n경로: {save_path}")

            except Exception as e:

                QMessageBox.critical(self, "오류", f"실행 중 오류가 발생했습니다: {e}")


if __name__ == '__main__':

    app = QApplication(sys.argv)

    ex = PDFJoiner()

    ex.show()

    sys.exit(app.exec())

2026-01-11

Linux From Scratch Korean with Gemini

리눅스 프롬 스크래치. 맨땅에서 리눅스를 만든다는 게 흥미롭다. 원본 설명서는 영어. 한국어 번역본도 있다. 그런데, 영문은 버전 12, 한국어는 버전 9. 차이가 크다. 최근 버전인 영문 12 버전을 한국어로 번역해보자. 그런데, 나 혼자 번역하고 말 거 아니고 다른 사람과 공유하려면? 번역 과정, 번역 결과 등. git 사용하면 된다. 그런데 문제는 내가 git 잘 모르는데? 그래도 좋다. gemini 에게 물어보면 잘 알려준다. 가끔 헛소리도 하긴 한다. 할루시네이션이라고 한다. 그럴 땐 화 낼 필요 없다. 그렇게 말한 근거는 뭐지? 라고 물어보면 다시 생각해보고 자기가 잘못했으면 사과 하고 다시 결과를 준다. 자기가 처음에 알려준 게 맞다면? 그 사유를 더 자세히 알려준다. 누구에게나 개인비서가 생긴 거다. 나는 관심 분야가 이런 거라 이런데 인공지능 써먹는데, 다른 분야 관심 있는 사람은 각자 자기 관심 분야에 인공지능 사용해보라. 깜짝 놀랄 거다. 주의사항 하나. 쓰레기를 넣으면 쓰레기가 나온다.

2026-01-08

Strategy of Establishing Open Work Environment in Public Administration System in Korea

주의: 아래 내용은 확정이 아니며 수시로 바뀔 수 있음. 

A Study on the Strategy of Establishing an Open Work Environment and Breaking away from OS Dependency in Public Administration System in Korea

[논문 초안] 대한민국 공공 행정 시스템의 OS 종속성 탈피 및 개방형 업무 환경 구축 전략 연구

국문 초록 본 연구는 현재 대한민국 공공 행정 시스템이 마이크로소프트 윈도우(MS Windows) 및 특정 보안 솔루션에 과도하게 종속되어 발생하는 '갈라파고스화' 현상을 비판적으로 분석한다. 특정 OS에 종속된 시스템은 예산 낭비, 보안 취약성, 그리고 기술적 고립을 초래한다. 본 논문은 리눅스(Linux)로의 일방적 전환이 아닌, '운영체제 독립성(OS Independence)' 확보를 통한 점진적이고 상향식(Bottom-up)인 행정 환경 구축 방안을 제안한다. 이를 통해 정보기술 주권을 확보하고 글로벌 표준을 준수하는 지속 가능한 공공 IT 생태계 모델을 모색한다.


1. 서론

1.1 연구의 배경 및 목적

대한민국 정부는 개방형 OS 도입을 국정과제로 추진해 왔으나, 여전히 MS 윈도우와 한글(HWP), 그리고 설치형 보안 프로그램 중심의 생태계에 머물러 있다. 이는 특정 기업의 정책 변화에 국가 행정이 종속되는 위험을 내포한다.

1.2 연구의 범위 및 방법

본 연구는 리눅스 전면 도입이라는 급진적 시나리오의 한계를 지적하고, 윈도우와 리눅스가 공존하며 사용자가 자유롭게 선택할 수 있는 OS 독립적 행정 시스템 구축 방안을 제시한다.

2. 현황 및 문제점: 'K-갈라파고스'의 실태

2.1 설치형 보안 프로그램(ActiveX/Executable)의 폐해

nProtect 등 시스템 커널 레벨을 점유하는 보안 솔루션은 보안 사고 시 책임 회피용 수단으로 전락했으며, 타 OS(리눅스, 맥OS)로의 확장을 막는다.

2.2 정책 결정권자의 기술적 이해 부족

한국형 OS라는 명목하에 추진되는 별도 배포판 개발은 글로벌 표준과 동떨어진 예산 낭비를 초래하며, 이는 기술 자립이 아닌 또 다른 형태의 종속(특정 국내 업체에 대한 종속)을 낳는다.

3. OS 독립을 위한 핵심 전략: 운영체제 독립성

3.1 웹 표준(HTML5) 기반의 행정 인프라 고도화

모든 행정 시스템을 웹 브라우저 기반으로 전환하여 OS에 상관없이 동일한 업무 환경을 보장해야 한다. 이는 OS 독립의 선결 조건이다.

3.2 글로벌 오픈소스 생태계와의 정렬(Alignment)

한국형 배포판을 새로 개발하는 비용을 절감하여, 순정 리눅스(데비안, 우분투 등) 상에서 공공 업무가 가능하도록 최적화 기술 지원 및 유지보수 서비스 모델(Subscription 모델)에 투자해야 한다.

4. 단계적 도입 로드맵 (The Gradual Roadmap)

4.1 1단계: 웹 기반 인증 및 문서 환경 구축

  • GPKI 인증서를 브라우저 내장하며 웹 오피스 도입.

  • 설치형 보안 솔루션의 점진적 폐지 및 네트워크 보안(Zero Trust) 강화.

4.2 2단계: 상향식(Bottom-up) 선택권 부여

  • IT 숙련 사용자부터 윈도우/리눅스 중 원하는 OS를 선택할 수 있는 환경 제공.

  • 다양한 OS 환경에서 발생하는 문제점을 피드백 받아 시스템 고도화.

4.3 3단계: 완전한 OS 중립 실현

  • 중앙 관리 시스템(GPMS)을 통해 어떤 OS를 쓰더라도 보안 정책이 동일하게 적용되는 인프라 완성.

5. 결론 및 제언

대한민국의 행정 OS 독립은 리눅스로의 강제 이주가 아니라, 어떤 문으로 들어와도 일할 수 있는 인프라를 만드는 과정이어야 한다. 정책 결정권자들은 보여주기식 국산화에서 벗어나, 글로벌 표준을 준수하고 사용자의 선택권을 존중하는 진정한 IT 강국으로의 체질 개선에 앞장서야 한다. 이는 예산의 효율적 집행뿐만 아니라 국가 IT 경쟁력의 근본적인 강화로 이어질 것이다.


주요 키워드: 운영체제 중립성(OS Independence), 리눅스, 정보기술 주권, 제로 트러스트, 웹 표준, 상향식 도입(Bottom-up)

참고 문헌: 인터넷, gemini 등.

* GPMS: Gooroom Platform Management System

HakWon

학원. 다른 나라에는 없나보다. 학원은 영어로 Hakwon 이라 쓴다.

2026-01-07

Year2038Problem

Y2K는 지나갔다. 

년도를 두자리로 간단하게 표시하는 관습 때문에 2000년이 되면 1900년과 구별할 수 없게되는. 

그런데 2038년 문제가 있다.

컴퓨터에서 시간을 내부적으로 처리할 때 32비트로는 2038년이 되면 문제가 될 수 있다. 이 것을 해결하려면?

일반PC 또는 서버는 64비트로 전환되어 큰 문제 없을 듯.

그러나, 오래전에 만들어서 설마 2038년까지 쓸까? 라고 생각했던 장비로 인한 문제가 있을 수 있다.

그러나, 위기는 기회. 이것을 잘 활용해서 사업을 한다면 틈새시장에서 수익을 얻을 수도 있다.

틈새시장 규모는? 알 수 없다. 어쩌면 틈새 정도가 아니라 커다란 구멍일 수도.

2026-01-05

ZaRiTalk QnA

https://govjiwon.com/%EC%9E%90%EB%A6%AC%ED%86%A1-%EA%B3%A0%EA%B0%9D%EC%84%BC%ED%84%B0-%EC%A0%84%ED%99%94%EB%B2%88%ED%98%B8-%EC%83%81%EB%8B%B4%EC%9B%90%EC%97%B0%EA%B2%B0-%EB%AC%B8%EC%9D%98%EB%B0%A9%EB%B2%95/

자리톡에 틀린 정보 있어서 제보하려했더니 너무 어렵다. 위 링크가 해결해줄지도.

대표전화 번호 전화했더니 ARS. 사람과 통화하기 쉽지 않다.

HanYangCyberUniversity2025

2025.2.22. 한양사이버대 입학식 공연. 관객 중에 나도 있다. 아는 사람은 알고 모르는 사람은 모르는 얘기. 지금은 2026년. 세월은 잘도 간다.

https://www.youtube.com/watch?v=YUe1_B2xnrs

2026-01-04

OneGroveMagok

 마곡 원그로브  안에 많은 식당 중 하나. 식당 이름은 주문서에. 이완미엔.

가족 함께 잘 먹음. 맛은? 우리는 맛있게 먹었는데 다른 사람에게 그걸 어떻게 알려주지 ?

직접 드시고 판단해 주시길. 



주문서

2026-01-03

Maiden's Prayer

소녀의 기도 쉬운 악보. 원본은 더 어렵다. 쉬운 버전도 나에겐 어렵긴 하다.

https://www.youtube.com/watch?v=3m5vG1BAg24

A Lover's Concerto

 요즘 AI 시대. 문득 PC 통신 시절 생각이 난다. 

그 때 나온 영화 접속. 전도연과 한석규가 나온. 그 중 나오는 음악 A lover's concerto. 피아노 연주를 들어보자.

https://www.youtube.com/watch?v=LGJRHzJW4tU&list=RDLGJRHzJW4tU