Blog
로보락 S8 프로 울트라 사용 후기
사용하고 있던 로보락 S6가 고장났다. 레이저 센서가 돌지 않아서 청소를 시작할 수 없었다. 검색을 해보니 2만원정도에 교체용 모터를 사서 갈면 고칠 수 있을 것 같은데 배터리도 상태가 안 좋아서 그동안 계속 점찍어뒀던 S8 프로 울트라로 교체했다. S6도 물걸레 청소를 할 수는 있지만 물통도 작고 급수 필터도 계속 막혔다. 청소중에 계속 물통을 채워줘야 하고 청소가 끝나면 걸레도 따로 빨아줘야 했다. 번거롭고 성능도 별로여서 물걸레질만 하는 에브리봇 엣지도 사용해 봤는데 이것도 걸레 처리나 물 급수에는 비슷한 문제가 있어서 ……
life |2024-05-15 | Comments (0)
노드 간의 포함관계를 확인하는 contains
노드가 다른 노드를 포함하고 있는지 확인하고 싶을 때 Node.contains를 사용한다. 클릭 위치에 따라서 레이어가 열리고 닫히는 동작을 제어하고 싶을 때 유용하게 사용할 수 있다. 버튼 클릭으로 레이어를 열고 레이어가 아닌 다른 곳을 클릭 했을 때 레이어를 닫게 하는 기능은 웹에서 많이 볼 수 있다. 여는 동작은 쉬운데 닫는 동작을 구현 할 때 사용자가 클릭하는 곳을 판단하는 부분이 까다로운 부분이다. const css = document.createElement('style'); css.innerHTML = ……
dev |2024-04-21 | Comments (0)
HTTP 리다이렉션과 메서드 변경
POST 액션으로 항목을 생성을 하고 생성된 항목의 상세페이지로 리다이렉션을 시켰는데 작동하지 않았다. 맨날 쓰던 기능이 왜 작동하지 않는지 봤더니 아무 생각없이 복사해온 HTTP 코드 307(Temporary Redirect)이 문제였다. 리다이렉션을 할 때 메서드가 변경되는 경우도 있고 유지되는 경우도 있는데 307은 메서드와 바디가 유지되면서 이동되기 떄문에 원하는대로 작동하지 않은 것이었다. POST나 PUT 다음에 GET으로 페이지 이동을 할 때에는 303(See Other)이 적절하다고 한다. GET이 아닌 다른 메 ……
dev |2024-03-02 | Comments (0)
Flask에서 SvelteKit으로
파이썬에 익숙해지고 싶어서 사이트 개발 언어를 바꾼지 사년만에 이번엔 스벨트킷으로 바꿨다. 생업으로는 자바스크립트를 많이 다루다보니 아무래도 파이썬 쓰는 시간이 적고 이런 정도의 코드를 짰다고 익숙해지는 것은 무리였다. 스벨트킷에 익숙해져서인지 뭐하나 바꾸는데도 조금 답답했다. 특이한 문법들은 잘 익숙해 지지 않아서 매번 검색해서 다시 익히려니 쉽지 않았다. 임포트가 자바스크립트와 많이 다른 것도 어려웠다. PHP에서 파이썬으로 넘어올 때 보다는 훨씬 수월했다. 전에 갈아 엎을때 아무래도 정리가 많이 되기도 했고 로그같이 잘 ……
dev |2024-02-17 | Comments (0)
Focus, blur 이벤트와 focusin, focusout 이벤트
focus, blur 이벤트는 버블링되지 않지만 focusin, focusout 이벤트는 버블링 된다. 2011년에 한 제이쿼리 교육 자료에도 이 내용이 있는데 내 머리속에는 없다. IE는 무려 2001년, 크롬과 사파리는 2011년, 파이어폭스는 2017년 부터 지원하기 시작했다. 스펙에는 발생 순서가 명시되어 있지만 스펙보다 구현이 먼저 되었다 보니 역시나 브라우저 호환성 문제가 있다. 동작은 거의 동일하지만 섞어쓰면 원하는대로 동작하지 않을 수 있다.
dev |2024-02-03 | Comments (0)
사진의 날짜 정보 수정하기
사진 찍은 날짜를 바꾸고 싶다는 부탁을 받아서 제대로 수정하는 방법을 살펴봤다. 개인적으로는 애플 포토(Photos)를 사용해서 사진을 관리하는데 가끔 날짜가 이상한 사진은 간단하게 수정이 가능하다. 그런데 포토에서 수정한 사진은 다시 원래대로 되돌리는 것도 쉽다. 사진의 데이터가 교체되는 것이 아니라 어딘가 다른 곳에 저장되는 것 같다. 사진에는 촬영한 시각이나 장소와 같은 다양한 데이터가 교환 이미지 파일 형식(Exif; EXchangable Image File format)으로 저장된다. 실제 날짜를 변경하려면 이 데이터 ……
software |2024-01-27 | Comments (0)
개인 공간
웹에 개인 공간을 검색해보니 인간이 안정감을 느끼는 다양한 공간과 거리에 대한 얘기들이 나오는데 관련이 있을 수도 있고 없을 수도 있는 얘기다. 집을 이사하면서 때가 잘 맞지 않아 3개월 정도 원룸에서 생활을 했다. 성인 두명, 아이 두명, 고양이 두마리. 수납 공간이 잘 되어 있는 원룸이었지만 거주 인원이 많다보니 누울 수 있는 자리를 펴면 거의 공간이 남지 않았다. 그나마 있는 자투리 공간은 건조기와 스타일러, 데스크톱과 프린터가 차지했다. 이사 전에는 건조기가 필요할까 생각했었지만 왠걸, 건조기 없었으면 큰일날 뻔 했다. ……
life |2024-01-23 | Comments (0)
Visual Studio Code 자동 포매팅 안하고 저장하기
VS Code를 사용하는 많은 사람들이 자동 코드 포매팅을 켜놓았을 것이다. 코드를 저장하거나 복사 붙여넣기를 할 때에 미리 설정되어 있는 포매팅 규칙을 적용해주는 기능이다. 코드 포매팅에 들어가는 시간을 획기적으로 줄여주기 때문에 생산성 향상에 긍정적인 영향을 미친다고 생각한다. 모든 파일에 코드 포맷이 잘 적용되어 있다면 문제될 것이 없지만 오래된 프로젝트나 중간에 포매팅 규칙이 바뀐 경우에는 난감해진다. 내가 수정하지 않은 부분이 포매팅 변경 때문에 수정 내역으로 커밋에 들어가게 된다. 수정하지 않은 줄이 코드 변경 내역 ……
dev |2023-08-20 | Comments (0)
:has() 셀렉터
부모 요소 셀렉터는 오래전 부터 많은 개발자들이 원하는 기능이었다. 하지만 탐색 순서나 순환 참조와 같은 브라우저 성능과 관련된 구현 문제가 있어서 오랬동안 실현되지 못했다. 20여년이 지나서야 CSS4 스펙에 추가되고 2021년에 구현을 시작한 브라우저가 나오고 2022년에 기능을 탑재한 브라우저들이 출시됐다. 지금은 파어어 폭스를 제외한 대부분의 브라우저가 :has()를 지원하고 있다. 파이어 폭스도 설정으로 활성화 할 수 있고 곧 나올 것으로 기대된다. 나는 신기술을 좀 보수적으로 적용하는 편인데 :has() 셀렉터는 적용했을 ……
dev |2023-07-16 | Comments (0)
PG RX-78-2 Gundam 30th Anniversary Extra Finish Version
10년도 더 전에 일을 좀 도와드리고 선물로 받은 키트다. 그동안 엄두가 안나서 조립을 못하고 있었는데 계속 들고만 다니고 있어서 맘먹고 조립을 했다. PG는 처음으로 조립해 봤는데 무게도 그렇고 MG나 RG에서는 느껴보지 못한 완성도를 느낄 수 있었다. 기존의 PG RX-78에 코팅을 새로한 버전이라고 하는데 조명이 안좋아서 사진은 별로지만 금속 광택의 느낌이 아주 좋다. 단점이라면 아직 언더 게이트 같은게 없는 시절이었는지 게이트가 붙어 있던 곳을 코팅때문에 어떻게 처리를 할 수가 없어서 떼어낸 부분이 눈에 많이 띈다. ……
hobby |2023-06-04 | Comments (0)