2025/03 13

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

정보보안 3차시: 웹 - SQL Injection

경희대학교 중앙동아리 쿠러그의 정보보안 강의를 기반으로 정리한 글입니다.배경 지식DB (Database)여러 사람이 공유하여 사용할 목적으로 구조화된 정보 또는 데이터의 조직화된 모음집이다.대부분은 여러 개의 표가 모여 있다. (마치 엑셀 시트처럼) DBMS (Database Management Systme)데이터베이스를 '데이터의 집합'이라고 정의한다면, 이런 데이터베이스를 관리하고 운영하는 소프트웨어를 DBMS라고 한다.다양한 데이터가 저장되어 있는 데이터베이스에 여러 명의 사용자나 응용 프로그램이 공유하고 동시에 접근이 가능하게 한다.ex) MySQL, Oracle, MariaDBSQL (Structured Query Language)구조화된 질의 언어라는 뜻으로, 데이터를 쿼리 조작 및 정의하고 ..

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

정보보안 2차시: 웹 - 기본적인 웹 취약점

경희대학교 중앙동아리 쿠러그의 정보보안 강의를 기반으로 정리한 글입니다.웹 해킹해킹이란 개발자가 의도하지 않은 동작을 입력 혹은 행위를 통해 악의적인 결과를 만들어내는 것을 말하며,웹 해킹은 클라이언트와 웹 서버 간의 요청과 응답 흐름에서 발생한다.클라이언트 / 서버▶ 클라이언트 / 서버 클라이언트브라우저서버라는 다른 컴퓨터에 접속할 수 있는 응용프로그램이나 서비스웹페이지에서 하는 요청은 대부분 웹브라우저가 함 (웹에서 클라이언트는 브라우저)HTML, JS, CSS 등웹페이지를 요청해서 CSS와 같은 요소에 연결해서 홈페이지가 그려짐브라우저의 위치도 내 컴퓨터이기에, 코드들의 실행 위치도 내 컴퓨터 안에 있음페이지를 전송받으면 인터프리터를 통해 페이지를 화면에 뿌림서버 사이드웹서버, 데이터베이스클라이언트..

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

Chapter 0: Introduction

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.What do we learn?Data StructureDataThe way to represent information in a suitable format for communication or analysis by humans or maachines. Data StructureWe should be able to properly manage a collection of data elements.Why should we learn data structure?to develop a high-quality programIt works.It can be modified without excessive time and effort.It is ..

CS/자료구조 2025.03.21

정보보안 1차시: 네트워크 - ARP와 TCP/UDP

경희대학교 중앙동아리 쿠러그의 정보보안 강의를 기반으로 정리한 글입니다.네트워크MAC vs IPMAC각 네트워크 인터페이스에 할당된 물리적인 고유 식별 주소로,Data Link 계층에서 사용되며, 같은 네트워크 내에서만 유일하면 된다. 48bit 구성 -> 8bit씩 6자리로 구성 -> 16진법으로 총 12자리로 표기ex) 12-34-56-AB-CD-EF (앞 3자리는 제조사, 뒤 3자리는 기기 고유 코드) IP실제 통신 과정에서 사용하는 고유 주소로,Network 계층에서 사용되며, 같은 네트워크 내인 LAN 환경에서는 MAC 주소 기반 통신이 이루어진다. IP 주소IPv4: 32비트로, 8비트씩 끊어 10진수로 나타낸다. ex) 192.168.0.1IPv6: 128비트로, 4자리씩 끊어 16진수로 나..

Chapter 1: Introduction

경희대학교 허선영 교수님의 운영체제 수업을 기반으로 정리한 글입니다.Computer System Basics▶ Introduction 작성한 test.cpp는 바로 실행될 수 없어, 머신이 이해할 수 있는 머신 랭귀지(binary)로 된 실행 가능한 형태의 프로그램(Executable)으로 번역해 주어야 한다. 이때 그 번역을 할 때 사용되는 게 컴파일러이다. test.exe는 결국 CPU가 해야 하는 명령어들을 순차적으로 저장을 하고 있는 것이다. machine language는 CPU가 처리, 즉 실행할 수 있는 언어로 binary로 되어 있기에 사람이 명령어를 이해하는 게 어렵다.이 머신 랭귀지를 사람이 이해할 수 있는 명령어로 표현한 게 assembly language이다. (1:1 관계) Ins..

CS/운영체제 2025.03.17