20241126

스마트폰 카메라,웹브라우져에 보이는 외국어 원터치 자동번역

스마트폰(Android)의 카메라,웹브라우져에 보이는 외국어를 원터치로 자동 번역하는 방법- 기록

아래 이미지를 참고합니다.

-스마트폰 하단의 중간에 보면, 네모난 투명 버튼을, 한번만 살짝 쿨릭이 아닌, 몇초 누르고 있으면, 카메라에 보이는, 또는 웹브라우져에 보이는, 스마트폰 화면에 보이는, 외국어를 자동번역하는 버튼이 호출되며, 검색도 가능함.









자동차 타이어 교체 시기 관련- 셀프 체크(타이어 마모, 생산 년도, 타이어 크기)방법

 자동차 타이어  교체 시기 관련 - 간단 메모 기록

-타이어 관련 정보를, 필요할때 참고하고자 간단하게 기록함.

1. 타이어의 마모: 타이어의 지면이 닿는곳의 높이가 3mm 이하면 교체 권고.

2. 타이어의 생산된 년도 알아 보는 방법: 타이어 옆면에 동그란 원안에 숫자

                     2321 이면 -> 2123주차에 생산함.

3. 타이어가 갈라짐등이 많거나, 7년 전/후 정도 된것이면- 교체를 추천함

4. 타이어 크기 알기

   225/55R17 이라면: 

             225- 타이어의 넓이(가록 폭)

                  너비가 넓을수록- 접지력이 좋아져 안정성이 증가,연비가 약간 감소.

                                    일반 도로/고속 주행: 넓은 타이어가 접지 면적이 넓어 더 안정적

                  너비가 좁을수록- 연비가 좋아지고, 눈길이나 빗길에서 더 나은 성능을 발휘.

                                    눈길/빗길: 좁은 타이어가 접지 압력과 물 배출 능력 덕분에 더 나은 성능.

             55 - 편평비 (Aspect Ratio), 타이어의 높이가 너비(225mm)의 55%라는 뜻

                  타이어의 높이는 225 × 0.55 = 약 123.75mm입니다.

                  편평비가 낮을수록: 타이어가 낮고 단단한 느낌, 

                                      고속 주행 안정성과 핸들링 성능이 향상

                  편평비가 높을수록: 승차감이 부드럽고 충격 흡수 능력이 좋아짐.

             17 - 휠(림)의 직경 (Rim Diameter)

                  17인치 휠에 착용가능한 타이어

                  큰 직경의 휠: 고속 안정성과 디자인 측면에서 유리하고, 대신 승차감이 다소 딱딱함.

                  작은 직경의 휠: 승차감이 부드러워지고 충격 흡수가 좋아짐.


             기타: R- 래디얼 구조 (Radial): 타이어 구조의 하나를 명칭하는 것이며,

                      타이어 내부의 섬유층이 반경 방향으로 배열된 구조.대부분 R 구조임.

                      유연성과 내구성이 좋아 승차감이 부드럽고, 연료 효율이 높음.

                      현대 시대의 대부분의 차가 R 구조 라고 합니다.

20241122

식탁 세정제 만드는 방법 -기록

친환경 식탁 세정제 만드는 방법 -기록

 물 1컵 + 식초 1/4컵 + 자연성분 주방세제 1/2 작은술 을 섞어서, 스프레이통에 넣고 사용함.


식초: 살균 효과
친환경 세제: 기름기,오염 제거

세제는 친환경 세제를 사용합니다.
기타 향기용- 레몬즙 몇방울, 또는 식품향료 레몬향은 옵션입니다.

한글폰트 설치, 기본 폰트로 지정 방법, 사용하지 않는 폰트 삭제- Linux Ubuntu Lubunt

폰트는 컴퓨터를 느려지게 할수도 있기에, 설치 및 삭제 최적화 방법을 기록합니다.

 한글폰트 설치 및 기본 폰트로 지정 방법- 1


1. 폰트 설치 

sudo apt update

sudo apt install fonts-nanum


2.폰트 확인

  fc-list | grep Nanum


3. 시스템 전체에서 폰트 변경

  sudo nano /etc/fonts/local.conf


<?xml version="1.0"?>

<!DOCTYPE fontconfig SYSTEM "fonts.dtd">

<fontconfig>

    <!-- Sans-serif 기본 폰트 변경 -->

    <match target="pattern">

        <test qual="any" name="family">

            <string>sans-serif</string>

        </test>

        <edit name="family" mode="prepend">

            <string>Nanum Gothic</string>

        </edit>

    </match>

    

    <!-- Serif 기본 폰트 변경 -->

    <match target="pattern">

        <test qual="any" name="family">

            <string>serif</string>

        </test>

        <edit name="family" mode="prepend">

            <string>Nanum Myeongjo</string>

        </edit>

    </match>

    

    <!-- Monospace 기본 폰트 변경 -->

    <match target="pattern">

        <test qual="any" name="family">

            <string>monospace</string>

        </test>

        <edit name="family" mode="prepend">

            <string>Nanum Gothic Coding</string>

        </edit>

    </match>

</fontconfig>


4. 폰트 캐쉬 업데이트

fc-cache -fv


5. 적용 확인

fc-match sans-serif

출력 결과: NanumGothic.ttf: "나눔고딕" "Regular"


6.재부팅


사용하지 않는 폰트 삭제 방법 2


Nanum Gothic 폰트 기본 경로 참고
/usr/share/fonts/truetype/nanum/


nanum 폴더만 제외하고, 모든 폴더 삭제 방법 
sudo find /usr/share/fonts/truetype -mindepth 1 -maxdepth 1 ! -name 'nanum' -type d -exec rm -rf {} +
sudo find /해당되는폴더위치 -mindepth 1 -maxdepth 1 ! -name '삭제안할 폴더이름' -type d -exec rm -rf {} +
sudo find /usr/share/fonts -mindepth 1 -maxdepth 1 ! -name 'truetype' -type d -exec rm -rf {} +


삭제 후 다시 캐시를 업데이트
sudo fc-cache -fv

임시 파일 정리
sudo apt install bleachbit
bleachbit

스왑활용 확인
swapon --show

스왑 사용률 10으로 줄이기
NAME      TYPE SIZE USED PRIO
/swapfile file 512M   0B   -2

아래처럼 10으로 줄이기 
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

미사용 패키지 정리
sudo apt autoremove --purge
sudo apt autoclean

시스템 업데이트 
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

20241115

PC 크롬브라우져, 스마트폰에서, 유투브 영어 동영상을 한국어자막으로 보는 방법

PC 크롬브라우져 또는 스마트폰에서, 유투브 영어 동영상을 한국어자막으로 보는 방법

PC 크롬브라우져에서 유투브 영상 자동 번역 보기 방법

- PC 크롬 브라우져에 확장 프로그램에서 설치 실행- Subtitles for Youtube


스마트폰에서 유투브 영어 동영상 자동 한국어 번역 자막 보는 방법

1. Youtube 앱을 실행하고

2. 영어로된 동영상을 재생하고

3. 우측 상단에 톱니모양[설정]을 선택합니다.- 동영상 재생화면을 클릭하면 설정이 보입니다.

4. 설정[톱니모양]을 클릭하면, 화질,재생속도,자막,잠금화면,취침타이머,추가설정 항목이 보이고,

   그중에서 자막을 선택하고, 

5. 자막 사용 중지, 영어, 영어(자동 생성됨), 자동번역 중에, 자동번역을 선택하고,

6. 언어 리스트에서, 한국어를 선택합니다.

Pinta - 포토샵 비슷한 가벼운 이미지 편집 프로그램

Pinta 는 포토샵과 가장 비슷하고, 안정적인, 기능이 최적화된 오픈소스 프로그램입니다.

- 포토샵의 대부분의 기능과 비슷한 사용법

GIMP 보다 가볍고, 포토샵과 UI 및 기능 사용법이 너무 익숙함.

- 모든 OS 에서 사용. [Windows, Mac, Linux, BSD..]

- 저사양 PC에서 사용하기 좋은, 매우 가벼운 프로그램

- 이미지 자르기, 레이어회전(이미지 회전),효과,그리기...

- 포토샵의 대부분의 기능 및 이미지 사진 편집,효과,레이어 기능이 있슴.

- 한글 지원

- 설치 버젼이기에, 매우 만족스러움.





프로그램 설치는: 공식홈페이지 pinta-project 를 구글에서 검색해서 참고하거나

Linux ubuntu의 경우는, Snap 설치가 가장 쉽고, 재부팅시, 메뉴에 등록도 되있을 것입니다.

설치방법: sudo apt install snapd

     sudo snap install pinta 

20241107

GitHub 자신 계정에 .deb 파일 올리고, 다운받고 설치방법- golang fyne linux ubuntu

GitHub에 .deb 파일 올리고,  다운받고 설치방법

