목록전체 글 (385)
만족
하단의 탭 레이아웃의 탭들이 가로를 꽉 채우지 않는 문제가 발견되었다. 재미있는 점은 스마트폰에서는 정상적으로 표시되지만, 태블릿에서만 이렇게 쪼그라든다는 점이다. 해결법 기존의 TabLayout에 몇 가지 속성만 추가하면 된다. 이런식으로 tabGravity, tabMode, tabMaxWidth 속성을 추가해준다. 이제 태블릿에서도 정상적으로 표시된다.
해결법 1 AndroidManifest.xml 에 INTERNET 권한이 선언되었는지 확인한다. 인터넷 권한이 없을 경우 캐시로만 페이지를 로드하게 되는데, 이렇게 되면 방문한 적이 없는(캐시가 없는)페이지에서는 전부 ERR_CACHE_MISS가 발생한다. 해결법 2 binding.apply { webview.webViewClient= WebViewClient() webview.settings.javaScriptEnabled= true webview.settings.builtInZoomControls= true webview.settings.defaultTextEncodingName= "utf-8" //캐시 모드 변경 webview.settings.cacheMode= WebSettings.LOAD_CAC..
CPU/GPU 쿨러는 크게 공기를 이용해 열을 식히는 공랭쿨러와 물을 이용해 열을 식히는 수랭쿨러가 있다. 공랭쿨러의 원리 공랭쿨러는 CPU와 맟닿은 히트파이프로 열을 전달받아 선풍기로 열을 식히는 원리다. CPU 히트파이프 선풍기 구조로 되어 있다. 열은 CPU-> 히트파이프로 전달되고, 선풍기로 히트파이프에 있는 열이 식으면서 CPU의 온도를 낮춘다. 수랭쿨러의 원리 수랭쿨러는 공랭쿨러에 물과 파이프가 추가된다. CPU 히트파이프 파이프(안에 물이 들어있다) 워터펌프 선풍기 구조로 되어 있으며, 물을 이용해 냉각하기 때문에 공랭쿨러보다 가격은 더 비싸지만 쿨링 성능이 훨씬 뛰어나다 쿨링 성능 비교 www.researchgate.net/figure/Temperature-comparison-of-thre..
실험 제품은 WD SN750 500G(NVME) 이다. 비교적 크게 성능 저하가 일어난다. 그러나 SATA SSD와 NVME를 모두 써본 사람은 알겠지만, 둘의 차이를 큰 파일 읽기/쓰기를 제외하고는 실 사용에서 느끼기는 어렵기 때문에 사실상 거의 체감되지 않는다고 봐도 무방하다.
부팅 파티션을 암호화하려니 다음과 같은 에러가 발생했다. 해결법은 다음과 같다 gpedit.msc를 실행하고 위 경로로 들어간다. 시작 시 추가 인증 요구 항목을 "사용"으로 바꾼다. 이제 사용할 수 있다.
이전에 사용하던 SSD는 250GB에 SATA방식이였는데 약 5년간 잘 사용했다. 그런데 간헐적으로 블루스크린이 떠서 부팅에 아예 진입하지 못하는 경우도 있었고, 요즘 나오는 게임들은 용량이 커서 이제 256은 부족하다고 판단했다. 선택한 제품은 WD BLACK SN750 500GB 제품이고, 디램도 달려있고 나름 평이 좋길래 선택했다. 시리얼은 노출되면 안 될것 같아서 대충 가렸다. 처음에 받은 제품이 불량품이라 교환받고 하느라 일주일정도가 녹아버렸지만... 시험기간이였으니 어차피 시간도 없고 해서 그냥 넘어가기로 했다. 아무튼... MSI B350M을 사용중인데, 얘는 그래픽카드를 들어내면 M.2슬롯이 보인다. 장착해주고, easeus를 통해 기존에 사용하던 SSD를 복제했다. www.easeus.c..
가장 먼저 해야할 일은, 해당 포트가 작동하는지부터 체크해야 한다. 윈도우 10을 사용중이라면, 연결했을 때 연결 효과음이 발생하는데, 장치를 연결했을 때 해당 소리가 켜지는지를 확인한다. 만약 켜지지 않는다면 해당 포트가 고장났을 수 있으므로, 다른 USB 포트에 케이블을 연결한다. 소리까지는 났다면 좌측 하단 윈도우 아이콘 옆에 있는 검색 버튼을 클릭해 "장치 관리자"를 검색한다. "범용 직렬 버스 컨트롤러"를 누르고, "Apple 어쩌고~"하는 장치가 있고 아이콘에 노란 느낌표가 발생한다면, 드라이버 설치에 문제가 생긴 것이다. 해당 장치를 우클릭해서, 디바이스 제거를 선택하고, "드라이버도 함께 제거"에 체크한 뒤 확인을 눌러 제거한다. 케이블을 다시 연결하면 재설치되어 정상적으로 작동한다. 장치..
부속질의문(Sub-query): 다른 SELECT 문에 포함되어지는 SELECT 문 중첩질의문(Nested-query): 하나 이상의 부속질의문을 포함하는 SELECT 문 SELECT * FROM ( SELECT * FROM Person WHERE city='서울' ) P WHERE name='홍길동'; => 서울에 사는 사람들 중 이름이 홍길동인 사람 모두 출력 에서 붉은색이 중첩질의문, 초록색이 부속질의문이다. 너무 용어에 얽메일 필요는 없다. 주의할 점은 부속질의문의 결과를 외부에서 사용(참조)하고자 할 때는 반드시 부속질의문에 Alias를 붙여주어야 한다는 점이다 SELECT 절의 부속질의문 SELECT city, (SELECT count(*) FROM Person ip WHERE ip.perso..
조인에 개념에 대해 아예 무지한 상태라면 아래 포스트를 읽고 오는 것을 추천한다. satisfactoryplace.tistory.com/201?category=933598 [Database] 관계대수 (Relational Algebra): 조인(JOIN), 외부 합집합(OUTER UNION) 세타조인, 동일조인, 자연조인, 세미조인, 외부조인에 대해 알아보자. 조인은 기본적으로 두 개의 릴레이션에 대해 진행하는 연산으로 이항 연산자이며, 두 개의 릴레이션에서 공통된 애트리뷰 satisfactoryplace.tistory.com SQL에서 조인은 2개 이상의 테이블에 대해 특정 조건을 만족하는 rows끼리 결합하여 새로운 테이블을 만드는 연산이다. 이 때 대상 테이블은 서로 같을 수도 있고, 다를 수도 있..
집계함수: Aggregation 집계 함수는 말 그대로 어떤 열에 대해, 여러개의 행을 집계한 값을 반환한다. SELECT COUNT(*) FROM student; 와 같이 사용하면 결과값의 행은 1개이고, 거기에 student 행의 갯수를 출력한다. count(*) 3 단, 집계 함수를 사용하면 SELECT 출력에서 일반 열은 사용할 수 없고 집계 함수만 사용할 수 있다. 집계 함수의 종류 MAX(열 이름): 해당 열의 최댓값 출력 AVG(열 이름): 해당 열의 평균값 출력 MIN(열 이름): 해당 열의 최솟값 출력 등 여러가지가 있다. 집계 함수에서 DISTINCT 단순히 집계함수(열 이름)하면 모든 열에 대해 계산한 값을 하나의 행에 전달한다. category hospital_name city 정형..
이번에는 열 이름 위치에 추가적으로 사용할 수 있는 DISTINCT와 ALIAS에 대해 알아보겠다. DISTINCT 해당 열의 중복을 제거하는 방법이다. 가령 학교 학생의 과 정보를 저장하는 major 테이블이 아래와 같다고 해보자 student_id major_name 1234 컴퓨터공학 1234 화학공학 9999 기계공학 8888 전자공학 이 테이블에서 학번 리스트를 중복 없이 뽑고 싶다면 SELECT student_id FROM major; 가 아닌 SELECT DISTINCT student_id FROM major; 를 사용해 중복되는 student_id(1234)를 한 번만 표시할 수 있다. ALIAS 열 이름이 지저분하다거나, 테이블 형태를 바꿀 수 없는데 열 이름이 부적절한 상황, 두 개 이..
셀렉트는 일정 조건에 따라 새로운 테이블을 만드는 키워드이다. SELECT 열이름[, 열이름2, ...] FROM 테이블이름 [WHERE 조건식1 ...] [ORDER BY 열이름 [ASC|DESC]] [LIMIT 출력행갯수]; 일단 간단한 서식은 위와 같다. ([]는 생략 가능하다) student_id student_name 1 홍길동 2 길동홍 3 동홍길 (student 테이블) SELECT student_name FROM student; student_name 홍길동 길동홍 동홍길 (쿼리 실행 결과; 열 이름에 student_name만 입력했기 때문에 위와 같이 나온다) WHERE 조건식 WHERE 조건식 을 나열하여 원하는 row만 출력할 수도 있다. SELECT student_name FROM ..
테이블의 생성: CREATE CREATE TABLE 테이블이름( 열이름1 타입 [키 타입] [기본값] [on update 값], 열이름2 타입 [키 타입] [기본값] [on update 값], ... [constraint 제약사항 이름 check(조건식)], ... ); []로 된 부분은 선택사항이다. 위 문법을 이용해 간단한 테이블을 생성해보자 CREATE TABLE student( student_id integer PRIMARY KEY, student_name varchar(3) NOT NULL, semester int integer DEFAULT 1, enter_date datetime DEFAULT NOW() ON UPDATE NOW(), constraint SEMESTER_CONST check(..
셀렉트, 프로젝션은 릴레이션을 피연산자로 갖는 단일 연산자이고, 디비전은 두개의 릴레이션을 피연산자로 갖는 이항 연산자이고, 반환하는 값은 모두 하나의 릴레이션이다. 셀렉트(SELECT) 시그마 기호σ, 조건(선택), 피연산자로 이루어진 단일 연산자이다. 주어진 릴레이션에 대해 원하는 조건을 만족하는 튜플을 뽑아 새로운 릴레이션을 만든다. σ이름='홍길동'(국민) 하면 이름 주민등록번호 홍길동 123456-1234567 홍길동 234567-2345678 처럼 나온다. 결과값은 피연산자의 튜플 갯수보다 작거나 같다. 프로젝션(PROJECTION) 프로젝션 기호∏, 애트리뷰트 집합, 피연산자로 이루어진 단일 연산자이다. 주어진 릴레이션에 대해 각 튜플에서 원하는 애트리뷰트 집합으로만 이루어진 새로운 릴레이션..
집합 연산자는 이항 연산자로, 피연산자 두개가 필요하며 피연산자는 릴레이션이여야 한다. 합집합 릴레이션 R과 S의 튜플을 모두 합쳐 새로운 릴레이션 T를 만든다. 단 관계 대수에서 릴레이션은 중복 튜플을 허용하지 않으므로 중복 튜플은 하나만 표시한다. 교집합 릴레이션 R과 S의 튜플에서 중복되는 튜플만을 포함하는 새로운 릴레이션 T를 만든다. 단 관계 대수에서 릴레이션은 중복 튜플을 허용하지 않으므로 중복 튜플은 하나만 표시한다. 차집합 릴레이션 R에서 S에 존재하는 튜플들을 제외한 새로운 릴레이션 T를 만든다. 곱집합 릴레이션 R과 S에 대해 모든 가능한 튜플 조합을 가진 새로운 릴레이션 T를 만든다. 곱집합은 카테시안 곱이라고도 한다. 릴레이션 T의 차수는 R의 차수+ S의 차수이며, 릴레이션 T의 ..
열(column)= 필드(field)= 애트리뷰트(attribute) => 애트리뷰트는 관계 데이터 모델에서 사용하는 개념으로 관계형 데이터베이스의 열, 필드와는 약간의 차이점이 있다 행(row)= 레코드(record)= 튜플(tuple) => 튜플은 관계 데이터 모델에서 사용하는 개념으로 관계형 데이터베이스의 행, 레코드와는 약간의 차이점이 있다 릴레이션 스키마= 애트리뷰트의 집합(a set of attributes) 릴레이션 인스턴스= 어느 한 시점에서의 튜플의 집합(a set of tuples about specific time) => 데이터 추가, 삭제 등으로 인해 튜플 집합은 시간에 따라 변한다 도메인(domain) 도메인은 애트리뷰트(행)이 취할 수 있는 값들의 집합이다. 타입도 도메인으로 볼..
CPU 사용량 function get_server_cpu_usage() { $load = sys_getloadavg(); return $load[0]; } sys_getloadavg()는 길이가 3인 배열을 리턴하며, 각각 1분, 5분, 15분 평균 CPU 사용률을 의미한다. 배열의 0번 인덱스는 1분 평균 CPU 사용률을 의미한다. 이 값은 0~1사이의 값을 리턴하므로, 백분율로 표현하려면 $load[0]*100을 리턴한다. 메모리 사용량 function get_server_memory_usage() { $free = shell_exec('free'); $free = (string) trim($free); $free_arr = explode("\n", $free); $mem = explode(" ", ..
CPU Rate: 38.00 (3.8GHz) CPU Voltage: 1.25V Mem Clock: 2933MHz Mem Voltage: 1.3V Mem Timing: 1-18-18-18-40-56 램은 Geil 램인데 좀 후진건지 3000부터는 무슨짓을 해도 안먹는다. 2666부터는 큰 차이가 없다고 하니 자기 램이 많이 후지다 싶으면 Memory Try it! 메뉴에서 2666 짜리 중에 하나 골라서 쓰면 된다. 벤치마크
2021-04-24일자 기준 최신 바이오스 업데이트 후 nvme 드라이브를 사용했을 떄는 문제가 없지만,SATA SSD를 사용하면 성능이 급격히 떨어지는 현상이 관찰되었다.(벤치마크 에서는 전혀 문제가 없고 체감으로만 뚝 뚝 끊긴다) 베타 버전이긴 해도 릴리즈한지 9개월이 지나도 새로운 버전이 나오지 않아,별다른 문제가 없을 거라고 생각해 업데이트를 올렸으나,위에서 말한 대로 SATA방식의 SSD를 사용하면 성능이 처참해진다. 왜인지는 모르고, 문제 해결을 위해서는 최신 바로 이전버전 BIOS로 업데이트를 올려주면 된다. 이 버전으로 교체하고 난 후 문제가 해결되었다. 로스트아크를 실행할 떄 기준으로,최신 바이오스에서는 10~35 프레임 정도로 나오고,이전 바이오스에서는 45~80 프레임 정도 나온다. ..
기본 애플펜슬 펜촉은 너무 미끄럽다. 필기감도 연필과는 너무 다른데다, 갤럭시 노트/탭 시리즈와 비교해도 마찰력이 너무 작아 필기 중 펜이 이리저리 미끄러지는 탓에 지우고 다시 쓰는 일이 빈번하다. 시중 상품 일단 비싸다. 엥 이게 뭐가비싸? 할 수 있지만, 모든 펜촉이 마찰력이 같은 것도 아니고, 내가 어떤 종류의 펜촉을 써야 하는건지도 모르고, 하나 구매할 때 마다 배송비 2500원이 붙기 때문에 부담스럽다. 당장 촤저가로 3종만 구매해도 만원 가량이다. 알리익스프레스에서 직구 ko.aliexpress.com/item/4000391463457.html?srcSns=sns_Copy&spreadType=socialShare&bizType=ProductDetail&social_params=201453645..