본문 바로가기

IT

[자료구조] 배열 [자료구조] 배열 안녕하세요. 지토우에요. 오늘은 자료구조에서도 배열에 대해 알아볼까요? 사실 배열(array)은 거의 모든 프로그래밍 언어에서 기본적으로 제공되는 데이터 타입입니다. C언어를 배우신 분은 거기서도 배우셨을거에요. 1. 배열의 개념 배열(array)을 사용하면 인덱스(index) 번호를 기준으로 작업을 할 수 있기 때문에 인덱스 번호에 따라 효율적으로 루프를 설정해 여러 상황에서 간단한 코드를 이용해 결과를 나타낼 수 있습니다. 즉, 효율적으로 프로그램을 작성할 수 있다는 것이지요. 또, 배열의 가장 기본적인 특징은 배열은 쌍의 집합이라는 것인데요. 인덱스가 주어지면 해당하는 요소(element)가 대응되는 자료 구조입니다. 배열에서는 인덱스를 사용해 요소에 직접 접근합니다. 우리는 앞서.. 더보기
[자료구조] 추상 데이터 타입 추상 데이터 타입 안녕하세요 지토우에요. 오늘은 자료구조에서도 추상 데이터 타입에 대해 배워볼까요? 데이터, 데이터 타입, 추상 데이터 타입에 대해 알아봅시다. 1. 추상 데이터 타입 프로그램에서 데이터란 무엇일까요? 사전적으로는, " 의미 있는 정보를 가진 모든 값, 사람이나 자동 기기가 생성 또는 처리하는 형태로 표시된 것을 뜻한다. " 고 합니다. 쉽게는 처리의 대상이 되는 모든 것이라고도 볼 수 있겠네요. 정수, 문자열, 실수, 여러 가지가 합쳐진 것일 수도 있습니다. 데이터 타입이란, 데이터의 집합과 이러한 데이터에 적용할 수 있는 연산의 집합을 의미합니다. 자료 구조는 이런 추상 데이터 타입을 프로그래밍 언어로 구현한 것이라고 할 수 있지요. 추상 데이터 타입이란 자료 구조를 추상적, 수학적으.. 더보기
자료구조와 알고리즘 자료구조와 알고리즘 안녕하세요 지토우에요. 오늘은 자료구조에 대해서 처음으로 들어가는 시간이에요. 가장 기본적으로 자료구조와 알고리즘에 대해 배워봅시다. 1. 자료구조란 자료구조는 영어로 data structure이라고 합니다. 말 그래도 자료 구조입니다. 들어가기에 앞서, 왜 자료구조에 대해 쉽게 설명해볼게요. 일상 생활에서 일어나는 일들을 예로 들자면 , 우리는 살면서 할 일들을 시간별로 기록해두거나 책상에 책을 쌓아두기도 하고 버스를 타려고 줄을 서 있기도 하지요. 또 영어 사전은 알파벳순으로 정렬되어 있고, 지도는 도시들의 연결 상태를 알아보기 쉽게 표시되어 있으며 회사에는 계층적 조직을 나타내는 조직도가 존재하지요. 이런 것들이 넓은 의미에서는 일종의 정리라고 할 수 있고, 컴퓨터도 마찬가지로 .. 더보기
자바와 WORA (Write Once Run Anywhere) WORA (Write Once Run Anywhere) 안녕하세요. 지토우에요. 오늘 이 시간에는 자바와 WORA (Write Once Run Anywhere) 에 대해서 공부해봐요. 별로 어려운 개념도 아니고, 쉽게 읽으시면 될 듯 합니다. 그럼 오늘도 힘차게 열공 ! 해봅시다 ~ 1. 자바와 WORA (Write Once Run Anywhere) 지난 시간에 플랫폼 종속성(platform dependence)에 대해 잠깐 설명드렸었죠? 간단히 설명하자면, Intel CPU를 가진 리눅스 환경에서 개발한 C 혹은 C++ 응용 프로그램으로는 Intel CPU + 리눅스만 실행이 가능합니다. 애플의 맥이나 Intel CPU + 윈도우 노트북에서는 실행되지 않는다는 뜻이지요. 그렇다면 왜일까요? 프로그램의 .. 더보기
자바(JAVA)의 출현 자바(JAVA)의 출현 안녕하세요. 지토우에요. 오랜만에 포스팅하는 것 같네요. 이젠 다시 1일1포스팅 도전하겠습니다 ^ㅇ^ ~ 이번 시간 부터는 자바(JAVA)에 대해 배우도록 합시다. 1. 자바의 탄생 자바를 배우기에 앞서 자바가 어떻게 탄생되었는지부터 알고 가도록 해요! 사실 자바는 우리가 지금 알고있고 쓰는 것처럼 일반 컴퓨터나 인터넷 환경에서 사용될 목적으로 설계된 것은 아니랍니다. 1991년, 선마이크로시스템스(SUN Microsystems)는 자바의 아버지라 불리는 제임스 고슬링을 중심으로 그린 프로젝트라는 이름으로 가전제품에 사용할 소프트웨어를 개발하기 시작했습니다. 기존의 프로그래밍 언어로 작성된 프로그램은 플랫폼(platform)간에 호환성이 없다는 것입니다. 따라서 사용자 컴퓨터의 플.. 더보기
리눅스 GRUB 전용 명령어 (2) 리눅스 GRUB 전용 명령어 (2) 안녕하세요 지토우에요. 오늘은 지난시간에 이어, 리눅스 GRUB 전용 명령어의 2번째 시간입니다. 1. initrd 지정한 디바이스와 지정한 커널로 부팅할 때 사용할 initrd 이미지를 지정해주는 명령어입니다. SCSI 디스크를 부팅 디스크로 사용할 경우에 initrd 항목이 설정되지 않으면 kernel panic 에 빠질 수 있으므로 주의해야 합니다. 2. kernel 부팅에 사용할 커널이미지파일의 경로를 지정하는 명령어입니다. 즉 시스템 부팅에 사용할 커널 이미지를 지정하는 명령어입니다. 3. makeactive 루트디스크에 존재하는 GRUB 의 루트디바이스를 부팅 가능한 파티션으로 지정하는 명령어입니다. 단, 이 명령어는 첫번째 하드디스크의 프라이머리(Prima.. 더보기
리눅스 GRUB 전용 명령어(1) 리눅스 GRUB 전용 명령어 안녕하세요. 지토우에요. 오늘은 GRUB의 전용 명령어에 대해 이야기해봅시다. 1. blocklist blocklist는 특정 파일에 지정된 블록리스트를 확인하는 명령어입니다. 특정 파일이 어떤 블록에 저장되어 있는지를 확인할 때에 blocklist를 사용하는데요. 하지만 리눅스에 저장된 특정파일의 블록 리스트를 확인하려면 먼저 root 명령어로 대상 파일이 저장된 디바이스가 지정돼야 합니다. 2. boot GRUB의 root 명령어로 지정된 특정 디바이스의 특정 파티션에서 GRUB의 kernel 명령어로 지정된 커널로 부팅하는 부팅 명령어 입니다. 이 boot 라는 명령어를 사용해 부팅을 하기 전, root 명령어로 특정 디바이스가 지정되어 있어야 하며 kernel 이라는 .. 더보기
GRUB 부팅 환경설정파일 grub.conf GRUB 부팅 환경설정파일 grub.conf 안녕하세요 지토우에요. 비가 많이오네요. 비오는 날엔 짬뽕이 최고인데... 그래서 아까 먹었습니다 하하. 그럼 오늘은, /boot/grub/grub.conf 에 대해 배워봅시다. 1. GRUB 부팅 환경설정파일 /boot/grub/grub.conf GRUB에서 사용하는 부팅 환경설정파일은 /boot/grub/grub.conf 에 존재합니다. 따라서 /boot/grub/grub.conf 파일을 cat 명령어로 읽어보겠습니다. default 항목 GRUB 초기 부팅화면에서 부팅할 메뉴를 선택하지 않았을 경우 사용할 기본 부팅메뉴를 선택해 둔 것 입니다. 각 메뉴들의 번호는 0부터 시작하고 차례로 지정하면 됩니다. timeout 항목 GRUB 초기 부팅화면에서 지체.. 더보기