유틸리티 빌드 및 준비

Golang Fyne 기반 유틸리티를 빌드해 실행 파일을 생성.

go build -o 파일이름


.deb 패키지 디렉터리 구조 생성

파일이름 프로젝트 폴더/

├── DEBIAN 폴더 생성/

│   └── control 파일

└── usr 폴더 생성/

    └── local 폴더 생성/

        └── bin 폴더 생성/

            └── 등록할 빌드한 실행 파일을 이곳에 두기


control 파일 작성- 패키지의 메타데이터를 담는 파일로, 패키지 이름, 버전, 설명 

등을 정의함. DEBIAN/control 파일을 다음과 같이 작성.


Package: 파일이름

Version: 1.0

Section: utils

Priority: optional

Architecture: amd64

Maintainer: 등록자이름 <이메일id@메일.com>

Description: 마우스 올렸을때 간단 설명용


.deb 패키지 빌드-프로젝트 폴더 이름으로 아래 명령 실행.

다음 명령어로 .deb 패키지를 생성합니다.

dpkg-deb --build 파일이름


GitHub에 패키지 업로드

GitHub 리포지토리의 Releases 기능을 통해 .deb 파일을 업로드합니다.

github웹싸이트의 우측상단에 + 클릭시, New repository(리포지토리)에서, Repository name 작성 및 파일 업로드 합니다.


생성된 주소를 참고합니다.(아래 내용)

-다운받기 HTTPS: git clone https://github.com/계정이름/Repository name.git

-다운받기 SSH:  git clone git@github.com:계정이름/Repository name.git


다운받은 .deb 파일을 설치합니다. 

sudo apt update

sudo dpkg -i 파일이름.deb


설치된 파일 찾기: dpkg -L 파일이름
실행: 만일 프로그램 이름이 aaaa.exe 로 리스트에 보이면, aaaa.exe 로 입력시 실행됨.

20241106

LXQt 로그인창-자동로그인,수동로그인 설정- Lubunt linux

 LXQt 로그인창-자동로그인,수동로그인 설정- Lubunt linux

sudo nano /etc/sddm.conf 에서 , 아래 내용 참고 입력하고, 저장하고, 재부팅.

수동로그인시- [Autologin] 섹션을 아예 삭제하거나 주석 처리 #

[General]

Language=ko_KR.UTF-8


[Autologin]

# User=

# Session=Lubuntu


자동로그인시 ------------------------------------

[Autologin]

User=관리자이름

Session=Lubuntu


[General]

Language=ko_KR.UTF-8


Ubuntu Linux 에서 키보드 키이름 확인방법- [한/영]키 이름 확인 방법

 Ubuntu Linux 에서 키보드 키이름 확인방법- [한/영]키 이름 확인 방법

1. 터미널에서 xev 입력하고, 키보드의 [한/영]키를 클릭하면 Hangul 로 표시 됨을 확인. 


2. xmodmap 명령어로 현재 키보드 맴핑을 확인할수 있슴

xmodmap -pke | grep Hangul

keycode 105 = Hangul_Hanja NoSymbol Hangul_Hanja

keycode 108 = Hangul NoSymbol Hangul

keycode 130 = Hangul NoSymbol Hangul

keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja

Ubuntu, Linux, Lubunt 에서 기본 프로그램 등록하는 방법

 Ubuntu, Linux, Lubunt 에서 기본 프로그램 등록하는 방법


1. .desktop 파일 생성

- 프로그램의 이름, 실행 경로, 아이콘, 카테고리 등과 같은 메타데이터를 포함하여 프로그램을 등록하고 실행하는 데 사용됨.

 nano ~/.local/share/applications/파일이름.desktop

 위 명령으로 파일을 생성하며 열고, 아래 내용을 추가합니다. 

-----------------------------------------------------------------------------------------------------------------------

[Desktop Entry]

Version=1.0

Name=파일이름

Comment=이 프로그램은 어떤 프로그램 입니다.

Exec=/home/파일 위치/파일이름.exe %f

Icon=text-editor

Terminal=false

Type=Application

MimeType=text/plain;

Categories=Office;

----------------------------------------------------------------------------------------------------------------------------

Version: .desktop 파일의 버전을 지정. 일반적으로 1.0으로 설정

Name: 프로그램의 이름. 메뉴에서 보여지는 이름입니다.

Comment: 프로그램에 대한 짧은 설명(마우스 올리면 보이는 글)

Exec: 실행 파일의 경로와 인수를 지정. 여기서 %f는 파일 경로를 인수로 받도록 설정한 것입니다. 

          파일이 확장자가 없는 aaa 이면 aaa만 입력. aaa.exe 면 aaa.exe 입력 함.

          실행 파일이 ~/.local/bin이나 시스템 PATH에 포함된 경우 전체 경로를 생략할 수도 있슴.

Icon: 프로그램에 사용할 아이콘을 지정. text-editor는 시스템에서 기본으로 제공하는 아이콘이고

          필요시 다른 경로에 있는 이미지 파일을 지정할 수도 있슴.(예제: Icon=/home/계정이름/icons/myicon.png)

Terminal: true 또는 false로 설정하여 프로그램이 터미널에서 실행될지 여부를 지정. GUI 프로그램인 경우 false로 설정.

Type: 파일 유형을 지정. 일반적인 애플리케이션의 경우 Application으로 설정함.

MimeType: 프로그램이 열 수 있는 파일 유형(MIME 유형)을 지정.

                     각 MIME 타입은 세미콜론(;)으로 구분하며, 마지막 MIME 타입 뒤에도 세미콜론을 붙이는 것이 규칙임.

                     이미지뷰어: MimeType=image/png;image/jpeg;image/gif;

                     웹브라우져: MimeType=text/html;text/xml;application/xhtml+xml;

                     PDF리더: MimeType=application/pdf;

                     비디오플레이어: MimeType=video/mp4;video/x-matroska;video/x-msvideo;video/x-flv;

                     오디오플레이어: MimeType=audio/mpeg;audio/x-wav;audio/ogg;

                     프로그래밍 편집기: MimeType=text/x-python;text/x-csrc;text/x-java;

                     텍스트 편집기: MimeType=text/plain; 

                                             .log, .md, .conf 등도 text/plain에 해당됨.

                                             text/markdown: .md 파일에 사용

                                             text/csv: .csv 파일에 사용 (콤마로 구분된 값)

                                             text/html: .html, .htm 파일에 사용

                                             text/xml: .xml 파일에 사용

                                             text/javascript: .js 파일에 사용


Categories: 프로그램을 분류할 카테고리를 나열합니다. 메뉴에서 특정 카테고리에 프로그램을 표시하려면, 

                      관련 카테고리(예: Office; System; Network; WebBrowser; Accessories; Graphics; Development; 등)를 추가합니다.

                       세미콜론(;)은 카데고리를 구분하기 위한 기호입니다. 반듯이 카데고리이름뒤에 세미콜론(;)은 필수 입니다. 


2. 파일에 실행권한 부여 

chmod +x ~/.local/share/applications/파일이름.desktop


3. MIME 유형 업데이트

.desktop파일을 시스템이 인식하도록 MIME 형식을 업데이트

update-desktop-database ~/.local/share/applications


3. 특정 파일 및 프로그램을 열때, 속성에서 기본 지정해주면 됨. 

    [바로가기]는 등록된 프로그램 부분에서 프로그램이름  선택하고, 마우스 우측 클릭시 , [바탕화면에 추가] 클릭.

20241104

Golang과 Fyne으로 생성한 .exe 파일의 크기를 줄이는 방법 [기록]

 Golang과 Fyne으로 생성한 .exe 파일의 크기를 줄이는 방법


1. 모듈 최적화 

   go mod tidy


2. 컴파일 플래그 사용- 불필요한 디버그 정보를 제거

   go build -ldflags="-s -w" -o 생성할파일이름.exe


   -s : 심볼 테이블을 제거하여 디버그 정보를 줄임

   -w : DWARF 디버그 정보를 제거하여 크기를 줄임


3. UPX (Ultimate Packer for Executables) 사용- 압축된 실행파일로 효과 좋음

   설치: sudo apt install upx

   사용방법: upx --best 만들어져있는exe파일.exe


20241031

mousepad 메모장 프로그램- 모든 OS 호환되고 읽기 되는 메모장

mousepad 프로그램

- 윈도우의 메모장과 비슷하며, UTF-8 도 지원

설치 방법: sudo apt install mousepad

Lubunt 최소버젼 설치,한글키보드,크롬 및 Golang Fyne VScode 환경설정 간단 기록

Lubunt 최소버젼으로, 새로 설치때, 스마트폰으로 참고하려고, 순서대로 기록해 둡니다.

1. Lubunt 최소버젼 설치

    - 오래된 노트북으로, 가장 가벼운 Lubunt를 최소로 설치시, 노트북이 날라다님.

    - 꼮 필요한것 아니면, 업데이트도 하지 않을 예정이며, 매우 가벼운 노트북에 불편함도 없슴.

