* 윈도우 HDD 복구 파티션 삭제하기 *




윈도우 내에서 HDD의 복구 파티션을 삭제하는 방법을 알아보겠습니다.



참고 - CMD의 diskpart 명령어 : http://n1094.tistory.com/23?category=729401



보통 디스크 파티션 관리는 


내 PC  우클릭 [관리] 선택 → 디스크 관리


로 들어가서 할 수 있습니다.





저기 빨간색 네모친 부분을 들어가시면



이런 이미지를 보실 수 있습니다.


위의 이미지는 제가 임시로 상황을 만들어 놓은 것입니다... 재연을 위해서!




보통 복구 파티션은 저렇게 작은 용량(약 480MB정도의 크기, 위 이미지는 예시입니다!)을 가지고 있습니다. 


다른 파티션들과는 달리, 저 부분은 우클릭을 할 경우 도움말(H) 항목만 보여집니다.


이 파티션을 어떻게 지워야 할까요?


diskpart 명령어 사용하기


1. Win 키 + R 로 실행창을 연 후, diskpart 를 입력합니다. 혹은, cmd 창에서 diskpart 라고 입력하셔도 됩니다.





2. diskpart 콘솔창을 열었다면, 아래와 같은 화면을 보실 수 있습니다.





3. list disk 명령어를 통해 현재 컴퓨터가 인식하고 있는 디스크 목록을 봅니다.





4. sel disk 0 명령어를 통해 우리가 삭제해야 하는 파티션의 디스크를 선택(select) 해줍니다.





5. 해당 디스크의 내부에 구성되어져 있는 partition 을 살펴봅니다. list partition 명령어를 사용합니다.





6. 저희가 삭제해야하는 파티션이 보입니다. sel partition 2 명령어로 해당 파티션을 선택해줍니다.





7. 파티션을 선택하셨으면, delete partition override 명령어를 통해 해당 파티션을 삭제합니다.





8. 파티션을 삭제했다는 문구가 나오면, list partition 으로 해당 파티션이 잘 삭제되었나 봅니다.





해당 파티션이 출력되지 않음으로써, 우리는 우리가 삭제해야 하는 파티션을 잘 삭제했음을 알 수 있습니다.


마지막으로 요약 하겠습니다.



1. Win 키 + R 로 실행 창을 띄운 후, diskpart 입력 후 확인 혹은 cmd 창에서 diskpart 명령어 입력


2. list disk 로 해당 파티션의 디스크 확인


3. sel disk (번호) 로 해당 파티션의 디스크 선택


4. list partition 으로 해당 파티션 확인


5. sel partition (번호) 로 해당 파티션 선택


6. delete partition override 로 해당 파티션 삭제


7. list partition 으로 해당 파티션이 잘 삭제되었나 확인




이상으로 디스크 관리 화면에서 삭제할 수 없는 파티션을 삭제하는 법을 알아보았습니다.


복구 파티션 외에도 디스크 관리 화면에서 삭제할 수 없는 파티션이나 디스크는 위에서 살펴본 diskpart 콘솔창에서 삭제할 수 있습니다.



Posted by NDC :

 *** MySQl 기본적인 명령어 *** 


데이터베이스를 관리해주는 DataBase Management System, 줄여서 DBMS 라고 합니다.


이 DBMS 도 C 컴파일러(dev-C, gcc 등등) 처럼 여러 종류가 있는데요.


Oracle 사의 DBMS, MS 사의 MySQL, 그리고 MySQL 에서 분파(?)한 MariaDB 등등 SQL 을 사용할 수 있는 DBMS 시스템에도 종류가 있습니다.


이 글은 MS 사의 MySQL 을 기준으로 하겠습니다.


---------------------------------------------------------------------------------------------------------------------------------------------------------



1. Database 선택하기


Database 가 여러 개가 있을 경우, 쿼리문을 어느 DB에 사용할 것인가?


>>> use (db_name)

* 이후 발생하는 쿼리문들은 모두 db_name 의 데이터베이스에서 실행됩니다.




2. (table_name) 의 모든 정보 보기


(table_name) 테이블에 있는 모든 정보를 보고 싶다?


>>> select * from (table_name)




3. 2개 이상의 테이블을 한 번에 보기


(table_name1) 과 (table_name2) 의 이루어 질 수 있는 모든 경우의 수를 보고 싶다?


>>> select * from (table_name1), (table_name2)

* 단순히 콤마를 통해 두 테이블을 연결할 경우, 두 테이블에서 나올 수 있는 모든 경우의 row가 발생한다.

즉, table_name1 의 row 개수가 100개, table_name2 의 row 개수가 20개라면

