Programming(186)
-
[VSCode] 동일한 작업영역을 새 창에 띄우기
VSCode를 사용해서 코드를 작성하다보면, 하나의 프로젝트를 메인 모니터와 서브모니터에 각각 띄워서 모니터를 좀 넓게 쓰고싶을때가 종종 있다. 이런 경우 단순히 새 창(CMD+SHIFT+N)을 띄운 뒤 이미 열려있는 폴더를 다시 열려고하면, 실행중인 VSCode창으로 포커스가 이동하게된다. 기본적으로는 하나의 창을 띄워둔 상태로, 동일한 프로젝트를 여는 것은 막아둔 모양이다. 어떻게하면 좋을까 검색해보니, 비슷한 생각을 하고 있는 사람들이 꽤 있는 모양인지 VSCode에서 문의글(https://github.com/Microsoft/vscode/issues/2686)을 발견할 수 있었다. 방법은 간단했다. CMD+SHIFT+P(윈도우의 경우 CTRL+SHIFT+P)을 입력한 뒤, Workspaces: D..
2024.06.18 -
[iTerm2] 커멘드 종료시 알림 기능
무슨 키를 눌렀는지 기억이 가물가물한데, iTerm2를 사용하는 도중 우측 상단에 눈 모양이 표시되기 시작했다. 엥, 이게 뭐지... 싶어서 구글에 'iTerm2 눈'을 검색해보니 iTerm2를 꾸미는 글만 한가득. 한참을 뒤적거린 뒤에야 다음과 같은 글을 찾을 수 있었다. https://www.stefanjudis.com/today-i-learned/iterm2-offers-a-way-to-notify-you-when-a-long-running-command-has-finished/ iTerm2 offers a way to notify you when a long-running command has finished iterm2 can notify you when a long-running command..
2024.04.02 -
Fatal Exception: java.util.ConcurrentModificationException에 대한 간단 정리
비정상 종료를 줄이기 위해서 앱에 파이어베이스를 추가하고나서, 간간히 java.util.ConcurrentModificationException 예외가 발생한 것을 볼 수 있었다. 이름에 Concurrent가 들어가있는만큼, 비동기 문제겠거니...하고 추측하고 있었는데 아무리봐도 해당 코드는 메인 스레드에서 리스트 내용을 업데이트하는 코드가 아닌가. 동시성 문제가 발생할만한 상황이 아닌데 어째서 이런 예외가 발생하는거지... 하는 의문에 빠져서 java.util.ConcurrentModificationException에 대해 찾아봤다. ConcurrentModificationException을 구글에 검색하면 수많은 블로그가 나온다. 다들 숱하게 경험한 문제란 얘기인 셈. 누군가 잘 정리해놓은 자료를 보..
2024.02.16 -
Target SDK 버전을 33으로 올렸더니 앱이 터지기 시작했다: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
한동안 방치해뒀던 안드로이드 앱이 무려 구글스토어에서 검색이 안된다는 얘기가 들어와서(...) 살펴보니, 타겟 SDK버전이 낮아서 그런 것 같았다. 왜 방치해뒀는지는 차치해두고(...) 그동안 미뤄왔던 뷰 바인딩을 적용하는 등 코드를 말끔하게 뜯어고치고 있다가, 갑자기 앱이 강제 종료됐다. 깜짝 놀라서 로그캣을 살펴보니 다음과 같은 문구가 빨간색으로 떠 있었다. FATAL EXCEPTION: Firebase-Messaging-Intent-Handle Process: , PID: 9058 java.lang.IllegalArgumentException: : Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTAB..
2023.04.07 -
m1 Mac에서 Unknown host CPU architecture: arm64가 뜬다면...
#잡설 m1 칩셋이 출시된지도 어언 1년이 지났지만 아직까지 호환성 관련된 이슈들이 가끔씩 튀어나올대마다 한숨이 나올때가 있다. 대부분의 툴들은 시간이 지났기때문인지 재설치하면 크게 문제되는 경우도 많지만, Android NDK라면 얘기가 또 다르다. 특히 이런류의 문제는 NDK에 가서 직접 코드를 수정해놓고 한참을 멍때리다가 뭔가 문제가 생겼을 때, NDK를 지우고 재설치하면 문제가 다시 튀어나오기때문에 더욱 환장할 노릇이다. 아무튼 오늘은 m1 mac에서 Android NDK를 처음 설치했을 때, 갑자기 arm64 아키텍쳐가 뭔지 모른다며 Unknown host CPU architecture: arm64 에러를 해결하는 방법에 대해 알아보자. #원인 /Users/{Username}/Library/An..
2023.01.09 -
NGINX에서 TLSv1, TLSv1.1을 비활성화해보자.
참고: HTTP_SSL_MODULE 문서 페이지 Nginx - Disable SSL, TLS 1.0, and TLS 1.1 Nginx에서 TLSv1과 TLSv1.1을 비활성화하는 방법 오늘은 NGINX에서 TLSv1, TLSv1.1을 비활성화하는 방법에 대해 살펴보겠다. 는 NGINX에서는 간단하게 아래와 같이 ssl_protocols값만 설정해주면 끝난다. 참고로 TLSv1.3은 OpenSSL 1.1.1 이상의 버전이 설치되어있을때만 사용 가능하며, 그 이하의 버전이 설치되어있는 경우에는 에러가 출력된다. 이럴 때는 OpenSSL을 업데이트해주거나 혹은 과감하게 TLSv1.3을 빼주도록하자. 보안보다는 퇴근이 우선이다 ssl_protocols TLSv1.2 TLSv1.3 몹시 간단하게 끝났는데, 이렇게..
2022.12.20