본문 바로가기

Programming

(136)
부트 스트랩 프로그램의 작동 환경에는 보통 OS와 HW 외에 BIOS(Basic Input/Output System)라는 것이 포함된다. BIOS는 ⒜ROM 등에 기록되어 컴퓨터 본체에 내장되는 프로그램이다. 이는 키보드, 디스크 등을 제어하는 기능과 부트스트랩 로더(bootstrap loader)라는 기능을 갖는다. 부트스트랩 로더는 ⒝부트 드라이브의 앞 부분에 기억되는 작은 프로그램이다. 컴퓨터의 전원을 연결하면 CPU와 메모리, 디스크 등을 간단히 진단한 후 부트스트랩 로더가 실행된다. 주요 기능은 하드 디스크 등에 기록된 OS를 메모리에 적재(load)한 후 실행하는 것이다. 물론 애플리케이션을 실행시키는 것은 OS의 역할이지만 OS가 자신을 실행시킬 수는 없으니, OS는 부트스트랩 로더에 의해 실행된다. 참..
프로그램의 이식 1. 에뮬레이터 ⒜에뮬레이터를 이용하면 이식(porting) 없이 다른 OS용 프로그램을 사용할 수 있다. 대표적인 예로 ⒝Mac의 Virtual PC for Mac이 있다. 이는 Mac OS에서 윈도우용 애플리케이션을 작동시키는 에뮬레이터다. Virtual PC for Mac은 Mac PC를 IBM 호환 기종인 것처럼 작동시켜 윈도우 설치가 가능하게 한다. 다시 말해 Mac에서 윈도우가 작동시켜, 윈도우용 프로그램이 Mac에서 작동할 수 있게 한다. 윈도우용 애플리케이션은 윈도우의 API를 이용한다. 윈도우는 하드웨어가 IBM PC 호환 기종이라고 가정하고 조작하지만 실제로는 Virtual PC for Mac에 의해 Mac이라는 하드웨어가 작동하는 것이다. 2. Java의 이식성 에뮬레이터는 특정 환경..
용어 정리 참조: https://e2xist.tistory.com/581(새 창 열림) abstract class / method: 추상 클래스 / 메소드interface: 인터페이스concrete class / method: 구상 클래스 / 메소드 - 구현이 완료된 클래스 / 메소드super class: 상위 클래스, 기반 클래스(base 클래스)와 혼용된다. 단, 슈퍼 클래스라는 용어는 다른 언어에서는 최상위 클래스를 뜻하기도 한다.sub class: 하위 클래스, 파생 클래스, 유도 클래스(derived class), 자식 클래스(child class)와 혼용된다.instance: 인스턴스 - 클래스로부터 만들어진 객체inherit[inheritance]: 상속extends: 자식 클래스가 부모 클래스의 형식..
[과제] 호텔 예약 프로그램 1. 조건 [1] 기본 기능room.txt 의 내용을 읽어 출력합니다.검색기능은 다음과 같이 동작합니다.==========================================검색방법: 키워드나 가격, 숙박인원, 넓이, 온돌/침대가격 검색은 50000원 처럼 끝에 "원"을 입력인원 검색은 4명 처럼 끝에 "명"을 입력넓이 검색은 10평 처럼 끝에 "평"을 입력방 유형은 "온돌" 이나 "침대"처럼 입력붙여서 써주세요. 나머지 단어는 키워드로 검색됩니다.========================================== [2] 참고사항1. 키워드에서 끝에 한글자만 떼내는 방법 digits = kwd.substring(0, kwd.length()-1); kwd = kwd.substring(kwd...
[BAEKJOON] 1193번 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.print(new Main().run()); } public String run() { Scanner sc = new Scanner(System.in); int input = sc.nextInt(); int count = 0; int numer = 1, denom = 1; String result = null; for(int i = 1; count 0) { ++count;..
Ports CPU가 다르면 네이티브 코드도 달라진다. 그럼 프로그램의 소스 코드를 배포하는 건 어떨까? ⒜FreeBSD에서는 Ports를 이용해 애플리케이션의 소스 코드를 현재 하드웨어에 맞게 컴파일할 수 있다. 따라서 확실히 실행할 수 있는 네이티브 코드를 얻을 수 있게 되는 것이다. 여기서 ports는 컴퓨터에 달린 직렬 또는 병렬포트보다는 한 프로그램을 다른 플랫폼에 이식하는 작업(porting)이라는 의미에 더 가깝다. 필요로 하는 애플리케이션의 소스 코드가 하드 디스크에 없다면 Ports는 자동으로 ⒝FTP를 이용해 인터넷에서 소스 코드를 다운로드하게 되어 있다. FreeBSD용 애플리케이션의 소스 코드를 제공하는 사이트는 전세계 널리 분포되어 있으며, Ports를 통해 자신의 환경에 맞게 컴파일할 수 있..
다차원 배열 1. 다차원 배열 1차원 배열은 논리적으로 1차원의 형태(선)를 취한다. 마찬가지로 2차원 배열은 2차원의 형태(면)를, 3차원 배열은 3차원의 형태(공간)를 취한다. 4차원 이상의 고차원 배열도 허용되지만, 이는 논리적으로 이해하는 것도 어렵고, 무엇보다도 불필요하다. 1차원 배열은 다음과 같이 선언한다. int arr1[10]; 다차원 배열은 다음과 같이 선언한다. int arr2[10][10]; int arr3[10][10][30]; 선언 방법은 1차원 배열과 유사하지만, 다차원 배열 특성상 가로 뿐 아니라 세로와 높이의 길이도 명시해야 한다. arr2 는 10×10 정사각형으로, arr3 은 10×10×30 사각기둥으로 비유할 수 있다. 2. 2차원 배열 2차원 배열의 형태는 다음과 같다. TYP..
[Project Euler] Problem 010 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152public class Problem010 { private static final int LIMIT = 2000000; public static void main(String[] args) { System.out.println(run()); } public static long sieve() { int div = 2; long sum = 0; int num = 2; int idx = 0; int[] arr = new int[LIMIT - 1]; for(int i = 0; i