위의 쿼리문으로 나오는 row 의 개수는 100 * 20 = 2000개 가 나온다.




4. 중복된 정보를 제거한 후 보기


특정 칼럼에서 중복된 값들을 제거한 후 하나씩 만을 보고 싶다?


>>> select distinct (column_name) from (table_name)

* 반복적인 1, 2, 3 의 값으로 되어있는 column 에 distinct 를 붙인다면

단 3개의 row 가 나온다. (1, 2, 3)




5. 상위 n개의 row 만 보기


단순하게 위에서 n개의 row만을 보고 싶다?


>>> select top (n) (column_name) from (table_name)




6. 두 개의 칼럼을 합쳐서, 하나의 칼럼으로 따로 보기


테이블을 한 번에 보는 것이 아닌, 두 개의 칼럼을 합쳐서 따로 새로운 칼럼으로 보고 싶다?


>>> select (column_name1) + (column_name2) from (table_name)

* 위의 쿼리문을 실행하면, (열 이름 없음) 이라는 새로운 column 에서 두 column 을 그대로 합친 결과를 볼 수 있습니다.

만약 (열 이름 없음) column 에 이름을 지어주고 싶다면


>>> select (column_name1) + (column_name2) as (new_column_name) from (table_name)

위처럼 as 문을 사용하면 가능합니다.


>>> as 는 "Rename" 기능을 가지고 있습니다. 

from MyTable as MT 라고 한다면, 이후에 MyTable.column1 대신 MT.column1 이렇게 접근할 수 있습니다.




7. 특정 column 에 대하여 정렬된 상태로 보기


칼럼이 여러 개가 있을 경우, 어떤 특정 칼럼에 대해 정렬된 상태로 보고 싶다?


>>> select (column_name) from (table_name) order by (wanted_column_name)

* 위의 쿼리문을 실행하면, (열 이름 없음) 이라는 새로운 column 에서 두 column 을 그대로 합친 결과를 볼 수 있습니다.

그런데 이 정렬의 기준이 될 column 은 2개 이상도 가능합니다.


>>> select (column_name) from (table_name) order by (wanted_column_name1), (wanted_column_name2)

* 이 쿼리문을 실행하면, (wanted_column_name1) 과 (wanted_column_name2) 에 맞춰져서 정렬된 상태로 테이블의 row 들을 보여줍니다.

정렬의 기준은 알파벳 순서 (ex. a~ ), 작은 숫자 (ex. 0~ ) 순서입니다.



---------------------------------------------------------------------------------------------------------------------------------------------------------


이후에 더 추가할 내용이 있다면 추가하도록 하겠습니다.

SQL 쿼리문에 들어가는 키워드를 중심적으로 봐주시면 될 것 같습니다.

(ex. 정렬이 필요하다? -> order by,   상위 n개의 row를 보고싶다? -> top (n) )


Posted by NDC :

* CMD 의 diskpart 명령어 *


내 PC 우클릭 -> 관리 -> 디스크 관리 에 보면 파티션을 삭제해야 하는 경우가 있다.


> diskpart

disk > partition 순서임


> listdisk


> select disk 0 또는 select disk 1 


이런식으로 디스크를 선택 -> 이는 내컴퓨터>관리>디스크관리 에서 확인가능

디스크를 선택하면?


> list partition


해당 선택된 디스크에 있는 파티션들이 나열되어서 보여짐

파티션 삭제는?


선택 -> 삭제


ex.

select partition 4

delete partition override 


이러면 4번 파티션이 삭제됨.

Posted by NDC :

* HTTP 에러 정리 *


가장 많이 볼 수 있는 것들이 404 Not found나 403 Forbidden 등이 있습니다. 이들은 서버에서 보내는 사용자의 요구에 대한 응답입니다. 


이러한 것들은 HTTP/1.0의 STATUS CODE라고 합니다. 즉, 이들 메시지만 잘 해독해도 많은 도움이 됩니다. 아래는 그 메시지의 설명입니다.


code : 200


reason field : OK 

의미 : 클라이언트의 request가 성공적으로 수행됐다. request처리결과로 클라이언트에게 전달되는 정보는 사용된 method에 따라서 달라진다.


reason field : GET

의미 : request가 지정한 자원이 response메세지로 전달 된다. 


reason field : HEAD

의미 : response메세지에는 요청된 자원에 관한 정보를 나타내는 header만이 포함된다. 


reason field : POST

의미 : 지정된 동작의 수행결과를 포함하거나 결과를 설명하는 엔터티가 전달된다. 



code : 201


reason field : Created