2. Lubunt 한글 키보드 및 한/영 변환키 지정

3. Lubunt 크롬브라우져 터미널로 설치

    - 최소로 설치시, 웹브라우져도 없슴, 터미널에서 웹브라우져 크롬 설치

4. Golang Fyne VScode 설치 및 환경설정 간단 기록

5. Mousepad 메모장 프로그램 설치 - 확장자 txt로 저장시, 모든 os 문서보기 됨.

6. Pinta 이미지 편집 및 드로잉 아이콘제작 프로그램 설치- 모든 os 설치 가능

7.VLC 동영상 플레이어 설치

-----------------------------------------------------------------------

1.Lubunt 관련 간단 설명

- 리눅스를 데스크탑으로 윈도우 비슷하게 사용하기 위한, 가장 가벼운 OS라고 생각하며

- Lubunt를 옵션에서 최소설치로 설치하면,  웹브라우져도 없기에,터미널에서 브라우져 설치.

- 문제는 한글  한/영 키보드 문제가 있고, 그것도 수동설치하면 됨.

- 설치때, 자동로그인 체크 안해두면, 로그인창 그래픽 깨져서 보기안좋기에, 체크해 두기.

- 오래된 노트북의 마지막 희망급 OS 라고 생각함.


2.Lubunt에서 한글키보드 한/영 키 지정방법

[ lubuntu 에서 한영 키 변환 사용하는 방법 ]

1. ctrl + alt + t 버튼을 함께 눌러서, 터미널을 엽니다.

2. sudo apt update

3. sudo apt install fcitx-hangul 설치하기- 이것이 여러모로 편해서 설치합니다.

4. 환경 변수 수동 설정[ fcitx를 기본 입력기로 설정 합니다.]

    터미널에서 im-config 명령으로 오픈이 안되면, 아래 명령을 입력합니다.

    echo "run_im fcitx" > ~/.xinputrc

    그리고 재부팅 한번 해줍니다.

5. 터미널에서 fcitx-configtool 을 입력하거나, 

   화면 좌측하단에 [메뉴]를 클릭하고, [기본설정] 클릭하고, [fcitx구성]을 클릭합니다.

6. [입력기 설정]창에서, Hangul 보이면, 클릭해서, 한자 모드 변환 키 부분 우측에 키입력 부분을  클릭하고키보드의 한/영 키를 클릭해서 지정해 줍니다. 그리고 [선택]버튼을 눌러줍니다.

   키보드 영어[미국]  도 추가해줍니다. 


3.크롬브라우져 터미널에서 설치시

[리눅스 우분투에 크롬브라우져 설치 방법]

먼저, 리눅스터미널을 오픈 합니다. CTRL +ALT + T

1. wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

2. sudo dpkg -i google-chrome-stable_current_amd64.deb

3. sudo apt-get install -f

4. google-chrome-stable


4.아래는 golang fyne VScode 설치 및 테스트 관련

1. 패키지 관리자를 사용하여 Go, gcc 및 그래픽 라이브러리 헤더 파일을 설치

     Fyne 공식홈에 설치가이드가 가장 편합니다.


sudo apt-get install golang gcc libgl1-mesa-dev xorg-dev

2. 프로젝트로 사용할 폴더 생성하고, go.mod 생성
mkdir myapp
cd myapp
go mod init MODULE_NAME

3.Fyne 모듈과 헬퍼 도구를 다운(프로젝트 폴더에서 진행)
go get fyne.io/fyne/v2@latest
go install fyne.io/fyne/v2/cmd/fyne@latest


커맨드에서 fyne 만 입력해서 환경설정이 적용 안되어 있으면 아래처럼 입력

     nano ~/.bashrc 에 go 위치 추가

     export PATH=$PATH:~/go/bin/ 저장하고

     source ~/.bashrc


4.데모 실행(기다리면, 팝업창이 하나 보임)
go run fyne.io/fyne/v2/cmd/fyne_demo@latest

5.비주얼스튜디오 코드(공식홈) 다운받고, 다운받은 폴더에서 터미널로 설치
sudo dpkg -i code_1.95.0-1730153583_amd64.deb
프로그램 실행시키고(터미널에서 code 입력)
go Extensions(확장)을 설치(ctrl+shift+x) 설치: 검색 golang
- Go(Rich Go language support.. Go Team at Google 설치)
- Golang(created for Developer Golang 설치)


6.프로젝트 폴더에 main.go 파일을 만들고 ,아래 내용 입력후 저장
package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)

func main() {
a := app.New() //새로운 Fyne 애플리케이션을 생성합니다.
w := a.NewWindow("Hello, Fyne!") //새로운 창을 생성합니다.
hello := widget.NewLabel("Hello from Fyne!") //"Hello from Fyne!"이라는 라벨 위젯을 생성합니다.
w.SetContent(container.NewCenter(hello)) //생성된 라벨 위젯을 창의 가운데에 배치합니다.
w.ShowAndRun() //창을 화면에 표시하고 애플리케이션을 실행합니다.
}


7. go mod tidy 실행(최적화 및 다운로드 실행됨)
8. go run main.go 실행
9. 팝업창에 Hello from Fyne! 출력 확인.

10. 모듈 캐시에 문제가 있다 생각되면, 캐시 정리후 go mod tidy 실행

모듈 캐시 문제 정리: go clean -modcache


5.Mousepad 메모장 프로그램 설치

- 윈도우의 메모장과 비슷하며, UTF-8 도 지원

설치 방법: sudo apt install mousepad


6. Pinta 이미지편집 및 드로잉 아이콘제작 설치

- 모든 os 지원, GIMP보다 가벼운 프로그램.

- 아래 snap 방법 설치가 가장 쉽고, 재부팅 한번 하면 됩니다.

설치방법: sudo apt install snapd

     sudo snap install pinta

7.VLC 동영상 플레이어 설치

설치 방법: sudo apt install vlc

20241030

Ubuntu에서 .NET SDK 설치 방법[APT 방식]

 Ubuntu에서 .NET SDK 설치 방법[APT 방식]

Failed to load .NET runtime

unable to load .NET runtime, specifically hostfxr.

Attempting to create/edit a project will lead to a crash.


설치된 SDK 확인: dotnet --list-sdks

설치된 snap패키지 .NET SDK 삭제 방법: sudo snap remove dotnet-sdk

설치할수 있는 버젼 리스트 보기: apt-cache search dotnet-sdk


1.Microsoft 패키지 저장소가 추가되었는지 확인

cat /etc/apt/sources.list.d/microsoft-prod.list


2.만약 microsoft-prod.list 파일이 없거나 내용이 올바르지 않다면, 저장소를 다시 추가

sudo rm /etc/apt/sources.list.d/microsoft-prod.list

wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb


3.패키지 목록 업데이트: sudo apt update


4. .NET SDK 설치

- 설치할수 있는 버젼 리스트 보기: apt-cache search dotnet-sdk

  sudo apt install dotnet-sdk-6.0

  또는   sudo apt install dotnet-sdk-8.0


5.버전 확인: apt-cache search dotnet-sdk


6. .bashrc에 환경설정(API)방식 추가

nano ~/.bashrc

아래는 apt로 설치시 기본 경로


export DOTNET_ROOT=/usr/share/dotnet

export PATH=$PATH:$DOTNET_ROOT


저장하고,source명령으로 변경사항 적용

source ~/.bashrc


7. 설치 확인: dotnet --list-sdks

   -환경변수가 올바르게 되어 있으면, 위 명령어로 설치된 SDK버젼이 나열됨.



20241025

안전하지 않은 앱 차단됨- APK파일로 설치시

APK 파일로 설치시- 안전하지 않은 앱 차단됨

꼭 설치해야 된다면, 무시하고 설치하기하며

아래 이미지 참고합니다.



20241022

APK 파일을 스마트폰에 USB 연결해서 직접 테스트하는 방법- Linux Ubuntu

 APK 파일을 스마트폰에 USB 연결해서 직접 테스트하는 방법


1.ADB(Android Debug Bridge) 설치(설치 안되어 있으면)

  sudo apt update

  sudo apt install android-tools-adb


2. 스마트폰 [설정] -> 개발자 옵션 -> USB 디버깅 활성

   *개발자모드 활성은 = 설정-휴대전화 정보-소프트웨어정보- 빌드번호 대략7번 클릭

   *USB케이블 문제(불량,속도)로 연결이 잘 안되는 경우도 있슴 (쿠팡: 고속 USB cable 구매)

3. USB케이블 연결 -> 연결시 [파일전송] 또는 [MTP] 모드 


4. 터미널에서 adb devices 입력

   -스마트폰에 USB케이블을 연결하고, adb devices 명령을 터미널에 입력하면

    스마트폰에서 USB 디버깅을 허용하겠습니까? 라고 물어보면- 허용 

    

