반응형

아래와 같이 해당 BOOLEAN 타입의 컬럼 값을 반전시켜 저장하려고 하는 쿼리가 있습니다.

update table 
set column = !column 
where seq = 1

 

실행을 하면 오류가 발생하는데요 이유는 PostgreSQL에서 ! 연산자는 지원되지 않기때문입니다.

대신 NOT 키워드를 사용해야 합니다.

해결 방법

컬럼의 값을 반전시키기 위해 아래와 같이 쿼리를 수정합니다.

UPDATE table
SET column = NOT column
WHERE seq = 1;

 

설명

  • NOT column은  컬럼의 값을 True에서 False로, 또는 False에서 True로 반전시킵니다.
  • 컬럼이 BOOLEAN 타입일 때만 NOT 연산을 사용할 수 있습니다.
728x90
반응형
반응형

벨로스타 U22(전기자전거)와 메리다 사일렉스 700(그래블)의 안장을 바꾸기 위해 한동안 인기 있던 RYET3D 안장을 구매해봤습니다.

모델의 종류가 생각보다 많아서 놀랐는데 유튜브에서 가장 많이 나온 모델은 전체가 다 벌집같은 3d구조가 다 보이는데 빕의 보풀이 생긴다는 리뷰들이 있어서 엉덩이가 닫는 부분은 소재로 덮여있는 모델로 선택했습니다.

 

모델명은 RT06 3D (왼쪽)와 RYET ULTRA 3D(오른쪽)라고 되어 있는데 ULTRA 모델은 확실하지가 않네요.

가격은 50.91달러 와 64.83달러를 주고 구매했습니다.

달러라 환율에 따라 가격은 바뀔수도 있고 알리에서 검색하면 더 저렴하게도 구매할 수 있지 않을까 싶네요

안장 포장샷

 울트라 모델이 가격이 조금더 비싸서 인지는 모르겠지만 포장이 달랐습니다. 뭔가 정품과 가품같은 느낌이랄까요. 

알리에서 사는 제품은 포장을 딱히 신경쓰지않지만 두 제품을 동시에 구매해서 받아보니 확실히 느낌은 다르네요

 

내부포장

RT06은 벌크 박스 같아 걱정했는데 안장은 뽁뽁이에 잘 담겨 왔네요. 울트라 모델도 뽁뽁이로 잘 감싸서 가방안에 담겨왔습니다.

 

안장 기본 모양

안장의 모양은 위의 사진 처럼 생겼습니다.

울트라가 길어보이지만 제원은 RT06은 너비 145mm 길이 245mm 울트라 모델은 너비 143mm 길이245mm 로 길이는 갖고 너비가 약간 작습니다.

개인적으로 U22에 장착할 RT06은 생활형 자전거나 미니벨로와 어울릴거 같고 사일렉스에 장착할 울트라 모델은 로드나 그래블에 잘 어울려 보입니다. 

 

안장 바닥

둘다 카본으로 만들어져있는 안장이지만 바닥을 보면 다르게 생겼습니다.

울트라는 카본 소재 제품들에서 흔히 볼수 있는 패턴인데 RT06은 대리석 같은 불규칙한 패턴인데요 

상품설명에 상세한 내용이 없어서 확실하지는 않지만 RT06의 패턴을 봐서는 포지드 카본이지 않을까 싶네요

제작방식의 차이일뿐 둘다 카본이라고 합니다.

 

쿠션

안장의 쿠션감입니다.

RT06이 확실히 부드러웠습니다. 눌러보면 더 적은 힘으로 많이 들어가는게 느껴졌습니다. 

울트라는 조금 더 단단한 느낌이지만 탄력이 조금 더 좋다는게 확실했습니다. 

저는 개인적으로 탄력이 있는게 더 맘에 드네요.

 

무게

두 모델 다 상품 설명상으로 175g (오차 +/- 10g) 라고 합니다.

실측 무게를 보면 RT06은 오차 안에 들어오는 무게로 준수했습니다.

기대했던 울트라는 오차가 무려 +20g 이였습니다. 허용 오차보다도 10g이 오버 되었습니다.

알리에서 구매한 상품이라 그러려니 하고 넘어갈수도 있지만 유명세에 비해 많이 아쉽네요.

 

