자바 개발 환경 구축


1. 자바 설치

  • JDK(Java Development Kit)
    • 자바 프로그램을 개발하기 위해서는 JDK(Java Development Kit)를 설치
    • JDK는 프로그램 개발에 필요한 JRE(JVM), 라이브러리 API, 컴파일러 등의 개발 도구가 포함되어 있음
  • JRE(Java Runtime Environment)
    • 자바 프로그램 실행에 필요한 JVM, 라이브러리 API만 포함되어 있음
    • 자바 프로그램을 개발하는 것이 아닌 프로그램을 실행만 한다면 JRE만 설치
  • JDK의 종류
    • Java SE(Standard Edition)
    • Java EE(Enterprise Edition)
    • Java ME(Micro Edition)
  • JDK 설치
    • 오라클 JDK의 경우 유료이기 때문에 Temurin OpenJDK를 설치
    • https://adoptium.net/ 접속 후 Temurin 21 (LTS)를 다운로드 및 설치
    • 설치가 완료되면 "명령 프롬프트" 실행 후 아래의 명령어를 입력하여 JDK가 정상적으로 설치되었는지 확인

Temurin 21 (LTS)

더보기

- 다른 version 다운로드

Other platforms and version

설정 후 다운로드

Next


기본값으로 next


Install


Finish


> java -version
...

# javac 명령어를 통해 .java를 컴파일하여 기계어로 변환
# 명령어가 실행되고 나면 .class 파일이 생성
# .class를 jvm에서 실행하며 명령어는 java이다
> javac -version
...

cmd창에서 위의 명령어를 실행하면 java의 버전을 출력

 

 

2. IDE 설치

  • IDE(Integrated Development Environment)
    • IDE는 프로그램 개발에 필요한 기능을 통합해서 제공해 주는 프로그램
    • IDE는 소스 코드 편집기, 빌드 자동화, 코드 실행, 디버거 등의 기능을 제공
  • Eclipse IDE 설치
    • https://www.eclipse.org/downloads/ 접속 후 최신 버전의 Eclipse IDE를 다운로드
    • 다운로드된 Installer 실행 후 Eclipse IDE for Enterprise Java Developers로 설치

download


download


웨개발을 위해 web Developers를 Download


Install


Accept


launch


launch

 

  • JDK 설정
    • 상단 메뉴 -> Window -> Preferences에서 Compiler 검색 후 Compiler compliance level을 21로 변경
    • 상단 메뉴 -> Window -> Preferences에서 Installed JREs 검색 후 앞에서 설치 한 JDK의 경로에서 JRE를 찾아서 지정

window > Preferences


JAVA > Compiler






  • Encoding 설정
    • 상단 메뉴 -> Window -> Preferences에서 Encoding 검색 후 검색된 항목의 Encoding을 UTF-8로 변경

utf-8