의미 : request가 처리되었고 그 결과로 새로운 자원이 생성되었다. 생성된 새로운 자원을 나타내는 URI 값이 response메시지로 전달된다. 서버가 이와 같은 status code(상태코드)를 클라이언트에게 전달하기 위해서는 새로운 자원을 먼저 생성시켜야 한다. response메시지를 전달 할때까지 새로운 자원이 생성되지 못하면 status code 202(Accepted)를 보내야 한다. POST method만이 서버에 새로운 자원을 생성시킬 수 있다. 


code : 202


reason field : Accepted

의미 : request가 수락되었으나 response메시지를 전달할 때까지 그 프로세싱이 완료되지 못했으며 또한 언제까지 request의 수행결과를 사용자가 볼 수 있을지를 확실히 판단할 수 없다. 이와 같은 status code는 request가 수락된 것(accepted)만을 나타낼뿐 궁극적으로 그 request가 처리될 것이라는 보장 할 수 없을 때 사용된다. status code 202는 Web 브라우저와 같이 서버의 처리결과를 전달받을 때까지 계속 기다리게 되는 클라이언트를 위한 것은 아니다. WEb브라우저와는 다른 일종의 batch프로세서(하루에 한번정도 실행되는)의 request를 서버가 받아들일 수 있도록 하기위한 것이다. 


code : 204


reason field : No Content

의미 : 서버가 request를 처리했지만 클라이언트에게 전달할 새로운 정보가 없다. 이 status code를 전달받는 Web브라우저는 현재 디스플레이 중인 내용을 변경시키지 않아야 한다. 이 code를 정의한 주된 목적은 현재 디스플레이 중인 문서의 내용을 변경시키지 않으면서 CGI스크립트 등에 입력을 전달할 수 있도록 하기 위해서이다. 


code : 300


reason field : Multiple

의미 : HTTP/1.0을 사용하는 경우에는 이 code가 직접적으로 사용되지는 않는다. 다만, 3xx클래스에 속하는 status code의 디폴트값으로 사용된다. 그 의미는 301, 302, 304만이 HTTP/1.0에 정의되어 있으므로 그 외의 status code값을 전달받는 경우에는 300으로 간주한다는 의미가 되는 것이다. 


code :301


reason field : Moved

의미 : 요청된 자원의 URI값이 완전히 변경되었으므로 앞으로는 새로운 URI값을 사용하여야 한다. 새로운 URI값은 Location(위치)헤더를 통해서 클라이언트에게 전달된다. 또한 HEAD method를 제외한 모든 경우에 response메시지의 entity(실재) body를 통해서 새로운 URI의 하이퍼링크를 포함 하는 짧은 메시지를 전달해 주어야 한다. Web브라우저는 POST method를 사용한 request의 결과로 301 status code를 전달받는 경우에는 자동으로 새로운 URI에 접속해서는 안된다. 반드시, 사용자의확인을 거쳐야 한다. 


code :302


reason field : Moved

의미 : 요청된 자원의 URI값이 임시로 변경되었다. 따라서 추후 Temporarily(임시폴더)에도 현재의 URI값을 계속 사용하여야 한다. 새로운 URI값은 Location헤더를 통해서 클라이언트에게 전달된다. 또, HEAD method를 제외한 모든 경우에 response메시지의 entity body를 통해서 새로운 URI의 하이퍼링크를 포함하는 짧은 메시지를 전달해 주어야 한다. Web브라우저는 POST method를 사용한 response의 결과로 302 status code를 전달받는 경우에는 자동으로 새로운 URI에 접속을 해서는 안된다. 반드시 사용자의 확인을 거쳐야 한다. 


code : 304


reason field : Not

의미 : conditional GET method가 사용된 경우에 전달된다. Modified request를 처리한 결과 If-Modified-Since헤더에 지정된 날짜/시간 이래로 지정된 문서가 변경된 사실이 없는 경우 서버는 이 status code로 응답해야 한다. 이때, entity body는 전송되지 않는다. reseponse메시지로 전달되는 헤더들은 주로 cache와 관련된 정보를 포함하게 된다. cache manager(대개의 경우는 Web브라우저 자체에 그 기능이 포함된다)는 304 response에 포함된 헤더의 값을 cache된 entity들에 반영할 수 있도록 하여야 한다. 


code : 400


reason field : Bad Request

의미 : request메시지의 syntax(체계, 배열)가 잘못되어서 서버가 request를 처리할 수 없다. 재접속을 하는 경우에 클라이언트는 반드시 올바른 request메시지를 사용해야 한다. 


code : 401


reason field : Unauthorized 

