넌 충분히 할 수 있어.
사람들이 말했습니다.

용기를 내야해
사람들이 말했습니다.

그래서 나는 용기를 내었습니다.

용기를 내서 이렇게 말했습니다.

나는 못해요

마지막 2차 글을 쓴뒤 거의 8개월이 지나도록 안썻던 이유는...

 

결국 수술을 하지 않았고.. 살다보니?? 이 상태로 몸이 적응을 해버렸기 때문입니다.

 

완전 쪼그리는 자세를 할경우 통증은 변함없이 있는데, 이것도 딱히 통증으로 느껴질 정도가 아닌 불편한 느낌? 정도로 호전 됐습니다

 

일상생활에 지장이 있거나, 운동할때 지장은 없는 정도여서

 

그대로 주짓수도 하고 웨이트 트레이닝도 하고 있는중 입니다.

 

(오히려 스쿼트는 중량이 더 늘었음..)

 

결론.. 저 같은 경우는 수술을 하지 않아도 그냥 살정도네요.. 

오히려 수술을 하면 큰일날뻔했습니다

반응형

삼성 SL-J1660 프린터는
저가 보급형 프린터라서 그런지,
후기와 정보가 많이 없는 가정용 프린터다.

내가 경험한 후기로써..
이 프린터는 가정에서 쓰기엔 기능이나 성능이 충분해서(스캔,복사,인쇄) 괜찮은 프린터라고 본다.
 
근데 이 프린터... 고질병이 있다.
급지 롤러 문제이다 ..

급지 롤러가 혼자 헛돌면서 용지가 들어가지 못해
출력이 불가능한 현상이 자주 발생한다.
(이 현상이 발생하면 보통 가격도 저렴했었으니..
그냥 버리고 다른 새프린터를 사버리는…ㅠㅠ)
 
사실 이 현상은 하드웨어 문제라기 보다는
소모품 문제이기 때문에 단순하게 급지 롤러만 교체하면 된다
 
그런데 이 급지롤러..
부품, 소모품으로 따로 판매도 안한다.
구할수도없다..
 
삼성 AS센터가면 별것도아니면서 몇만원을 받는다... 배보다 배꼽이큼 ㅡㅡ
이거 AS 받을필요없이 자가 수리 가능하다.
 
 
방법 시작한다.
 
 
일단 프린터를 분해해야 한다.
 
분해하려면 별모양 드라이버가 필요한데..
(내가 예전에 쓴 포스팅에 있는 드라이버 세트
알리에서 하나 장만하시길 바란다.)
 
프린터 분해는 간단하다.
 

상단을 고정하는 별나사 4개를 분해하면 프린터 껍데기를 열수있다.
 
껍데기를 열면 메인보드에 연결되있는 선 2개가 나오는데, 커넥터가 따로 있는게 아니라서
나중에 조립할때는 빠진 형태 그대로 손으로 살살 끼면 된다.
(본체 내려두거나, 다시 조립할때 실수로 이 선 접히면 절때 안됨. 접히면 단선되는거임)
 

 
 
급지롤러를 빼내려면 보이는 이 메인보드도 별드라이버를 이용해서 잠시 풀어둬야한다.
 

 

 
나사는 3개이다.
 
이 나사를 빼고나면,
이제 급지롤러와 연결된 모듈을 손으로 움직일 수 있게된다.

 
 
이 모듈에서 급지롤러만 빼내려면,
내가 올린 사진의 방향에서 모듈 오른쪽을 들어서 빼내야하는데, 
모듈 오른쪽부분 고정부분 바로밑에보면
프린터 밑에서 도구를 넣을수있게 친절하게 구멍이 뚫려 있다.

거기에 작은 드라이버를 넣어서 지랫대로 들어 올리면서 빼면 분해가 된다. 

 
주의해야될 부분은 급지롤러 모듈을 고정할수 있도록 스프링이 달려있는데.
이 스프링 달려있는 위치를 잘 기억해놨다가. 나중에 다시 잘 껴야한다.
(스프링이 어렵게 걸려있지는 않지만, 스프링 거는 고리가 어딘지 까먹을수도있으니,.)
 
 
모듈왼쪽은 톱니들이 연결되잇는데 굳이 신경 안써도 된다 그냥 모듈 오른쪽을 들은 상태로
급지롤러를 잡고  왼쪽으로 밀면서 밑으로 빼면 빠진다

 
급지롤러 오른쪽 부분을 빼면
이렇게 한쪽이 빠진 모습이 되는데
그냥 롤러를 잡고 오른쪽으로 힘줘서 빼면 빠진다.
 

