Engineering 301

서비스 데몬 시작/등록 on MacOS

MacOS 에 부팅시 시작할 프로그램을 등록하기 위해 launchctl 을 이용하는 방법애플에서 제작한 데몬하고 구분을 위해 /Library/LaunchDaemons 에 추가하기로 했다. - launchctd 로 스크립트 관리 Mac용 터미널에서 launchd로 스크립트 관리하기Mac의 터미널에서 launchd를 사용하여 셸 스크립트를 데몬으로 실행할 수 있습니다.support.apple.com  launchctl 은 redhat 계열의 systemctl, service 랑 비슷한 데몬(서비스) 관리 명령어로 보인다.% cd /Library/LaunchDaemons % pwd/Library/LaunchDaemons% ls -latotal 64drwxr-xr-x 11 root wheel 3..

Engineering/Mac 2024.08.14

Python 가상 환경 설정

파이썬 개발을 하려고 하는 상황마다 다르게 파이썬 버전이나 특정 라이브러리를 유지하려고 할때, 가상환경을 사용할 수 있다. $ pip install virtualenv$ virtualenv [가상환경 적용할 디렉토리명]$ app-env\Scripts\activate 아래 예제에서는 lecture 라는 디렉토리에서 ch7 이라는 가상 환경 디렉토리를 생성했다.  이미 존재하고 있던 ch7 이라는 디렉토리에 가상 환경을 적용하면 하위에 Include/, Lib/, Scripts/, pyvenv.cfg 의 디렉토리, 파일들이 추가된다. Scripts\activate 를 실행하고 나서, 앱 개발에 필요한 라이브러리들을 인스톨하면 Lib\site-packages 로 파일들이 추가되는 것을 볼 수 있다. virtu..

Engineering/Python 2024.08.06

인공지능 Study

아래 내용은 https://github.com/microsoft/generative-ai-for-beginners/blob/main/01-introduction-to-genai/translations/ko/README.md 내용을 요약해서 작성했습니다. AI LLM 관련해서 오픈되어 있으면서 한글로도 번역되어 정리되어 있는 문서 중에서는 최강이지 않을까 생각합니다.챕터에서 MS AI 상용 제품으로 예를 들고 있고 설명하고 있는게 아쉽지만, 구글의 제미나이 보다는 MS 가 더 준비가 잘 되어 보입니다. 인공지능(Artifical Intelligence) 머신러닝 1997년~ 텍스트 분석에 통계적 접근법을 적용한 것. 명시적으로 프로그래밍되지 않아도 데이터로부터 패턴을 학습할 수 있다. 이 접근법은 기계가 ..

Engineering/AI 2024.07.26

Command Line Developer Tool 무한 반복 설치 on Mac OS

Mac OS 를 최신 버전(14.5) 으로 업데이트 한 후, 잘 동작하던 git 명령어가 다음과 같은 오류가 나면서 실행이 안된다.boos@Macmini-5 ~ % git 2024-07-22 17:00:45.634 xcodebuild[1673:26716] [MT] DVTPlugInLoading: Failed to load code for plug-in cohttp://m.apple.dt.dbg.DebuggerFoundation (/Applications/Xcode.app/Contents/PlugIns/DebuggerFoundation.ideplugin), error = Error Domain=NSCocoaErrorDomain Code=3588 "dlopen(/Applications/Xcode.app/Co..

Engineering/Mac 2024.07.22

Files.lines(path) 는 잘 알고 사용하자.

Files.lines(filePath).forEach(line -> ...) 이런 코드를 사용하는 프로그램이  참조하는 파일 항상 삭제가 안되는 버그가 발생했다. File symbolFile = new File("C:\\Users\\user\\readSymbol\\temp\\symbol.txt"); Files.lines(symbolFile.toPath()).forEach(line -> { if (line.contains("GetBranchName")) { log.debug("GetBranchName:{}", line); } }); 프로그램 종료 시점에 임시로 생성했던 temp 디렉토리를 지우는 로직이 ..

Engineering/Java 2024.07.11

curl 명령어로 postman 업로드 API 대체

