- [ Dreamhack/System Hacking ]Background - Computer Architecture2025-02-28 22:40:18컴퓨터는 각자 다른 기능을 수행하는 여러 부품들(CPU, 저장장치, GPU 등)의 도움으로 작동한다. 각 부품들은 특징이 뚜렷하여 컴퓨터에서 고유의 기능을 수행한다. 이처럼 서로 다른 부품들이 모여서 '컴퓨터'라는 하나의 기계로서 작동할 수 있는 것은 컴퓨터에 대한 기본 설계가 존재하기 때문이다. 이 설계에 맞춰 여러 HW가 개발되고, 이들을 조립해서 컴퓨터가 완성된다. 컴퓨터 과학에서는 이러한 설계를'컴퓨터 구조(Computer Architecture)'라고 부른다. 전체적인 컴퓨터 구조 중에서 특히 CPU가 사용하는 명령어와 관련된 설계를 명령어 집합구조(Instruction Set Architecture, ISA)라고 하는데, 가장 널리 사용되는 ISA 중 하나가 바로 x86-64 아키텍처이다. 시..
- [ Dreamhack/System Hacking ]System Hacking Introduction-Tool: Environment Setip2025-02-27 19:57:44Windows에서는 VMware, VirtualBox 또는 WSL(Windows Subsystem For Linux 2)를 이용하여 실습 환경을 구축할 수 있다.나는 VMware에 우분투가 이미 설치되어있기 때문에 이번에는 WSL을 이용하여 환경 구축을 해 볼것이다. 01. 가상 머신이란? 가상머신 = 컴퓨터를 에뮬레이팅 한 것(emulate: 따라하다, 모방하다) 가상 머신을 작동시키는 컴퓨터를 호스트(Host)라고 불르며, 가상 머신 안에서 작동하는 컴퓨터를 게스트(Guest)라고 부른다.가상머신을 사용하면 Host는 Guest에게 독립된 실행환경을 제공할 수 있으며, 그 위에서 Guest는 다양한 OS를 구동할 수 있다.대표적인 가상화 소프트웨어로 VMware, VirtualBox, QEMU 등이..
- [ Private/Java ]5장 - 같은 작업 반복하기: 반복문2025-02-19 03:32:19프로그램을 작성하다 보면, 같은 명령을 여러 번 수행해야 할 때가 있다. 이럴 때 반복문을 사용하면 편하다. 반복문에는 for문, do - while문이 있다. 반복문을 어떻게 작성하고 사용하는지 알아보자. 5.1. 범위 안에서 반복할 때: for 문5.1.1. 기본 형식 ★for문은 대표적인 반복문의 형태로, 정해진 횟수나 범위만큼 반복할 때 사용한다. 형식은 다음과 같다.for(초기값; 조건식; 증감식){ [실행문]; //반복 실행할 명령문} for문은 다음과 같이 등장한다. 1. 초기값: 초기값은 반복 범위의 시작 값이다. 변수에 값을 넣어 초기화하는 방식으로 작성한다. 초깃값은 반복문을 처음 실행할 때 한 번 수행한다. 2. 조건식: 반복문을 실행할 조건을 넣는다.조건은 보통 반복할 횟수나 범위를..
- [ Private/Java ]4장 - 조건에 따라 흐름 바꾸기: 조건문2025-02-16 20:38:48자바 프로그램을 작성하면 보통 명령을 순차적으로(코드를 위에서 아래로) 실행한다. 하지만 조건에 따라 명령을 수행하거나 수행하지 않아야 할 때가 있다. 이럴 때 우리는 조건문을 사용하며, 이 장에서는 조건문을 어떻게 사용하는지 그리고 조건문의 종류로는 무엇이 있는지 살펴볼 것이다.4.1. 조건이 하나일 때: if-else조건문은 조건에 따라 실행하는 명령이 달라진다. 기본 형식은 다음과 같다.조건을 만족하면 if 블록의 실행문이 출력되고, 조건을 만족하지 않으면 else 블록의 실행문이 출력된다.if ([조건]) { [실행문]; //조건을 만족할 때 실행할 명령문}else{ [실행문]; //조건을 만족하지 않을 때 실행할 명령문}if-else 문에서 중괄호{}는 실행할 명령문의 범위를 명시하며, 실행할 ..
- [ Private/Java ]3장 - 기초 문법 배우기2025-02-13 07:30:193.1. 변수입력: 명령을 실행하는 데 필요한 데이터를 넣어주는 것 저장: 입력한 데이터를 컴퓨터 어딘가에서 기억하는 것 데이터는 키보드로 직접 입력할 수도 있고, 코드로 작성해 입력할 수도 있다. 이렇게 입력한 데이터를 프로그램에서 사용하려면 컴퓨터 어딘가에서 기억하고 있어야 한다. 이를 저장이라고 하며 저장은 컴퓨터의 메모리에서 담당한다. 3.1.1. 변수 선언메모리에 데이터를 저장하려면 변수가 필요하다. 변수는 프로그램이 데이터를 저장하기 위해 할당받은 메모리 공간을 의미한다. 프로그램은 메모리 공간을 할당받기 위해 변수를 만드는데, 이를 변수 선언이라고 한다. 자바에서는 아래와 같이 변수를 선언한다.[자료형] [변수명];//int a; 변수명을 지을 때 몇 가지 규칙이 존재한다. 이를 어기면 I..
- [ Private/Java ]2장 - 입출력 다루기2025-02-11 10:52:29Intro프로그래밍에서 기본은 입력과 출력이다.입력(input)은 명령에 필요한 데이터를 입력하는 것이고, 출력(output)은 입력받은 데이터로 명령을 수행한 결과를 보여주는 것이다.보통 둘을 합쳐 입출력(I/O)라고 하며, 일반적으 마우스나 키보드 등의 입력장치로 데이터를 입력 받아 모니터 화면에 출력한다.2.1. 출력하기자바에서 출력을 수행하는 대표적인 명령어는 다음과 같다.print()printf()println()출력 명령을 내릴 때는 다음과 같은 형태로 명령문을 작성해야한다.System.out.print("Hello");System.out.printf("Hello");System.out.println("Hello"); 자바는 일반 프로그램과 달리 JVM 위에서 실행된다. 따라서 프로그램이 직..
- [ Private/Java ]1장 - Hello, Java!2025-02-11 06:05:101. Intro프로그램(Program) = 컴퓨터가 어떤 문제를 해결할 수 있도록 방법과 순서를 기술한 명령어 집합프로그래밍 언어 = 사람이 내리는 명령을 컴퓨터가 이해할 수 있게 중간에서 돋는 역할을 하는 것컴퓨터는 명령어를 이해하며, 이런 명령어는 프로그래밍 언어로 작성된다. 이후 명령어가 모여 프로그램이 된다.1.1. 자바 개발 환경 설정프로그래밍 언어로 프로그램을 작성하려면 도구가 필요하다. 자바에서는 프로그램을 작성하는 데 필요한 것들을 모아 JDK(Java Development Kit, 자바 개발 도구 모음)라는 이름으로 제공한다. JDK 외에도 자바로 프로그램을 작성하는 것을 돕는 IDE(Integrated Development Environment, 통합 개발 환경)라는 도구도 있다. ID..
- [ SWING/Linux Study ]보호글 입니다.2025-02-04 14:55:19보호되어 있는 글입니다.