목록분류 전체보기 (129)
YS's develop story
오늘은 간단하게 리눅스 파일 권한에 대해 정리해 보았습니다. 리눅스의 터미널 창에서 ls -l 명령어를 사용하면 아래와 같이 출력이 됩니다. 이때 출력 결과는 각각 파일 종류 및 권한, 링크수, 사용자(소유자), 그룹, 파일크기, 수정시간, 파일 이름을 나타냅니다. Practice파일의 파일 종류 및 권한은 drwxrwxr-x인데 여기서 맨 앞에 d가 있으면 디렉터리 파일임을 나타냅니다. 즉 Practice파일은 디렉터리 파일이고 taksk.txt 파일은 -rw-rw-r--이기 때문에 디렉터리 파일이 아님이 알 수 있습니다. 맨 앞의 파일의 종류를 나타내는 한자리를 제외하고 뒤부터는 파일의 권한을 나타내고 있는 문자입니다. Practice 파일의 권한은 rwxrwxr-x라고 볼 수 있습니다. take 파..
오늘은 시스템 콜 함수 몇 개를 정리해 보았습니다 :) 우선 File descriptor가 무엇인지 확인해 봅시다 ~ 사용자가 파일을 관리할 때 서로 다른 파일이라는 것을 지정하기 위해서 파일 이름을 사용하곤 하죠. OS는 서로 다른 파일이라는 것을 inode number이라는 것을 통해서 내부적으로 구분하고 있습니다. 줄여서 id라고 하고 Id는 숫자가 됩니다. 우리가 컴퓨터에 있는 어떤 파일을 읽고 싶다면, OS는 디스크에서 해당하는 파일을 찾고, 파일에 대한 정보를 메모리(dram)로 보내게 됩니다. 그리고 메모리상에서 파일을 아래처럼 객체화시킵니다. 이때 객체의 포인터, 주소를 file descriptor라고 합니다. 시스템 콜 open 함수에 대해서 알아봅시다. open함수는 파일을 읽거나 쓰기..
안녕하세요 ~ 오늘은 간단하게 컴퓨터가 하드디스크를 어떻게 읽는지 내용을 정리해 봤습니다! 하드디스크의 내부 구조는 아래와 같이 생겼습니다. 디스크에서 데이터를 읽을 때, 액츄에이터 암이 움직이면서 데이터를 읽게 됩니다. 하드 디스크에 데이터를 저장할 수 있는 기본단위는 512바이트이며, 아래의 그림에 sector s부분과 같은 곳에 512바이트를 저장할 수 있습니다. 하드디스크에는 1바이트의 단위를 저장할 수 없고 무조건 512바이트 단위로만 데이터를 저장해야 합니다. 컴퓨터가 하드디스크의 내용을 어떻게 읽는지 알아볼까요? 처음에는 CPU가 disk controller에게 하드 디스크의 몇 번째 sector을 읽고 싶은지 'sector number read command' 명령을 아래의 사진처럼 보냅니..
Four Components of a Computer System, System call (시스템소프트웨어 - 1) 우선 컴퓨터의 전반적인 구조를 살펴봅시다! 컴퓨터 시스템의 구조는 위의 그림처럼 크게 4가지로 나누어 볼 수 있습니다! Computer Hardware : Cpu, memory, I/O device (키보드, 모니터, HDD, SSD 등등...) Operation system : Application programs : Word processor, web browser, Music player.... Users: People, other computers 이 중에서 Operation system인 OS에 대해서 조금 더 자세히 정리하자면... Operation system ( OS ) : ..
안녕하세요 오늘은 java문제를 풀다가 한 실수를 정리하려고 합니다 ~ 바로 코드를 확인해 볼까요? package javapractice; public class JavaPractice { public static void main(String[] args) { Shape[] arr= { new Circle("Circle",5), new Rectangle("Rectangle",3,4), new Triangle("Triangle",5,5) }; double sum=0; for(Shape a: arr) { System.out.println(a.getName()+"면적 : "+a.getArea()); sum+=a.getArea(); } System.out.println("면적의 합 : "+ sum); } } ..
java 상속과 관련되어서 정리하고자 하는 것이 있어서 글을 작성했습니다. super라는 상위클래스가 있고 sub이라는 하위 클래스가 있습니다. package javapractice; class JavaPractice { public static void main(String[] args) { Sub class1=new Sub(); } } class Super{ Super(){ System.out.println("this is super class"); } } class Sub extends Super{ Sub(){ System.out.println("this is Sub class"); } } 이 코드의 실행 결과는 아래와 같습니다. 여기서 우리는 하위 클래스의 인스턴스 생성시 상위 클래스의 생성자가 ..
안녕하세요 ~ 오늘은 java 상속과 관련해서 에러를 정리하는 글을 작성했습니다 :) 아래와 같이 코드를 작성하게 되면 에러가 발생하게 됩니다. package javapractice; class JavaPractice { public static void main(String[] args) { subClass sub1= new subClass(52); System.out.println(sub1.i); } } class superClass{ int i; superClass(int i){ System.out.println("this is super class"); this.i=i; } } class subClass extends superClass{ subClass(int i){ System.out.prin..
안녕하세요 ~ 오늘은 java 2차원 배열에 관련해서 정리를 하고자 글을 작성합니다. ~ 아래 문제는 열혈 java프로그래밍 309쪽 문제입니다. * 문제 2 다음형태로 표현된 2차원 배열이 존재한다고 가정해보자. 1 2 3 1행 4 5 6 2행 7 8 9 3행 이러한 형태를 갖는 int형 2차원 배열이 인자로 전달되면, 다음의 형태로 배열의 구조를 변경시키는 메소드를 정의하자 4 5 6 1행 7 8 9 2행 1 2 3 3행 배열의 가로와 세로 길이에 상관없이 위와 같이 동작하도록 메소드를 정의해아 한다. 문제를 풀기 전에 아래의 코드를 봅시다 package javapractice; class JavaPractice { public static void main(String[] args) { int[][..
안녕하세요 ~ C++에서 디폴트생성자 관련해서 실수했을때 발생하는 에러를 정리하고자 글을 작성합니다. 바로 아래 코드를 확입합시다. #include using namespace::std; class Practice { private: int num; public: Practice(int num = 10) { this->num = num; } void showNum() { cout
안녕하세요 ~ 오늘은 java에서 static이라고 선언된 변수, 클래스 변수에 대한 내용을 정리 했습니다 !! 바로 아래코드를 살펴보죠. class JavaPractice { public static void main(String[] args) { Class class1 = new Class(); class1.getCheck(); Class class2 = new Class(); class2.getCheck(); Class class3 = new Class(); class3.getCheck(); } } class Class{ private int set=0; Class(){ set++; } void getCheck(){ System.out.println(set); } } 위 코드의 실행결과는 아래와 같..