5. 스마트폰에 USB 연결 상태로 APK 설치 방법

   adb install /파일위치/file.apk

   -컴퓨터에 프로젝트 폴더에서 위에 adb install 명령 실행시 스마트폰에 설치됨.

   -Performing Streamed Install

    Success 글짜가 보이면, 스마트폰에 설치 성공임.

   -스마트폰에 설치됨(스마트폰의 설정- 애플리케이션에 보면 설치되 있슴)

   -apk 파일로 스마트폰에서 설치때는, 구글플레이 인증 문제 발생될수 있지만, 이방법은 문제 없슴.

   -이전 설치 제거 방법: adb uninstall com.example.myapp  # 실제 appID로 변경   


6. 앱 테스트(Android 기기에서 실행 중인 앱과 시스템의 로그를 다시 출력하는 표준화)

   adb logcat


Golang Fyne를 이용한 APK 만들기

 Golang Fyne를 이용한 APK 만들기

1. Install Android SDK

2. Install Android NDK

3. golang 다운로드 및 설치

4.Fyne 사용

5. APK 파일 만들기.


1. Android SDK 설치.

    sudo apt install android-sdk

2. 웹브라우져에서 Android NDK 검색 다운로드

    - ( 테스트할 스마트폰의 안드로이드 버젼과 호환되는 올드 버젼 추천)

       테스트 스마트폰이 Android 12 이면, 이와 호환되는 최신 NDK 버전을 사용하는 것이 좋습니다.         Android NDK r23 이상은 Android 12(API 레벨 31)를 완벽히 지원함.

       루트 디렉토리에서: find . -name "build.gradle"

   다운받은 NDK를 계정 폴더에 압축풀어서 이동시켜 두고

   sudo apt update

   sudo apt install unzip

   unzip android-ndk-r27-linux.zip

   mv android-ndk-r27 ~/android-ndk-r27 

   nano ~/.bashrc 파일 열어서

   

   export ANDROID_NDK_HOME=~/android-ndk-r27/

   환경설정 추가하고, 저장하고 나오기

   

   source ~/.bashrc

   환경설정을 즉시 다시 적용함.

   

3. golang 다운로드 및 설치

   1. golang linux 설치 방법

      수동설치방법: golang 웹싸이트에서 파일을 다운받고, 터미널에서 다운받은 폴더로 이동합니다.

      1-1./usr/local/go 폴더가 있는 경우- 먼저 폴더를 삭제합니다.

      1-2.다운로드한 파일을 압축을 풉니다.

      sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz


      1-3.환경 변수 에 /usr/local/go/bin 을 추가합니다.

      -자신의 계정 폴더로 이동후 - nano .profile  실행후, 마지막 줄에 아래 패스를 추가.

       export PATH=$PATH:/usr/local/go/bin

      - 파일을 저장하고 나온후, source ~/.profile 로 다시 실행

      - SHELL 새로고침하기: exec $SHELL 

      1-4. golang 설치된거 확인: go version


4.비주얼스튜디오 코드 설치 실행

  Visual studio Code를 홈페이지에서 다운받고(.deb)

  다운받은 폴더로 이동합니다.

  sudo dpkg -i code_1.94.2-1728494015_amd64.deb

  비주얼스튜디오코드를 실행(터미널에서: code)하고, 


  go Extensions(확장)을 설치(ctrl+shift+x) 설치: 검색 go

  - Rich Go language support.. Go Team at Google 설치)


5.Fyne 사용

   1. 이전 버전을 먼저 삭제합니다.

      이전 버젼을 삭제하는 명령: go clean -modcache


   2.패키지 관리자를 사용하여 Go, gcc 및 그래픽 라이브러리 헤더 파일을 설치해야 합니다.

     sudo apt-get install golang gcc libgl1-mesa-dev xorg-dev


   3.프로젝트 폴더 만들고, 모듈을 먼저 생성: go mod init 이름

      mkdir gostudy

      cd gostudy

      go mod init gostudy

    

   4.Fyne 모듈과 헬퍼 도구를 다운로드[프로젝트 폴더 안에서]

     go get fyne.io/fyne/v2@latest

     go install fyne.io/fyne/v2/cmd/fyne@latest


     커맨드에서 fyne 만 입력해서 환경설정이 적용 안되어 있으면 아래처럼 입력

     nano ~/.bashrc 에 go 위치 추가

     export PATH=$PATH:~/go/bin/ 저장하고

     source ~/.bashrc

     fyne 명령 실행시, 여러 명령 및 설명 보임 

     

   5.비주얼스튜디오 코드에서, 프로그래밍 (main.go)파일 만들고

-------------------------------------------------

package main


import (

    "fyne.io/fyne/v2/app"

    "fyne.io/fyne/v2/container"

    "fyne.io/fyne/v2/widget"

)


func main() {

    a := app.New()                               //새로운 Fyne 애플리케이션을 생성합니다.

    w := a.NewWindow("Hello, Fyne!")             //새로운 창을 생성합니다.

    hello := widget.NewLabel("Hello from Fyne!") //"Hello from Fyne!"이라는 라벨 위젯을 생성합니다.

    w.SetContent(container.NewCenter(hello))     //생성된 라벨 위젯을 창의 가운데에 배치합니다.

    w.ShowAndRun()                               //창을 화면에 표시하고 애플리케이션을 실행합니다.

}

-------------------------------------------------

   6. go.mod파일 정리 정돈함. 불필요한 의존성 제거 및 최신버젼 업데이트

     go mod tidy 실행


   7.go 프로그램 실행

     go run 파일이름.go

     

6. APK 파일 만들기.

   아이콘 파일(대문자로 시작 Icon.png) 하나 만들고, 프로젝트 폴더에 두고

   fyne package -os android -appID com.example.이름

   fyne package -os android -icon Icon.png -appID com.example.myapp

   com.example.myapp - Android 플랫폼의 다른 앱과 충돌을 피하기 위해 고유한지 확인

   도메인 반대방향 형식의 고유한 이름이나 회사이름으로 생성함.

   끝에 이름과 상관없는, 프로젝트폴더이름으로 apk가 생성됨.

   위의 글짜 몇개 출력용 apk 파일 크기가: 83.7mb 입니다. 

   실행 속도는 매우 빠르지만, 용량이 매우 크네요.


7. APK 서명 관련[임시 기록]

APK생성시 서명 절차(프로젝트 폴더 이름이 gostudy1,파일이름이 gostudy1.apk 일경우)


서명 절차


일반적으로 안드로이드 스튜디오와 같은 개발 환경을 사용하여 APK를 생성할 때 서명 절차가 자동화되어 있습니다. 


[아래는 수동 설정 방법 관련]


APK 서명상태 확인: apksigner verify gostudy1_signed.apk

                  jarsigner -verify -verbose -certs gostudy1-aligned.apk


기존키 삭제: keytool -delete -alias my-key-alias -keystore /home/rio/gostudy/gostudy1/my-release-key.jks -storepass 비밀번호


키저장소 확인: keytool -list -v -keystore /home/rio/gostudy/gostudy1/my-release-key.jks -storepass 비밀번호


AndroidManifest.xml 검토: aapt dump badging gostudy1.apk


1. 키 저장소 생성

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000


키 저장소란? 앱 개발자의 디지털 서명 정보를 저장하는 파일입니다.

my-release-key.keystore: 생성할 키 저장소 파일 이름

alias_name: 키 별칭 (예: gostudy1)

keyalg: 키 알고리즘 (RSA 권장)

keysize: 키 크기 (2048비트 권장)

validity: 키 유효 기간 (일)

명령어 실행 시 입력해야 할 정보:

비밀번호: 키 저장소와 개인 키에 대한 비밀번호를 설정합니다.


조직 정보: 회사 이름, 도시, 국가 등

고유 이름(DN) 항목

CN (Common Name) : 일반적으로 전통이나 서버의 이름.

OU(Organizational Unit) : 조직의 부서 이름.

O(조직) : 회사 또는 조직의 이름.

L (Locality) : 도시 이름.

ST (주 또는 도) : 주 또는 지역 이름.

C (국가) : 두 자리 국가 코드 (예: 대한민국은 KR)


2.APK 파일 빌드(생성): gostudy1 는 프로젝트 폴더이름이며,생성될 APK 이름이 됨.

Fyne 빌드 (빌드된 APK는 unsigned.apk로 설정)

fyne package -os android -icon Icon.png -appID com.example.myapp

fyne package -os android -appID com.example.myapp -o $UNSIGNED_APK

fyne package -os android -appID com.example.gostudy1

com.example.myapp - Android 플랫폼의 다른 앱과 충돌을 피하기 위해 고유한지 확인

도메인 거꾸로 방식으로 고유하게끔 생성함.


3-1. APK 서명: 방법 1

