CS 42

Programming Exercise: Lab #2

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.Exercise #1ProblemsImplement (1) BinarySearch(int item) and (2) BinarySearchNearest(int item).Assume that there are No duplicated elements in the list.▶ (1) BinarySearch(int item) is the function we already learned in the class.The only difference is that "it returns the index of the item" if foundOtherwise, it returns -1template int SortedType::BinarySearch..

CS/자료구조 2025.04.06

2. 보안을 위한 네트워크 이론

경희대학교 장대희 교수님의 정보보호 수업을 기반으로 정리한 글입니다.ProtocolProtocol은 특정 분야에서의 기술적인 용어가 아닌 범용적인 단어로, 절차를 뜻한다.사전적인 의미로는 무언가를 할 때 어떤 절차를 거쳐 소통을 할 거냐, 이런 게 프로토콜이다. 컴퓨터 시스템에선 컴퓨터와 컴퓨터가 어떻게 소통하는지에 대해 정의하는 절차를 프로토콜이라고 한다. ※ 함수를 호출하는 방법론도 프로토콜 중 하나라고 볼 수 있다.The three elements of a protocolSyntax어떤 규칙을 가치고 소통, 즉 프로토콜이 오갈 것이냐에 대한 것을 의미한다. SemanticsSyntax의 어떤 부분에, 어떤 의미를 부여(해석)할 것이냐에 대한 것을 의미한다. ex) 에러가 발생했을 때 어떻게 대응을 ..

CS/정보보호 2025.04.04

해킹 문제 풀이 실습 (http_hack) - 2

경희대학교 장대희 교수님의 정보보호 수업을 기반으로 정리한 글입니다.실습 진행HTTP8 - XSS Vulnerability Example문제 설명주어진 웹 애플리케이션에서 XSS 취약점을 찾아 실습하는 문제Input을 넣을 때 XSS가 발생할 수 있도록 입력하여 알람창 띄우기※ 알림창을 띄우는 게 XSS가 터짐을 알 수 있는 척도이다. 문제 풀이▶ 입력할 수 있는 칸에 XSS payload 삽입 ※ XSS payload: XSS 공격에 사용되는 악성 스크립트 코드로, 주로 JavaScript로 구성되어 사용자의 브라우저에서 실행된다.▶ 사용자의 입력이 검증없이 렌더링되면서 임의의 JavaScript가 실행됨 결론사용자의 입력 값을 검증 및 이스케이프 처리를 통해 XSS 공격을 방어해야 함 (필터링 기법)..

CS/정보보호 2025.04.03

해킹 문제 풀이 실습 (http_hack) - 1

경희대학교 장대희 교수님의 정보보호 수업을 기반으로 정리한 글입니다.HTTP 프로토콜 소개HTTP(Hypertext Transfer Protocol)란?HTTP는 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜로,애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. 이러한 HTTP로 보낼 수 있는 데이터는 HTML 문서, 이미지, 동영상, 오디오, 텍스트 문서 등 여러 종류가 있다.▶ TCP/IP 프로토콜 위에 있는 HTTP보안 관점에서 HTTPHTTP는 웹의 기본 프로토콜로, 많은 해킹 기법들이 HTTP를 악용한다. 때문에 HTTP를 이해하면, 웹 애플리케이션에서 발생할 수 있는 다양한 취약점(e.g, SQL Injection, XSS, CSRF 등)을 파악하고 예방..

CS/정보보호 2025.04.02

1. Introduction

경희대학교 장대희 교수님의 정보보호 수업을 기반으로 정리한 글입니다.실습SW 요구사항웹 해킹 (http)Python 설치 방법▶ Python 설치 시 "Add python.exe to PATH" 체크 필요 환경 변수란 운영체제가 프로그램 실행에 필요한 정보를 저장하는 변수로, 특히 PATH 환경 변수는 명령어 프롬프트(CMD, 터미널 등)에서 특정 명령어를 입력했을 때 해당 실행 파일이 어디에 있는지를 찾아 실행할 수 있도록 도와준다. python 명령어 실행 과정사용자가 터미널에서 python 입력OS는 PATH 환경 변수에 등록된 디렉터리 목록을 차례로 검색해당 디렉터리 중 python.exe가 존재하면 실행등록되지 않았다면 "python"을 찾을 수 없습니다."와 같은 오류 발생BURP 다운로드Bu..

CS/정보보호 2025.04.02

Chapter 4: Queue

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.QueueWhat is Queue?▶ Logical (or ADT) level Queue is an ordered group of homogeneous items (elements).New elements are added at one end (the rear) -- enqueue.Elements are removed from the other end (the front) -- dequeue. A queue is a FIFO "First In, First Out" structure. (선입선출)e.g., Job buffers, Network buffers, and many others (일을 순서대로 처리해야 되는 모든 상황) ※ buf..

CS/자료구조 2025.03.31

Chapter 3: Stack

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.StackWhat is Stack?▶ Logical (or ADT) level Stack is a group of homogeneous items (elements).Removal (pop) and addition (push) of stack items can only occur at the top of the stack. A stack is a LIFO "Last In, First Out" structure.e.g., Undo(무효로 하다, Ctrl + z), Back (browser 뒤로가기), Stack trace ※ stack trace: 프로그램에서 에러가 발생했을 때, 문제를 추적할 수 있도록 함수 호출 순서를 보여주는 로그이..

CS/자료구조 2025.03.28

Programming Exercise: Lab #1

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.Encoding errors▶ 운영체제별로 줄 바꿈 문자를 채택한 게 다르다.CR (Carriage Return, \r): 커서가 해당 라인의 젤 앞쪽으로 이동 e.g., Mac OS (클래식 버전)LF (Line Feed, \n): 커서는 그대로 있으면서 줄만 바꿈 e.g., Unix, Linux, Mac OS (현대 버전)CRLF (CR + LF, ENTER): 줄도 바꾸면서 커서도 제일 앞쪽으로 이동 e.g, Windows간혹 협업을 하다 보면 어떤 사람이 Mac OS에서 작업한 코드를 Windows에서 받아 실행 시키려고 하면 에러가 나는 경우가 있다.따라서, Mac에서 작성된 파일을 Windows에서 사용할 경우, “LF” or..

CS/자료구조 2025.03.25

Chapter 2: Unsorted/Sorted Lists

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.List DefinitionsLinear relationship:Each element except the first has a unique predecessor(전임자), and each element except the last has a unique successor(후임자).Length:The number of items in a list; the length can vary over time. (e.g., append, remove)Unsorted list vs Sorted list ※ 배열(Array) vs 리스트(List)C 같은 언어에서 사용하는 배열(Array)은 크기가 고정되어 있어서 한 번 선언하면 크기를 바꿀 수 없..

CS/자료구조 2025.03.23

Chapter 1: Software, Data Structure, and C++

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.What is abstraction?▶ Too abstract.▶ Too concrete(명확한).▶ Between too abstract and too concrete.AbstractionA model of a complex system that includes only the details essential to the perspective of the viewer of the system. Programs are abstractions.Tells what the program mus do, but not how the program does it.Abstraction Data Type (ADT)▶ ADT A data type who..

CS/자료구조 2025.03.22