전체 글 170

MariaDB를 shell 에서 CLI 환경으로 테이블 설정과정. 2022-09-27

우선적으로, 노트북에는 OS가 window라 WSL2 를 이용한 UBUNTU 20.04 LTS 버전으로 리눅스 shell을 사용하였다. shell 에서 기본적으로 ssh 명령어를 통해 접속하였다. 또한 mysql –u user_201912344 –p 명령어를 통해 Mysql에 접속하였다. 또한 Show databases를 통해 내 테이블(스키마)가 존재하는지 확인하였다. *error 현황: 그 다음에 나는 새로운 연습용(practice_SQL1) 데이터베이스를 만들려고 create database 명령어를 입력했는데, 다음과 같은 에러가 나왔다. 확인해보니 해당 에러는 루트 서버로 접속한게 아니라서, DB를 생성할 권한이 없어서 나오는 애러였다. *error 해결 : 그냥 스키마(DB)를 새로 만들어서 ..

Programming/SQL 2022.09.27

XV6와 QEMU에 대한 설명과Linux Ubuntu에서 git check out을 써서 Makefile을 변경했을때 오류 해결. 2022-09-15

우선 용어 설명을 하자면, 교수님께서 깔으라고 했던 XV6가 무엇인지 이해 할 필요가 있다. xv6는 한줄로 정의하면, 시스템 콜을 기존의 linux 리아브러리를 사용하지 않고, 직접 사용자가 만들어서 OS에서 커널모드, 유저모드로 시스템콜로 OS를 사용하는것을 연습할수 있도록 설계된 "모방된 OS"이다. (실제로는 OS가 아니고, 비슷하게 흉내만 낸 것이다.) 나는 실습을 위해서 이것을 내 UBUNTU에 깔았다. 또한 QEMU(Quick EMUlater)는 이름이 생소하지만, 이 XV6를 리눅스 OS에서 실행하기 위한 에뮬레이터이다. 에뮬레이터라는 말을 처음 들어 볼 수는 있는데, 나는 이미 에뮬레이터를 사용해본 적이 있다. 바로 JVM 같은 가상머신이 바로 에뮬레이터 이다. 즉, JAVA는 모든 OS..

ubuntu에서 xv6 설치 및 실행.

맨 처음 나는 기존에 1학기 시프 시간에 깔았던 WSL2를 이용한 UBUNTU 18.01 버전을 사용했다 그런데 교수님께서 알려준 절차대로 진행하니, 맨 마지막에 아래와 같은 오류가 나서 스택 오버플로우를 찾아보니, 우분투 20.04버전으로 하면 실행된다는 말이 나왔다. 그래서 새롭게 MS store에서 우분투 20.04버전을 다운 받은뒤, . code 명령어를 통해서 VScode와도 연동하고, 차근차근 수행하니 xv6설치를 완료했다. 특히 거의 3시간이 넘게 삽질 했는데, 알게된 사실은 sudo는 root 권한으로 linux에 접근하는 것이라는 것이다. 또 mkdir, chmod, ls, cd 등 1학기때 배웠던 명령어들로 삽질을 하니, 복습이 됬다. 또한 중요한 개념은 make 라는 명령어인데, 이것..

2022 여름 JAVA STUDY 마무리 및 드리고 싶은 말.

스터디원 여러분, 방학기간 7/11~8/20 까지 5주에 걸쳐서, 자바의 정석 chapter 6 [객체지향 프로그래밍 1] 진도를 모두 끝냈습니다. 마지막 6 변수의 초기화(page300~page304) 부분은 초심자들 기준 거의 사용되지 않는 개념이라, 타이트한 여러분들의 진도를 고려해서 제외했습니다. 그동안 저도 아직 배울게 많은 미숙한 개발자이지만, 저를 믿고 잘 따라와주셔서 뿌듯하고 감사합니다. JAVA의 정석이란 책은 JAVA개발자로서 마음을 굳혔으면, 한권쯤 소장해도 전혀 아깝지 않은 책이기에, 보고 또 보고, 우리가 다루지 않았던 chapter 7 [객체지향 프로그래밍 2] 부분은 꼭 읽고 또 읽어주시기 바랍니다. 방학동안 많이 빡빡 하지만, 제 계획대로 잘 따라와주셔서 너무 감사하고, 개강..

