전체 글 479

update 특정 필드 내 문자열 변경 on MySQL

MySQL DB 테이블 내에 특정 필드안에 포함된 문자열을 다른 걸로 바꿔야 할일이 발생했다. 예를 들어 URL 을 가진 필드값이 'http://addr1.com/abc/cde/efg' 를 'http://addr2.com/abc/cde/efg' 로 변경한다. 변경해야할 시나리오는 문자열 앞부분만 바꿔주면 되는 상황이다. (addr1 -> addr2) 갯수를 세어보니 해당 데이터 건수가 1만건이 넘어가서 이걸 프로그램을 짜야하나 싶었다. 그런데 찾아보니 update 문에 replace 함수를 사용할 수가 있었다. update [테이블명] set 변경할필드명 = replace(변경할필드명, '이전문자열', '새로운문자열') 그래서 다음과 같이 전체 문자열에서 변경할 문자열만 지정해서 적용하니 생각보다 빨리 ..

Engineering/DB 2023.12.04

heic heif 이미지 탐색기에서 보기 on Windows

아이폰으로 촬영한 이미지들을 Windows 에 복사해서 탐색기에서 보려고 하면 안 보인다. ".heic" 확장자라서 안보이는 건데, 탐색기가 기본적으로 지원하지 않는 이미지 포맷이다. PC 에서 휴대폰의 이미지를 보는 방법으로 휴대폰 - 카카오톡을 통해서 이미지들을 선택해서 "나와의 채팅" 으로 나에게 보내고, PC - 카카오톡에서 사진들을 받으면 "JPEG" 이미지로 받을 수 있다. 카카오톡에서 전송하는 과정에서 자동으로 변환을 해주는 건데, 확장자가 "JPEG" 로 밖에 안되고 몇개 안되는 파일이면 이런식으로 하겠지만, 수십장의 이미지는 이런 방식으로 좀 힘들다. 마이크로소프트 스토어에서 "heic" 로 검색하면 여러가지 유/무료 앱들이 보인다. 무료앱들 중에는 "iMazingConverterWind..

Engineering/Windows 2023.12.02

tail -f 동일 명령어 on Windows