이전 사용 안장 무게

교체 대상 안장들의 무게를 측정해봤습니다.

왼쪽은 u22의 기본안장이고 오른쪽은 사일렉스 700의 기본 안장입니다.

생각해보 많이 무겁습니다. 각각 185g, 160g 경량화 했네요

 

교체샷은 따로 찍지를 못했네요.

u22는 제 자전거가 아니기에 타보지 않아서 RT06은 경험해보진 못했지만 사일렉스는 교체 후 바로 30km정도 주행해봤습니다.

주행 결과 이전 안장보다는 편한감이 있었습니다. 다만 안장설치할때 포지션을 잘못 잡아서 그런지 잠깐씩 섰을때나 다시 출발할때 엉덩이를 찌르거나 안장 패드에 걸리거나 했는데 앞부분의 플라스틱이 조금 튀어나와서 단단하고 조금 날카로운 느낌이있었습니다. 안장으로 조금 뒤로 위치시키면 걸리적 거리진 않을거라 해결될 문제인거 같긴하지만 마감이 조금 아쉽다고 해야 할까요?

그 외에는 맘에 들었네요. 주말에 장거리 주행을 해보면 또 다른 느낌이 나겠지만 구매해서 사용해볼만한 안장인거 같습니다.

 

 

 

728x90
반응형
반응형

혼공 머신러닝 예제 진행 중 발생한 문제로

혼공 머신러닝의 경우 코렙사용을 기준으로 예제가 작성되다 보니 종종 직접 설치해야 하는 라이브러리들이 생깁니다.

!wget https://bit.ly/fruits_300_data -O fruits_300.npy

위의 코드도 그런 문제인데 실행해보면 ModuleNotFoundError: No module named ‘wget’ 이란 오류 메세지가 나오게 됩니다.

모듈을 못찾으니 conda list 또는 pip list로 설치된 모듈들을 확인 실제 존재 하지 않는다면( 당연히 없을 확률이 훨씬 높습니다)

conda install wget
or
pip intsll wget

설치를 하고 모듈을 설치 했으니 당연히 import wget 해서 모듈 import를 진행했는데 ModuleNotFoundError: No module named ‘wget’ 오류가 다시 나오게 됩니다.

wget은 리눅스 커널 명령어여서 그런지 import필요없이 처음 실행하고자 하는 코드를 그대로 실행하면 문제없이 파일 다운로드가 진행 됩니다.

구글링을 통해 다른 분들의 사례를 보면 설치 import를 해야 한다고 하는데 저는 오히려 import없이 진행해야 오류가 없던데 이유를 찾지는 못했네요.

참고로 wget 앞에 느낌표(!)는 리눅스 셸 명령임을 코드셸에 알려주기 위해 사용합니다.

728x90
반응형
반응형

충주 종합 운동장

충주 종합 운동장 주차장은 무료로 개방하였다고 해서 전날 밤 미리 내려갔는데요 자정쯤 도착했는데 미리 오신 분들이 꽤 많아서 놀랐어요. 주차장은 여러곳이여서 주차 문제는 없어 보였습니다. 

행사장

아침 6시 반쯤 이였던거 같은데 주차장에 차들이 조금씩 들어오고 대회 준비하는 분들이 늘어나고 있었는데 주 행사장은 아직 조용했습니다. 3개의 천막 앞 중앙에 경품추천함이 있었는데 전 대회끝나고 바로 집으로 갈 예정이였기에 넣지는 않았지만 경품이 참 탐나긴했어요.

대회 진행 요원분들

양양그란폰도때는 시간 맞춰 행사장에 도착해서 못봤는데 대회 진행 요원 분들이 상당히 많았습니다. 정말 고생하셨고 감사했습니다.

행사장에 모인 스머프들

누군가 스머프 같다고 하던데 정말 스머프 같은 라이더들

일어난 직후엔 한명도 안보였던 사람들이 대회 시작 시간쯤 되니 엄청 나게 많아졌어요. 사람보다 자전거 구경하는 재미가 쏠쏠했어요.

2차 보급소

