SQL InjectorSQL Injector

Posted at 2011. 5. 3. 20:41 | Posted in Computer Science/DB시스템및프로그래밍

이번 주 내로 SQL Injector 완성 예정
//

Mass SQL InjectorMass SQL Injector

Posted at 2011. 5. 3. 18:13 | Posted in Computer Science/DB시스템및프로그래밍

지금 만들고 있는 프로그램은 대용량 DBMS 테스트를 위한 Mass SQL Injector 이다. 프로그램의 이름이 해킹 도구의 이름과 유사하여 작명에 대한 고민을 하였다. SQL Injection 하는 해킹 도구는 아니지만 대용량 데이터를 삽입하는 의미에서 Mass SQL Injector 라고 지었다.

일단은 프로그램을 실행하게 되면 데이타베이스 정보를 입력받게 된다. Oracle DBMS의 기본 포트 번호인 1521과 기본 서비스명인 ORCL은 미리 입력해 놓고 서버 IP와 사용자명 그리고 패스워드를 입력받게 구성하였다. 확인 버튼을 누르게 되면 데이타베이스에 접속을 하게 된다.

이제 구성해야 될 부분은 데이타베이스 접속 정보를 담는 Connection 클래스를 메인 프로그램으로 넘겨주는 작업이다. 메인 프로그램의 생성자에서 Connection 클래스를 받도록 하여야 한다.
//

논문 지도 교수님 배정논문 지도 교수님 배정

Posted at 2011. 5. 3. 18:11 | Posted in Computer Science
팀프로젝트를 위해 학교를 갔는데 학과 사무실에 돗자리를 펴 놓고 기다리는 학생을 발견하였다. 무척이나 놀라움을 금치 못하였다. 친구들의 이야기를 들어오면 보통 저녁 11시부터 줄을 서게 되는데 오후 1시부터 기다리다니! 그렇게 줄이 길어 지지 않을 것이라 생각했는데 5시쯤 되니 줄이 상당히 길었다. 나도 줄을 섰지만 어떤 지도 교수님을 배정 받을 지 고민이였다. 원래 생각하고 있던 분은 박창윤 교수님이다. 정말 내 20대 청춘을 보내는 동안 네트워크를 이렇게 재미있으면서 심오하게 알려주시는 분은 처음이였다. 학원을 다니면 그 본질적인 내용보다는 실제 업무적인 내용에 대해 배우게 된다. 그래서 내가 가지고 있던 지식은 항상 피상적이었고 정작 중요한 부분은 텅비어있었다. 이 텅빈 부분을 매꾸어 주신 분이 박창윤 선생님이다.

품질보증팀에서 업무를 할 당시 다른 부분은 어렵지 않았지만 성능 측정 부분은 나에게 가장 힘든 부분이였다. 계측장비인 IXIA의 사용법은 숙지하였으니 성능 측정 결과를 해석할 수가 없었다. 그리고 학교를 복학하여 컴퓨터통신 수업을 듣던 중 성능 측정 기법에 관한 내용을 배우게 되었다. 이러한 성능 측정 기법은 인터넷에서 자료를 찾기도 힘들뿐더라 학원에서도 알려주지 않는 내용이다. 시중의 네트워크 책을 살펴 보아도 다루지 않는 내용이었다.

내가 만약 컴퓨터통신 수업을 듣고 인턴을 하였더라면 질 좋은 보고서를 쓸 수 있었을텐데 아쉽다는 생각을 많이 하였다. 이제 얼마 남지 않은 시간 선생님께 더 많은 것을 배우고 생각해 보아야겠다.
//

HW#14 : Dijkstra's Algorithm 최적임의 증명HW#14 : Dijkstra's Algorithm 최적임의 증명

Posted at 2011. 5. 3. 02:34 | Posted in Computer Science/알고리즘

HW#14 : Dijkstra's Algorithm for Single Source Shortest Path Problem은 Greedy Method이면서 최적인 이유는 무엇인가?(Optimality Proof)

//

HW#13 : Prim's Algorithm 증명HW#13 : Prim's Algorithm 증명