이렇게 빠진 급지롤러 고무를 일단 세제뭍여서 수세미로 빡빡 닦고 물로 행구시면 촉촉해지면서 접착력이 생긴다.

(단순하게 그동안 이 고무가 마르면서 접착력이 떨어져 종이에 붙지 않아 헛돌고 용지를 못 빨아들인것임.)
 
다시 조립할때 뭐 꼭 물기가 마를 필요없구요.
닦은후 바로 다시 재조립해도 됩니다.
 
저처럼 검정테이프 같은걸로 고무를 낄부분 안에를 채워서 감아놓으면 종이와의 유격이 조금 좁아지기 때문에, 추후 나중에 다시 고무가 말랏을때 조금 도움이 된다
 
 
조립은 분해의 역순이다.
 
이렇게도 자가 수리하기가 부담스럽다면
 
분해하지 않은 상태로 그냥
용지 넣는곳 자세히 들여다 보면 급지롤러가 보이는데,
급지롤러에 분무기로 물을 한번 뿌리고 길다란 면봉같은걸로 롤러를 닦은뒤
프린터 출력을 해보세요.
급할때 임시로 사용 가능할 겁니다

반응형

8/9 토요일 아침 일찍부터 병원 두곳을 찾아갔다. 
찾아간 병원은
전방 십자인대와 반월상 연골로 유명한 네이버 카페에서 자주 거론되는
수원에 있는 병원과 선수촌에 있는 병원이였다.
규모는 둘다 2차 의료기관급이였다.
 
이번에 간 병원 의사선생님들은 
mri 보자마자 그냥 무조건 수술을 해야 된다라고 하셨다.ㅠㅠ
 
원래 다니던 병원에서는 외측 연골에 경미한 종파열이 있다고, 수술할 정도가 아니라 하였는데,
이번 병원 원장님들 께서는 실제로 관절내시경을 해야 정확히 알수있지만,.
종파열이 아니라 연골이 말려 들어간 버킷형? 파열이라고 했다 ㅜㅜ. (두분다)
 
수원병원에서는 그래도 연골 외측 바깥부분이 많이 살아있어서 예후가 좋을것이라고, 무조건 수술하라고 했고
두번째 병원에서는 연골 수술하면 20%밖에 남지않아서 격한 운동을 못할거라고 했다 ㅠㅠㅠ 
 
두분 모두 수술은 무조건 해야하며, 90%로 절제술을 해야한다고 했다..
절제술이라서 회복은 엄청 빠르지만 연골이 없어진 만큼 이후에 평생토록 관리를 계속 해야할거라고 ㅜㅜ

 
(사진은 보기 편하게 좌우 반전을 했다. 동그라미 친부분이 외측 후각부의 문제가 되는 내 연골이다 ㅠㅠ)
 
 
나는 쪼그릴때만 통증이 심하고
평소에 걷거나 뛸 때 통증도 없고..
락킹 현상이나 무릎에서 뚝뚝 소리도 안 나서 괜찮다고 생각을 했는데 
병원에서 무릎 기능검사를 하는데 와... 의사가 만질때마다 뚝뚝 소리가 나는걸 보고 수술은 해야겠구나 싶었다 ㅜㅜ
 
집에 돌아오는 길에 수많은 고민을 했다...
고민을 한 결과는.. 수술을 하는게 맞다는거였다.
 
일단 지금 당장 물리치료나 뭐 아티풀 주사 맞고 있는 거는 중단을 하려고 한다.
 
그리고 바로 수술하기보다는 2~3달 웨이트 운동으로 조금 하체 근육을 단련시켜놓고 경과를 본 후에 수술을 해보려고 한다.
연골 파열은 다시 다치게 된다면 좀 더 크게 다칠 수 있는 문제가 있기 때문에 좀 조심해야 한다고한다.
그래서 이제 무리가 되지 않는 선에서 하체운동을 해볼까 한다.
 
