CD의 뜻은 change directory의 줄임말로 현재 작업하고 있는 디렉토리의 위치를 이동하는 명령어 입니다. CD 명령어 뒤에 디렉토리 이동경로를 입력해주시면 해당 디렉토리로 즉시 이동합니다. 이 디렉토리 이동경로를 입력하실때는 키보드 TAB 버튼을 함께 사용하시면 어느정도 경로를 자동으로 지정해주기에 좀 더 편하게 디렉토리 이동을 하실 수 있습니다. cp [이동 할 디렉토리 경로] ex) cd / : root로 이동 ex) cd project : 현재 디렉토리 내부에 있는 project 디렉토리로 이동 ex) cd /user/jtaewu : /user/jtaewu 경로의 디렉토리로 이동 현재 위치한 디렉토리의 위치를 이동할 수 있습니다. CD 명령어에는 별도의 옵션이 존재하지 않습니다. 이동할 ..
ls ls의 뜻은 list의 줄임말로 현재 위치한 디렉토리에 있는 내용(디렉토리, 파일) 리스트를 출력하는 명령어입니다. ls [디렉토리] ex) ls / : root에 있는 파일 목록 출력 ex) ls /project : /project 경로의 디렉토리에 있는 파일 목록 출력 디렉토리를 지정하여 파일 목록을 출력할수도 있습니다. 옵션을 사용하지 않으면 숨김 파일은 나오지 않습니다. 디렉토리명을 생략하면 현재 위치한 디렉토리의 파일 목록을 출력합니다. 자주 사용하는 옵션 -l : 파일들을 나열할때 자세히 출력한다. -a : 경로안의 모든 파일을 나열한다.(숨김파일도 포함) -R : 위치한 디렉토리 하부 디렉토리의 파일까지 모두 출력한다. -h : 파일크기를 해석파기 편하게 출력한다. -r : 출력 결과를..
리눅스 설정에 따라 좌측에 터미널에서 현재 내가 있는 위치가 안보이는 경우가 종종 있습니다. 이럴 때 현재 내가 있는 디렉토리의 경로를 알고 싶다면 pwd 명령어를 사용하시면 됩니다. pwd pwd의 뜻은 print working directory의 줄임말로 현재 위치한 디렉토리의 경로를 출력하는 명령어입니다. [jtaewu@localhost ~]$ pwd /home/jtaewu 터미널에 pwd라는 명령어를 입력하여 내가 /home/jtaewu라는 폴더안에 있다는 것을 확인하실 수 있습니다. pwd 명령어 옵션 pwd -L : 심볼릭 링크안에 있다면 심볼릭 링크의 경로를 표시합니다. pwd -P : 심볼릭 링크 안에 있다면 심볼릭 링크가 가리키는 디렉토리 경로를 표시합니다. 심볼릭 링크(Symbolic ..
인덱스(Index)란? 인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료 구조입니다. 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장됩니다. 이렇게 인덱스가 생성하였다면 앞으로 쿼리문에 "인덱스 생성 컬럼을 Where 조건으로 거는 등"의 작업을 하면 옵티마이저에서 판단하여 생성된 인덱스를 탈 수가 있습니다. 만약 인덱스를 타게 되면 아래의 그림과 같이 인덱스를 타게 되고 먼저 인덱스에 저장되어 있는 데이터의 물리적 주소로 가서 데이터를 가져오는 식으로 동작을 하여 검색 속도의 향상을 가져올 수 있습니다. 즉 인덱스는 책에 있는 목차라고 생각하시면 편합니다. 우리가 책에서 정보를 찾을때도 먼저 원하는 카테고리를 목..
실행 계획 확인하기 실행 계획이란 SQL이 실행되어 데이터를 처리하고자 할 때 옵티마이저에서 수립되는 SQL 실행 방법론입니다. 이 실행 계획을 구성하는 내용의 분석을 통해 SQL의 비 효율적인 부분을 확인할 수 있고 쿼리의 성능 향상을 위한 튜닝 포인트도 도출해낼 수 있습니다. 실행 계획을 알아내는 방법은 크게 EXPLAIN PLAN과 SET AUTORACE, SQL TRACE 이렇게 세 가지 방법이 있습니다. [DB] 데이터베이스 옵티마이저(Optimizer)에 대하여 [DB] 데이터베이스 실행 계획에 대하여 EXPLAIN PLAN 사용 예시 EXPLAIN PLAN -- EXPLANIN PLAN 선언부 SET STATEMENT_ID = 'PLAN1' INTO PLAN_TABLE -- SQL에 PLAN..
실행 계획이란? 실행계획이란 사용자가 SQL을 실행하여 데이터를 추출하려고 할 때 옵티마이저가 수립하는 작업 절차입니다. 이렇게 만들어진 실행 계획은 여러 가지 방법을 통해 확인할 수 있습니다. 실제 프로젝트에서 SQL 튜닝 업무를 하다 보면 개발자들이 DBMS 툴을 활용하여 실행 계획을 확인하는 것을 자주 보실 수 있습니다. SQL을 실행한 후 실행 계획을 판단하여 이 SQL이 어떠한 방식으로 실행되는지 확인이 가능합니다. [DB] 데이터베이스 옵티마이저(Optimizer)에 대하여 쿼리문의 실행 계획을 확인하는 방법 쿼리문의 실행 계획을 확인하는 방법은 EXPLAIN PLAN, AUTOTRACE, SQL TRACE 이렇게 3가지가 있습니다. 실행 계획을 판단하는 방법은 아래 포스팅에 오라클을 활용하여..
옵티마이저(Optimizer)란? 옵티마이저는 가장 효율적인 방법으로 SQL을 수행할 최적의 처리 경로를 생성해주는 DBMS의 핵심 엔진입니다. 컴퓨터의 두뇌가 CPU인 것처럼 DBMS의 두뇌는 옵티마이저라고 할 수 있습니다. 개발자가 SQL을 작성하고 실행하면 소프트웨어 실행파일처럼 즉시 실행되는 것이 아니라 옵티마이저(Optimizer)라는 곳에서 "이 쿼리문을 어떻게 실행시키겠다!"라는 여러 가지 실행계획을 세우게 됩니다. 이렇게 실행계획을 세운 뒤 시스템 통계정보를 활용하여 각 실행계획의 예상 비용을 산정한 후 각 실행계획을 비교해서 최고의 효율을 가지고 있는 실행계획을 판별한 후 그 실행계획에 따라 쿼리를 수행하게 되는 것입니다. 옵티마이저의 종류 옵티마이저는 실행 계획을 세우는 방식에 따라 규..
서블릿(Servlet)이란? 서블릿이란 Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술입니다. 웹을 만들때는 다양한 요청(Request)과 응답(Response)이 있기 마련이고 이 요청과 응답에는 규칙이 존재합니다. 이러한 요청과 응답을 일일이 처리하려면 굉장히 힘들겠죠? 서블릿은 이러한 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술이라고 생각하시면 이해가 빠를듯 합니다. 서블릿은 자바 클래스로 웹 애플리케이션을 작성한 뒤 이후 웹 서버 안에 있는 웹 컨테이너에서 이것을 실행하고, 웹 컨테이너에서는 서블릿 인스턴스를 생성 후 서버에서 실행되다가 웹 브라우저에서 서버에 요청(Request)을 하면 요청에 맞는 동작을 ..
Web Service의 전체적인 흐름 웹 개발을 진행한다고 하면 위의 그림과 같은 구조로 시스템을 구성하게 됩니다. 전체적인 흐름을 보면 웹 브라우저에서 Web Server로 HTTP 요청을 보내고 정적 요청인 경우에는 즉각적으로 Web Server에서 응답을 합니다. 하지만 동적 요청인 경우에는 Web Sever에서 대응하지 못하고 Web Server에 연결되어 있는 Web Application Server 중 한 곳에 처리를 위임합니다. Web Application Sever는 Web Server에서 요청을 받게 되면 컨테이너가 응답하여 동적 콘텐츠를 삽입할 수 있는 프로그래밍 언어인 Java를 사용할 수 있게끔 JSP / Servlet을 실행한 뒤 DB에서 값을 가져오는 등의 동적인 값을 확정하고 ..
가끔 필요로 인해 내가 개발하고 있는 사이트의 도메인 IP주소를 알아야 할 경우가 있습니다. 이럴때는 윈도우 cmd창에서 nslookup 명령어를 활용하여 도메인의 정보를 조회하시면 됩니다. nslookup명령어는 DNS 서버에 도메인이나 ip주소를 질의해서 DNS 서버에 있는 정보를 응답받는 명령어 입니다. nslookup 명령어를 활용하여 도메인 IP 주소 확인하기 명령 프롬프트(CMD)창을 켠 후 nslookup [도메인 명]으로 입력하면 설정된 DNS 서버에 질의하여 해당 도메인의 IP주소를 조회합니다. 서버의 숫자에 따라 응답되는 ip주소는 여러개일 수 있습니다. nslookup 명령어 옵션 및 사용법 cmd창에 nslookup ? 이렇게 명령어 + 물음표를 입력하면 nslookup 도움말을 확..
Ping 이란? ping이란 Paket Internet Groper의 약자이며 컴퓨터 네트워크 상태를 점검, 진단하는 명령어입니다. ping을 보내는 대상 컴퓨터를 향해 일정 크기의 패킷(packet, 네트워크 최소 전송 단위)을 보낸 후 (ICMP echo request) 대상 컴퓨터가 이에 ping에 대해 응답하는 메시지(ICMP echo reply)를 보내면 이를 수신, 분석하여 대상 컴퓨터가 작동하는지, 또는 대상 컴퓨터까지 도달하는 네트워크 상태는 어떠한지를 알 수 있습니다. 예를 들어 인터넷이 끊긴다고 가정하였을 때 공유기에 ping을 날려 주고받은 패킷의 손실률을 파악하여 인터넷의 연결 상태를 진단하실 수 있습니다. 인터넷 연결 진단 Ping 테스트 하는법 1. PC -> 공유기 까지의 연결..
아파치 톰캣을 사용하다 보면 종종 위와 같은 에러가 뜰 수 있습니다. 톰캣에서 사용해야 할 포트를 다른 프로세스에서 실행 중이거나 시스템 프로세스가 포트를 사용하고 있어 실행을 할 수 없다는 내용인데요. 이럴 경우 톰캣에서 사용할 포트번호를 바꾸는 방법도 있겠지만 꼭 해당 포트를 사용해야 할 경우에는 그 포트를 사용하고 있는 프로세스를 강제로 KILL 해서 죽이고 톰캣을 재 실행하는 방법도 있습니다. 윈도우10 에서 특정 포트 번호 죽이기 (Kill) 저는 톰캣에서 80 포트를 사용하고 있으므로 80 포트를 사용하고 있는 프로세스를 죽이는 방법으로 예를 들겠습니다. 1. 작업표시줄 검색창에서 cmd를 입력하고 명령 프롬프트를 관리자 권한으로 실행시킵니다. 2. netstat -ano 명령어를 입력하여 8..
자바에서 가끔 두 날짜의 간격 예를 들어 두 날짜의 일수나, 시간, 분, 초등을 구해야 할 때가 있습니다. 이럴 때는 대개 두 날짜를 getTime을 활용하여 밀리 세컨드로 변환한 후 두 날짜의 차이를 계산한 뒤 원하는 단위로 바꾸는 작업을 통해 계산합니다. Date.getTime() Date.getTime()은 Date를 밀리세컨드로 변환해서 long형 숫자 데이터로 반환합니다. 이를 이용하면 산술 연산으로 시간 차이를 쉽게 구할 수 있습니다. 1000밀리초는 1초로 계산되므로 getTime()으로 구한 값을 밀리초를 1000으로 나누면 초를 얻습니다. 이 초를 기본으로 하여 다른 시간 단위들도 계산할 수 있습니다. 초 : / 1000 분 : / (1000 * 60) 시 : / (1000 * 60 * ..