반응형 기술적인 이야기318 Python의 URL 매개변수 16진수 인코딩 및 디코딩 가끔 URL의 GET 매개변수를 전달하기 위해 16진수 인코딩(HEX Encoding)이나 디코딩이 필요할 때가 있지만 자주 까먹는다. 그래서 글로 박제를 해보려고 한다. 참고로 파이썬에서는 이 인코딩을 인용(quote)이라고 부르는 모양이다.인코딩특정 문자열을 16진수로 인코딩할 때는 urllib.parse 모듈의 quote 혹은 quote_plus 함수를 사용할 수 있다.>>> import urllib.parse>>> urllib.parse.quote('10==2다')'10%3D%3D2%EB%8B%A4'>>> urllib.parse.quote_plus('10==2다')'10%3D%3D2%EB%8B%A4'quote와 quote_plus 함수는 차이는 공백(space)을 어떻게 처리하느냐는 특징으로 갈라.. 2024. 12. 23. macOS에서 Emacs가 실행되지 않기 시작했다 개인적으로 선호하는 편집 환경인 Emacs는 macOS 상에서 편하게 빌드하기 위해 Homebrew를 통해 emacs-plus 패키지로 설치하는 편인데 상당히 오랜 기간 잘 써왔고 별 문제도 없었기에 지금에 이르고 있다. 다만 최근에 emacs-plus를 업그레이드 한 이후로 문제가 생기기 시작했는데 제목과 같이 Dock이나 파인더에 있는 바로가기를 통해서 앱이 실행되지 않는다는 점이다. 이 문제를 해결하기 위해 상당한 삽질을 했지만 실패했고 그나마 대안을 찾았다.좀 더 상세한 문제 내용언제부터인지 모르겠지만 emacs-plus의 정보나 설치 후 메시지를 살펴보면 아래와 같은 문구를 볼 수 있었다.여기서 osascript를 사용하는 긴 커맨드가 보인다. 기존에는 빌드된 앱(Emacs.app)을 링크(li.. 2024. 12. 17. SvelteKit에서 환경변수에 접근하기 Svelte와 SvelteKit은 기본적인 환경변수 접근 방법이 다르다. 이 다름을 모르고 SvelteKit 앱에서 Svelte 스타일의 환경변수에 접근하려다 안 돼서 문제를 못 찾고 고생한 경험이 있다. 글 주제도 떨어져 가는 김에 이에 관해 간단히 정리해 본다.우선 SvelteKit에서 자체적으로 제공하는 환경변수 액세스 방법은 정적(static) 및 동적(dynamic) 두 가지 방식과 함께 private 및 public 개념이 있다는 것은 알아둬야 할 것 같다.SvelteKit에서 정적으로 환경변수 읽기정적 환경변수 읽기는 해당 환경변수 심볼을 특정 모듈 시스템을 통해 import 해서 쓰는 독특한 방식이다. 대충 아래와 같은 식이다.import { PRIVATE_ENV_VAR } from '$e.. 2024. 12. 5. TypeError: Converting circular structure to JSON 오류 해결하기 취미 겸 공부로 SvelteKit 기반의 웹 앱을 만들던 도중 겪게 된 오류가 또 하나가 있다. 대충 아래와 같은 한숨 나오는 메시지다.TypeError: Converting circular structure to JSONcircular structure라니 무한 루프에 빠져 허우적거리던 불행한 일을 떠올리게 만드는 문구 같다. circular structure에 대한 대략적인 설명으론 JSON으로 변환하려는 데이터들의 object 중에 하위와 상위 객체 사이에 순환 참조가 걸려 발생하는 문제로 정리하는 것 같은데 실제 구현은 모르니 이 정도로만 정리하자. 순환 참조 문제야 다른 언어에서도 흔히 발생하는 불행한 일이니 말이다. 어쨌든 정확한 오류는 아래와 같은 식이다.TypeError: Convertin.. 2024. 10. 24. SvelteKit에서 호스트 이름 없이 fetch하기 최근 SvelteKit으로 개인 취미 프로젝트를 진행하면서 이것저것을 알아가고 있다. 글 쓰기 순서가 잘못된 것 같지만, SvelteKit에서 URL에서 호스트 이름 없이 상대경로 혹은 절대경로 만으로 fetch 하는 방법에 대해 정리해 본다. 왜 이런 글이 탄생하게 되었냐면 fetch를 호스트 이름 없이 호출하면 아래와 같은 식의 오류가 발생하는 것을 경험했기 때문이다.Error: Cannot use relative URL (/foo/bar) with global fetch — use `event.fetch` instead이 오류가 발생하는 코드는 아래와 같은 식이다. 참고로 서버 API 용도로 만들어 둔 코드라 GET을 구현하고 있는 예다.export async function GET({ params.. 2024. 10. 23. 크롬에서 별도의 도구 없이 웹페이지 전체 캡처하기 (한국어 버전) 가끔 웹페이지 전체 스샷(스크린샷 캡처)을 찍는 기능이 필요할 때가 있다. 그럴 때마다 다른 전용 캡처 도구를 쓰곤 했었다. 그런데 크롬은 제법 오래전에 개발자 도구에서 전체 웹페이지 스샷 기능을 제공하고 있었기에 이 기능을 한번 써보고 싶었다. 크롬 개발자 도구에서 웹페이지 전체 스샷을 찍는 방법은 간단하다. 개발자 도구를 열고 COMMAND+SHIFT+P키를 눌러 Full Screen Capture를 찾아서 실행시키면 된다. 그런데 문제는 이 명령이 안 보인다는 점이다.왜 없는지 한동안 이해를 못 했는데 드디어 이해했다. 개발자 도구의 언어를 한국어로 세팅하면 해당 명령도 한국어로 바뀌기 때문이다. 해답을 찾은 김에 개발자 도구가 한국어로 설정된 크롬에서 웹페이지 전체 스크린샷을 찍는 방법을 간단히 .. 2024. 10. 8. 터미널에서 JSON 데이터 예쁘게 보기 인코딩 방식에 따라 다르긴 하지만 대체로 파일로 저장된 JSON 데이터는 개행이나 들여쓰기가 다 사라져서 눈으로 읽기 난감한 경우가 많다. 이럴 때는 어느 정도 자동으로 포매팅해서 읽는 방법을 쓸 수 있다. 이 글에서는 대충 두 가지 방법을 정리해 본다. 파이썬의 json.tool 활용Python 2.6 이상에서 사용 가능한 방법으로 json.tool이라는 모듈을 이용하면 JSON 데이터를 재정렬해서 읽기 편하게 변경할 수 있다. 예를 들자면 아래와 같은 방식으로 쓸 수 있다.echo '{"name": "Conrad", "age": 999}' | python -m json.tool위 예제를 실제로 셸에서 실행시켜 보면 아래와 같이 출력된다.$ echo '{"name": "Conrad", "age": 9.. 2024. 10. 3. PostgreSQL에서 로컬 한정 패스워드 없이 로그인 하기 이번 글은 로컬에서 PostgreSQL 서버로 접속할 경우 패스워드 없이 접속 가능하게 설정하는 방법에 대한 것이다. 로컬에서 접속하는 경우는 패스워드가 굳이 필요하지 않은 경우가 있을 수 있는데 특히 코드에서 패스워드를 생략시킬 수도 있어서 어떤 면에선 보안적 이점이 있을 수도 있다. 일단은 패스워드 없이 사용자를 생성해 보자.패스워드 없이 PostgreSQL 사용자 생성하기기존 방법과는 조금 다르게, 패스워드 없이 사용자를 생성하기 위해 createuser 커맨드를 셸에서 사용해 보자.createuser [username]혹시나 사용자가 제대로 생성되었는지 궁금하다면 콘솔에 접속해서 확인해 보자.psql postgres여기서 \du 명령으로 사용자 목록 확인이 가능하다.슈퍼유저 권한 주기 (옵션)필요.. 2024. 9. 25. PostgreSQL에서 사용자 및 DB 생성하기 PostgreSQL을 정상적으로 설치하고 초기 설정했더라도 사용자와 DB를 생성하지 않으면 실질적으로 아무 작업도 시작할 수 없다. 그래서 이번에는 PostgreSQL에서 사용자 및 DB를 생성하는 방법을 정리해 보자.PostgreSQL 사용자 생성하기기본적으로 PostgreSQL 셸은 psql이라는 명령으로 시작한다. 이 명령을 이용해 아래와 같은 커맨드를 작성해서 관리 콘솔에 접속할 수 있다.psql postgres 이 관리 콘솔에서 아래와 같은 SQL 구문을 통해 사용자를 생성할 수 있다.CREATE ROLE username WITH LOGIN PASSWORD 'password' 당연하지만 username과 password는 원하는 것으로 적절히 바꿔주면 된다.사용자 생성 방법은 이 외에도 몇몇.. 2024. 9. 24. macOS에서 PostgreSQL 설치 및 초기 설정 어쩌다 PostgreSQL을 취미 삼아 써보면서 알게 된 지식들을 하나씩 정리하려고 한다. 이 글은 첫 글로 간단하게 설치하고 초기 설정을 하는 법을 정리한다.설치하기 (Homebrew)설치 방법은 여러 가지가 있겠지만 여기서는 macOS를 가정하고 있으므로 가장 자주 쓰이는 듯한(?) Homebrew를 통해 설치한다. 물론 이 패키지 매니저를 쓸 때는 아래와 같이 아주 간단히 설치할 수 있다.brew install postgresql다만 이 커맨드로 설치할 경우 최신 버전이 아닌 가장 최근 메이저 버전의 formula로 설치된다는 특징이 있다. 개인적인 경험으로는 postgresql@14 버전이 설치되었는데 시점에 따라 다른 버전이 설치될 수 있다. 어쨌든 최신 버전이 아닌 14 버전으로 픽스되어서 설.. 2024. 9. 23. 애플 "It's Glowtime" 이벤트 내용 대충 정리 미국 시각 9월 9일, 한국 시각 9월 10일 열린 "It's Glowtime", "이제 새롭게 빛나다"라는 주제의 애플 이벤트가 열렸다. 주로 신제품 발표로 구성된 이번 행사는 그다지 정리할 게 없는 약간은 심심한 이벤트 같았다. 그러니 정리 글도 초 간단하게 정리해 보자.시작은 늘 그랬듯이 자기 자랑부터 시작한다. 우쭈쭈 잘한다 우리 팀쿡.Apple Watch Series 10 그리고 Apple Watch Ultra 2 Black Titanium애플워치 시리즈는 처음부터 지금까지 계속 관심이 없어서 뭐가 뭔지 모르겠다. 뭐 좋아졌겠지 이런 생각이다. 가격은 Series 10은 599000원부터, Ultra 2 블랙 티타늄은 1149000원부터이며 9월 20일 출시 예정이다.AirPods 4AirPod.. 2024. 9. 10. uv - Python의 대안 패키지 및 프로젝트 관리자 어쩌다가 파이썬에 uv라는 또 다른 패키지 매니저가 있는 것을 알게 되었다. 새롭다고 하기엔 나온 지 좀 된 것 같지만 그래도 새롭게 알게 되었으니 이 uv에 관해서 간단히 정리해 보자.uv - An extremely fast Python package and project manager, written in Rustuv는 대놓고 속도를 가장 중요시하는 패키지 및 프로젝트 매니저임을 강조하고 있다. 심지어 Rust로 쓰여서 상대적으로 Python에 비해 가볍고 빠를 수밖에 없어 보인다. 물론 Python용 도구가 Python으로 쓰이지 않은 것에 의아함이 있을 수도 있겠지만 아무렴 어떨까.설치 방법은 다채롭다. 공식 저장소에서 소개한 내용과 개인적으로 시험해 본 내용을 정리하면 이렇다.# macOS 및 .. 2024. 9. 3. 애플 차세대 OS 버전 2종의 개발자 베타 공개 애플은 미국 시각 9월 28일 애플 플랫폼 OS들의 차세대 버전 및 차세대 버전의 첫 마이너 업데이트 버전들의 개발자 베타를 공개했다. 뭔가 제목은 좀 혼란스러운데 메이저 버전과 마이너 버전이 동시에 개발되니 많이 혼란스럽긴 하다.우선 9월 9일 발표를 앞둔 신제품들과 출시를 맞추려는 듯한 차세대 메이저 버전의 여덟 번째 개발자 베타가 공개되었다.macOS 15 beta 8iOS 18 beta 8iPadOS 18 beta 8visionOS 2 beta 8tvOS 18 beta 8기존 루머에서는 발표 일정을 고려하여 일곱 번째 베타가 마지막이지 않겠냐는 추측이 돌았는데 보기 좋게 깨져버렸다. 어쨌든 이 버전들은 출시가 막바지인 만큼 기능적인 변화는 거의 없을 것으로 추정된다.그리고 위 버전의 Apple I.. 2024. 8. 29. 애플 macOS 14.5, iOS 17.5 등의 OS 라인업 공식 릴리즈 애플은 macOS 14.5, iOS 17.5 등의 애플 플랫폼용 OS들의 마이너 업데이트를 RC가 나온 지 며칠 만에 정식으로 공개했다. 다만 공식 릴리즈 정보 사이트에는 이번에도 공시가 늦어지고 있어서 이번 글도 커뮤니티 기반의 정보들로 작성한다. 어쨌든 대상 버전 및 업데이트 내역은 다음과 같다.macOS 14.5: News+ 앱에 신규 게임 추가 및 관련 기능 개선, 버그 수정 등iOS 17.5: 유럽 지역 사이드로딩 지원, News+ 앱에 오프라인 모드와 신규 게임 추가 및 관련 기능 개선, 원치 않는 블루투스 추적 알림 추가, 보안 결함 및 버그 수정 등tvOS 17.5: 버그 수정 등watchOS 10.5: Pride Radiance 시계 모드, 버그 수정 등이미 기존의 개발자 베타 등으로 잘.. 2024. 5. 14. 애플 macOS 14.5 RC 개발자들에 공개 미국 시각 이틀 전 그리고 어제 애플은 다양한 OS 라인업의 RC 및 베타를 공개했지만 유독 macOS만 릴리즈에 빠져서 맥 빠진(?) 소식이 전해졌는데, 다행히도 하루 뒤인 미국 시각 5월 9일 macOS 14.5의 RC(Release Candidate, 릴리즈 후보)도 개발자 베타 형식으로 공개되었다는 소식이 전해졌다. 다만 공식 릴리즈 정보 사이트에는 상당히 늦게 정보가 올라왔다.어쨌든 이번에는 커뮤니티를 통해 macOS의 릴리즈 노트가 전해졌다.애플 뉴스+에 Quartiles라는 게임이 추가되었다.애플 뉴스+의 스코어보드를 통해 Crossword, Mini Crossword, Quartiles 점수를 볼 수 있다.이게 전부일까? 과연 공식일까?애플 뉴스+ 개선 소식은 이미 앞서 다른 OS 라인업에.. 2024. 5. 10. 애플 iOS 17.5 등의 RC 버전 개발자들에 공개 애플은 미국 시각 5월 7일 iOS 17.5 및 비슷한 시기의 애플 플랫폼 OS 라인업의 베타 및 RC(Release Candidate, 릴리즈 후보) 버전들을 개발자 베타 형식으로 공개했다. 그런데 개인적인 사정으로 글 작성이 늦어지는 사이에 약간의 변화도 생겨서 이틀 간의 소식을 대충 뭉뚱그려서 정리할 수 있었다. 대략 정리하자면 이렇다.iOS 17.5 RC: 유럽 지역의 사이드로딩 지원 등 기존의 알려진 업데이트 내역 외에 애플 뉴스 개선, 신형 스피커 지원 등이 추가로 알려지고 있다.iPadOS 17.5 RC: 특별 행사를 통해 알려진 신형 애플 펜슬 프로의 여러 신기능 지원 및 배터리 헬스 관련 등 기존의 업데이트 내역에서 바뀐 것은 없는 듯하다.visionOS 1.2 beta 5: 다른 라인업.. 2024. 5. 9. 애플 M4 및 신형 아이패드 프로 등 공개 앞서 전달했던 대로 애플은 미국 시각 5월 7일 'Let Loose'라는 온라인 특별 행사를 개최했다. 여기서 차세대 애플 실리콘인 M4와 신형 아이패드 프로, 신형 애플 펜슬 프로, 신형 아이패드 에어 등의 제품을 발표했다.M4 기습(?) 공개성능이야 당연히 M3보다 개선되었을 거다. 해당 분야의 덕후(?)나 전문가(?)가 아닌 이상 굳이 스펙 거론을 할 필요는 없을 것 같다.다만 이번의 관심사는 전반적인 성능이 아니다. 바로 AI에 대한 것일 테다. 거기에 애플은 화답이라도 하듯이 여러 개선점을 선보였다. 특히 메모리 대역폭이나 CPU에서의 머신러닝 개선, 이 세상의 모든 NPU보다 빠르다는 뉴럴 엔진이 탑재되었다고 주장하며 애플이 얼마나 AI를 신경 쓰고 있는지를 강조했다.하지만 아무래도 엔비디아의.. 2024. 5. 8. 애플 macOS 14.5, iOS 17.5 등의 네 번째 개발자 베타 공개 애플은 미국 시각 기준 4월 30일 애플 플랫폼 OS 라인업의 개발 중인 버전인 macOS 14.5, iOS 17.5 등의 네 번째 베타를 개발자들에게 공개했다. 이는 지난 베타 3에서 약 일주일 만의 공개다. 각 버전 및 업데이트 내역은 이전과 큰 차이는 없겠지만 다시 정리하자면 다음과 같다.macOS 14.5 beta 4: 이번 베타에서도 이전과 딱히 바뀐 점은 없고 버그 수정만 있는 모양이다. 애초에 상세한 업데이트 내역이 알려진 바도 없다.iOS 17.5 beta 4: A/S 과정에서 내 아이폰 찾기를 끄지 않고도 수리 상태를 확인할 수 있게 되는 모양이다. 그 외에는 EU DMA 준수를 위한 사이드로딩 지원 등이 주요 업데이트 내용이었다.iPadOS 17.5 beta 4: 이번 베타에서도 이전과.. 2024. 5. 1. 이전 1 2 3 4 ··· 18 다음 728x90 반응형