이번 계기로 운동 욕심을 나이에 맞게 좀 내려놓아야겠다는 생각이 들었다.
이제 나이가 40에 가까워 짐에도 불구하고,
게다가 선수도 아닌 신분에서
승부욕과 막연한 힘과시를 위해 그동안 젊은 친구들과 너무 무리하게 운동을 해왔던 건 아닌가 싶다.
 
이제 통증으로 1달동안 못했던 하체 웨이트를 다시한번 시작해보려한다

반응형

 
저는 하체 활용하는 웨이트 운동 1rm 기준으로
스쿼트 160
데드리프트 170 까지 하는 정도여서..
충분한 하체 근육,인대가 있다고 생각을 했으나
예기치 못하게 치명적인 무릎 부상을 입게 되었습니다 ㅠㅠ
 
웨이트 운동하면서 부상 경력은,. 어깨 회전근개 파열과, 허리 디스크 돌출이 있었습니다.
둘다 주사치료와 도수치료로 자연 치유하였고,
 
사실 웨이트 보다는
취미가 그래플링 운동이라서,
(경력으로는 유도 유단자이며, 주짓수 블루벨트)
어쩌면 평소에도 무릎 슬개골이 자주 아프기도했고
무리한 운동을 하면서 연골이 닳고있진 않았나 싶네요.
(무릎에 손을대면 끼기긱 거리기도 했는데, 실제로 mri 찍고 확인 했을때 퇴행성도 진행되고있다고 진단 받았어요 ㅠㅠ)
 
최근 이 글을 포스팅하기 한달 전
런닝을 시작해볼까해서, 무작정 전력질주로 20분간 뛰었었는데, (런닝화나 아무런 장비없이)
한 일주일 하고 나니
 
무릎 뒷쪽 외측 오금에서 좀 참기 힘든 통증이 시작됐습니다. 통증 느낀뒤 3일차부터 걸을때 절뚝거리시 시작했고 참기 좀 힘들어서 병원에 방문했습니다.
 
정형외과 가서 엑스레이와 초음파 진단 결과 특이사항은 없어서,
 
그 당시는 거위발 건염 진단을 받았고. 거위발 근육?에 주사를 맞았어요 (무릎쪽이였음)
 
딱히 주사를 맞고 호전되는 느낌은 없었고, 물리치료를 해도 큰 호전이 없었네요.
 
특징은 무릎을 끝까지 접으면 (쪼그리면) 아주 큰 통증이 오는거 였습니다.
의자에 앉아있다가 일어날때도 많이 아팠구요.
 
저는 단순히 무릎쪽 근육 문제일거라고 생각했고.
 
큰호전은 없었으나 점차 나아지는?(걸을때 통증은 있으나 절뚝거림이 없어짐) 느낌이들어서
첫 치료 일주일 뒤에 미련하게 운동을 가버렸었습니다 ㅠㅠ
 
유도장에서 대련중 상대방 되치기를 방어할려고 땅에 다리를 딛는 순간(체중이 오른발로 실림) 무릎에서 (크진않게) 뚝소리가 낫고
 
바로 급성으로 통증이 심해져서 그날 대련을 포기하고 다시 걸을때 쩔둑거리게 됐습니다.
 
 
정형외과에 다시 가니, mri 촬영을 해보라해서 하게됐고

소견서 들고 mri있는 병원에 찾아가 찍게되었습니다.
mri 촬영한 병원에서는 반월상 연골 외측이 조금 찢어졌다고 진단 받았습니다 .
 
진단받고ㅠㅠ 멘탈깨진상태로
원래 다니던 병원갔는데,

그 병원에서 오진이 있던것 같다며
 
반월상 연골 외측에 표제층에 종파열이있으나 수술할 정도는 아니라고 진단받았습니다 
 
그래서 그날 연골주사를 맞고
 
다음날 반월상연골 주로 보는 다른 정형외과에
가서 다시 진단받으니
 
이번 병원에서도 파열이 조금 있으나 수술할 정도는 아니고 수술은 최후수단이라며 보존치료해보자고..
연골주사는 어제 맞았으니
프롤로 주사로 연골 주위 염증 근육에 맞자고 해서 맞고 오게 됐습니다 ( 염증이 엄청많았음)
 