대회 출발할때 사진 찍고 싶었는데 타이밍을 못잡아서 못찍고 1차 보급소는 어버버 하다가 못찍고 2차 보급소에 도착해서야 기록 하나 남겼네요. 1차 보급소에서 화장실 줄이 너무 길었는데 많은 분들이 1차에서 화장실을 가셨는지 2차 보급소는 줄이 많이 길진 않았어요. 다만 진행요원 분들이 자전거를 보급소 쪽에 가깝게 붙여 두라고 하는데 말을 안듣는 분들이 많았어요. 보급소 장소 제공을 저 주요소에서 해주신거같은데 유류 저장고쪽에 가지말라고 하는데도 가시는 분들도 몇몇 계셨고 사무실 앞 테이블 의자에 앉아서 취식하는 분들도 있고 나중엔 주유소 관계자 분들이 화내시는 장면도 목격했는데 내년에 대회가 또 열린다면 여기선 보급소가 안되겠다 싶더라구요.  

쥐에게 콱 물려버리다

2차 보급소 후에 KOM구간이면 첫번째 메인 업힐인 지릅제가 나오는데 너무 힘들어서 사진 하나 못 남겼네요. 중간중간 사진을 찍어서 기록에 남기겠다는 저의 계획이 첫번째 오만이였네요. 아직 자린이인 저에겐  무리였습니다.

메디오로 갈까란 고민도 살짝했지만 그란폰도 도전하기로 했으니 그란폰도 코스로 접어들고 오버페이스로 달리다 두번째 메인 업힐 느리티 북측에서 결국엔 쥐가 꽉 물어버려서 정상 300미터 남기고 쉬었다가 끌바를 했습니다. 업힐을 우습게 본 두번째 오만이였습니다. 

크램픽스를 두개 먹었는데 세개는 먹었어야 하나봐요

세번째 보급소 간식

쥐가 한번 나면 조금만 무리해도 콱 물어버리려고 하기에 조심조심 힘겹게 달려서 도착한 세번째 보급소에서 먹은 간식

콩물에 도너츠(?) 조각들이 있었는데 콩물은 아무맛도 없었는데 도너츠랑 같이 먹으니 맛있더라고요. 하나 더 먹으려다 콜라를 원샷했더니 배가 너무 불러서 바로 출발해버렸네요.

 

이후에도 사진하나 남기지 못하고 피니쉬했고 대회행사장 도착해서 정지 후 두다리가 땅에 닿으니 그간 버티던 쥐들이 양쪽 허벅지를 확 물어버려서 한참 서있다가 메달만 받고 행사 후반에 제공하다고 했던 스파게티도 먹지 못하고 집으로 잽싸게 복귀했습니다. 쥐난 허벅지도 사진으로 남기려고 했는데 조금만 움직여도 너무 아파서 그럴 정신이 하나도 없더라고요. 

대회 완주 메달

보통 메달은 전체 메탈이던데 충주 그란폰도 메달은 하단이 플라스틱으로 되어 있는데 전 너무 맘에 들었습니다. 

헬멧 부착용 배번표의 만행

헬멧에 붙이는 스티커 배번표를 떼어 내면 헬멧 데칼이 떨어져 나간다고 이전 다른 대회 참가자들의 글을 봤는데 그걸 몸소 체험했네요.

뭔가 아껴쓰는 타입은 아니라 크게 신경은 안쓰지만 떼어낼때만큼은 맘이 아팠네요.

 

대회기록

양양그란폰도랑 다르게 충주 그란폰도는 결과가 꽤 디테일한거 같아요. 아니면 메디오 폰도였어서 차이가 있는 걸까요?

입문 2년차에 접어들고 전반기 메디오 폰도, 후반기 그란폰도 참가했는데 컷오프만 되지 않았으면 했는데 생각보다 잘 탄거 같아서 만족했습니다.

기록은 만족했지만 너무 여유가 없었고 혼자는 의외로 외롭다라고 느낀 대회였어요.

그리고 중간중간 사진을 찍는거보다 액션캠으로 찍고 싶다는 생각도 하게 되네요. 

그래도 내년에도 참가하고 싶고 참가한다면 액션캠을 꼭 가져가야겠어요.

 

 

728x90
반응형
반응형

지난 주에 19일부터 대회 기념품 배송이 될거라는 안내가 왔었는데 딱 맞춰 19일에 배송이 왔네요.