jarsigner -verbose -keystore my-release-key.keystore -signedjar gostudy1_signed.apk gostudy1.apk alias_name


gostudy1_signed.apk: 서명된 APK 파일 이름

gostudy1.apk: 서명할 APK 파일

alias_name: 키 별칭

명령어 실행 시: 키 저장소 비밀번호와 개인 키 비밀번호를 입력합니다.


3-2 apksigner로 서명: 방법 2

apksigner sign --ks /home/rio/gostudy/gostudy1/my-release-key.jks --ks-pass pass:비밀번호 --key-pass pass:your_key_password --out signed-gostudy1.apk gostudy1.apk


apksignerAPK를 사용하여 도구를 서명하는 방법이 있습니다. apksignerAndroid SDK에 포함되어 인증 zipalign됩니다.


4. ZIPALIGN (선택)

zipalign -v 4 gostudy1_signed.apk gostudy1_aligned.apk


ZIPALIGN이란? APK 파일 내부의 데이터를 정렬하여 앱 성능을 향상시키는 도구입니다.

20241017

go help 리스트 설명 - Golang

go help에 대하여

1.기본 명령어

        bug         Go언어의 버그를 보고함.

                    - go bug

        build       패키지 및 종속석 컴파일

                    - go build [flags] [packages]

                    - go build -o [경로 및 파일이름 지정] [패키지.go]

                    - o 옵션은, [경로/파일이름] 또는 [파일이름]을 지정해줄수 있는 옵션임.

        clean       객체 파일 및 캐시 파일 제거함.

                    - go clean [flags] [packages]

        doc         패키지 또는 심볼에 대한 문서 표시

                    - go doc [flags] [packages/symbol]

        env         Go 환경 정보 출력

                    - go env [flags]

        fix         구형API를 새로운 API를 사용하도록 패키지 업데이트

                    - go fix [flags] [packages]

        fmt         패키지 소스 코드를 Go스타일 가이드에 맞게 포멧팅

                    - go fmt [flags] [packages]

        generate    지정된 소스 파일 처리를 통해 GO 파일 생성함.

                    - go generate [flags] [packages]

        get         현재 모듈에 종속성을 추가하고 설치함.

                    - go get [flags] [packages]

        install     지정된 패키지 및 종속성을 컴파일을 하고, 설치함.

                    - go install [flags] [packages]

        list        지정된 패키지 및 모듈 목록을 출력함.

                    - go list [flags] [packages]

        mod         Go 모듈을 유지 및 관리하는 명령어임.

                    - go mod [command] [flags] [arguments]

                    - go mod tidy

                      tidy는 go.mod파일을 정리함. 불필요한 의존성 제거 및 최신버젼 업데이트함.

        work        Go 작업 공간을 관리하는 명령어임.

                    - go work [command] [flags] [arguments]

        run         지정된 Go 프로그래밍을 컴파일하고 실행함.

                    - go run [flags] [packages]

        test        패키지 테스트

                    - go test [flags] [packages]

        tool        지정된 Go툴을 실행함.

                    - go tool [toolname] [flags] [arguments]

        version     Go 버젼 출력 및 잘 설치되었나 확인.

                    - go version

        vet         지정된 패키지에서 발생할수 있는 오류 보고함.

                    - go vet [flags] [packages]


2.모듈 시스템 관련 명령어

        buildconstraint 패키지가 빌드되는 조건을 정의함.

                        - go build [flags] [packages]

        buildmode       빌드 출력물의 형식을 지정함.

                        - go build [flags] [packages]

        c               Go와 C언어 간의 호출을 가능하게 함.

                        - go build [flags] [packages]

        cache           빌드 및 테스트 결과를 캐시하여 성능을 향상시킴.

                        - go clean [flags] [packages]

        environment     Go 프로그램에서 사용되는 환경변수를 관리함.

                        - go env [flags]

        filetype        Go 컴파일러에서 인식하는 파일 유형을 정의함.

                        - go build [flags] [packages]

        go.mod          Go 모듈을 정의하는 파일임.

                        - go mod [command] [flags] [arguments]

        gopath          GO 작업공간 위치를 지정하는 환경 변수임.

                        - go env [flags]

        goproxy         Go모듈을 원격 저장소[프록시 프로토콜]에서 다운로드하는 방법을 제공함.

                        - go env [flags]

        importpath      패키지를 import 할때 사용하는 경로 구문을 정의함.

                        - go build [flags] [packages]

        modules         GO 모듈 시스템에 대한 모듈,모듈 버젼 및 기타 정보 제공함.

                        - go mod [command] [flags] [arguments]

        module-auth     go.sum을 사용한 모듈에 대한 인증을 제공함.

        packages        패키지 목록 및 패턴을 지정하는 방법을 정의함.

                        - go build [flag와s] [packages]

        private         비공개 코드(모듈] 다운로드를 위한 액세스를 제어함.

                        - go env [flags]

        testflag        go test 명령어의 동작을 제어하는 테스트 플레그를 정의.

        testfunc        Go에서 테스트를 작성하는 데 사용되는 함수와 인터페이스를 설명함.

                        - go test [flags] [packages]

        vcs             버젼관리시스템[VCS]와 상호작용하는 도구를 제공함.

                        - go env [flags]

GitHub의 저장소 삭제 방법[기록]

 GitHub의 저장소 삭제 방법[기록]

1. Github에 로그인 하고

2. 원하는 저장소[자신이 만든 저장소이름]을 클릭하고 페이지 이동.

3. 우측 상단쯤에 Settings[설정]을 클릭하고

4. 스크롤로 아래로 내리다 보면, 

   Delete this repository[이 저장소를 삭제하세요]를 선택해서, 저장소 이름 입력하고 삭제하면 됨.


GitHub 개인 무료계정에 파일 등록 방법 

1. 로그인 하고 

2. 우측 상단에 + 표시 클릭하고 , New Repository 선택 

3. Repository name 에 이름 등록하고 

4. 공개 비공개 옵션 선택하고 

5. Description 에 파일에 대한 간단 설명 추가하고 

6. 저장 버튼 누르고 , 화면 이동하면 

7. 빠른 설정 부분 에 , 새 파일 생성 및 기존 파일을 업로드 부분 글씨 나오면 참고. 

    -파일 크기가 25mb 보다 크면 안됨.

20241015

Golang Fyne 공부 테스트 샘플

Fyne는 Go 언어로 작성된, 사용하기 쉬운 UI 툴킷으로 

데스크톱과 모바일 환경 모두를 지원하며, UI 개발을 가능하게 함.

package main

import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)

func main() {
a := app.New() //새로운 Fyne 애플리케이션을 생성합니다.
w := a.NewWindow("Hello, Fyne!") //새로운 창을 생성합니다.
hello := widget.NewLabel("Hello from Fyne!") //"Hello from Fyne!"이라는 라벨 위젯을 생성합니다.
w.SetContent(container.NewCenter(hello)) //생성된 라벨 위젯을 창의 가운데에 배치합니다.
w.ShowAndRun() //창을 화면에 표시하고 애플리케이션을 실행합니다.
}

터미널: go mod init 프로젝트폴더이름

            go run 파일이름.go

            go build -o 파일이름지정 파일이름.go

결과물: 창 하나 뜨면서, Hello from Fyne! 글짜 출력 되 보임.

              와우~ 이 간단한 창에 글짜 몇개 출력 된건대, 참 기쁘고, 온라인게임서 득템한 느낌과 같음.

문제발생시:  터미널 메시지에서, 문제있다는거 go get 명령으로 받기

                   예>  go get fyne.io/fyne/v2

                   예>  go get fyne.io/fyne/v2/app@v2.5.1

                   인터넷이 매우 느리고, 노트북도 십몇년 된거라, 느려서 공부하기 힘들지만, LG Xnote C400 완전 고장날때까지, 이 노트북을 포기하지 않으리...!!!!












 

20241009

삼성폰 위치 찾기 방법 기록- SAMSUNG FIND

삼성 스마트폰- 핸드폰 위치 찾기 방법[메모]

*위치 찾을 스마트폰의, 설정-계정등록 부분에, 삼성계정을 등록해 두었어야 됩니다.

- 삼성계정 등록 방법은: 스마트폰의 [설정]-[계정 및 백업]-[계정 관리]-[계정 추가]에서 삼성계정을 만들고 추가할수 있습니다.

- 무료로 스마트폰 위치찾기 및 원격제어를 강력하게 할수 있으며, 스마트폰을 공장모드 초기화를 하려해도, 입력해둔 삼성계정 인증을 받아야만, 공장모드 초기화도 할수 있어, 매우 강력한 무료 기능이라 생각합니다. [ 아래 내용은 스마트폰에 따라, 약간 방법[옵션]의 차이가 있을수 있습니다. 계정에서 스마트폰 위치 찾기 허용을 해두어야 하며, 하나의 삼성 계정으로, 여러 삼성스마트폰을 관리할수 있어 좋네요.]

