본문 바로가기
반응형

공부/프로그래밍346

[DBMS] 데이터베이스 설계와 중복엔터티(이론대로만 하면 안되는 것) 데이터베이스를 설계할 때엔 중복엔터티를 없애야한다. 이를 정규화라고 하는데, 목적을 한마디로 하면 데이터의 중복을 최소한으로 줄이는 것이다. 이는 오랜 정설이었으며, 여전히 유용하다. 중복엔터티를 없애야 하는 이유는 다음과 같다.- 변경할 부분이 생기면 모두 고쳐야 한다는 문제- 불필요한 데이터 함께 삽입- 데이터 불일치 가능성 지금까지 데이터베이스를 설계할때에는 항상 이 규칙을 지키기 위해 노력했다.그런데 요즘 대용량 처리를 하게되면서 이부분이 조금씩 금이가기 시작했다. - 인덱스가 만능키는 아니다 데이터의 속성에 따라 데이터를 한 테이블에 넣거나 분리한다. 분리된 연관성은 나중에 관계를 통해 다시금 불러올 수 있다. 우리가 관계지향 데이터베이스를 쓰는 가장 큰 이유이기도 하다. 그런데 테이블간의 Jo.. 2019. 3. 5.
[python3] jupyter 사용시 Connecting to kernel 문제 jupyter에 파이썬을 실행해보면 실행만 하고있고 실제 결과물이 나오지 않는다 사진을 보면 Connecting to kernel 이 뜨고, 실행을 하고 있는 In[*] 은 끝나지 않았다. 웹페이지를 보면 Connecting to kernel 이란 표시가 뜬다.로그를 보니 다음의 표시가 뜨는데 특별한 에러는 없다 [I 14:18:56.358 NotebookApp] Adapting to protocol v5.1 for kernel 7b6b5233-f196-4ad0-b5ce-66868f91f49e/usr/local/lib/python3.7/site-packages/notebook/base/zmqhandlers.py:284: RuntimeWarning: coroutine 'WebSocketHandler.get.. 2019. 3. 3.
[Spring] 환경에 따라 logback 설정파일 분리하기(springboot 아님) 환경에 따라(dev, pord, local 등) logback 의 설정파일을 달리 읽히게 할 필요가 있었다.그래서 인터넷에 검색하여 logback-[xxx].xml 방식으로 설정을 하는데 먹히지 않았다. 그전에 잠깐 환경에 따른 설정을 어떻게 하는지 설명이 필요할 거 같다.내 경우는 환경설정을 위해 spring.profiles.active 를 자주쓰는데 주로 파라미터에 주는 편이다. -Dspring.profiles.active=dev 그래서 이클립스든 Intellij 든 사용할때 위와 같은 환경을 설정한 후 실행한다. spring.profiles 에 설정을 기반으로 하여 logback 설정파일을 읽는것이 가장 좋겠다 판단했기에 인터넷에 찾아봤는데 된다고 하는 파일명-[환경설정].xml 방식은 되지 않았다.. 2019. 2. 26.
[Retrofit2] Unable to create converter for interface 에러 Retrofit2 에서 다음의 에러가 발생했다. java.lang.IllegalArgumentException: Unable to create converter for interface retrofit2.http.POST for method [URL] Converter 가 초기화되지 않아 발생한 오류이다. 이것을 수정하는 방법은 여러가지 있지만 내 경우는 converter-jackson 을 이용했다. Gradle 에 다음사항 추가 dependencies { compile group: 'com.squareup.retrofit2', name: 'retrofit', version: [버전] compile group: 'com.squareup.retrofit2', name: 'converter-jackson',.. 2019. 2. 21.
[mysql] USER level Lock 설정을 했는데 해제가 안되는 경우. 프로젝트에서 USER LOCK(get_lock) 을 사용하는데 서버에 문제가 생겨 잠시 버벅거리다가 다시 실행하려고 하니 해당 락이 계속 살아있는 경우가 있었다. 그래서 RELEASE_LOCK() 을 이용해 풀면 리턴값이 0으로 나오는데 다시 조회해보면 여전히 살아있다. 아래는 LOCK 관련 메서드를 정리한 것이다. # LOCK 획득- GET_LOCK(str, timeout) # LOCK 사용중인지 확인- IS_USED_LOCK(str) # LOCK 해체- RELEASE_LOCK(str) LOCK 을 해제할때 show processlist; 를 이용해 State 가 'Waiting for table metadata lock' 상태의 것만 kill 하면 된다고 하는데, 실제로 그런 상태값이 있는건 없었다... 2019. 2. 15.
[centos] dstat 로그 남기기(자원활용 점검) 시작 스크립트 vi dstat_start.sh #!/bin/bash ## Today date ##DATE=`/bin/date +%Y%m%d` ## dstat start ##_START(){rm -rf nohup.outnohup dstat -tcmdnl 60 >> ./log/dstat_$DATE.log &} _START 종료 스크립트 vi dstat_stop.sh #!/bin/bash ## dstat stop ##_STOP(){DSTATPID=`ps -ef | grep -i dstat | grep -v "grep" | awk '{print $2'`kill -9 $DSTATPID} 권한추가 chmod +x dstat_start.shchmod +x dstat_stop.sh crontab 설정 crontab -.. 2019. 2. 6.
반응형