스마트폰(Android)의 카메라,웹브라우져에 보이는 외국어를 원터치로 자동 번역하는 방법- 기록
아래 이미지를 참고합니다.
-스마트폰 하단의 중간에 보면, 네모난 투명 버튼을, 한번만 살짝 쿨릭이 아닌, 몇초 누르고 있으면, 카메라에 보이는, 또는 웹브라우져에 보이는, 스마트폰 화면에 보이는, 외국어를 자동번역하는 버튼이 호출되며, 검색도 가능함.
아래 이미지를 참고합니다.
-스마트폰 하단의 중간에 보면, 네모난 투명 버튼을, 한번만 살짝 쿨릭이 아닌, 몇초 누르고 있으면, 카메라에 보이는, 또는 웹브라우져에 보이는, 스마트폰 화면에 보이는, 외국어를 자동번역하는 버튼이 호출되며, 검색도 가능함.
-타이어 관련 정보를, 필요할때 참고하고자 간단하게 기록함.
1. 타이어의 마모: 타이어의 지면이 닿는곳의 높이가 3mm 이하면 교체 권고.
2. 타이어의 생산된 년도 알아 보는 방법: 타이어 옆면에 동그란 원안에 숫자
2321 이면 -> 21년 23주차에 생산함.
3. 타이어가 갈라짐등이 많거나, 7년 전/후 정도 된것이면- 교체를 추천함
4. 타이어 크기 알기
225/55R17 이라면:
225- 타이어의 넓이(가록 폭)
너비가 넓을수록- 접지력이 좋아져 안정성이 증가,연비가 약간 감소.
일반 도로/고속 주행: 넓은 타이어가 접지 면적이 넓어 더 안정적
너비가 좁을수록- 연비가 좋아지고, 눈길이나 빗길에서 더 나은 성능을 발휘.
눈길/빗길: 좁은 타이어가 접지 압력과 물 배출 능력 덕분에 더 나은 성능.
55 - 편평비 (Aspect Ratio), 타이어의 높이가 너비(225mm)의 55%라는 뜻
타이어의 높이는 225 × 0.55 = 약 123.75mm입니다.
편평비가 낮을수록: 타이어가 낮고 단단한 느낌,
고속 주행 안정성과 핸들링 성능이 향상
편평비가 높을수록: 승차감이 부드럽고 충격 흡수 능력이 좋아짐.
17 - 휠(림)의 직경 (Rim Diameter)
17인치 휠에 착용가능한 타이어
큰 직경의 휠: 고속 안정성과 디자인 측면에서 유리하고, 대신 승차감이 다소 딱딱함.
작은 직경의 휠: 승차감이 부드러워지고 충격 흡수가 좋아짐.
기타: R- 래디얼 구조 (Radial): 타이어 구조의 하나를 명칭하는 것이며,
타이어 내부의 섬유층이 반경 방향으로 배열된 구조.대부분 R 구조임.
유연성과 내구성이 좋아 승차감이 부드럽고, 연료 효율이 높음.
현대 시대의 대부분의 차가 R 구조 라고 합니다.
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.재부팅
PC 크롬브라우져에서 유투브 영상 자동 번역 보기 방법
- PC 크롬 브라우져에 확장 프로그램에서 설치 실행- Subtitles for Youtube
스마트폰에서 유투브 영어 동영상 자동 한국어 번역 자막 보는 방법
1. Youtube 앱을 실행하고
2. 영어로된 동영상을 재생하고
3. 우측 상단에 톱니모양[설정]을 선택합니다.- 동영상 재생화면을 클릭하면 설정이 보입니다.
4. 설정[톱니모양]을 클릭하면, 화질,재생속도,자막,잠금화면,취침타이머,추가설정 항목이 보이고,
그중에서 자막을 선택하고,
5. 자막 사용 중지, 영어, 영어(자동 생성됨), 자동번역 중에, 자동번역을 선택하고,
6. 언어 리스트에서, 한국어를 선택합니다.
Pinta 는 포토샵과 가장 비슷하고, 안정적인, 기능이 최적화된 오픈소스 프로그램입니다.
- 포토샵의 대부분의 기능과 비슷한 사용법
- GIMP 보다 가볍고, 포토샵과 UI 및 기능 사용법이 너무 익숙함.
- 모든 OS 에서 사용. [Windows, Mac, Linux, BSD..]
- 저사양 PC에서 사용하기 좋은, 매우 가벼운 프로그램
- 이미지 자르기, 레이어회전(이미지 회전),효과,그리기...
- 포토샵의 대부분의 기능 및 이미지 사진 편집,효과,레이어 기능이 있슴.
- 한글 지원
- 설치 버젼이기에, 매우 만족스러움.
프로그램 설치는: 공식홈페이지 pinta-project 를 구글에서 검색해서 참고하거나
Linux ubuntu의 경우는, Snap 설치가 가장 쉽고, 재부팅시, 메뉴에 등록도 되있을 것입니다.
설치방법: sudo apt install snapd
sudo snap install pinta
유틸리티 빌드 및 준비
Golang Fyne 기반 유틸리티를 빌드해 실행 파일을 생성.
go build -o 파일이름
파일이름 프로젝트 폴더/
├── 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
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
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
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. 특정 파일 및 프로그램을 열때, 속성에서 기본 지정해주면 됨.
[바로가기]는 등록된 프로그램 부분에서 프로그램이름 선택하고, 마우스 우측 클릭시 , [바탕화면에 추가] 클릭.
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
Lubunt 최소버젼으로, 새로 설치때, 스마트폰으로 참고하려고, 순서대로 기록해 둡니다.
1. Lubunt 최소버젼 설치
- 오래된 노트북으로, 가장 가벼운 Lubunt를 최소로 설치시, 노트북이 날라다님.
- 꼮 필요한것 아니면, 업데이트도 하지 않을 예정이며, 매우 가벼운 노트북에 불편함도 없슴.
2. Lubunt 한글 키보드 및 한/영 변환키 지정
3. Lubunt 크롬브라우져 터미널로 설치
- 최소로 설치시, 웹브라우져도 없슴, 터미널에서 웹브라우져 크롬 설치
4. Golang Fyne VScode 설치 및 환경설정 간단 기록
5. Mousepad 메모장 프로그램 설치 - 확장자 txt로 저장시, 모든 os 문서보기 됨.
6. Pinta 이미지 편집 및 드로잉 아이콘제작 프로그램 설치- 모든 os 설치 가능
-----------------------------------------------------------------------
- 리눅스를 데스크탑으로 윈도우 비슷하게 사용하기 위한, 가장 가벼운 OS라고 생각하며
- Lubunt를 옵션에서 최소설치로 설치하면, 웹브라우져도 없기에,터미널에서 브라우져 설치.
- 문제는 한글 한/영 키보드 문제가 있고, 그것도 수동설치하면 됨.
- 설치때, 자동로그인 체크 안해두면, 로그인창 그래픽 깨져서 보기안좋기에, 체크해 두기.
- 오래된 노트북의 마지막 희망급 OS 라고 생각함.
[ 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 보이면, 클릭해서, 한자 모드 변환 키 부분 우측에 키입력 부분을 클릭하고, 키보드의 한/영 키를 클릭해서 지정해 줍니다. 그리고 [선택]버튼을 눌러줍니다.
키보드 영어[미국] 도 추가해줍니다.
[리눅스 우분투에 크롬브라우져 설치 방법]
먼저, 리눅스터미널을 오픈 합니다. 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
설치 방법: sudo apt install mousepad
6. Pinta 이미지편집 및 드로잉 아이콘제작 설치
- 모든 os 지원, GIMP보다 가벼운 프로그램.
- 아래 snap 방법 설치가 가장 쉽고, 재부팅 한번 하면 됩니다.
설치방법: sudo apt install snapd
sudo snap install pinta
설치 방법: sudo apt install vlc
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버젼이 나열됨.
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
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 파일 내부의 데이터를 정렬하여 앱 성능을 향상시키는 도구입니다.
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]
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]
1. Github에 로그인 하고
2. 원하는 저장소[자신이 만든 저장소이름]을 클릭하고 페이지 이동.
3. 우측 상단쯤에 Settings[설정]을 클릭하고
4. 스크롤로 아래로 내리다 보면,
Delete this repository[이 저장소를 삭제하세요]를 선택해서, 저장소 이름 입력하고 삭제하면 됨.
1. 로그인 하고
2. 우측 상단에 + 표시 클릭하고 , New Repository 선택
3. Repository name 에 이름 등록하고
4. 공개 비공개 옵션 선택하고
5. Description 에 파일에 대한 간단 설명 추가하고
6. 저장 버튼 누르고 , 화면 이동하면
7. 빠른 설정 부분 에 , 새 파일 생성 및 기존 파일을 업로드 부분 글씨 나오면 참고.
-파일 크기가 25mb 보다 크면 안됨.
Fyne는 Go 언어로 작성된, 사용하기 쉬운 UI 툴킷으로
데스크톱과 모바일 환경 모두를 지원하며, UI 개발을 가능하게 함.
터미널: 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 완전 고장날때까지, 이 노트북을 포기하지 않으리...!!!!
*위치 찾을 스마트폰의, 설정-계정등록 부분에, 삼성계정을 등록해 두었어야 됩니다.
- 삼성계정 등록 방법은: 스마트폰의 [설정]-[계정 및 백업]-[계정 관리]-[계정 추가]에서 삼성계정을 만들고 추가할수 있습니다.
- 무료로 스마트폰 위치찾기 및 원격제어를 강력하게 할수 있으며, 스마트폰을 공장모드 초기화를 하려해도, 입력해둔 삼성계정 인증을 받아야만, 공장모드 초기화도 할수 있어, 매우 강력한 무료 기능이라 생각합니다. [ 아래 내용은 스마트폰에 따라, 약간 방법[옵션]의 차이가 있을수 있습니다. 계정에서 스마트폰 위치 찾기 허용을 해두어야 하며, 하나의 삼성 계정으로, 여러 삼성스마트폰을 관리할수 있어 좋네요.]
1. 스마트폰의 [설정] 부분에 들어갑니다.
2. [계정 및 백업] 부분에 들어갑니다.
3. [계정 및 백업]의 [계정 관리] 부분에 들어갑니다.
4. [등록해둔 삼성 계정 이름]을 클릭하고 들어갑니다.
5. 일반 부분에, [내 프로필] 부분을 클릭하고 들어갑니다.
6. [내 프로필] 안에, [내 기기] 부분을 클릭하고 들어갑니다.
7. 자신이 스마트폰마다 삼성계정으로 등록해둔 스마트폰의 리스트가 보일것입니다.
8. 해당되는 스마트폰 이름의 우측에 [점3개 짜리] 부분을 클릭합니다.
- 위치 찾기, 로그아웃 중에, [위치 찾기] 부분을 클릭합니다.
9. 웹브라우져로 삼성홈페이지에 연결되면서, [스마트폰 위치 지도 표시되고]
- 소리 울리기, 분실모드, 위치 추적, 데이터 삭제, 배터리 시간 늘리기 옵션이 있습니다.
- 위치 추적 기능이 매우 좋아서, 유료 앱을 사용할 필요가 없다 생각합니다.
- 스마트폰 위치를 깜빡했거나, 연로하신 부모님 위치 체크 및 여러 모로 활용 가능합니다.
- 스마트폰이 아닌, 삼성 웹[SAMSUNG Find]에서도 삼성계정으로 폰위치 찾기가 됩니다.
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
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 설치 시 자동으로 설정되지만, 수동으로 설치한 경우 수동 설정이 필요할 수 있습니다.
----------------------------------------------------
퓨시아(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)은
- 구글이 개발한 마이크로커널입니다. 퓨시아 운영 체제의 기반으로 사용되며, 다양한 장치에서 사용할 수 있도록 설계되었습니다.
- 지르콘 커널은 안전성을 최우선으로 고려하여 설계되었고, 커널의 일부만 하드웨어와 직접 통신하고, 나머지 부분은 하드웨어에 대한 액세스를 커널에 위임해서, 커널의 일부가 손상되어도 운영 체제가 계속 작동할 수 있습니다.
- 지르콘 커널은 다양한 장치에서 사용할 수 있도록 확장성이 뛰어나고, 하드웨어에 대한 액세스를 커널에 위임하여 다양한 하드웨어 플랫폼을 지원할 수 있습니다.
- 커널의 일부만 하드웨어와 직접 통신하기 때문에 시스템 리소스를 효율적으로 사용할 수 있습니다.
- 프로세스 관리, 메모리 관리, 장치 관리
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
Brasero
sudo apt-get install brasero
K3b
sudo apt-get install k3b
Xfburn
sudo apt-get install xfburn
*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에 라이센스 구매와 빈번한 업데이트는 점점 매력이 덜해집니다. 리눅스 우분투가 대중적인 리눅스라 사용은 하고 있지만, 테스트로 여러 프로그램을 설치하고 지우고 하다보면, 백업을 잘 활용하지 않으면, 좀 불안정한것은 있습니다.
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
[블루투스 관리자 수동 설치]
sudo apt install bluez blueman
sudo apt update
sudo apt upgrade
1.gnome-tweaks는 우분투의 다양한 설정을 변경할 수 있는 도구
sudo apt install gnome-tweaks
2. 실행: 터미널에서 gnome-tweaks
또는 프로그램 표시 -> 유틸리티 -> 기능개선
-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
되도록 보안시스템 업데이트 외엔, 오래된 컴퓨터는 업데이트 안하는것이 좋을거 같네요.