1. MariaDB 설치

  • MariaDB 공식 홈페이지에 접속 후(https://mariadb.org/) 운영체제에 맞는 MariaDB를 다운로드 및 설치

Download
확인 후 Download
next
체크 후 next
경로 확인 후 next
실제로 원격으로 루트 접속하는 것은 피하는 게 좋음
기본 값으로 next

 

Install
Finish

2. 환경 변수 등록

# mariadb라는 프로그램이 home 디렉터리에 존재하지 않기때문에 path라는 환경변수에 등록을 해야지 명령어 사용 가능

윈도우 찾기 > 시스템 환경 변수 찾기 > 환경변수 클릭
시스템 변수 > Path > 편집
새로 만들기 클릭
MariaDB 설치 경로\bin 입력 >확인
확인 클릭
확인 클릭

3. 환경변수 등록 확인

cmd 창(명령 프롬프트)

# MariaDB 버전 확인
mariadb -V
mariadb --version

version 정보가 나온다면 완료!

4. 실습 환경 구축

승인 / 거절 상관 없음
샘플 데이터 다운로드 ❘ employee data 다운로드를 위해 DB Download GitHub 클릭

 

Code > Download ZIP
다운로드 완료 후 test_db-master 압축 풀기
cmd창에서 test_db-master 폴더 열기

 

#비밀번호 입력후(mariadb 다운로드시 입력했던 비밀번호)

mariadb -u root -p

MariaDB [(none)]> source employees.sql;

MariaDB [(employees)]> show databases;

데이타 베이스 목록 확인

MariaDB [employees]> show tables;

데이터베이서 table 확인

 

5. HeidiSQL : DataBase에 접속하여 손쉽게 테이블을 관리할 수 있는 GUI 툴

윈도우 > HeidiSQL
신규 클릭
정보 입력후 열기

 

5. 사용자 생성

- root 사용자는 MariaDB의 모든 작업을 할 수 있기 때문에 실습에 필요한 일반 사용자를 생성하고 생성한 일반 사용자에 적합한 권한을 부여

-- 데이터베이스를 생성
CREATE DATABASE testDB;

testDB 생성
새로고침 후 testDB 생성 확인

-- 교재 실습 테이블 및 테스트 데이터 삽입
-- 회원 테이블
CREATE TABLE userTbl ( 
    userID  	CHAR(8) NOT NULL PRIMARY KEY, -- 사용자 아이디(PK)
    name    	VARCHAR(10) NOT NULL, -- 이름
    birthYear   	INT NOT NULL,  -- 출생년도
    addr	  	CHAR(2) NOT NULL, -- 지역(경기,서울,경남 식으로 2글자만입력)
    mobile1	CHAR(3), -- 휴대폰의 국번(011, 016, 017, 018, 019, 010 등)
    mobile2	CHAR(8), -- 휴대폰의 나머지 전화번호(하이픈제외)
    height    	SMALLINT,  -- 키
    mDate    	DATE  -- 회원 가입일    
);

-- 회원 구매 테이블
CREATE TABLE buyTbl (  
    num 		INT AUTO_INCREMENT NOT NULL PRIMARY KEY, -- 순번(PK)
    userID  	CHAR(8) NOT NULL, -- 아이디(FK)
    prodName 	CHAR(6) NOT NULL, --  물품명
    groupName 	CHAR(4)  , -- 분류
    price     	INT  NOT NULL, -- 단가
    amount    	SMALLINT  NOT NULL, -- 수량
    FOREIGN KEY (userID) REFERENCES userTbl(userID) -- 외래키 지정
);

-- 회원 데이터, 구매 데이터 삽입
INSERT INTO userTbl VALUES('LSG', N'이승기', 1987, N'서울', '011', '11111111', 182, '2008-8-8');
INSERT INTO userTbl VALUES('KBS', N'김범수', 1979, N'경남', '011', '22222222', 173, '2012-4-4');
INSERT INTO userTbl VALUES('KKH', N'김경호', 1971, N'전남', '019', '33333333', 177, '2007-7-7');
INSERT INTO userTbl VALUES('JYP', N'조용필', 1950, N'경기', '011', '44444444', 166, '2009-4-4');
INSERT INTO userTbl VALUES('SSK', N'성시경', 1979, N'서울', NULL  , NULL      , 186, '2013-12-12');
INSERT INTO userTbl VALUES('LJB', N'임재범', 1963, N'서울', '016', '66666666', 182, '2009-9-9');
INSERT INTO userTbl VALUES('YJS', N'윤종신', 1969, N'경남', NULL  , NULL      , 170, '2005-5-5');
INSERT INTO userTbl VALUES('EJW', N'은지원', 1972, N'경북', '011', '88888888', 174, '2014-3-3');
INSERT INTO userTbl VALUES('JKW', N'조관우', 1965, N'경기', '018', '99999999', 172, '2010-10-10');
INSERT INTO userTbl VALUES('BBK', N'바비킴', 1973, N'서울', '010', '00000000', 176, '2013-5-5');
INSERT INTO buyTbl VALUES(NULL, 'KBS', N'운동화', NULL   , 30,   2);
INSERT INTO buyTbl VALUES(NULL, 'KBS', N'노트북', N'전자', 1000, 1);
INSERT INTO buyTbl VALUES(NULL, 'JYP', N'모니터', N'전자', 200,  1);
INSERT INTO buyTbl VALUES(NULL, 'BBK', N'모니터', N'전자', 200,  5);
INSERT INTO buyTbl VALUES(NULL, 'KBS', N'청바지', N'의류', 50,   3);
INSERT INTO buyTbl VALUES(NULL, 'BBK', N'메모리', N'전자', 80,  10);
INSERT INTO buyTbl VALUES(NULL, 'SSK', N'책'    , N'서적', 15,   5);
INSERT INTO buyTbl VALUES(NULL, 'EJW', N'책'    , N'서적', 15,   2);
INSERT INTO buyTbl VALUES(NULL, 'EJW', N'청바지', N'의류', 50,   1);
INSERT INTO buyTbl VALUES(NULL, 'BBK', N'운동화', NULL   , 30,   2);
INSERT INTO buyTbl VALUES(NULL, 'EJW', N'책'    , N'서적', 15,   1);
INSERT INTO buyTbl VALUES(NULL, 'BBK', N'운동화', NULL   , 30,   2);

SELECT * FROM userTbl;
SELECT * FROM buyTbl;

-- 실습 테이블 및 데이터 삽입
DROP TABLE IF EXISTS employee;
DROP TABLE IF EXISTS department;
DROP TABLE IF EXISTS job;

--  DDL for Table DEPARTMENT
CREATE TABLE department (	
    dept_id CHAR(2) PRIMARY KEY, 
    dept_title VARCHAR(35) NOT NULL
);

INSERT INTO department(dept_id,dept_title) VALUES ('D1','인사관리부');
INSERT INTO department(dept_id,dept_title) VALUES ('D2','회계관리부');
INSERT INTO department(dept_id,dept_title) VALUES ('D3','마케팅부');
INSERT INTO department(dept_id,dept_title) VALUES ('D4','국내영업부');
INSERT INTO department(dept_id,dept_title) VALUES ('D5','해외영업1부');
INSERT INTO department(dept_id,dept_title) VALUES ('D6','해외영업2부');
INSERT INTO department(dept_id,dept_title) VALUES ('D7','해외영업3부');
INSERT INTO department(dept_id,dept_title) VALUES ('D8','기술지원부');
INSERT INTO department(dept_id,dept_title) VALUES ('D9','총무부');

--  DDL for Table JOB
CREATE TABLE job (	
    job_code CHAR(2) PRIMARY KEY, 
	job_name VARCHAR(35) NOT NULL
);

INSERT INTO job(job_code,job_name) VALUES ('J1','대표');
INSERT INTO job(job_code,job_name) VALUES ('J2','부사장');
INSERT INTO job(job_code,job_name) VALUES ('J3','부장');
INSERT INTO job(job_code,job_name) VALUES ('J4','차장');
INSERT INTO job(job_code,job_name) VALUES ('J5','과장');
INSERT INTO job(job_code,job_name) VALUES ('J6','대리');
INSERT INTO job(job_code,job_name) VALUES ('J7','사원');


--  DDL for Table EMPLOYEE
CREATE TABLE employee (	
    emp_id CHAR(3) PRIMARY KEY, 
	emp_name VARCHAR(20) NOT NULL, 
	emp_no CHAR(14) NOT NULL, 
	email VARCHAR(25), 
	phone VARCHAR(12), 
	dept_code CHAR(2), 
	job_code CHAR(2), 
	salary INT, 
	bonus DOUBLE, 
	manager_id VARCHAR(3), 
	hire_date DATE, 
	ent_date DATE, 
	ent_yn CHAR(1) DEFAULT 'N'
) ;

INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('200','선동일','621235-1985634','sun_di@kh.or.kr','01099546325','D9','J1',8000000,0.3,null,'90/02/06',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('201','송종기','631156-1548654','song_jk@kh.or.kr','01045686656','D9','J2',6000000,null,'200','01/09/01',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('202','노옹철','861015-1356452','no_hc@kh.or.kr','01066656263','D9','J2',3700000,null,'201','01/01/01',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('203','송은희','631010-2653546','song_eh@kh.or.kr','01077607879','D6','J4',2800000,null,'204','96/05/03',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('204','유재식','660508-1342154','yoo_js@kh.or.kr','01099999129','D6','J3',3400000,0.2,'200','00/12/29',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('205','정중하','770102-1357951','jung_jh@kh.or.kr','01036654875','D6','J3',3900000,null,'204','99/09/09',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('206','박나라','630709-2054321','pack_nr@kh.or.kr','01096935222','D5','J7',1800000,null,'207','08/04/02',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('207','하이유','690402-2040612','ha_iy@kh.or.kr','01036654488','D5','J5',2200000,0.1,'200','94/07/07',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('208','김해술','870927-1313564','kim_hs@kh.or.kr','01078634444','D5','J5',2500000,null,'207','04/04/30',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('209','심봉선','750206-1325546','sim_bs@kh.or.kr','0113654485','D5','J3',3500000,0.15,'207','11/11/11',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('210','윤은해','650505-2356985','youn_eh@kh.or.kr','0179964233','D5','J7',2000000,null,'207','01/02/03',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('211','전형돈','830807-1121321','jun_hd@kh.or.kr','01044432222','D8','J6',2000000,null,'200','12/12/12',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('212','장쯔위','780923-2234542','jang_zw@kh.or.kr','01066682224','D8','J6',2550000,0.25,'211','15/06/17',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('213','하동운','621111-1785463','ha_dh@kh.or.kr','01158456632',null,'J6',2320000,0.1,null,'99/12/31',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('214','방명수','856795-1313513','bang_ms@kh.or.kr','01074127545','D1','J7',1380000,null,'200','10/04/04',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('215','대북혼','881130-1050911','dae_bh@kh.or.kr','01088808584','D5','J5',3760000,null,null,'17/06/19',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('216','차태연','770808-1364897','cha_ty@kh.or.kr','01064643212','D1','J6',2780000,0.2,'214','13/03/01',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('217','전지연','770808-2665412','jun_jy@kh.or.kr','01033624442','D1','J6',3660000,0.3,'214','07/03/20',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('218','이오리','870427-2232123','loo_or@kh.or.kr','01022306545',null,'J7',2890000,null,null,'16/11/28',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('219','임시환','660712-1212123','im_sw@kh.or.kr',null,'D2','J4',1550000,null,null,'99/09/09',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('220','이중석','770823-1113111','lee_js@kh.or.kr',null,'D2','J4',2490000,null,null,'14/09/18',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('221','유하진','800808-1123341','yoo_hj@kh.or.kr',null,'D2','J4',2480000,null,null,'94/01/20',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('222','이태림','760918-2854697','lee_tr@kh.or.kr','01033000002','D8','J6',2436240,0.35,'100','97/09/12','17/09/12','Y');

COMMIT;

새로고침 후 테이블 확인

 

-- 사용자 생성

# %는 모든 곳에서 접속이 가능하다는 옵션
# %에 IP를 지정해주면 지정된 IP만 접속이 가능함
# IDENTIFIED BY 뒤에는 계정 비밀번호

CREATE USER `beyond`@`%` IDENTIFIED BY 'beyond';

 

사용자 생성

-- 사용자 확인
# mysql.user라는 뷰를 조회
SELECT Host, User, Password FROM mysql.user;

 

7번에 계정이 생성된 것을 확인 할 수 있음

-- beyond 사용자에 employees 데이터베이스에 대해 모든 권한을 부여
GRANT ALL PRIVILEGES ON employees.* TO `beyond`@`%`;

-- beyond 사용자에 testDB 데이터베이스에 대해 모든 권한을 부여
GRANT ALL PRIVILEGES ON testDB.* TO `beyond`@`%`;

 

 

-- 권한 확인
SHOW GRANTS FOR `beyond`@`%`;

권환 확인

-- 권한 적용
FLUSH PRIVILEGES;

권한 적용

 

5. 생성한 계정으로 로그인

파일 > 세션 관리자 ❘ 사용자명, 암호, 접근 가능한 데이터베이스 선택

 

설정 후 저장 후 열기

'Database' 카테고리의 다른 글

[Database] 데이터 형식(Data Type) & 함수(2)  (0) 2024.05.20
[Database] 데이터 형식(Data Type) & 함수 (1)  (0) 2024.05.17
[Database] SQL 기본 (2)  (0) 2024.05.17
[Database] SQL 기본 (1)  (0) 2024.05.16
[Database] MariaDB  (0) 2024.05.16

1. Oracle VM VirtualBox 설치

windows host로 설치
모두 기본값으로 install 후 Finish

 

2. 가상 시스템 가져오기

도구 > 우클릭 > 가상시트템 가져오기
파일 이코티콘 선택
파일 > 가상머신 가져오기
완료 클릭

 

가상 시스템 가져오기가 완료되면 성공!

 

3. 가상 머신 전원 켜기

우클릭 > 시작
시작 클릭
가상 머신 전원 켜는 중-
비밀번호 입력
터미널 열린것 확인하면 성공!

 

3. MobaXterm 설치

GET MOBAXTERM NOW! 클릭
Home Edition 버전으로 Download now 클릭
MobaXterm Home Edition v24.1(Installer edition) download
기본값으로 install

 

start local terminal

4. 가상머신 원격접속

# 가상 머신 터미널
# 네트워크 툴인 net-tools 설치
sudo apt install net-tools

sudo apt install net-tools

# 네트워크 인터페이스에 주소를 지정하고 현재 네트워크 인터페이스 구성 정보를 구성 또는 표시
ifconfig

게스트 IP 확인

#openssh-server 다운로드
#openssh-server는 원격접속할때 허용하게 해주는 서버
sudo apt install openssh-server

openssh-server install

 

#systemctl로 실행되는 서비스 리스트를 확인
sudo systemctl list-units | grep ssh

# MobaXterm local terminal
inconfig

 

ipconfig 명령어를 통해 window ip 확인 (pc마다 할당된 ip이기 때문에 중복되지 않음)

 

Session 클릭
SSH 클릭
가상머신 > 우클릭 > 설정
설정 > 네트워크
네트워크 > 고급 > 포트 포워딩 ❘ 호스트 IP, 호스트 포트, 게스트 IP, 게스트포트 입력
완료!

'Linux' 카테고리의 다른 글

[Linux] Vim / 텍스트 처리  (0) 2024.05.17
[Linux] 파일/디렉터리 조작  (0) 2024.05.17
[Linux] 파일/디렉터리  (0) 2024.05.17
[Linux] 리눅스(Linux)/ 셸(Shell)  (0) 2024.05.17
[Linux] ssh 인증키 설정  (0) 2024.05.14

+ Recent posts