1. 스마트폰의 [설정] 부분에 들어갑니다.

2. [계정 및 백업] 부분에 들어갑니다.

3. [계정 및 백업]의 [계정 관리] 부분에 들어갑니다.

4. [등록해둔 삼성 계정 이름]을 클릭하고 들어갑니다.

5. 일반 부분에, [내 프로필] 부분을 클릭하고 들어갑니다.

6. [내 프로필] 안에, [내 기기] 부분을 클릭하고 들어갑니다.

7. 자신이 스마트폰마다 삼성계정으로 등록해둔 스마트폰의 리스트가 보일것입니다.

8. 해당되는 스마트폰 이름의 우측에 [점3개 짜리] 부분을 클릭합니다.

    - 위치 찾기, 로그아웃 중에, [위치 찾기] 부분을 클릭합니다.

9. 웹브라우져로 삼성홈페이지에 연결되면서, [스마트폰 위치 지도 표시되고]

   - 소리 울리기, 분실모드, 위치 추적, 데이터 삭제, 배터리 시간 늘리기 옵션이 있습니다.

   - 위치 추적 기능이 매우 좋아서, 유료 앱을 사용할 필요가 없다 생각합니다.

   - 스마트폰 위치를 깜빡했거나, 연로하신 부모님 위치 체크 및 여러 모로 활용 가능합니다.

   - 스마트폰이 아닌, 삼성 웹[SAMSUNG Find]에서도 삼성계정으로 폰위치 찾기가 됩니다.

20240925

lubuntu hangul 한글 한영 버튼 변환 사용 방법- Linux lubuntu

lubuntu hangul 한글 한영 버튼 변환 사용 방법

lubuntu 는 오래된 노트북을, Windows pc 스타일로 사용하기 좋은, 매우 만족 리눅스 OS 입니다.

Ubuntu linux 관련 소프트웨어를 모두 활용할수 있지만, GNOME를 사용하지 않고, 가벼운 LXQT를 사용하기에, 매우 가볍고 빠릅니다.

기본 인터페이스가 WINDOWS OS 와 비슷한 Linux 입니다. Lubuntu 설치때, 키보드 부분은, 노트북 korean(101/104-key compatible)선택합니다.

메뉴 및 한글을 완벽하게 지원하지만, 한국어 입력 및 [한/영]변환 키 사용에 문제가 있다 생각하여, 나중에도 참고하려고, 방법을 기록해 둡니다.

[ lubuntu 에서 한영 키 변환 사용하는 방법 ]

1. ctrl + alt + t 버튼을 함께 눌러서, 터미널을 엽니다.

2. sudo apt update

3. sudo apt install fcitx-hangul 설치하기- 이것이 여러모로 편해서 설치합니다.

4. 환경 변수 수동 설정[ fcitx를 기본 입력기로 설정 합니다.]

    터미널에서 im-config 명령으로 오픈이 안되면, 아래 명령을 입력합니다.

    echo "run_im fcitx" > ~/.xinputrc

    그리고 재부팅 한번 해줍니다.

5. 터미널에서 fcitx-configtool 을 입력하거나, 

   화면 좌측하단에 [메뉴]를 클릭하고, [기본설정] 클릭하고, [fcitx구성]을 클릭합니다.

6. [입력기 설정]창에서, Hangul 보이면, 클릭해서, 한자 모드 변환 키 부분 우측에 키입력 부분을  클릭하고, 키보드의 한/영 키를 클릭해서 지정해 줍니다. 그리고 [선택]버튼을 눌러줍니다.

   키보드 영어[미국]  도 추가해줍니다.  우측에 [모름] 이라고 되어 있어도 상관없어요.

   한국어, 영어 2 가지를 꼭 추가해 주셔야 합니다.[바로위 글 참고]

   부가기능 부분에, Input method selector 부분 및 기타 부분은 그대로 두셔도 됩니다.

*만일 위에 설명대로 안될 경우, 기본 입력기 지정 후, 재부팅 한번 해주세요.

  기타: 프로그램 추가 / 삭제 / 업데이트 - 메뉴 > 시스템도구 > Discover




20240829

Go lang, Fyne 프로그래밍 환경 설정- Linux Ubuntu

2024.10월~ Lubuntu linux os를 사용하기 시작하면서, 여러 프로그래밍 언어중에서, golang 언어를 시간 될때만, 특별한 목적은 없이, 온라인게임한다 생각하고, 취미로 가끔 공부시작합니다.

1. golang linux 설치 방법

수동설치방법: golang 웹싸이트에서 파일을 다운받고, 터미널에서 다운받은 폴더로 이동합니다.

1-1./usr/local/go 폴더가 있는 경우- 먼저 폴더를 삭제합니다.

1-2.다운로드한 파일을 압축을 풉니다.

sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz


1-3.환경 변수 에 /usr/local/go/bin을 추가합니다.

     -자신의 계정 폴더로 이동후 - nano .profile  실행후, 마지막 줄에 아래 패스를 추가.

       export PATH=$PATH:/usr/local/go/bin

      - 파일을 저장하고 나온후, source ~/.profile 로 다시 실행

  1-4. golang 설치된거 확인: go version


2.비주얼스튜디오 코드 설치 실행

  Visual studio Code를 홈페이지에서 다운받고(.deb)

  다운받은 폴더로 이동합니다.

  sudo dpkg -i code_1.94.2-1728494015_amd64.deb

  비주얼스튜디오코드를 실행(터미널에서: code)하고, 


  go Extensions(확장)을 설치(ctrl+shift+x) 설치: 검색 go

  - Rich Go language support.. Go Team at Google 설치)


  폴더를 만들고, 

  main.go 파일을 만들어요.


  package main

  import "fmt"


  func main(){

fmt.Println("hello world")

  }    


터미널에서, 아래 명령으로 실행 및 빌드 테스트

go mod init 이름

go run 이름.go

go build


3. Fyne 환경 설정방법: 공식웹싸이트에 docs 문서 보고 하는 것이 가장 좋음.

ubuntu에서 golang 언어 fyne 설치 방법[기록]

[참고사항 기록]

- 대.소문자 구분함( 대소문자 잘못입력시, 우선 import부분에서 지워짐)

-프로젝트 폴더안에 go.mod 있는곳에서 설치해야 됨.

go.mod 파일에서 fyne 버젼이 일치 하지 않으면, 이전 버전을 삭제하고 새로 설치

이전 버젼을 삭제하는 명령: go clean -modcache

특정 버젼을 설치하는 명령: go get fyne.io/fyne@v2.5.1

Go 언어가 OpenGL을 사용하기 위한 패키지를 설치하는 명령어: go get github.com/go-gl/gl

fyne 패키지 설치되었나 확인 방법: go list -m all | grep fyne

fyne 최신버젼 업데이트 방법: go get -u fyne.io/fyne/v2


[Fyne 사용방법]

1. 이전 버전을 먼저 삭제합니다.

   이전 버젼을 삭제하는 명령: go clean -modcache

   

2.패키지 관리자를 사용하여 Go, gcc 및 그래픽 라이브러리 헤더 파일을 설치해야 합니다.

  sudo apt-get install golang gcc libgl1-mesa-dev xorg-dev


3.프로젝트 폴더에 모듈을 먼저 생성: go mod init 이름


4.Fyne 모듈과 헬퍼 도구를 다운로드

  go get fyne.io/fyne/v2@latest

  go install fyne.io/fyne/v2/cmd/fyne@latest


4.데모 실행

  go run fyne.io/fyne/v2/cmd/fyne_demo@latest

  

  이전 버전의 Go에서 데모를 실행 방법

  go run fyne.io/fyne/v2/cmd/fyne_demo


-----------------------------------------------------

package main


import (

        "fyne.io/fyne/v2" // 대 소문자 구분 안하면 import 부분 지워짐

        "fyne.io/fyne/v2/app"

        "fyne.io/fyne/v2/container"

        "fyne.io/fyne/v2/widget"

)


func main() {

        myApp := app.New()

        myWindow := myApp.NewWindow("Hello, Fyne!")


        // 변경될 레이블 생성

        helloLabel := widget.NewLabel("버튼을 누르세요")


        // 버튼 클릭 시 레이블 텍스트 변경

        button := widget.NewButton("확인", func() {

                helloLabel.SetText("안녕하세요!")

        })


        content := container.NewVBox(

                helloLabel,

                button,

        )

        myWindow.SetContent(content)

        myWindow.ShowAndRun()

}

----------------------------------------

go mod init main.go

go run main.go

go build


기타 사항들:

초보자에게 가장 좋은 Golang 책은- Learn Microsoft com 의 

Go 시작하기 - Training | Microsoft Learn 이 책보다 좋은듯 생각되며,

Go 패키지 웹싸이트에서, 패키지 관련 검색이 좋을거 같고,