그리고 4일뒤인 오늘 
 
통증이 엄~청 줄었으나, 아직 무릎을 끝까지 접으면 (쪼그리면) 통증이 좀 있고, 뭔가 무의식적으로 신경이쓰여서 그러는지 무릎이 불안정한 상태입니다.
 
 
앞으로 재활 일기를 써보도록 하겠습니다 ㅠㅠ

반응형

 
리눅스에서 bad number warning 경고가 뜨는 경우가 있는데,
아마 비교연산자에서 뜰것이다.

이 메세지는
리눅스에서 문자와 숫자에 비교연산자 사용할때
os 자체에서 알아서 변환 캐스팅을 해주면서
뜨는 경고메세지입니다

비교 대상이 숫자라면 -eq 를 쓰고
문자라면 = 를 쓰세요.
 

 
$1 이 파라미터에 A가 있다고 치면
 
if [ $1 -eq A ]   : 이 경우  bad number 경고뜸
if [ $1 = A ] : 이게 맞는 문자열 비교방법
 
 
$1 이 파라미터에 숫자 2가 있다고 치면
if [ $1 -eq 2 ] : 이게 맞는 숫자 비교 방법
if [ $1 = 2 ] : 잘못된 숫자비교 방법

반응형

'프로그래밍 > os' 카테고리의 다른 글

리눅스 콘솔 계속 출력하기  (0) 2022.06.04
리눅스 sftp 사용법  (0) 2022.06.04
리눅스 alias 필요한것만  (0) 2022.05.13

저는 .. 디지털 결벽증이 있슴니다

옛날 핸드폰부터, 하드나 ssd 혹은 메모리 관련 디지털 기기는 안버리고 방치하고 냅두는..

그래서.. 오늘은 하드디스크 쉽게 버리는법을 포스팅 하겠습니다

업체나 어디 고물상을 가거나
망치로 때려뿌수는게 아닌 .. 굳이 힘들게 할 필요없어요


기본적으로 hdd는 다들 배우셨다 싶이 디스크입니다

하드디스크의 겉 케이스 쐬때기나 접촉단자를 부셔봣자 디스크가 깨지지 않는이상 데이터는 존재합니다 !!

이렇게 겉면에 망치로 뚫어봣자 디스크는 생존해 있다는겁니다



보시다 싶이 못을대고 망치로 두둘겨 찍어도, 겁나 단단합니다..


그러니....
알리에서
이천원을 주고
다용도 드라이버 셋트를 사세요 (어차피 두고두고씀)

이런거 2처넌임



이제 여기서 별모양 드라이버로
하드디스크 껍대기를 풀고 뺀찌로 열어보세요
(크기별로 다잇으니 안맞으면 바꿔가면서 돌려보셈)


그럼 이렇게 나의 데이터가 존재하는 디스크가 나타납니다

저 안에있는 베어링도 별 드라이버로 풀고
들어내면


디스크가 이렇게 나옵니다
이건 그냥 깨부시거나 유리로 분리수거 하심되요


나머지 이 빈껍대기는 철로 분리수거 하면 끝입니다

이걸로 저의 20년 이상된 데이터는 우주에서 사라졌습니다
(이미 하드에서 자연 소멸됐겠지만 ㅋㅋㅋ )

감사합니다

반응형

저번시간에

partition by를 구현한거와 비슷하게

 

이번엔 rownum을 직접 구현하고 싶을경우이다.

각각의 인라인뷰에서 rownum을 구하거나, 

mysql 처럼 @rownum = rownum +1 처럼 rownum을 변수처럼 사용하고싶은데 못할경우 활용됨

 

저번에 사용한 테스트데이터를 공유하겠습니다.

저는 주로 집에서 웹 sql 테스트 사이트를 이용하면서 공부해요

https://sqltest.net/

 

SQL Test

Free Online SQL Test Tool

sqltest.net

 

테스트 데이터는

CREATE TABLE sql_test_a 

    TDATE  VARCHAR2(8 ), 
    IDX1 NUMBER(16 ), 
    IDX2  NUMBER(16 )
); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 5, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 7, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 8, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 10, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 15, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 16, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 17, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 18, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 19, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 24, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 27, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 31, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 33, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 35, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 38, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 41, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 42, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 47, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 50, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 53, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 55, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 56, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 58, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 59, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 61, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 62, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 64, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 66, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 68, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 500001, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250203', 900001, 1); 

INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250204', 1, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250204', 2, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250204', 3, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250204', 4, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250204', 5, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250204', 6, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250204', 7, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250204', 8, 1); 
INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250204', 9, 1); 

 

라고 합시다

우리는 각각 20250203 과 202050204 일의 데이터를 하나의 쿼리에서 rownum을 만들어볼겁니다

 

 

기준 A 테이블을 잡고 B를 매핑하면서 B의 IDX1보다 작은갯수를 구해주면 IDX값과 일치하기에 ROWNUM 이 됩니다

결과

 

 

근데 여기서. 만약 IDX1의 값이 중복된 IDX2가 있다면 ROWNUM이 맞지않게됩니다.

테스트 데이터에

INSERT INTO sql_test_a (TDATE, IDX1, IDX2) VALUES ('20250204', 5, 2); 

를 추가하죠. 그럴경우 20250204 결과가

 

이렇게 맞지 않게됩니다.

 

이럴 경우는 어떻게 해야할까요? 

이럴경우 쿼리 조건에 로직이 들어가야합니다.

 

 

 

설명을 하자면.

A의 IDX1과 B의 IDX1이 같을때

(문제가 됐던 데이터 5,2를 기준으로 잡고 설명하자면)

5에서 

5,2 가 아닐때.

즉 5,1 이면 기존 처럼 계산하고.

5,2 이면 5,2 이전의 ROW (5,1) 까지 카운트 한다는겁니다. 

 

여기에 붙인 OR 절은 

IDX1과 해당하지 않는 행을 모조리 더하여 누적시키는 위한용 입니다.

 

 

 

결과는

 

 저희가 원하는 순서입니다.

 

 

반응형

아쉽게도 내가 일하는 환경의 sql은
윈도우 함수 사용이 금지된 환경이다.


윈도우 함수는 편하게 개발 할 수 있도록 도움을주는 펑션일뿐
사실 그 함수를 못쓴다고 프로그램 구현을 할 수 없는게 아님
뭐 개발할때 편하고 빠르것지만
나같은 곤조들은 그런거 없이 직접 만드는거 좋아함. 크헝헝


암튼 오늘은 분석함수(PARTITION BY), 윈도우함수 등 아무것도 없이
두가지 컬럼을 하나의 정렬로 하는법을 말하고자한다

 
왼쪽은 소팅이 안된 데이터고, 오른쪽은 원하는 결과 데이터라고 하자
 
단순히 봤을때
 

ORDER BY 를 IDX1 한 뒤에 IDX2 걸면 되는거아냐?
 

 
라고 간단하게 생각 할 수 있지만 그렇게 한다면 결과는?
 

 
IDX2의 값이 0이 가장 위로 올라오는 결과와 다른 형태로 출력됨
 
그럼 IDX2 하고 IDX1 소팅함 되잖아 라고 할경우 결과는?
 

 
 
두둥 똑같이 틀림

 
이유는 ORDER BY 절은 선언한 컬럼을 전체 소팅한 뒤 다음 컬럼을 소팅하기 때문에 그럼.
(그래서 잘못쓰면 시간오래걸리는 이유기도함)
 
위의 문제에서는 하나의 컬럼을 선 정렬해봣자 다음 컬럼 값이 기존 정렬 범위를 초과하거나, 범위에 포함하지 않는 숫자라 
어떤순서로 정렬하든 틀어지게 되있다.
 
+ ORDER BY 는
소팅할 컬럼 값을 하나의 기준으로 잡고 내려가면서 순번을 매김 , 그래서 컬럼 1을 소팅하다 2로 꺽어서 순위를 매기는게 아니라 2의 값을 1에다가 대입해서 내려가면서 정렬함… 긍까 우선 순위의 컬럼 값이 기준이됨. 그래서 ORDER BY를 단순하게 컬럼 순으로 생각해서 순서가 꼬이는 경우도 이걸 인지하지 못하고 사용해서 그런느 경우가 많음
 
 
그럼 어떻게 하냐
 
