일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- conda base 활성화
- time wait port kill
- conda 기초 설정
- 실행중인 포트 죽이기
- 오블완
- conda base 기본 설정
- 티스토리챌린지
- conda 가상환경 설정 오류
- 3000 port kill
- 려려
- window netstat time wait 제거
- Today
- Total
모도리는 공부중
2022.08. 내 궁금증, 검색한 것들, 공부 및 개발 일기 본문
내 궁금증, 검색한 것들, 공부 일기 리스트
2022.01.
2022.02.
2022.03.
2022.04.
2022.05.
2022.06.
2022.07.
- 1일 -
bugfix용으로 branch를 하나 새로 땄다. 그리고 로그를 확인해보니 push하지 않은 커밋을 보유한 상태 그대로 분기가 되었다는 것을 알게 됐다. 기왕 이렇게 된 것, 어차피 그것도 버그를 고친 내용이므로 새로 분기한 브랜치에만 놔둬도 될 것 같다는 생각에 기존 브랜치에서 해당 커밋을 삭제했다. 그리고 .. 문제가 발생했다.
modory@DESKTOP MINGW64 /d/Project/ (feature/backend/modory)
$ git checkout feature/backend/bugfix
error: Your local changes to the following files would be overwritten by checkout:
backend/routes/a.js
backend/routes/d.js
Please commit your changes or stash them before you switch branches.
Aborting
뭔가 커밋을 해달라는데.. 난 현재 커밋할 것도 임시 저장할 것도 없단 말이지. 작업을 새로 한 것이 없으니까. 그래서 그냥 되돌리기로 했다.
- 2일 -
기존 테이블의 컬럼들의 순서와 명명을 바꾸기로 해서 어차피 데이터도 없겠다, 테이블을 날려버리고 수정한 내용으로 다시 만들기로 했다. 기왕 다시 만드는 거, 이것도 명명 규칙이 있을 것이라 예상되어 검색해보았다.
아래 블로그 내용이 좀 더 상세히 정리되어 있다. 아주 감사하다.
sql DDL문 안 만지고 공부 안 한지 오래 됐더니.. 헷갈린다. 반성해라 모도리.
- 3일 -
모든 컬럼에 DEFAULT NULL 설정을 집어넣었기 때문에, insert할 때 값을 넣지 않은 경우를 쿼리로 체크해서 가져와주어야 한다.
- 4일 -
sql DML문도... 흑흑.. 맨날 select이랑 insert만 했더니..
multer단에서는 난수로 파일명을 만들어 일단 저장시키고, api단에서 생성한 아이디값으로 파일명을 rename해준다면?
이렇게 가정하고 만들어보자.
- 5일 -
이제 슬슬.. 소켓 통신도 할 줄 알아야지. 현재의 나는 http, api 통신만 알고 있지만 다른 통신도 해야하니까!
- 8일 -
js undefined 체크
- 9일 -
외장하드를 하나만 챙겨왔는데.. 같이 가져오라는 말씀을 하시면 전 어떻게 .. 흑흑
그래서 저번에 팀장님께 들었던 rsync를 테스트해보고자 한다.
서버 인증을 먼저 받으란다.
The authenticity of host '[ip]:port ([ip]:port)' can't be established.
ECDSA key fingerprint is SHA256:key.
cat 명령어를 통해 하려고 했더니 안되길래, 그냥 path를 찾아서 직접 입력해주었다.
그 후 재접속하라는 설명도 있었지만 aws가 아닌 물리서버..이므로 바로 한 번 시도해보았고, 된다.
압축도 했고.. gui 환경에서 옮기려고 하는데 서버 속도가 아름다워서 멈추고 난리다. 그냥 터미널 켜서 명령어로 해야겠다.
외장하드 백업과 rsync로 복사하는 작업을 동시에 하려고 했더니, 동시에 안하는 상황에서도 rsync가 skipping을 해버린다. 어쩔 수 없이 압축 백업만 진행해야겠다.
- 10일 -
deflated는 압축률인가보다 하긴 했는데, 멀쩡한 파일명 뒤에 ^[[1;5B 라는 글자가 붙게 되어 궁금증이 커졌다. 검색해도 나오지 않는다.. 뭘까. 또 다른 검색어를 시도해보아야 하나?
아무튼, 검색하다가 짐작하고 있던 부분에 대한 해답을 얻긴 했다. deflated는 0%에 가까울 수록 압축이 덜 됐고, 100%에 가까울수록 압축이 아주 잘 되었다는 뜻이란다. 역시나 압축률이 맞았다.
해답을 얻은 블로그에서 추천하는 글 몇 개를 읽다보니 rsync 같은 명령어가 또 있었다. scp.
하지만 이 친구는 디렉토리가 없으면 오류를 발생시킨다고 하니.. rsync가 더 좋은 녀석인 것 같다.
이건.. 전에 내가 궁금했던 것인데..? 나중에 시간 날 때 읽어보자.
- 12일 -
이제는 어느정도 개념이 잡혔지만, 확실하게 짚고 넘어가기 위해 오랜만에 다시 검색.
그룹바이를 쓰게 되면 그룹바이를 안 넣는 애들을 관리해야하기도 하고 해서 어떻게 해야 하나 알아보다가 어떤 정보를 하나 획득하게 되었다.
distinct로만 가능한 기능, group by로만 가능한 기능 등..
- 13일 -
테이블에 json을 넣게 되면 복잡해진다는 선임님 말씀을 듣고, '음? 왜 복잡하지? 그냥 string값처럼 들어가는 거 아닌가? 오 궁금한데?' 생각을 하게 됐고, 하루를 다 마친 후 잠자기 전 궁금증 검색의 시간을 보내고 있다.
오, 정말 흥미로운데? 이렇게 하면 복잡한 스토리보드를 조금이나마 단순화시킬 수 있을 것 같다. 엔티티도 마찬가지고 말이다. 공부하자! (신남)
- 16일 -
초기 개발중이라 상관 없긴 한데 그래도 테이블 드롭하고 늘리기 귀찮아서.. 수정으로 안되나 검색
DB INSERT하는데 이해 가지 않는 에러가 뜬다. 연관 없어보이는데 말이지.
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlMessage: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'data1, data2, data3, data4' at line 2",
sqlState: '42000',
index: 0,
sql: 'INSERT INTO TABLE (column1, column2, column3, column4, ...)\n' +
" VALUES data1, data2, data3, data4, ...;';"
안되겠다. 괄호로 감싸보자.
code: 'ER_DATA_TOO_LONG',
errno: 1406,
sqlMessage: "Data too long for column 'data4' at row 1",
sqlState: '22001',
index: 0,
sql: 'INSERT INTO TABLE (column1, column2, column3, column4, ...)\n' +
" VALUES (data1, data2, data3, data4, ...);';"
아, 또 컬럼 길이 벗어났나보다.
-- COPY로 바꿔줘
ALGORITHM=INPLACE is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY.
-- SHARED로 바꿔줘
LOCK=NONE is not supported. Reason: COPY algorithm requires a lock. Try LOCK=SHARED.
아하.. ALGORITHM=INPLACE와 LOCK=NONE이 한 세트, ALGORITHM=COPY와 LOCK=SHARED가 한 세트구나?
맘에 안 드는... async await. 정복이 필요하다. 일단 급한 불만 꺼놔서 이거 정리 안하면 나중에 큰코 닥친다.
씻으면서 켜둔 영상에서 나온 멘트.
정말이지... 너무너무나 맞는 말이다. 이래서 앨리스의 토끼 굴에 빠지지 말라는 거겠지?
- 22일 -
17일부터 3일 간 분석에만 힘썼더니 16일에 고민하며 만들고 있던 api 로직이 헷갈려서 고민 좀 했다.
distinct랑 order by를 같이 쓰려고 했더니 오류가 난다. group by를 쓰게 되면 select list에 있는 모든 컬럼이 group by로 들어가야 하는데.. 난 일부만 그룹핑하고 싶으면 어떻게 해야할까? 어렵다 정말.
.
.
.
자동으로.. asc해서 나오네.. 바보..
내가 원하는 것을 찾지 않고도 할 수 있길 바랬는데.. 결국 또 찾아봤다. 그래, 아직 숙달되지 않아서야. 숙달되기 전까진 계속 검색할 수밖에 없는 게 맞는거야. 같은 경험을 여러 번 조금씩 다르게 해야 익숙해진다.
- 24일 -
db에 슬래시(/)가 들어갈 수 있나? 생각이 들어서 검색, 보아하니 %, ', ", _ 외에는 사용이 가능한가보다.
엘라스틱서치.. 나중에 공부해두면 좋다는 선임님의 조언!
- 26일 -
sql 쿼리에 들어가는 파라미터를 for문으로 넣어줬더니.. sql 쿼리가 비동기로 돌아가서 쿼리가 끝나기도 전에 console도 찍고~ 클라이언트로 응답도 해버린다. 안 되는데 이러면...? 내가 원하는 대로 하고 싶으면 전부 함수화해버려야 하나? 아 싫은데? 흠... 그러다가 든 생각이, 내가 개발자로 시작하겠다고 우리 프로젝트를 분석하던 초반에는 잘 모르는 코드를 손대기 무서워서 쿼리로 최대한 할 수 있는 방법을 탐구했었다. 그리고 지금은 쿼리를 손대려는 게 아니라 코드를 손대려고 하고 있고.. 쿼리에서 직접 바꿔볼까? 쿼리 공부가 필요하다는 생각이 들어서 계속 검색하던 검색어를 조금 바꾸어보았다.
interval? 이게 무슨 함수일까? 아니면 변수명일까? 검색해보자.
오호 함수네 맞네. 다시 돌아가서, 인라인뷰... 컬럼은 가변이 될 수 없다. 고정값, 고정개수로 들어가야 하며 가변으로 쓰고 싶다면 동적 쿼리를 짜야 한다...... 우와 너무 어려워!! 내가 어려운 길을 가고 있는 걸까?
일단, 이해한 바로는 sql을 반복시키기 위해 프로시저를 쓰고 있다. 프로시저가 뭘까? 검색해보니 프로시저와 함수의 차이, 그리고 함수를 정리해준 글까지 발견했다. 오오 다 읽어야지~
읽다보니 콜론 등호(:=)가 등장하는데 이게 뭔지 모르겠어서 추가 검색
매개변수와 인수의 차이? 함수 밖에서 함수를 호출할 때 사용한다? 처음 보는 개념이라 낯서네. 나 낯가리는 타입이었구나?
근데 읽다보니 이게 죄다 오라클인데, 내가 사용하는 것은 정확히는 마리아디비이지만 mysql 기반이잖아? 그럼 이거 다시 알아볼 필요가 있겠어.
위 내용에서부터 알 수 있듯이 '프로시저'라고 부르는 것은 대부분 '저장 프로시저' 즉, stored procedure이다. 내게 필요한 것은 select 반복문인데? 그리고 프로시저는 저장해놓고 함수처럼 가져다 쓰는 존재라서, 이것을 디비 서버에 저장시켜 활용한다는 것인데 그렇게 해도 되나? 라는 생각도 든다. 뭔가..... 어렵다 확실히. 프로시저의 존재를 나중에 유지보수할 사람도 알고 있어야 한다.
확실히 회사에서 볼 때는 마음이 급해서 그런지 이해도 안 되고 눈에 들어오지 않던 내용이 마음을 편히 먹고 공부한다는 마음으로 읽으니까 같은 내용도 이해가 된다.
될 수 있으면 한 방 쿼리로, for 로직으로 반복시키면 db콜이 많아지고, 그만큼 db성능이 느리게 되는 요인으로 작용한다. 고로, 현재 내가 짠 쿼리는 비동기 파악을 제대로 못해서 문제라기 보단 오히려 성능을 망치는 쿼리라는 소리. 이야... 몰라서 저지르는 행동이 아주 극악이구나. 잘 배워간다. 성능을 높이려면 이런 엄청난 짓하고 있으면 안되는 거지. 암암.
정처기에서 프로시저랑 함수, 뭔지 모르겠어서 그냥 읽기만 했던 파트인데 오늘 아주 잘 배워간다 진짜. 이 김에 공부하자.
- 28일 -
한 방 쿼리를 해라, 이 부분 때문에 프로시저에 대한 글을 읽어보는데 읽으면 읽을수록.. 내가 원하는 답도 안 나오고 답답하기만 했다. 어떻게 해야될까, 풀리지 않는 답답함을 털어놓으며 조금이라도 해갈하고자 공부모임 말미에 '이래서 졸고 있었다..' 하며 고민을 털어놓았다. 전자정부 웹프레임워크를 사용중인 오빠가 서로 사용중인 언어가 다르지만 그래도 도움이 될 수도 있다며 코드를 공유해줬다. 그렇게 열어본 코드는, 쿼리를 반복문 돌린 형태였다. 어라? 이게 내가 전에 시도한 방법인데..? mybatis 코드를 보자 프로시저에서 놀고 있을 게 아니구나, 비동기를 다시 공부할 게 맞구나.. 싶어진다.
그래, 다시 기초부터 잡자. 모임 오빠가 공유해준 기초 글을 다시 정독한다.
음.. 위 글이 아래 글의 마지막 챕터이므로 챕터의 처음부터 읽으며 공부해 내려오는 것이 좋겠다.
- 29일 -
현재 db 커넥트는 콜백기반이구나를 알게 됐다.
node.js의 db 연결을 다시 기초부터 보자.
- 30일 -
데이터 이관 작업을 진행하다가 에러가 떴다. No space left on device 쨔잔. 검색해보니, 용량 부족의 문제라고 한다.
df -h라는 명령어로 확인해보니까 확실히 꽉 찼더라. 휴지통 디렉토리를 찾아 비워보았지만 소용 없었다.
rm -rf ~/.local/share/Trash/files/*
디렉토리별로 확인할 수 있는 명령어를 추가로 찾아보았다.
아래 링크는 상세한데 이해를 못했다...
IP에 대한 이해
- 31일 -
용량이 적으니 가능한 한도 내에서 활용하는 방법을 탐구하게 된다. 고로, 파일 이동을 보류하고 멈추는 것으로 하게 됐다. 다시 이전 서버에 있는 것을 그대로 연결하는 방안이 됐는데, 그렇게 되면 파일 통신을 해야한다. 미뤄두었던 파일통신을 다시 공부해서 진행할 필요가 생겼다.....고 생각해서 기존 파일시스템을 참고하려고 백업해두었는데 그냥 서버에 파일을 합치는 것으로 정리됐다. 나중에 공부하자..ㅎ...
안녕 8월.. 안녕 9월..
'내 지식 정리 > 날것 그 자체' 카테고리의 다른 글
2022.10. 내 궁금증, 검색한 것들, 공부 및 개발 일기 (0) | 2022.10.31 |
---|---|
2022.09. 내 궁금증, 검색한 것들, 공부 및 개발 일기 (1) | 2022.09.20 |
2022.07. 내 궁금증, 검색한 것들, 공부 및 개발 일기 (0) | 2022.07.01 |
2022.06. 내 궁금증, 검색한 것들, 공부 및 개발 일기 (0) | 2022.06.07 |
2022.05. 내 궁금증, 검색한 것들, 공부 및 개발 일기 (0) | 2022.05.02 |