# 게시글
안드로이드 앱에서 구글 앱스토어로 이동하는 기능을 구현해요. 1. 구글 앱스토어.자동 업데이트가 되지 않은 경우에 앱스토어로 이동하는 기능을 사용해요. 필수 업데이트를 적용하려고 한다면 핵심 기능이 되겠쩌.developer.android.com - Google Play에 연결 try { startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName")))} catch (e: ActivityNotFoundException) { startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("..
러스트 명령어로 의존된 모듈에 라이센스를 모두 출력해요. 1. cargo tree 포멧 인자 사용하기.-f 인자에 출력할 형식을 미리 정할 수있고, {l} 라이센스 출력문을 넣어주면 돼요."[{p}]({r}) - {l}" 양식을 "{p}|({r})|{l}" 처럼 사용하면 좋겠쩌.cargo tree --depth 1 --prefix none -f "[{p}]({r}) - {l}"[rand v0.8.5](https://github.com/rust-random/rand) - MIT OR Apache-2.0[rcgen v0.13.1](https://github.com/rustls/rcgen) - MIT OR A..
css로 웹페이지에 탭 너비를 원하는 길이로 지정해보아요. 1. 탭 너비.웹에서 \t (U+0009) 문자 크기는 기본값이 공백너비 8개인데, 너무길다 이러면 css 설정을 변경하면 되겠쩌.tab-size:8tab-size:4 developer.mozilla.org - tab-size 🐾 이미지 보기
윈도우 배치스크립트에서 줄바꿈 없이 내용을 출력할 수 있어요. 1. echo -n 인자값.리눅스에서는 echo 명령어에 -n 인자값을 지원하여서 순수하게 줄바꿈 없이 내용을 출력을 할 수 있어요.echo|set /p="Hello, "echo|set /p="World!" man7.org - SET 명령어 🐾 이미지 보기
윈도우 배치스크립트에서 줄바꿈 없이 내용을 출력할 수 있어요. 1. SET 명령어.윈도우에서 SET 명령어는 환경변수를 설정하는데 사용되고, /p 인자는 사용자가 입력한 변수명에 값을 지정해요.learn.microsoft.com - SET 명령어 2. ECHO 트릭.SET /p 인자에 변수명을 비우는 트릭을 사용하면 줄바꿈이 없이 출력되고, 윈도우 배치에서 파이프 | 문자열은 표준 입력 스트림으로 echo에 내용이 들어가요.echo|set /p="Hello, "echo|set /p="World!" 🐾 이미지 보기
윈도우에서 vmbus를 사용하여 하이퍼바이저에 rdp 연결을 하면 좋아요. 1. VMBUS(Virtual Machine Bus).VMBUS는 네트워크 인터페이스를 사용하지 않고 가상 컴퓨터에 데이터 전송을 처리해주는 버스 시스템이어요.learn.microsoft.com - VMQ 구성 요소 2. RDP(Remote Desktop Protocol) 설정.vm 아이디를 가져와서 RDP 설정에 pcb:s:아이디를 넣어서 저장해야 해요. EnhancedMode=1 설정을 추가하여 확장 모드를 정할 수 있어요.full address:s:localhostpcb:s:3f6d3195-7aaf-40f3-a071-5b6e1..
리눅스 파일시스템에서 inotify 한도에 도달하면 변경점 감시 작업을 실패해요. 1. 파일시스템 기본값.max_user_watches 기본값은 리눅스 초기에 8192 값을 가졌지만 지금은 92678 값을 가지고, sysctl 명령어나 cat 명령어로 현재값으 볼 수 있어요.sysctl fs.inotify.max_user_watchescat /proc/sys/fs/inotify/max_user_watches 2. 튜닝하기.새로운 max_user_watches 값을 지정 할 수 있고 시스템에 따라서 최대 824288 값으로 제한이 걸리고, sysctl.conf 파일에 새로운 설정을 넣으면 되겠쩌. tee 명령..
영문 키보드는 전자/반자 입력을 켜고 끌 수 있어요. 1. 전자, 반자 살펴보기.ABCD .. 처럼 반자 입력이 기본값이어요. 가끔은 나도 모르는 사이에 ABCD .. 처럼 전자 입력이 되기도 해요. 2. 입력전환 살펴보기.전자, 반자 입력이 전환되면 알파벳이 입력되는 형식이 변경되어요. 키보드로 Alt 키와 = 키 조합을 누르면 전자/반자 입력 상태가 전환되는데, 공백문자 ' ' 대신 긴 공백문자 ' '를 입력하는데 유용하겠쩌.Alt + = 🐾 이미지 보기
윈도우 와이어가드를 보조네트워크로 사용하는 방법이 있어요. 1. 레지스트리 건드리기.vpn 연결과 해제 과정에서 파워셸 스크립트 실행이 요구되어서 레지스트리에 제한 설정을 해제해야 해요.reg add HKLM\Software\WireGuard /v DangerousScriptExecution /t REG_DWORD /d 1 /f 2. 설정 살펴보기.Table = off 설정을 넣으면 자동으로 라우팅 테이블을 등록하지 않아요. PostUp 명령어에서 수동으로 라우팅 테이블을 등록하면서 높은 번호로 인터페이스 메트릭을 주면 우선순위가 낮아져서 보조네트워크로 사용하게 되어요. 연결을 해제할때 PostDown 명령..
php에서 파일 검색 경로를 재설정 하는 것도 지원해요. 1. include path 살펴보기.php는 ini 설정파일에서 include_path 값으로 현재 검색할 경로를 전역설정으로 가지고 있고, 스크립트가 작동하는 중에는 set_include_path 함수를 실행하여 변경된 경로를 반영해요. 문서를 살펴보면 include 경로 밖에도 fopen, file, radfile, file_get_contents 함수들이 이 규칙을 따른다고 되어있어요.php.net - include-path 2. 함수 살펴보기.get_include_path 함수는 현재 지정된 검색 경로를 가져오고, set_include_pat..
안드로이드에서 처리하지 않은 예외가 발생하면 콕백 함수가 실행되어요. 1. 함수 살펴보기.setDefaultUncaughtExceptionHandler 정적 함수이고, 콜백 함수를 등록해두면 처리하지 않은 예외에 대해서 가상머신이 이 함수를 실행시켜요.Thread.setDefaultUncaughtExceptionHandler { thread, exception -> exitProcess(0)} developer.android.com - Thread.UncaughtExceptionHandler 🐾 이미지 보기
최대 줄바꿈 수를 제한하면 긴 문장을 표현하기 좋아져요. 1. css 살펴보기.행간이 되는 글자 높이를 line-height 값으로 고정하고, 행간에 배수가 max-height em값으로 주어지면 줄바꿈이 생기는 길이를 알 수 있어요. 스크롤이 생기는 영역은 overflow:hidden을 주어 숨기면 되겠쩌.p{max-height:5.6em;line-height:1.4;overflow:hidden;text-overflow:elipsis}12345 developer.mozilla.org - line-height 🐾 이미지 보기
미디어쿼리로 모바일 브라우저에 특별한 스타일을 적용해요. 1. css 살펴보기.모바일 브라우저는 포인터가 없고, 터치스크린에 기반이면 조건에 맞아서 적용되어요. 모바일 기기에 마우스를 연결하고 사용하는 경우도 있어서 주의하여야 하겠쩌.@media (pointer:none),(pointer:coarse) { body{font-size:1em}} developer.mozilla.org - @media/pointer 🐾 이미지 보기
14윈도우에 숨겨진 Administrator 계정을 활성화하고 로그인에 사용할 수 있어요. 1. 명령어 살펴보기.NET user 명령어에 Administrator 인자와 /active:yes 인자를 주어 활성화를 승인해요. 다시 비활성화 하려면 yes를 no로 사용하면 되겠쩌.NET user Administrator /active:yes learn.microsoft.com - Net user 명령어 🐾 이미지 보기
C드라이브에 임시파일을 정리하면 데이터 사용량을 줄일 수 있어요. 1. 명령어 살펴보기.verylowdisk 인자는 프롬프트 사용자 인터페이스를 표시하지 않으며, autoclean 인자는 윈도우 업데이트에 백업된 파일을 지워요. 업그래이드로 남은 백업파일은 버전을 되돌릴때 필요한데 일반적으로 사용하는 경우가 없어서 지워주면 좋겠쩌.cleanmgr /verylowdisk /autoclean /d C: learn.microsoft.com - cleanmgr 명령어 🐾 이미지 보기
윈도우 업데이트를 받은 다음 백업 데이터를 지워서 드라이브에 사용량을 줄어요. 1. 명령어 살펴보기.StartComponentCleanup 인자는 업데이트 데이터를 삭제하고, ResetBase 인자를 동시에 사용하면 백업 데이터도 함꼐 삭제해요.SPSuperseded 인자는 윈도우 10에서 서비스팩 데이터를 제거해요.dism /online /Cleanup-Image /StartComponentCleanupdism /online /Cleanup-Image /StartComponentCleanup /ResetBasedism /online /Cleanup-Image /SPSuperseded learn.micros..
윈도우에서 리눅스 서브 시스템을 D드라이브에 나누어 설치해요. 1. 리눅스 배포판 이미지 준비하기.microsoft 링크에 들어가서 리눅스 배포판 이미지를 내려받아요.learn.microsoft.com - 이전 버전 WSL의 수동 설치 단계 2. 명령어 살펴보기.--import 인자에 등록할 이름과 이미지 파일을 지정하여 새로운 서브시스템을 추가할 수 있어요. 예시에서는 ubuntu-22.04 이름을 주고 install.tar.gz 이미지를 사용하였쩌.wsl --import ubuntu-22.04 d:/wsl install.tar.gz learn.microsoft.com - WSL과 함께 사용할 Linux ..
윈도우os 보조 드라이브에 도커를 설치하여 설치 용량을 분리할 수 있어요. 1. 명령어 살펴보기.--wsl-default-data-root 인자는 데이터가 저장될 경로를 변경하고, --installation-dir 인자는 도커 데스크탑 설치 경로를 변경해요. --accept-license 인자는 라이센스 사용에 동의한 상태로 설치를 진행하여서 사용자 인터페이스 상효작용을 건너뛰어요.'.\Docker Desktop Installer.exe' install --accept-license --wsl-default-data-root=D:\Docker\DataRoot'.\Docker Desktop Installer...
안드로이드 앱이 불안정해지면 종료하고 재시작 해보아요. 1. 함수 살펴보기.알람 서비스에 시간차이를 등록하여 재빨리 어플을 종료하고 다시 켜는 방식이어요. 만일 찰나의 시간 100ms 이하에 시간을 주면 어플 종료가 늦게 되거나 처리 가지연되는 경우에 재시작은 실패하겠쩌.fun restartApplication() { val mStartActivity = Intent(this, MainActivity::class.java) val mPendingIntentId = 1 val mPendingIntent = PendingIntent.getActivity(this, mPendingIntentId, mStartAc..
안드로이드에서 화면에 전원을 차단하여 배터리 전력 소비를 아껴요. 1. 함수 살펴보기.scrcpy 프로젝트에서 스크린을 켜지 않고 안드로이드 디바이스를 물리적으로 제어하는 기능이 있어요. 파워모드 플래그를 POWER_MODE_OFF로 설정하여서 전원을 차단해요.시스템 내부 함수이므로 프로덕션 상태에서 작동하지 않거나 제약이 생기겠쩌.android.view.SurfaceControl.setDisplayPowerMode github.com/Genymobile/scrcpy - SurfaceControl.java setDisplayPowerModeandroid.googlesource.com - SurfaceCont..
안드로이드에서 액티비티를 종료하지 않고 홈 화면으로 이동해요. 1. 함수 살펴보기.ACTION_MAIN 인텐트에 CATEGORY_HOME 카테고리를 등록하고, FLAG_ACTIVITY_SINGLE_TOP 플래그를 지정했어요. 일반적으로 FLAG_ACTIVITY_NEW_TASK 플래그를 지정하지만 원래 의미는 백그라운드에 대기중인 태스크를 가져오는 것이어서 바꿨어요. 시스템에서 적절히 처리할 것이어서 어느 플래그를 사용한다 하더라도 문제되지 않아요.mobeTaskToBack(true) 명령어를 주어도 현재 액티비티를 종료하지 않지만 이전 태스크로 나가요. 어플을 닫으려고 한다면 finish() 함수를 사용하지..
안드로이드에서 뒤로가기 액션을 핸들링하여 다른 동작을 재정의하는 코틀린 코드입니다. 1. 함수 살펴보기.onBackPressedDispatcher 요청 분배기에 addCallback 함수로 OnBackPressedCallback 콜백 핸들러 객체를 등록해요. handleOnBackPressed 함수에서 뒤로가기 버튼의 상호작용을 알아내요.예시코드에서 뒤로가기 기본 동작을 moveTaskToBack 함수를 사용하여서 백그라운드 태스크로 전환하였쩌.onBackPressedDispatcher.addCallback(this, object: OnBackPressedCallback(true) { override fun..
안드로이드에서 화면에 나타난 소프트 키보드를 숨겨요. 1. 함수 살펴보기.getSystemService 함수에서 InputMethodManager 서비스를 가져와서 hideSoftInputFromWindow 메서드 함수를 실행해요. view.windowToken는 윈도우 토큰으로 IBinder 타입을 반환받아서 인자로 넘겨요.IBinder는 잠재적으로 null 값을 가지는 상태를 고려하여야 좋겠쩌.fun hideSoftInput(view: View) { val inputMethodManager = this.getSystemService(Activity.INPUT_METHOD_SERVICE) as Input..
php에서 ISO 8601 표준규격으로 날짜와 시각을 출력해요. 1. 함수 살펴보기.date함수에 문자열 인자로 Y-m-d H:i:s를 주어서 ISO 8601 표준규격으로 날짜와 시각을 출력했어요. 현재 시각으로 출력하지 않으려면 두번쨰 인자값으로 유닉스 타입값을 넣어요. 946684800 값을 사용하면 2000-01-01 00:00:00 이 되겠쩌. Y: 연도를 4자리로 표시합니다. (예시: 2000)m: 월을 2자리로 표시합니다. (예시: 01-12)d: 날짜를 2자리로 표시합니다. (예시: 01-31)H: 24시간제 시간(00-23)을 표시합니다.i: 분(00-59)을 표시합니다.s: 초(00-59)를..
charp 프로그램에서 바이트 용량을 단위로 환산해줘요. 1. 함수 살펴보기.이 함수는 size 인자 값을 받아서 1024의 거듭제곱으로 나누어 더 큰 단위로 변환해요. 단위 목록은 B, KB, MB, GB, TB, PB, EB, ZB, YB 이고, 변환할 단위의 인덱스 계산은 Math.Log(size, 1024) 식에서 나와요.자바스크립트에서는 로그함수에 두번째 인자를 지원하지 않으므로 Math.log(size) / Math.log(1024) 계산식을 사용하는 차이가 있어요.Javascript 용량 단위를 반환하는 함수 public class FileInfo { public static string[] ..
php 프로덕션 모드에서 런타임 오류가 출력되지 않아요. 1. 함수 살펴보기.set_ini 함수는 세팅을 일시적으로 변경하고, error_reporting 함수는 런타임 오류를 모두 출력하는 상태로 바꿔요.php 스크립트 가장 윗쪽 라인에 적용하거나 오류를 출력할 지점에 넣어주면 좋겠쩌. php.net - error_reportingphp.net - set_ini 🐾 이미지 보기
자바스크립트에서 바이트 용량을 단위로 환산해줘요. 1. 함수 살펴보기.이 함수는 bytes 인자 값을 받아서 1024의 거듭제곱으로 나누어 더 큰 단위로 변환해요. 단위 목록은 bytes, KB, MB, GB, TB 인데 FB .. 더 추가 할 수 있고, 변환할 단위의 인덱스 계산은 Math.floor(Math.log(bytes) / Math.log(1024)) 식에서 나와요. function convertFileSize(bytes){ var u=["bytes","KB","MB","GB","TB"] var i=Math.floor(Math.log(bytes)/Math.log(1024)) return (byt..
sqlite에서 문자열을 분리하는 쿼리는 다양하지만 WITH RECURSIVE 방법이 적절해요. 1. 핵심로직 살펴보기.분리하려고 하는 문자열 마지막에 구분문자를 추가하여 모든 문자을 분리해요. 이렇게 하면 쿼리 결과를 다시 나누지 않으므로 간편해져요.WITH RECURSIVE split(pos,val,text) AS ( SELECT 0, '', '11,222,3333,last' || ',' text UNION ALL SELECT instr(text, ','), substr(text, 1, instr(text, ',')-1), substr(text, instr(text, ',')+1) FROM spl..
윈도우 탐색기에서 비주얼 스튜디오 코드를 실행하였는데 반응이 없없어요. 1. 발생 원인 확인하기.비주얼 스튜디오 코드 2023년 6월 v1.80 버전부터 크로미엄 프로젝트에 샌드박스를 적용되어서 원격 데스크탑에서 나타나는 문제에요.code.visualstudio.com - visualstudio code v1.80 원인을 알아보려고 콘솔을 열고 ./code.exe를 실행하고 로그를 살펴보면 gpu 프로세스 오류로 'GoodBye'라고 나와요../Code.exe[3240:0611/022733.872:ERROR:gpu_process_host.cc(991)] GPU process launch failed: er..