의미 : request가 user quthentication을 필요로 한다는 것을 클라이언트에게 알려주기 위해서 사용된다. WWW-Authenticate(인증하다, 증명하다)헤더를 통해서 요청된 자원에 적용되는 challenge를 전달한다. 401 response를 받은 클라이언트는 적절한 Authorization credentials(위임장)를 포함하는 Authorization헤더와 함께 다시 request메시지를 전송한다. request메시지에 그와 같은 Authorization credentials이 포함된 경우에 401 status code가 전달되면 user authentication이 실패한 것을 나타낸다. 


code : 403


reason field : Forbidden

의미 : 서버가 request의 처리를 거절하는 것을 나타낸다. 이와 같은 응답을 받은 경우에는


동일한 request를 반복하지 말아야 한다. 왜냐하면 무조건 request가 거절되는 것이기 때문이다. 403 status code는 request를 거절하는 이유를 명시적으로 밝히고 싶지 않거나 적절한 status code가 없을때 사용된다. 


code : 404


reason field : Not Found

의미 : Request-URI에 해당하는 자원을 찾을 수 없을 경우에 사용된다.


그런 상태가 일시적인 것인지 아니면 언제나 그렇게 되는지를 나타내는 어떤 정보도 전달되지 않는다. 이런 상태를 클라이언트에게 알리고 싶지 않은 경우에는 403 code를 대신 사용해도 된다. 


code : 500


reason field : Interna

의미 : 서버프로그램에서 예기치 않은 오류가 발생하여서 request Srever Error 를 처리할 수 없다. 


code : 501


reason field : Not

의미 : request를 처리하기 위해서는 필요한 기능을 서버가 갖추고 Implemented(충족시키다)있지 못하다. 


code : 502


reason field : Bad

의미 : gateway나 proxy로 동작하는 서버가 사용하는 것으로 자신 Gateway의 위쪽에 있는 서버로 부터 잘못된 response메시지를 전송 받았다는 것을 나타낸다. 


code : 503


reason field : Service

의미 : 과부하나 서버 maintenance(유지, 보존) 때문에 서버가 잠시동안 request Unavailable(요청불가능)를 처리해 줄 수 없는 상태에 있다.



Posted by NDC :

상 관리자 권한으로 실행하기 *



1. exe 파일 우클릭 

2. > 속성 

3. > 호환성 

4. > 하단에 '관리자 권한으로 이 프로그램 실행' 체크

5. > 적용 

6. > 확인

Posted by NDC :

 * 마우스 우클릭에 기능 추가하기 *


나의 상황에서... 


어떤 *.exe, *.dll 파일을 Olly-dbg 로 한번에 열고 싶을 때가 있었다. 

그래서 마우스 우클릭에 기능을 추가해 보았다. 



1. Win키 + R > regedit.exe 입력 -> registry 편집기 실행된다.


여기서 컴퓨터 > HKEY_CLASSES_ROOT > * > shell 들어간다.


[shell] 우클릭 > 새로 만들기 > 키 선택


[새 키 #1] 라는 폴더가 하나 생성됨.


여기서 이름을 바꾼다. 이 이름은 이제 우클릭하면 보여질 이름이다.

나는 [Open with Olly-Dbg] 라고 하겠다.


그럼 [Open with Olly-Dbg] 를 또다시 우클릭, 새로 만들기 > 키 선택


또다시 새 키가 하나 생성된다.


이 키(폴더)의 이름을 [command] 라고 수정하자.


[command] 키(폴더)를 더블클릭하면 옆에 (기본값)이라는 이름의 REG_SZ 가 하나 보인다.


일단 regedit은 여기까지 하고, exe 실행파일의 경로를 따야 한다.


나의 OllyDbg.exe 의 경로를 복사하자.

(복사하는 법:exe 파일 Shift + 우클릭 > 경로로 복사(A) 클릭 > 클립보드에 임시로 경로복사됨.)


경로가 복사되었으면, 다시 regedit 의 ... > command > (기본값) 으로 와서,


(기본값)을 더블클릭 한다.


그럼 값 데이터(V): 라는 항목을 볼 수 있다.


여기에 Ctrl + V 로 클립보드의 항목(경로)을 붙여넣기 하자.


"D:\Files\...\OLLYDBG.EXE" 라고 나올 것이다.(큰따옴표가 있어야한다.)


그 뒤에 "에 커서를 두고 Space-Bar 로 공백을 하나 만든 후, 그 뒤에


"%1"


라고 입력하자.(큰따옴표 포함임)

그리고 확인을 누르고 regedit 을 종료하자.


그러면 당신이 어떤 프로그램을 우클릭했을 때, Open with Olly-Dbg 라는 항목이 생기고,


그 항목을 누르면 그 프로그램을 Olly-dbg 로 열 수 있다.

Posted by NDC :