크롬 웹브라우져를 이용하는 것이 좋을거 같습니다.

OS는 오래된 컴퓨터라면 - Lubuntu 리눅스를 사용시, 가볍고 편합니다.

-----------------------------------------------------------

모든 환경변수 보는 명령어: go env


GO111MODULE=''

Go 모듈 기능을 사용할지 여부를 제어하는 변수입니다.

on: 항상 모듈 모드를 활성화.

off: GOPATH 모드를 사용.

auto: 프로젝트에 go.mod 파일이 있으면 모듈을 사용하고, 없으면 GOPATH를 사용.

GOARCH='amd64'

Go 프로그램이 컴파일될 때 타겟으로 삼을 CPU 아키텍처를 지정합니다.

예: amd64, 386, arm, arm64

GOBIN=''

go install 명령으로 설치된 실행 파일이 저장될 디렉토리를 지정합니다. 이 변수가 설정되지 않았다면, 기본적으로 $GOPATH/bin 디렉토리에 설치됩니다.

GOCACHE='/home/이름/.cache/go-build'

Go의 빌드 캐시가 저장되는 디렉토리입니다. Go는 동일한 빌드를 여러 번 실행할 때 컴파일 시간을 절약하기 위해 캐시를 사용합니다.

GOENV='/home/이름/.config/go/env'

현재 사용 중인 Go 환경 설정 파일의 경로입니다.

GOOS='linux'

Go 프로그램이 타겟으로 삼을 운영 체제를 지정합니다.

예: linux, darwin (macOS), windows

GOPATH='/home/이름/go'

Go의 작업 공간을 나타내는 환경 변수입니다. 이 디렉토리는 Go 소스 파일, 패키지, 바이너리 파일이 저장되는 곳입니다. 기본적으로 $HOME/go로 설정되며, 여기에는 src, bin, pkg 디렉토리가 포함됩니다.

GOROOT='/usr/lib/go-1.22'

Go의 설치 경로를 나타냅니다. 이 경로는 Go 컴파일러와 표준 라이브러리가 설치된 위치를 가리킵니다.보통 Go 설치 시 자동으로 설정되지만, 수동으로 설치한 경우 수동 설정이 필요할 수 있습니다.

----------------------------------------------------

20240202

허리 디스크 및 허리가 자주 아플때 - 문제 해결 운동방법 [기록]

병원에서 의사 진단으로, 디스크는 아니지만, 허리 근육이 약하고, 또는 염증 때문에
의사 처방으로 가끔 소염.진통제를 먹어야 되는 경우.


1. 운동을 전혀 안하는 경우.
2. 가끔 옆으로 누우려 하다가, 허리가 돌아가는 느낌이 드는 경우
3. 병원가서 진찰하면, 소염.진통제 처방 받거나, 주사 한대 맞는 경우.
    - 허리 아픈 경우, 소염.진통제 처방해 주면, 성실하게 먹어야 됩니다.

한방. 양방 병원 경험으로, 허리 관리하는 방법 노하우를 알려드립니다.
1. 느낌상, 디스크가 돌출한 느낌이면
    - 병원가서 먼저 진찰먼저 받고, 의사 소견대로 해봅니다.
    - 의사 소견에서, 근육이 좀 약해서.... 라는 말씀이 있으면, 아래 내용을 참고해 보세요.
    - 기타 개인적으로,디스크를 밀어 넣는 느낌으로, 마사지를 살짝 해줍니다. 혼자서도 가능합니다.
    - 쇼핑몰에서 "저주파치료기" 몇만원 짜리 구매해서, 파스 바르고, 그 위에 저주파치료기 사용합니다.
2. 근육이 약한듯 싶으면
    - "L-류신" 영양제 먹으며, 계란이나 고기류로 단백질 보충해줍니다.
    - 류신은 단백질과 합성되어, 근육을 만들어주는 역할을 하는 영양제류라고 합니다.
    - 류신은 쇼핑몰에서 2만원대 입니다.
3. 핵심~ 운동하기 싫은 사람에게 좋은 허리 단련 운동법
    - 똑바로 서서, 한손으론 벽이나 의자를 붙잡고, 
    - 한쪽 발은, 무릎을 90도로 구부리고, 
    - 구부린 발을 뒤로 보내고, 왔다 갔다. 몇번씩, 번갈아 해줍니다.
    - 아래 이미지 참고하세요.
    - 하루에 30초~1분만 운동해줘도, 허리 근육이 매우 좋아집니다.
 * 모든 병은, 병원에서 검진하고, 의사 소견이 매우 중요하고, 
 * 모든 기본은, 자세를 올바르게 유지하는것이 가장 중요한거 같습니다.

 *KIMP 그림 편집하는 소프트웨어로, 허리 운동하는 그림, 힘들게 그렸습니다. ^^
   참고하세요. 
   



20240119

퓨시아(Fuchsia OS), dahliaOS, 지르콘(Zircon)커널 에 대하여

퓨시아(Fuchsia), dahliaOS, 지르콘(Zircon) 에 대하여, 간단 정보를 기록합니다.

퓨시아(Fuchsia) OS는, 

- 대부분의 모든 플렛폼에서 작동하는 OS로, 구글이 개발중입니다.

- Flutter로 만듭니다. (UI,앱 부분을 Flutter로 만들어서, 모든 플렛폼에 적용하기 위함 같음)

  나머지 부분은, C/C++, Go, Rust, Python 언어로 개발된다고 합니다.

- Flutter는 구글이 개발한 크로스 플랫폼 모바일 앱 개발 프레임워크입니다. Flutter를 사용하면 한 번의 코드로 iOS, Android, Web, Desktop 등 다양한 플랫폼에 앱을 개발할 수 있습니다.

- 퓨시아 os는 웹에서도 작동할것입니다. 같은 지르콘(Zircon)커널을 이용하는, 리눅스 기반 os인 dahliaOS 를 통하여, 웹상에서 확인해 볼수 있습니다. 

- 구글은 2016년부터 Flutter를 퓨시아 OS의 개발에 사용하기 시작 했고, 현재는 퓨시아 OS의 주요 개발 환경으로 OS의 인터페이스와 앱을 개발하고 있습니다. 향후 퓨시아 OS의 모든 구성 요소를 Flutter로 개발할 계획이라고 밝힌 바 있습니다.

- Google의 크롬 OS, 안드로이드리눅스를 커널로 사용하는 것과 달리, 퓨시아(Fuchsia)os는 지르콘(Zircon)이라는 마이크로커널을 사용합니다.


DahliaOS는 

- 현재 웹에서 테스트 및 직접 설치 파일을 다운로드 할수 있습니다. 오래된 컴퓨터의 희망이 될 OS라 생각합니다(알파버젼임).

- 리눅스 커널퓨시아 OS의 장점을 결합한 현대적이고 안전하며 가볍고 반응이 빠른 운영 체제입니다. 2022년 1월에 처음 출시되었으며 현재 알파 개발 단계입니다. Mach 마이크로커널FreeBSD의 커널을 사용한 하이브리드 커널을 이용한, MacOS의 탄생과 비슷한 점이 있습니다.

- dahliaOS에서 다른  모든 운영 체제의 애플리케이션을 최대한 사용하게 만들고 있습니다. 여러 마켓 및 가상 머신 및 컨테이너 관리 애플리케이션인 Graft를 사용하여 다른 운영 체제에서 즐겨 사용하는 모든 애플리케이션을 설치할 수도 있습니다. App Store도 제공합니다.

- dahliaOS는 데스크톱, 노트북, 태블릿, 기타 장치에서 사용할 수 있습니다. 웹에서도 os를 사용해 볼수 있습니다.

- dahliaOS의 데스크톱 환경은 Pangolin입니다. Pangolin은 플러터로 작성된 현대적이고 사용자 친화적인 환경입니다.

- 가볍고 반응이 빠르다는 점에서 매력적입니다.


지르콘(Zircon)은 

- 구글이 개발한 마이크로커널입니다. 퓨시아 운영 체제의 기반으로 사용되며, 다양한 장치에서 사용할 수 있도록 설계되었습니다.

- 지르콘 커널은 안전성을 최우선으로 고려하여 설계되었고, 커널의 일부만 하드웨어와 직접 통신하고, 나머지 부분은 하드웨어에 대한 액세스를 커널에 위임해서, 커널의 일부가 손상되어도 운영 체제가 계속 작동할 수 있습니다.

- 지르콘 커널은 다양한 장치에서 사용할 수 있도록 확장성이 뛰어나고, 하드웨어에 대한 액세스를 커널에 위임하여 다양한 하드웨어 플랫폼을 지원할 수 있습니다.

- 커널의 일부만 하드웨어와 직접 통신하기 때문에 시스템 리소스를 효율적으로 사용할 수 있습니다.

- 프로세스 관리, 메모리 관리, 장치 관리