Posted at 2011. 4. 28. 16:05 | Posted in Computer Science/알고리즘
HW#13 : Prim's Algorithm을 증명하시오. 단, Greedy Algorithm 일반화 및 Proof by Contradiction을 포함 시키시오.
//

HW#12 : Prim's Algorithm의 구현과 예제의 동작과정을 보이시오.HW#12 : Prim's Algorithm의 구현과 예제의 동작과정을 보이시오.

Posted at 2011. 4. 28. 16:04 | Posted in Computer Science/알고리즘
HW#12 : Prim's Algorithm의 구현과 예제의 동작과정을 보이시오.
//

HW#11 : MST 계산법 중 BF, DC, DP 접근 방법의 한계점HW#11 : MST 계산법 중 BF, DC, DP 접근 방법의 한계점

Posted at 2011. 4. 28. 16:02 | Posted in Computer Science/알고리즘
HW#11 : MST를 계산하는 방법 중 Brute Force, Divide and Conquer, Dynamic Programming 접근 방법이 가지는 한계점(Limitation)이 무엇인지 기술하시오.

//

SNMP 이야기SNMP 이야기

Posted at 2011. 4. 27. 17:47 | Posted in Computer Science/네트워크응용설계

이번 네트워크응용설계의 주제는 "SNMP(Simple Network Management Protocol)"이였다. 침해사고대응팀에 있을 때 우리의 관제 대상 중 하나가 바로 전체 시스템의 장애 유무 였다. 모든 장비는 Manager에게 시스템의 현재 상태를 보고 하는 패킷을 보내주었고 EMS(Enterprise Management System)으로도 패킷을 보내었다.

그 당시에 SNMP는 신기한 프로토콜이였다. 이렇게 많은 네트워크 장비를 손쉽게 관리할 수 있다는 사실이 무척 흥미로웠다. 또한 장비의 장애 유무를 세심하게 볼 수 있었다. 각 장비의 Port에 대한 정보부터 시작하여 기본적인 CPU 사용률, Memory 사용률, Disk 사용률을 손쉽게 파악할 수 있었다. 또한 어떤 장비의 경우 원격으로 명령을 내릴 수 있기도 하였다.

한 가지 기억에 또 남는 것이 있다면 발전기를 점검할 때 이다. 주기적으로 발전기 점검을 하게 된다. 이 때 UPS가 잘 동작하는지도 확인한다. 하지만 UPS가 버틸 수 있는 시간에는 한계가 있기 때문에 핵심적인 장비 외에는 전원을 내린다. 그렇게 되면 SNMP 솔루션 프로그램에 망에 전부 파란색에서 빨간색으로 표시된다. 평상시같으면 큰일이지만 이 때는 괜찮다. 이런 기회가 없겠다 싶어서 화면을 갈무리 해놓던 것이 기억난다. 하지만 이것 역시 보안상 취약점이 있다. 수업 시간에도 언급하였듯이 망 정보는 밖으로 나가면 안되는 정보이다. 라우팅 테이블 역시 마찬가지이다. 예전에 유투브와 관련된 해킹 사건 역시 라우팅 테이블과 관련이 있었다.

수업을 듣던 중 옛날 생각이 나서 이렇게 글을 남긴다. 또한 현재 생각해 두고 있는 IPS 시스템을 만든다면 꼭 SNMP 기능을 구현해 보고 싶다.

//

Quiz 01Quiz 01

Posted at 2011. 4. 12. 19:50 | Posted in Computer Science/알고리즘

알고리즘 앞반 퀴즈
A에서 J도시까지 최소비용경로 구하기.

알고리즘 뒷반 퀴즈
배낭채우기 문제.

//

Algorithm, Spring 2011Algorithm, Spring 2011

Posted at 2011. 4. 11. 04:09 | Posted in Computer Science/알고리즘

Algorithm, Spring 2011

Course Description and Goals
본 과목은 컴퓨터공학에서 다루는 문제들을 해결하기 위한 가장 기본적이며 중요한 원칙들과 해결기법 및 전략에 대해서 강의한다. 컴퓨터공학부 3학년이 수강대상이며, 이에 준하는 수준에서 강의를 진행한다.