2022-8/15 ~ 8-20 JAVA 스터디 계획 및 과제.

1. 자바의 정석(page 291~page 299) 4.5 가변인자와 오버로딩 (제외) 5.1 생성자(page 291~) 5.5 생성자를 이용한 인스턴스의 복사( ~page 299) 정독 및 실습하기. 2. 중요 포인트 !! 및 과제 이전 까지 우리가 스터디하면서 만들었던 클래스들은 "생성자 없이" 그냥 new 연산자를 통해 객체(인스턴스)생성이 가능했습니다. 그 이유는 컴파일러가 기본적으로 제공하는 "기본생성자" 때문입니다. 왜 컴파일러가 "기본생성자"를 미리 생성해 줘야 하는지 이유를 page 292에서 찾아보세요.( 이유를 한문장으로 써보기). 예제 6-23으로, 기본생성자 없이, 새로운 매개변수가 존재하는 클래스내 메서드로서의 생성자 정의해보세요. 생성자 내에서 다른 생성자를 호출하기 위해서 th..

8/8 ~ 8/13 JAVA 스터디 계획 및 과제

1. 자바의 정석(page 277 ~page287) 3.10 재귀호출 (제외) 3.11 클래스 메서드와 인스턴스 메서드(page 277~ 4.4 오버로딩의 장점(~page 287) 정독및 실습하기. 2. 중요 포인트 메서드 오버로딩 직접 구현 해보기, 오버로딩을 쉽게 설명한다면, 한 클래스 안에서 이름이 같지만, 매개변수가 다른 함수를 재정의 하는 것입니다. 예제 6-21 실습하기. 해당 예제 실습하면 오버로딩이 무엇인지, 왜 필요한지 바로 습득이 가능합니다. 3. 중요 포인트 ** page 278 에 있는4가지 법칙 외우기. 그래야 클래스 변수와 인스턴스 변수의 구분이 쉽게 가능합니다. 또한 클래스 메서드에서 인스턴스 변수를 왜 사용할수 없는지 논리를 이해하면, 클래스변수와 인스턴스변수 이 둘의 관계를..

2주차 TEST 정답 공유 (8-7)

제출하신 분들중가장 표준정답이라고 생각되는 윤희수 님의 답을 공유하겠습니다. 스터디원 모두 참고하여 공부해 주시기 바랍니다. 특히 1-2번 문제에서 참조변수 배열을 생성하였지만, 각 배열의 요소마다 new 연산자를 통해 객체를 생성해 줘야 한다는 개념은 자주 실수하는 부분이니 꼭 신경써서 체크해 주시기 바랍니다.

8/1~8/6 3주차 JAVA 스터디 계획 및 과제

1. 자바의 정석 (page 250~page 268) 3.3 메서드( page 249~) 3.9 참조형 반환 타입 ( ~ page 268) 까지 정독 및 실습. 2. 3.3절의 메서드 부분은 c언어의 함수와 작동 방식이 아예 같지만, 모든 메서드는 Class 안에 멤버변수로써 존재한다는 사실을 유념했으면 좋겠습니다. 2. 이번주 진도는 기존보다 조금 많은데, 이유는 JAVA의 메서드 와 return 타입 부분은 c언어의 함수를 배웠다면 쉽게 넘어갈수 있는 부분입니다. 그러나 매우 중요한 점은 3.8절의 기본형 매개변수와 참조형 매개변수 입니다. 이 개념은 C 언어 에서는 call by value, call by reference 와 대응되는 것으로, 지난 진도에서도 아시다시피 JAVA에서는 "포인터"라는..