웹서핑을 하다가 게시판 글이 과거는(어제기준) 날짜로 표기되고 금일은 시간으로 데이터가 표시되는 것을 보고 현재 공부하면서 만들고 있는 게시판의 쿼리를 바꿔보았다. (물론 뇌입원님의 은총을 받아서..) 기존에는 그냥 무책임하게 (년도 일자 오전오후 시간) 다 보여주는 형태였는데 이렇게 바꿔주니 한결 나아보인다. 애초에 화면 레이아웃이 엉망인지라(CSS를 잘몰라서 이곳저곳 오픈소스를 막 적용하다보니....) 다른 사람이 본다면 거기서 거기라고 느낄 것 같다... MYSQL에서 날짜 형식바꾸기 DATE_FORMAT(DATE,'형식문자'); //이렇게 하면된다. 아래는 형식문자에 들어갈 수 있는 문자들의 표이다. select NO, CASE WHEN DATE_FORMAT(REG_DATE,'%y.%m.%d') ..
무결성 제약조건은 데이터베이스 내의 데이터의 정확성을 유지하면서 바람직하지 않은 데이터가 저장되는 것을 방지하는 것을 말합니다. NOT NULL 제약 조건 - NULL값이 들어가며 안되는 칼럼에 설정합니다. UNIQUE 제약 조건 - 이 제약 조건은 유일하게 구분해야 하는 칼럼에 적용합니다. - NULL 데이터가 삽입되는 것을 허용합니다. PRIMARY KEY 제약 조건 - 이 제약 조건은 유일하게 구분해야 하는 칼럼에 적용합니다. - NULL 데이터가 삽입되는 것을 불허합니다. FORIGHT
인덱스란? 인덱스란 SQL 조회의 처리 속도 향상을 위해 칼럼에 생성하는 객체 새로운 인덱스 생성하기 CREATE INDEX 인덱스명 ON 테이블이름(칼럼명); 테이블의 인덱스 확인하기 SHOW INDEX FROM 테이블이름; 인덱스 제거 DROP INDEX 인덱스명; 인덱스를 무조건 사용한다고 해서 검색속도가 빨라지는 것은 아니다. 맹목적인 인덱스 지정시 성능 저하의 요인이 될 수 있다.(보통 한 테이블에 4~5개 이상의 인덱스를 지정하는건 권장하는 방법이 아니다) 인덱스를 사용해야 할 경우 - 테이블 행의 수가 많을 때 - 검색 결과가 전체 데이터의 5%이내 일때 - 컬럼에 대하여 변경보다 검색이 잦을 때 - WHERE문에 해당 컬럼이 많이 사용 될 때 - 컬럼값이 다양한 값을 지녔을 때 인덱스를 사..
테이블의 구조를 변경하는 ALTER문 ADD : 테이블에 칼럼을 추가합니다. MODIFY : 테이블의 칼럼 속성을 변경합니다. DROP : 테이블의 해당 칼럼을 삭제합니다. 형식 ALTER TABLE 테이블이름 ADD (칼럼이름,데이터타입,....); 사용 예 ALTER TABLE MEMBER MODIFY (NAME VACHAR(20)); //칼럼의 데이터 크기를 변경한다. ALTER TABLE MEMBER DROP COLUMN NAME; //테이블의 칼럼을 지운다. 테이블을 삭제하는 DROP문 사용 예 DROP TABLE MEMBER; //MEMBER라는 테이블을 지운다. 테이블의 모든 레코드를 삭제하는 TRUNCATE문 사용 예 TRUNCATE TABLE MEMBER; //MEMBER라는 테이블을
뷰는 가상테이블 이다. 하나의 테이블이라곤 말할 순 없고, 일단 뷰를 생성해두고 필요 시 호출하게 되면 뷰에 있는 쿼리가 내부적으로 실행되고 데이터를 가져오게 된다. 뷰를 왜 사용하는가? - SQL문의 재사용과 복잡한 쿼리문 작업을 단순화 시키려고. - 테이블 검색의 전체결과가 아닌 일부만 보거나 활용하려고. - 다른 사용자로부터 데이터를 보호하려고. 뷰는 자체적으로 아무런 데이터를 포함하지 않는다. 그냥 다른 테이블들에서 데이터를 가져와 볼 수 있도록 해줄 뿐. 그렇기 때문에 뷰 가상테이블을 보려고 할 때마다 그에 따른 쿼리를 실행하기 때문에 여러 조인문이나 뷰를 중첩하여 사용한 경우 제대로 튜닝하지 않으면 성능이 저하될 우려가 있음. 뷰의 규칙 - 뷰의 명칭은 테이블과 마찬가지로 고유해야함. - 만들..
TINYINT 부호있는 수는 -128에서 127까지, 부호 없는 수는 0에서 255까지 표현할 수 있다. 1 바이트 ※디폴트는 부호있는거(SIGNED), UNSIGNED를 붙이면 부호없는것~ SMALLINT 부호있는 수는 -32768에서 32767까지, 부호 없는 수는 0에서 65535까지 표현할 수 있다. 2 바이트 ※디폴트는 부호있는거(SIGNED), UNSIGNED를 붙이면 부호없는것~ MEDIUMINT 부호있는 수는 -8388608부터 8388607까지, 부호없는 수는 0에서 16777215까지의 수를 표현할 수 있다. 3 바이트 ※디폴트는 부호있는거(SIGNED), UNSIGNED를 붙이면 부호없는것~ INT [unsigned] 부호있는 수는 -2147483648부터 2147483647까지, 부..
서버환경 : 리눅스 CentOS 6.9이 글은 우선 아파치와 mod_jk, openssl 그리고 톰캣이 설치되어 있고 웹환경이 다 구현되어 있다는 전제로 설정하는 부분만 적는다.서버에 Let'sEncrpyt도 마찬가지로 설치되어 있어야 한다. Let'sEncrpyt 디렉토리로 이동..RPM방식으로 설치하니 두 가지 경로가 나온다.[root@host ~]# whereis letsencrypt letsencrypt: /etc/letsencrypt /usr/local/letsencrypt 인증서를 생성하는 명령어가 위치하는 곳은 /usr/local/letsencrypt이다
1. 이곳으로 가서 최신 설치파일의 주소를 가져온다.http://humdi.net/vnstat/ 2. wget http://humdi.net/vnstat/vnstat-1.17.tar.gz 3. tar -zxvf vnstat-1.17.tar.gz 4. cd vnstat-1.17makemake allmake install 5. 정상적으로 동작하는지 확인# vnstat --testkernelThis test will take about 60 seconds.Everything is ok. 6. # vnstat -u -i eth0Error: Unable to read database "/var/lib/vnstat/eth0".Info: -> A new database has been created. 7.# vnst..
mod_jk 설치를 위해서는 사전에 다음과 같은 패키지들을 설치하거나 설치되어 있어야 한다. yum -y install gcc gcc-c++ yum install httpd-devel 1. 먼저 mod_jk 설치 파일을 받는다. 그 다음 압축을 푼다. wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz tar -zxvf tomcat-connectors-1.2.42-src.tar.gz
1. root 디렉토리로 가서 다음을 다운로드 wget http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip 2. 파일이 다운로드 되면 압축을 푼다.unzip GeoIPCountryCSV.zip 3. vi /root/only-Korea-IP-Allow.sh 작성##########################################!/bin/bashDATA=/root/GeoIPCountryWhois.csvIPT=/sbin/iptablesfor IPRANGE in `egrep "Korea" $DATA | cut -d, -f1,2 | sed -e 's/"//g' | sed -e 's/,/-/g'`do $IPT -A INPUT -p ..
1. 아래 명령어로 설치할 수 있는 jdk버전 확인 yum list java*jdk-devel 그럼 아래처럼 뜬다 1.6, 1.7, 1.8version을 설치 할 수 있음을 알 수 있다. Available Packages java-1.6.0-openjdk-devel.x86_64 1:1.6.0.41-1.13.13.1.el6_8 base java-1.7.0-openjdk-devel.x86_64 1:1.7.0.141-2.6.10.1.el6_9 updates java-1.8.0-openjdk-devel.x86_64 1:1.8.0.141-2.b16.el6_9 updates 2. jdk 설치가장 최신 버전인 1.8version을 설치하겠다.yum install java-1.8.0-openjdk-devel.x86_6..
..... ..... 스크롤뷰 안에 리스트뷰를 위치하면 화면에 보이지 않는다.ListView의 속성인 android:layout_height="wrap_content"를 하면 하나의 아이템만 보이고, android:layout_height="match_parent"를 하면 아예 보이지 않는다. 본인은 인터넷을 돌아다니다 보면 여러가지 방법이 나오는데 그 중에서리스트뷰의 높이를 재설정해서 다시 그려주는 방법으로 해결했다. 123456789101112131415161718public void setListViewSize(ListView myListView) { ListAdapter myListAdapter = myListView.getAdapter(); if (myListAdapter == null) { r..
안드로에드에서 startActivity(Intent type)를 통해 액티비티를 전환하게 되면, 깜빡임과 함께 다른 액티비티로 전환된다. 하지만 액티비티를 전환할 때 애니메이션 효과를 주면 깜빡임 효과없이 액티비티가 개발자가 원하는 방향에서 나타날 수 있게 할 수 있다. 방법은 Activity클래스에서 overridePendingTransition(int showAnim, int hideAnim) 메서드를 호출하면 된다.12345678910//overridePendingTransition(int showAnim, int hideAnim); //다른 액티비티 호출 시startActivity(intent);overridePendingTransition(R.anim.rightin_activity,R.anim...
여기에서 정리하는 것을 요약해서 말하자면 별도의 Thread를 생성하고 사용 할 경우, 그 안에서는 UI 관련 객체(Button, TextView 등)에 대해서는 변경을 가할 수 없기 때문에 이를 해결 할 수 있는 방법을 정리하는 것이다. Thread 사용시 Handler의 필요성 안드로이드 어플리케이션이 실행되면 안드로이드에선 UI의 처리를 위해 사용되는 기본 쓰레드를 생성하는데 이것을 '메인쓰레드'라고 한다. 그런데 어떤 작업을 백그라운드로 실행 시키면서 그 작업의 상황을 중간중간 보고 받을 필요가 있는데, 백그라운드를 만드는 작업은 새로운 Thread를 만들어서 할 수 있다. 이를테면 의 진행상황을 TextView에서 표현할 상황이 생길 수 있다.새로운 Thread를 이용하여 ProgressBar의..