postman 으로 파일 업로드는 UI 메뉴에서 file 파라미터에 해당하는 파일을 로컬 PC 에서 잘 선택해서(Select files..) 호출하면 잘 동작한다. 문제는 윈도우에서 postman 에서 제공하는 Code snippet 명령어로 하면 아래와 같은 오류가 나면서 동작을 안한다는 것이다.curl --location 'http://service.com/apk/upload' \ --form 'file=@"/D:/download/test.apk"' \ --form 'code="12345"'curl: (26) Failed to open/read local data from file/application 윈도우즈 파일 경로가 안 맞는거 같아서 조금 바꿔서 다음과 같이 하면 된다.curl -F file=..

Engineering/Network 2024.06.19

docker build 중 "ERROR: failed to solve: error from sender: context canceled" 오류 해결

docker build 명령어가 어느 순간 (2024년 3월~) 부터 처음 보는 오류가 발생했다. 빌드 중간에 "context canceld" 라고 나오는데 도대체 무슨 일일까? => CANCELED [internal] load build context => => transferring context: 1.78MB ERROR: failed to solve: error from sender: context canceled 최근에 docker desktop 버전을 최신(4.28.0)로 업그레이드했는데, 그 영향인가 싶어서 다운그레이드를 했으나 동일한 오류가 나온다. 결국 구글의 도움을 받아서 해결하게 되었는데, 어이없게도 최근에 사용하게된 gitlab copilot chatting plugin 영향인듯하다...

Engineering/Docker 2024.03.26

윈도우 batch 스크립트에서 잠시 멈추는(sleep) 여러 방법

1. timeout batch 스크립트 대화식(interactive)으로 동작하는 환경에서 설정한 시간값대로 아무 문제 없시 잠시 멈춘다. @echo off echo Hello, World :: timeout /t -1 timeout 5 echo World is Beautiful exit 0 a.bat 는 "Hello, World" 를 출력하고 5초를 기다린 후, "World is Beautiful" 을 출력하고 있다. 그런데, timeout 의 문제는 비대화식(non-interactive) 환경에서는 시간 설정값은 무시되고 그 다음 라인이 진행된다. 프로그램 내에서 외부 명령어 호출하는 다음 예제를 실행하면 5초후에 결과가 나오는게 아니라, 실행 즉시 a.bat 결과가 출력된다. String[] arr..

Engineering/Windows 2024.03.15

윈도우 cron 등록

윈도우 OS 에서 cron 작업을 할 수 있게 해주는 프로그램들이 있다. 자주 사용하는 프로그램 중에 nnSoft 에서 개발한 nnCron LITE 버전(https://www.nncron.ru/index.shtml) 이 있다. 하지만 마지막 업데이트가 2008년 이라 다른 방법을 찾아보려고 했다. 윈도우에 있는 작업 스케쥴러(Task Scheduler)를 이용해서 cron job 을 등록할 수 있다. (한글 윈도우에서 task scheduler 라고 입력하면 실행앱이 안 보인다. task 또는 작업 스케쥴러라고 입력해서 시계 처럼 생긴 아이콘이 보이면 그 앱이다.) "새 작업 만들기" 를 열고 이름에는 원하는 이름을 넣는다. "app 실행" 을 입력해보았다. "트리거" 탭에서 스케쥴 시간을 정한다. 실행..

Engineering/Windows 2024.01.22

연말정산 주민등록 등본 발급 실패하는 경우

연말정산 때문에 주민등록 등본 인터넷 발급 사이트 연결이 실패한다. http://www.egov.go.kr/ 부양 가족 등록 때문에 주민등록 등본이 필요한다. 접속자가 많은 듯하다. 그런데, 찾아보니 아래 "정부24" 에서도 동일하게 주민등록 등본(초본) 을 출력할 수 있다. 정부에서 다른 대체 사이트를 준비한듯 한데, 홍보를 안 하니 이용하는 사람들만 불편하다. https://www.gov.kr/portal/main/nologin 정부서비스 | 정부24 정부24는 정부의 민원 서비스, 정부혜택(보조금24), 정책정보/기관정보 등을 한 곳에서 한 눈에 찾을 수 있고 각 기관의 주요 서비스를 신청·조회·발급할 수 있는 대한민국 정부 대표 포털입니다 www.gov.kr

Engineering/Etc 2024.01.22