컴퓨터공학의 다양한 문제해결을 위한 전략을 설계하고 분석하는 것을 주요 강의 내용으로 다루며, 수강생들이 이를 효과적으로 습득하기 위해서 선수과목으로 프로그래밍 관련 과목과 데이터구조 분석/설계를 필히 이수하고 수강하여야 한다. 선수과목에서 다루어진 내용에 대해서는 강의를 생략할 예정이며, 선수과목을 미이수한 학생들은 수강신청 시 유의하여야 한다.

본 과목의 목표는 학생들이 한 학기 알고리즘을 수강한 후, 이후 직면할 수 있는 다양한 컴퓨터공학의 문제들을 효과적으로 해결할 수 있는 컴퓨터공학적 사고를 할수 있도록 하는 것이며, 주어진 문제에 대해서 가장 효과적인 접근방식 및 전략 (Approach and Strategy)를 설계하고, 제안한 알고리즘에 대한 수학적 분석을 통해 그 우월성을 입증할 수 있는 능력을 배양하게 된다.

본 과목에 대한 컴퓨터공학심화 프로그램 교과목 학습성과 구성은 다음과 같음: 학습성과-1(20%), 학습성과-2(30%), 학습성과-3(30%), 학습성과-4(20%)

Course Procedures and Evaluation
강의는 지도교수에 의한 이론강의를 중심으로 하며, 학생들의 수업참여도를 높이기 위한 질의응답, 토론을 적극 활용한다. 학생들은 제시된 교재의 심화된 내용을 반드시 스스로 학습하여 자신만의 알고리즘 설계 및 분석 능력을 습득할 수 있어야 한다.

또한, 학습한 내용에 대한 적극적인 습득을 위해 정기적인 숙제 및 퀴즈를 실시한다. 숙제는 워드프로세서를 사용하지 않고, 자신만의 유일한 예제를 만들고 연필을 이용하여 손으로 직접 풀어서 제출한다.

평가는 중간고사, 기말고사, PreTest, 퀴즈 및 숙제 점수를 반영하여 최종 성적을 산출함.
1. 중간고사는 30점 만점으로 실시함.
2. 기말고사는 30점 만점으로 실시함.
3. PreTest는 10점 만점으로 실시함 (2회:5점/회).
4. 퀴즈 및 숙제는 30점 만점으로 실시함 (퀴즈 2회:4점/회, 숙제 22회:1점/회)

Reference Textbooks
1. Foundations of Algorithms Using C++ Pseudocode by R. Neapolitan et al., Addison Wesley.
3. Introduction to Algorithms by T.H. Cormen et al., MIT Press.

Lecture Schedule and Homeworks
WEEK 1: Introduction and Design & Analysis of Algorithm
WEEK 2: Divide and Conquer (Binary Search and Merge Sort)
WEEK 3: Divide and Conquer (Quick Sort), Dynamic Programming (Binomial Coefficient)
WEEK 4: Dynamic Programming (Bionomial Coefficient, All-Pairs SP)
WEEK 5: Dynamic Programmin (All-Pairs SP, Chained Matrix Multiplication)
WEEK 6: Dynamic Programming (CMM) and Greedy (Minimum Spanning Trees)
WEEK 7: Greedy (Minimum Spanning Trees) and Pre-Test
WEEK 8: Mid-Term Exam
WEEK 9: Dynamic Programming vs Greedy (The Knapsack Problem)
WEEK 10: Backtracking (N-Queens/ Sum-of-Subsets/ Graph Coloring Problem)
WEEK 11: Backtracking (TSP Problem, 0/1 Knapsack Problem)
WEEK 12: Branch and Bound (0/1 Knapsack Problem), Best-First Search
WEEK 13: Theory of NP (Decision Problem, Optimization Problem)
WEEK 14: Theory of NP (NP-Complete Problem)
WEEK 15: Theory of NP (NP-Hard Problem, Approximation Algorithm) and Pre-Test
WEEK 16: Final Exam

//