20240118

리눅스 우분투에서 CD/DVD의, 이미지(ISO)를 만들 수 있는 무료 프로그램

리눅스 우분투에서 CD/DVD의, 이미지(ISO)를 만들 수 있는 무료 프로그램

dd 명령어- dd 명령어는 매우 강력하며 기본적으로 대부분의 리눅스 시스템에 설치되어 있슴

 sudo dd if=/dev/cdrom of=/path/to/output.iso



Brasero- Brasero를 실행하고 프로젝트 메뉴에서 복사를 선택 후, 작업 선택에서 이미지 파일을 선택하여 이미지를 만들 수 있슴.


mkisofs- ISO 파일 시스템을 만들기 위한 명령줄 도구, 디렉토리 포함.

 mkisofs -o /path/to/output.iso /path/to/source/directory

리눅스 우분투에서 CD를 굽는 무료 프로그램

리눅스 우분투에서 CD를 굽는 무료 프로그램

Brasero

sudo apt-get install brasero


K3b

sudo apt-get install k3b


Xfburn

sudo apt-get install xfburn

시스템 운영체제 관련 간단 정보 -Windows,Linux,MacOS,Android

 시스템 운영체제 관련 간단 정보 -Linux,MacOS,Android

*OS의 간단 개념정도 이해하기 위해, 기록한 메모 입니다.

커널이란

커널(Kernel)은 운영 체제의 핵심 부분으로, 하드웨어와 소프트웨어 간의 상호 작용을 관리하고 운영 체제 서비스를 제공하는 핵심 컴포넌트 이며, [하드웨어,프로세스,메모리,장치 드라이버 등]을 관리합니다.


완전 독립적인 OS 개념으로 크게 구분하면, 윈도우,리눅스,유닉스 개념이 될듯합니다.

Linux 기반 OS = 구글 Android, 삼성 Tizen 

Unix 기반 OS = SunOS, MacOS

Zircon 기반 OS 개발중 = Fuchsia

Linux + Zircon 기반 OS = dahliaOS [2024년 알파버젼 출시]

macOS는 Darwin이라는 Unix 기반 운영 체제를 기반입니다. 

Darwin은 Mach 마이크로커널과 FreeBSD의 커널을 사용한 하이브리드 커널이며, 이는 Unix와 유사한 환경을 제공합니다. Mac OS는 기본적으로 BSD (Berkeley Software Distribution)와 NeXTSTEP 운영 체제를 기반으로 한 혼합형 유닉스 기반 운영 체제입니다.


Linux Ubuntu는 Unix 계열의 Linux 운영 체제 중 하나로 분류됩니다.

오래된 PC 일수록, 오히려 Pedora linux가 더 좋은듯 생각은 되지만, 대중성 때문에 Ubuntu를 사용하게 됩니다. Linux는 독자적인 커널을 갖고 있는 운영 체제입니다. MacOS 와는 다른, windows 처럼 독자 개발 OS 입니다.


Android 운영 체제는 리눅스 커널을 기반으로 하고 있습니다. Android는 리눅스 커널을 포함하여 다양한 오픈 소스 컴포넌트들을 사용하여 개발되었습니다. 리눅스 커널은 하드웨어와 상호 작용하며 운영 체제의 기본적인 기능을 제공하는 핵심 부분입니다. Linux 커널의 개방성과 안정성을 기반으로 한다는 특징을 가지고 있습니다.


위의 예기를 종합해서 생각해 보면,

프로그래밍 개발자는, MacOS를 사용해야 안정적이고, MacOS를 사용해야, IOS앱 개발이 가능한 필수적인 컴퓨터가 될듯 생각됩니다.

프로그래밍이 업이 아닌, 취미면, 개인용 라이센스 제한 없는, 데스크탑pc용 OS를 선택한다면, 가장 대중적인 UNIX 계열 Linux 인, Ubuntu가 좋을듯 합니다. 

개인사업장 및 학생, 관공서에서 Ubuntu 같은 Linux 운영체제를 사용할경우, 여러 소프트웨어 라이센스 비용 및 PC 업그레이드에, 매우 자유로울수 있다고 생각합니다.

개인이 비용과 관련 없는, 여러 사용에 안정적인 것은, MacOS 애플

기업이 비용과 관련 없는, 여러 서버 상황에 안정적인 것은, SunOS 

점점 마음속에서 멀어져 가는, Windows~ 이유는, PC 보단 스마트폰 활용이 커져 가는 시대에, 윈도우 비슷한 편리함과 안정성이 있는 리눅스OS가 있고, 자주 사용하지 않는 PC에 라이센스 구매와 빈번한 업데이트는 점점 매력이 덜해집니다. 리눅스 우분투가 대중적인 리눅스라 사용은 하고 있지만, 테스트로 여러 프로그램을 설치하고 지우고 하다보면, 백업을 잘 활용하지 않으면, 좀 불안정한것은 있습니다.



20240117

NVIDIA GT218M [GeForce 310M] driver - linux ubuntu 설치

NVIDIA GeForce 310M linux ubuntu driver 설치

NVIDIA GT218M [GeForce 310M]

그래픽 드라이버 이름 확인:

  sudo lshw -c display


터미널에서 아래 내용 입력 실행:

  sudo apt-get purge bumblebee nvidia*

  sudo apt-get install nvidia-340 nvidia-prime


우분투 드라이버 자동 설치 방법:

  sudo ubuntu-drivers autoinstall


Ubuntu에서 부팅시, 블루투스 에러 발생시- 블루투스 관리자 수동설치

리눅스 우분투 부팅중에 블루투스 에러 발생시

[블루투스 관리자 수동 설치]

sudo apt install bluez blueman


sudo apt update

sudo apt upgrade

20240116

리눅스 우분투 테마 꾸미는 방법

 리눅스 우분투 테마 꾸미는 방법

1.gnome-tweaks는 우분투의 다양한 설정을 변경할 수 있는 도구

   sudo apt install gnome-tweaks


2. 실행: 터미널에서 gnome-tweaks

                또는 프로그램 표시 -> 유틸리티 -> 기능개선

20240115

리눅스 우분투- 파일 시스템 오류 수정, 부팅 오류 복구, 자동 백업 복구 관련

 리눅스 우분투- 파일 시스템 오류 수정 및 부팅 오류 복구하기

-Ubuntu에서 부팅 시 파일 오류가 발생하면 파일 시스템이 손상되었을 수 있습니다.

1. 복구하기 위하여, 컴퓨터 전원을 켜자마자, 또는 부팅하자 마자, Shift 또는 Esc 버튼을 누릅니다.

    - 대략적 CMOS setup 보이고, shift, esc 버튼 번갈아 누르다 보면 됩니다.

2. Advanced options for Ubuntu 메뉴가 보이면 클릭합니다.

    - 그 다음, Ubuntu, with Linux 버젼 (recovery mode) 보이면 클릭합니다.

    - 그 다음, Fsck(Check all file systems), Dpkg(Repair broken packages) 실행하고

    - 그 다음, resume(Resume normal boot) 클릭해주면, 빈화면에 프롬프트만 떠있고,

      잠시 기다리면, ubuntu 로그인 화면 통해서 로그인 합니다.

    - 그래픽 화면 크기에 문제가 있으면, 재부팅시 표준모드로 부팅하면 됩니다.

    (잠시 기다리면 로그인 화면 보이지만, 잘모르면(ctrl +alt +del)로 재부팅합니다.)

   또는, Ubuntu Live CD 또는 Live USB를 사용하여 시스템을 부팅하고 위의 내용을 실행합니다.


아래는 기타 방법 입니다.

Timeshift를 사용한 시스템 복원점 생성

Rsync를 이용한, 자동백업 복구 설정 유틸리티 입니다.[필수 인듯]

- sudo apt install timeshift


부팅 시 파일 시스템 검사를 수행하여 손상된 파일을 복구

(자동 종합 시스템 검사 및 수리)

- sudo touch /forcefsck


부트 로더 업데이트

- sudo update-grub


부팅 관련 문제를 해결하는 도구 사용(패키지 의존성 문제 해결)

- sudo dpkg --configure -a

- sudo apt install -f

- sudo apt-get install -f

- sudo dpkg --configure -a


손상된 패키지 자동복구

- sudo apt --fix-broken install


패키지 업데이트 및 시스템 업그레이드

- sudo apt update

- sudo apt upgrade

- sudo apt dist-upgrade

- sudo nano /etc/default/grub

   

   "GRUB_CMDLINE_LINUX_DEFAULT" 내용 찾아서, 수정하기

   GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=off"


- sudo update-grub


패키지 검사

- sudo dpkg --audit


디스크 공간 확인

- df -h


불필요한 패키지 정리

- sudo apt autoremove


되도록 보안시스템 업데이트 외엔, 오래된 컴퓨터는 업데이트 안하는것이 좋을거 같네요.