로그 파일을 계속 모니터링할때 리눅스나 Mac OS 에서는 "tail -f 파일명" 를 사용한다. Windows 에서도 비슷한 역할을 하는 명령어가 있었다. 대신 일반 cmd 창에서는 안되고 PowerShell 창에서만 동작한다. > Get-Content -Wait 예제는 docker 데스크탑을 실행하고 발생하는 로그 파일을 "Get-Content" 명령어로 지키보고 있다. -Wait 옵션이 tail 명령어의 -f 와 동일하다. 파일이 끝에 도달할때까지 중지가 안된다. 그리고, 윈도우라서 W 대문자 대신 -wait 로도 옵션이 동작한다. 특이하게도 Get-Content 명령어의 별칭(alias) 로 gc, cat, type 으로 동일한 명령을 수행할 수 있다. (cat 이 훨씬 직관적인거 같은데 왜 명령..

Engineering/Windows 2023.12.01

[독서노트] 타이탄의 도구들

타이탄의 도구들 저자 티모시 페리스 출판 토네이도 발매 2022.06.20 '타이탄의 도구들'은 자기 계발 관련책 추천에 항상 소개되는 책이다. 각 챕터마다 명사들(미국 기준으로 성공한 사람들이라 이름 들어본 몇명 외에는 누군지 잘 모르는 사람들이 다수다)의 성공하기 위해 가지고 있는 자세나 철학을 저자가 인터뷰를 통해서 알아낸 내용을 정리하고 있다. 심지어는 단식에 관한 얘기와 몸을 쓰는 스트레칭 자세에 대한것도 나온다. 아쉬운 거는 정말 밑바닥에서부터 시작해서 정상에 올라간 성공 신화가 아니라서 당장 따라할만한 레퍼런스가 될만한 사람들의 이야기는 없더라는 거다. 자기 계발서에 있는 모든 내용들이 그 책을 읽는 독자들에게 다 도움이 되는건 아닐거다. 당사자의 상황이나 당시의 환경에 따라 어떤 문구는 감..

Thinking/Book 2023.11.21

class path resource FileNotFoundException in jar

src/main/resource/ 디렉토리 하위에 "path/data.json" 경로의 파일을 넣어두고 아래와 같이 getFile() 을 사용하면 local 환경(inteliJ 같은 개발툴)에서 실행할때는 아무 문제가 없다. (실제 파일 경로가 있으니..)File file = new ClassPathResource("path/data.json").getFile(); 그런데, jar 로 빌드 패키지를 만들어서 배포해서 java -jar 로 실행하면 "java.io.FileNotFoundException" 이 나오면서 프로그램이 종료한다.2023-11-16 00:11:12.096 [main] ERROR [http://com.test.app.component.ReadComponet.init:38] - Fail..

Engineering/Java 2023.11.16

docker 명령어 간단 정리

- docker run : 도커 이미지 실행 # docker run --rm -p 80:80 nginx:latest nginx:latest 이미지가 local 에 없으면 repo 에서 최신 버전을 다운받고 나서 실행된다. ※ --rm : 컨테이너 삭제 명령어인데, run 과 함계 사용해서 컨테이너 종료시 사용했던 자원들(임시 파일들, 컨테이너)이 같이 삭제된다. ※ -p : 호스트와 컨테이너 포트 연결. :. ex) 8085:80 -> localhost:8085 로 연결하면 nginx 80 으로 연결 - docker inspect : 컨테이너 정보 확인 # docker inspect [이미지명] 도커 디렉토리 /var/lib/docker/overlay2 하위 디렉토리인 a8a9da~/ 라는 디렉토리에 데..

Engineering/Docker 2023.11.16

posix_spawn failed in Mac 해결

Mac 에서 실행되던 java 프로그램에서 갑자기 "posix_spawn failed" 오류가 나오고 터미널 접근이 안되는 현상이 발생했다. 2023-11-01 10:09:34.331 [scheduledExecutorService-1] INFO [cohttp://m.exmaple.testapp.logic.util.CommandUtil.execute:105] - command:ls /Users/usre1/test.app/Payload IOException java.io.IOException: Failed to execute. command: ls /Users/usre1/test.app/Payload, result: at cohttp://m.exmaple.testapp.logic.util.CommandUti..

Engineering/Mac 2023.11.15

시작 프로그램 등록 in Mac

Mac 에서 스크립트 자동 시작하는 방법을 찾으면 Mac - 시스템 환경 설정(설정 아이콘) - 사용자 및 그룹 - 왼쪽 사용자 목록 선택 - "암호 / 로그인 항목" 로그인 항목 선택 - "+" 클릭해서 시작 프로그램 등록으로 많이 나온다. 그 방법 말고 Linux(Unit) 에서 init 스크립트 처럼 등록을 하는 방법을 찾아보니 Mac 에도 launchd 데몬이 존재한다. - launchd 사용(OS X 10.4 Tiger ~) plist(property list) 파일을 아래 디렉토리에 작성한다. : 사용자가 로그인했을 때 실행 $ cd /Users/usre1/Library/LaunchAgents $ ls homebrew.mxc1.nginx.plist : 시스템 부팅 시 실행 $ su - # cd..

Engineering/Mac 2023.11.15

.NET location: Not found 해결

.NET 런타임을 사용하는 프로그램을 실행했는데, 아래와 같은 .NET 을 못찾는다는 메시지와 함께 확인할 링크(https://aka.ms/dotnet/app-launch-failed) 를 알려준다. $ pwd /home/user1/myapp $ ./myapp/myapp You must install .NET to run this application. App: /home/user1/myapp/myapp Architecture: x64 App host version: 6.0.7 .NET location: Not found Learn about runtime installation: https://aka.ms/dotnet/app-launch-failed Download the .NET runtime: ht..

Engineering/Linux 2023.11.15

driver.get(link) AttributeError: 'NoneType' object has no attribute 'get' 해결

> py app.py Message: unknown error: cannot connect to chrome at 127.0.0.1:59019 from chrome not reachable Stacktrace: GetHandleVerifier [0x011437C3+48947] (No symbol) [0x010D8551] (No symbol) [0x00FDC7F0] (No symbol) [0x00FD1011] (No symbol) [0x00FFEDB7] (No symbol) [0x00FF95E1] (No symbol) [0x00FF9447] (No symbol) [0x0102B840] (No symbol) [0x0102B3CC] (No symbol) [0x01024E86] (No symbol) [0x010..

Engineering/Python 2023.11.13