데이터베이스에 데이터가 많이 쌓일수록 성능이 좋은 쿼리를 사용하는 게 중요합니다. 그렇지 않으면 데이터 출력이 늦어지고 그 과정에서 리소스를 과도하게 점유할 수 있습니다. 쿼리 성능이 좋지 않다고 판단되면 MYSQL에서는 EXPLAIN 문으로 분석해 볼 수 있습니다. MYSQL EXPLAIN 구문 EXPLAIN 사용법은 진단하려는 쿼리문 앞에 EXPLAIN을 붙이면 끝입니다. EXPLAIN 쿼리문 예를 들어 orders 테이블 전체를 select 하는 쿼리면 아래처럼 씁니다. EXPLAIN SELECT * FROM orders; explain을 사용하면 여러 결과값을 얻을 수 있습니다. 이 요소들을 보고 쿼리문 성능을 추정합니다. 결론적으로 이 결과값을 해석하는 것이 중요합니다. 컬럼명 설명 id 쿼리 ..
RMI 자바 언어에서 RMI(Remote Method Invocation)는 약자가 가진 뜻대로 원격으로 메소드를 호출하는 기술입니다. 쉽게 말해, 한 JVM에서 실행 중인 객체가 다른 JVM에 있는 객체를 마치 로컬에서 호출하듯이 실행할 수 있게 합니다. 때문에 분산 애플리케이션 개발에 활용할 수 있습니다. java.rmi 패키지에서 사용합니다. RMI 사용 이유 RMI는 객체가 분산되어 있을지라도 객체 지향적으로 개발을 구현할 수 있게 만듭니다. A 서버에서 구동 중인 JVM이 B 서버의 JVM 객체를 호출해서 쓸 수 있으니 객체 지향을 원격 장비 간 구현할 수 있는 것입니다. 이 과정은 네트워크 작업을 수반하지만 RMI는 개발자가 네트워크 상세 구현에 신경 쓰지 않아도 기능을 쓸 수 있게 만듭니다...
리눅스에서 MySQL 또는 MariaDB에 로그인했을 때 쿼리를 날리려고 하자 Ignoring query to other database라는 정체불명의 에러가 나타났습니다. MariaDB [(none)]> show databases; Ignoring query to other database Ignoring query to other database 이 문제에 대해 구글링을 하면 아주 단순한 원인과 해법을 찾을 수 있습니다. 대부분 비슷한 내용인데, 마음에 들지는 않는 결론입니다. 로그인할 때 오타를 냈다는 건데요. mysql -u root -p 이렇게 로그인 해야하는데 mysql -root -p 이렇게 u를 빼고 로그인했다는 겁니다. 확인해 보면 실제로 틀린 말은 아닙니다. mysql -root -p로..
MYSQL에서 사용자(user)를 생성하고 사용하는 건 은근히 복잡합니다. 생성하는 구문 자체는 어렵지 않습니다. 하지만 호스트 연결과 권한에 대한 개념이 존재하기 때문에 처음엔 이해가 되지 않을 수 있습니다. 사용자는 특정한 호스트에서만 연결될 수 있고, 특정 데이터베이스만 사용할 수도 있습니다. 심지어 데이터베이스 내에 있는 테이블 별로도 다르게 권한을 부여할 수 있습니다. 사용자의 호스트 연결과 권한 개념에 대해 정리해보겠습니다. MYSQL USER 1. 사용자 생성 사용자를 생성할 땐 계정명, 호스트, 비밀번호를 설정합니다. create user '계정명'@'호스트' identified by '비밀번호'; 1. localhost 연결에 대한 사용자 생성 예를 들어, localhost 연결에 대해 ..
어느 순간부터 에어팟 프로를 귀에 꽂으면 "지지직" 소리가 들렸습니다. 마치 주파수가 맞지 않는 라디오 스피커에서 흘러나오는 듯한 찢어지는 소리가 났어요. 검색해 보니까 비슷한 현상을 겪은 사람들이 꽤 많았습니다. 해법도 다양했고 결국은 고치지 못했다는 분들도 많았어요. 저도 이것저것 시도해 봤고 결국 차선의 결과를 얻긴 했는데.. 그 과정을 공유합니다. 동일한 문제 겪고 계신 분들은 참고해 보시면 좋을 거 같습니다. 에어팟 프로 지지직 소리 1. 기기 충전 에어팟 프로를 완전히 충전해보라는 조언이 있었어요. 다음날까지 완전 충전하고 다시 해봤는데, 문제는 동일했습니다. 충전으로는 해결되지 않았어요. 2. 에어팟 프로 다시 연결 에어팟 프로를 맥북과 연결 해제하고 다시 연결해 봤습니다. 블루투스 기기에서..
맥북은 미리보기라는 기본 앱으로 PDF 파일을 꽤나 다각도로 편집할 수 있습니다. 내용에 밑줄을 칠 수 있고, 삭제를 원하는 내용을 마스킹처리할 수 있습니다. 트랙패드로 서명한 날인도 붙여넣을 수 있습니다. 어도비 아크로뱃 리더가 없어도 편집이 가능합니다. 맥의 미리보기로 pdf 파일을 어떤 방법으로 편집할 수 있는지 알아보겠습니다. 맥북 PDF 파일 편집 1. 미리보기로 파일 열기 pdf 파일 우클릭 > 다음으로 열기 > 미리보기를 선택합니다. 기본앱을 변경하지 않았다면 그냥 더블 클릭해도 미리보기 앱으로 열립니다. 저는 행안부에서 발표한 최신 보도자료로 열어보겠습니다. 2. 편집 메뉴 활성화 여러 기능을 사용하려면 먼저 여러 메뉴들이 보이게 활성화 해야 합니다. 우측 상단에 펜촉 모양의 아이콘을 선택..
갤럭시 스마트폰은 Smart View라는 기능이 기본적으로 있어서 TV와 무선으로 화면을 미러링 할 수 있습니다. 미러링이란 스마트폰의 화면을 TV의 화면으로 실시간 전송해 주는 기술입니다. 스마트폰으로 보는 작은 화면을 큰 TV 화면으로 보고 싶을 때 활용할 수 있습니다. 스마트폰 갤럭시 - TV 미러링 1. 스마트폰 화면을 위에서 아래로 쓸어 내려 Smart View라고 써 있는 부분을 누릅니다. 2. Smart View에 대한 설명이 나타납니다. 왼쪽 하단의 상세설정을 선택합니다. 3. 근처에 연결할 수 있는 기기를 찾습니다. TV를 포함해서 다른 스마트폰 역시도 미러링 연결할 수 있습니다. 저희 집 TV인 QNB90A 65가 보이네요. 선택합니다. 4. 미러링을 전체 화면으로 할 것인지, 멀티 뷰..
잊지 말고 카카오톡 메시지를 보내야 할 때 카톡 예약 메시지 기능을 사용할 수 있습니다. 미리 메시지를 작성하고 원하는 시간과 대상에 톡을 전송하는 기능입니다. 예약 메시지로 보냈다는 표시는 없어서 상대방은 예약으로 온 걸 눈치채지 못합니다. 카카오톡 예약 메시지 보내기 1. 예약 메시지를 보내는 상대방의 대화방으로 들어갑니다. 나에게 보낼 수도 있고 다른 사람에게 보낼 수도 있습니다. 2. 대화창 왼쪽에 + 버튼을 누르고 예약 메시지 버튼을 선택합니다. 혹시 예약 메시지 버튼이 없으면 앱스토어에서 카카오톡을 최신 버전으로 업데이트 해주세요. 3. 메시지 내용을 입력하고 보내는 일시, 발송 대상을 선택합니다. 미리 알림 기능은 예약 메시지를 전송하기 15분 전에 이러이러한 예약 메시지를 보낼 거라고 알려..
용량이 큰 테이블을 쿼리하는 건 종종 위험합니다. 쿼리 성능이 받쳐주지 않는 환경에서 오랜 기간 쿼리가 끝나지 않고 이어지다 보면 리소스를 많이 잡아먹고, 최악의 경우 시스템이 다운될 가능성도 충분하기 때문입니다. 이를 방지하기 위해 쿼리가 너무 오래 지속된다 싶으면 즉각 중단시킬 필요가 있습니다. 실행 중인 쿼리 강제 중지 두 가지 명령을 사용합니다. 먼저 현재 실행 중인 쿼리를 찾는 명령입니다. SHOW PROCESSLIST; -- 또는 SHOW FULL PROCESSLIST; -- SHOW FULL PROCESSLIST는 더 자세한 정보를 보여줍니다. 여기서 확인되는 실행 쿼리와 해당 프로세스의 ID를 확인해서 KILL 시킵니다. KILL [쿼리 ID]; 예를 들어, 프로세스 ID가 3이면 다음과 ..
카카오톡은 생일 정보를 저장해두면 자신의 생일이 왔을 때 친구들에게 오늘이 자신의 생일임을 알려줍니다. 생일인 친구 탭이 상단에 고정되어 있기 때문에 따로 신경쓰지 않아도 쉽게 확인이 가능합니다. 생일인 친구를 보고 카카오톡 선물을 보내는 경우도 많습니다. 그러나 자신의 생일임을 남들에게 알리고 싶지 않을 수도 있습니다. 이럴 땐 생일을 알리지 않도록 설정이 가능합니다. 카카오톡 생일 설정 1. 생일 알림 끄기 1. 카카오톡 앱의 더보기(...) 메뉴에서 우측 상단 설정으로 들어갑니다. 2. 우측 상단의 프로필 관리로 들어갑니다. 3. 하단의 생일 알림 토글 버튼을 비활성화 합니다. 이젠 다른 친구들에게 내 생일을 알리지 않습니다. 2. 생일 설정 방법 카카오톡 계정으로 표시하는 생일은 내가 설정하기 나..