대회안내 홈페이지에는 져지가 그림으로 되어 있고 색도 녹색이라 별 기대 안했는데 실제 받아본 져지는 너무 맘에 드네요.

오른팔에 충주 그란폰도 대회 엠블럼 왼쪽엔 뭔지 모르겠어요 스폰서인 VSOL인건가... 암튼 나름 예쁜거 같아요.

산티니 져지는 처음 입어보는건데 사이즈가 정말 크게 나오는듯하네요. 저는 아덴바이크나 오스바이크 져지를 주로 입는데 같은 사이즈임에도 산티니가 더 큽니다.  

 

마라톤 대회도 그렇듯 그란폰도 대회도 이런 가방을 많이 주는듯 합니다. 보통은 비닐로 된 경우가 많던데 천으로 되어 있네요. 운동 후 옷 넣어다니기 좋겠어요.

스폰서인 파워풀엑스의 진생 리커버리 크림

파워플렉스인줄 알았는데 파워풀엑스였네요. 몇년전에 박찬호 크림으로 꽤나 유명했던거 같은데 지금 장민호로 모델이 바뀌었네요. 대회 끝나고 발라보는걸로....

 

트렉도 스폰서라고 되있긴 했는데 그냥 실리콘 스포츠 밴드입니다. 굳이?

대회 홈페이지 기념품안내에는 없네요.

역시나 스폰서인 에네스티의 썬스틱과 수딩젤입니다. 그렇다구요.

여행용으로 쓰는걸로

경품권과 배번표, 홀더

배번표는 기록칩이 내장된 플라스틱 형태로 싯포스트에 설치하는 형태로 제공하네요. 양양그란폰도에서는 져지 뒤에 부착해야 해서 옷핀으로 져지를 찔러야 해서 슬펐는데 충주 그란폰도 맘에 듭니다. 물론 양양 그란폰도는 충분히 재밌게 타고 왔습니다.

 

그란폰도 코스 고도표? 큐시트? 자린이에겐 신기한게 많네요. 평지가 거의 어...없는데..... 

 

아직 자린이 인지라 전반기에 양양 그란폰도 대회 메디오 폰도에 참가하고

열심히 타서 충주 그란폰도에 참가하겠다는 나름의 계획을 세웠는데 대회가 코앞으로 다가오니 컷오프 될까 두렵네요.

 

충주 그란폰도는 산티니 져지를 주기 때문에 참가비가 비싼편이에요.

경품으로는 라 스텔비오 산티니 대회 참가권과 왕복 항공권이 메인이고 그외에도 여러가지가 있더라구요. (휠이나 헬멧이 더 받고 싶은데..)

 

작년에는 비가 내려서 메디오폰도로만 진행했던데 올해는 맑은 날을 기대해봅니다.

728x90
반응형
반응형
let { type } = req.params;

위의 코드는 구조 분해 할당 (Destructuring Assignment)을 사용한 것입니다. . 아래는 이에 대한 상세 설명입니다.

 

1. req.params:

  • 이 코드는 Express.js 애플리케이션에서 사용됩니다. 여기서 req는 **요청 객체(request object)**입니다.
  • req.params는 URL에서 **경로 매개변수(route parameters)**를 담고 있는 객체입니다. 이 매개변수들은 일반적으로 경로에서 : 기호로 정의됩니다. 예를 들어:
app.get('/user/:type', (req, res) => {
  // req.params.type은 ':type'의 값을 가집니다
});
  • 경로가 /user/:type일 경우, type은 경로 매개변수가 되며, req.params는 다음과 같은 객체가 됩니다
{ type: 'someValue' }

 

2. 구조 분해 할당 (Destructuring Assignment):

  • { type } 구문은 구조 분해 할당입니다. 이는 객체에서 속성을 추출하는 간편한 방법입니다.
  • 원래는 다음과 같이 작성될 수 있습니다:
let type = req.params.type;

이를 아래와 같이 간략하게 작성할 수 있습니다:

let { type } = req.params;
 
  • 이 코드는 req.params 객체에서 type 속성을 추출하여 새로운 변수 type에 할당합니다.

요약

let { type } = req.params;는 req.params 객체에서 type이라는 매개변수를 추출하여 type이라는 변수에 저장하는 코드입니다. 이는 주로 Express.js에서 URL 경로의 매개변수를 쉽게 접근하기 위해 사용됩니다.

