10년 뒤 내 모습

  10년 뒤 내 모습 3년 뒤 1년 뒤 3개월 1개월 다음 주 내일 한 시간 10분 뒤 내 모습 ... 지난 10분을 돌이켜 보면 10년 뒤 내 모습도 보이지 않을까

SheetJS 기본 자료구조, 좌표계, 그리고 표시형식

이미지
  SheetJS를 사용해서 JavaScript로 엑셀 파일을 만들고 편집할 수 있다. 자료구조 Workbook: 여러 시트의 모음. 엑셀 파일이다. Sheet: 셀들의 객체 모음 (A1, B1, …) Cell: {t, v, f, z} 형태의 단일 데이터 범위 const range = XLSX.utils.decode_range('A1:D10'); {     s: { r: 0, c: 0 },  // start:  A1  (row=0, col=0)     e: { r: 9, c: 3 }   // end:    D10 (row=9, col=3) } 순회 예시 const range = XLSX.utils.decode_range(ws['!ref']); for (let C = range.s.c; C <= range.e.c; C++) {     const headerAddr = XLSX.utils.encode_cell({ r: 0, c: C });     const header = ws[headerAddr]?.v; } !ref 는 시트 내용이 들어있는 범위를 표현하는 특수 표현이다. XLSX.utils.decode_range(ws['!ref']) 셀 구조 { t: 's', v: '홍길동' } t: type ('s': 문자열, 'n': 숫자, 'b': 불린, 'd': 날짜, 'e': 오류) v: value f: formular z: 표시형식 z: '@' 하면 텍스트로 그대로 보여준다 z: '#,##0' 천단위 콤마 z: 'yyyy-mm-dd' 날짜 z를 지정하지 않으면 엑셀이 **타입(t)**을 기준으로 기본 표시 형식을 자동 적용됨.

Django 이미 테이블이 만들어져 있다면 inspectdb

  이미 테이블이 만들어져 있다면 inspectdb 명령을 활용하자 python manage.py inspectdb --database interface > myapp/models_if.py 이렇게 하면 interface DB 를 조사하여 자동으로 models_if.py 파일을 만들어준다. 앞으로  Django ORM 으로 테이블을 관리할거면 managed = True 옵션으로 변경해준다.

별똥별이 떨어지는 그 순간에도 행복을 빌었지

이미지
  어릴 적 내 꿈은 그냥 행복한 거였어 별똥별이 떨어지는 그 순간에도 행복을 빌었지 그 꿈은 정말로 이뤄졌어 나는 불과 20대의 나이에 꿈을 이룬 청년이라고 스스로 생각하며 흐뭇해했지 그런데 그 성공은 오래가지 않았어 나는 다시 고민에 빠졌어 목표 설정이 잘못된 건가 허황된 꿈이었던 것인가 하지만 아무리 찾아 헤매고 다녀도 더 좋은 목표를 만날 순 없었어 그리고 깨달았지 내 꿈은 달성보다 유지가 어려운 목표였던거야 아무리 달콤했던 감정들도 시간이 지나면서 익숙해져 그뿐인가 사회는 내가 만족한 상태로 있는 걸 가만히 두지 않아 끊임없이 조금 더를 외치게 만들지 앞으로도 계속 나아가겠지만 지금까지 나의 결론은 바로 이거야 행복은 선택이고 습관이다

PostgreSQL 접속 성공/실패 로그 남기기

  로그파일 위치: /var/log/postgresql/... 설정파일 위치: /etc/postgresql/버전/main/postgresql.conf 접속실패 로그는 log_destination = 'stderr' 설정이 기본으로 있기 때문에 systemd/rsyslog 가 stderr 출력 내용을 파일에 기록해준다. (접속 실패는 에러다) 접속성공 로그를 남기려면 log_connections = on 설정해줘야한다. (기본은 off) 참고로 logging_collector = off 설정의 의미는 PostgreSQL 자체 로그 수집기를 사용하지 않겠다는 의미다. 서비스 재시작하면 반영됨

django queryset distinct on 은 표준이 아니다

  Model.objects.distinct() -> DISTINCT   : SQL 표준 Model.objects.distinct('field') -> DISTINCT ON ('field')   : PostgreSQL 전용, 다른 DB에서는 에러

선택의 기법 - 가중평균 매트릭스

  가중평균 매트릭스 항목별로 가중치(중요도)를 설정하고 각 요소별 점수를 매긴다 가중치 * 점수 의 총합을 비교하여 높은 쪽을 선택한다 ... 이런! 총합이 똑같이 나왔다 이러니 와리가리 선택을 못하고 몇날며칠을 고민 중인거였다 ... 조금 더 설레는 쪽으로 선택한다 새로운 것 가지 않은 길을 가보기로 선택한다 안녕.