원초적으로 두개의 IDX를 하나의 IDX로 합쳐야한다. JOIN 과 ROWNUM을 사용하면 안되는게 없다.
분석함수따위 사용하지않고 만들어보자
 
첫번째  IDX2 의 0인 값을 추리는 쿼리를 만드는데, 0이 아닌 값을 아우터조인할 가상의 빈컬럼도 생성한다 AF_...

 
결과

 
두번째
IDX2 가 0이아닌 값을 추리는 쿼리를만든다. 여기서 범위를 초과하는 IDX값은 이전행의 IDX값을 가져오는 쿼리를만든다

 
이렇게 짜면됨...
 
어느정도 쿼리 볼줄 알면 이해한다고 생각함.
뭐 모르면 댓글로 물어본다면 알려드리겠습니다
 
결과 (TDATE -> AF_DATE , IDX1->AF_IDX1 , IDX2->AF_IDX2 입니다.. 결과 캡쳐를 늦게해서 ㅠㅠ) 

 


 
 
0 소팅과 0이아닌 소팅을 쪼갰으니 이제 위에서 있던 쿼리를 UNION ALL 로 합칩니다
( UNION ALL 상단  쿼리는 ORDER BY 하지 못하는거 인지하고 서브쿼리 설계해야함 )

 
결과
 

 
자 이렇게하면 500001, 900001 번이 맞는 순으로 들어갔죠?
 
이제 여기서 이 UNION ALL 쿼리를 감싼후 전체 소팅을 해줍시다
 
SELECT  SELECT TDATE
             , CASE WHEN AF_IDX1 IS NULL
                          THEN IDX1
                          WHEN IDX1 = AF_IDX1
                          THEN IDX1
                          ELSE AF_IDX1
                 END AS IDX1
             , IDX2
  FROM (
                만들었던 UNION ALL 쿼리
             )
ORDER BY TDATE
                 , IDX1
                 , AF_IDX2
 
 
하면 결과 
 
짜잔

 

저희가 원하는 결과가 나왔습니다
 

반응형

동영상 강의 배속 꼼수 ..

간단한 스크립트 입니다.

 

전제사항으로 해당 동영상 재생 모듈이 배속 기능을 제공해야 합니다..

대부분 동영상 재생 모듈의 배속이 2배수인데, 제공 안하는 배속은 선택 못해요.. 

 

이런거...

 

동영상 요소 선택하면

 

비스무리하게 playrate 가 있죠

값이 맵 형태네요. 하지만 그냥 쭉 텍스트형태로 속성 변경해줍니다

 

자바스크립트로 할 경우

document.getElementById('video_view').setAttribute('data-setup', '{"autoplay":true,"playbackRates":[0.5,1,1.5,2,16]}');

 

*Uncaught TypeError: Cannot read properties of null (reading 'setAttribute') 오류 발생하면

동영상 요소 한번 클릭하세요. 요소 갱신이 안되서 그럴수도있음.

 

 

제이쿼리로 할 경우

$('#video_view').attr('data-setup', '{"autoplay":true,"playbackRates":[0.5,1,1.5,2,16]}');

 

 

 

 

그다음에 video 요소의 재생속도를 16으로 변경해줘요

document.querySelector('video').playbackRate=16;

 

하믄 끝

 

 

 

반응형

요즘 업무가 쿼리만 만지다보니 너무 까먹어서
기록용으로 씀



1. 서버에 톰캣 설치

2. 프로젝트 war 로 압축

3. server.xml 에서 webapp 경로에 war 업로드

4. 기동시 war 풀리고 index.jsp 열리는지 확인
(index페이지 설정은 web.xml 이엿나)

서버 기동은 여기까지



메이븐 설치 후
conf 로 레파지토리 경로 설정 후
(레파지토리에는 pom에잇는 라이브러리가 다 존재해야한다)
mvn clean pakage 로 레파지토리 패키징
(메이븐 삭제는 메이븐 경로 rm 해버리면 된다)

레파지토리 경로 변경해도 자꾸 제대로 못읽을경우 서버에 메이븐 잘 깔려잇는지 확인하고 mvn 환경변수가  실행되는 메이븐 설치된 위치를 잘 확인해야한다

이렇게 하면 레파지토리 lib가 생성된다

반응형

+ Recent posts