728x90
반응형
반응형

docker-compose ps 실행시 발생할 수 있는 오류

Traceback (most recent call last):
  File "urllib3/connectionpool.py", line 670, in urlopen
  File "urllib3/connectionpool.py", line 392, in _make_request
  File "http/client.py", line 1255, in request
  File "http/client.py", line 1301, in _send_request
  File "http/client.py", line 1250, in endheaders
  File "http/client.py", line 1010, in _send_output
  File "http/client.py", line 950, in send
  File "docker/transport/unixconn.py", line 43, in connect
ConnectionRefusedError: [Errno 61] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "requests/adapters.py", line 439, in send
  File "urllib3/connectionpool.py", line 726, in urlopen
  File "urllib3/util/retry.py", line 410, in increment
  File "urllib3/packages/six.py", line 734, in reraise
  File "urllib3/connectionpool.py", line 670, in urlopen
  File "urllib3/connectionpool.py", line 392, in _make_request
  File "http/client.py", line 1255, in request
  File "http/client.py", line 1301, in _send_request
  File "http/client.py", line 1250, in endheaders
  File "http/client.py", line 1010, in _send_output
  File "http/client.py", line 950, in send
  File "docker/transport/unixconn.py", line 43, in connect
urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionRefusedError(61, 'Connection refused'))

 

 

연결 거부라는 메시지가 포함이 되어 있어 혹시나 싶어 docker ps 명령을 실행하니 

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

 

위와 같은 메시지가 출력이 되었네요.

 

이전에 docker desktop을 종료시켜 두었는데 다시 실행시키고 docker ps, docker-compose ps 명령을 실행하니 이상없이 실행이 됐습니다.

 

관련 오류를 검색해보면 환경변수같은 다른 이유도 있는 듯 한데 일단 docker가 실행되고 있는지 확인 필수 인거 같습니다.

728x90
반응형
반응형

카시오 리니지의 가격이 생각보다 높아서 그간 보류했던 카시오 흑새치를 구매했습니다.

오리지널 흑새치나 청새치보다 배트맨이나 펩시가 좋을거 같아 고민하다 펩시로 정했습니다.

 

역시 심플한 카시오 시계 박스와 내부 포장이네요.  플라스틱 시계 거치대가 들어있는게 신기했습니다.

에디피스나 지샥 시계 샀을때는 못본거 같은데 말이죠

플라스틱 거치대 아래를 보면 설명서가 들어있습니다. 

 

 

사진이나 유튜브에 올라온 소개 영상보다 실물이 괜찮은거 같습니다. 

 

보호필름을 떼보면 더더욱 맘에 드네요.

펩시를 상징하는 파랑 빨강 베젤 색감도 맘에 듭니다. 

 

티셀 마린다이버와 시티즌 에코질라와 함께 크기를 비교해봤습니다.

티셀 마란다이버는 케이스 사이즈 40mm

카시오 흑새치 케이스 사이즈 44mm

시티즌 에코질라 케이스 사이즈 48mm

티셀보다는 커보이긴 한데 에코질라의 넓은 베젤과 작은 다이얼 때문인지 비슷해 보이네요.

 

러버밴드는 확실히 저렴해 보이지만 지샥의 밴드처럼 뻣뻣할 줄 알았는데 엄청 부드럽네요

하지만 포인트 없이 원컬러인게 맘에 들진않네요. 조만간 줄질을 해야겠어요

 

쿼츠 시계는 초침과 인덱스의 정렬이 잘 맞지 않는 특징이 있는데 로만손의 로레게 보다 인덱스 정렬이 잘 된듯 해요.

 

44mm사이즈 답게 손목에 올리는 꽉 차는 느낌이 있는데 저는 큰 사이즈를 선호해서 부담없고 만족스럽습니다.

 

베젤은 다이버워치 답게 단방향으로만 회전이 되는데 반대방향으로 돌려보면 살짝 움직임이 있네요.

쿼츠시계와 카시오의 저렴한 이미지에 거부감이 없다면 충분히 만조할만한 다이버 시계이지 않을까 싶네요.

728x90
반응형

+ Recent posts