Java

Java 설정 및 기초- AWS 풀스택 과정 45일차

awspspgh 2024. 9. 25. 18:01
목차
1. 설정
2. 기초
3. 느낀 점

 

1. 설정

▣ 다운로드

◈ jdk 다운로드

jdk 11

 

Oracle 회원가입 후 다운로드 및 설지

 

 

◈ eclipse 최신버전 다운로드(내장 jdk를 포함하고 있음)

Eclipse 최신 버전(원래는 4.21 버전)

 

- java 파일을 저장해놓을 나만의 폴더를 만들어 놓기

 

Eclipse 설치

 

- web site를 개발 후 배포(프로그램에서 실행이 아니라, 도메인에 의해서 실행(tomcat(server))))

- java - compiler -> 컴파일러가 번역 (원본 소스 파일이 있어야 함. 완성된 형태로..)
- javascript -> 인터프리터 언어 (원본 소스가 완성된 형태가 아여도 번역가능.) => 줄단위 번역

 

※ Java 폴더 복사본 유의점

.metadat 폴더는 Eclipse 설정을 할 때 생기는 폴더로 컴퓨터마다 폴더의 내용이 다르기에 복사해가도 다른 컴퓨터에서는 필요하지 않은 내용임

 

▣ 설정

◈ 시스템 환경 변수 편집(window창)

- 환경변수를 설정하는 이유
- 자신의 프로그램이 아닌 다른 프로그램에서 자신을 인식할 수 있게 하기 위함
- web 연동 시 tomcat(server) 설치 => jdk를 인지해야 함.

 

시스템 환경 변수 편집

- 새로 만들기 -> JAVA_HOME(C:\Program Files\Java\jdk-11)
- path => 새로 만들기 => %JAVA_HOME%\bin

- 환경변수 등록 후 인지되었는지 확인
cmd => java -version

cmd

 

◈ 시스템 환경 변수 편집(window창)

- java project 생성

생성

 

- jdk => 내장 JDK -> 내가 설치한 JDK 11로 변경
- compiler 설정 -> JDK 버전과 동일 버전으로 설정

jdk

 

- window -> preferences (툴 설정) -> encoding => web 연동 UTF-8

UTF-8

 

- project 설정 -> project에서 우클릭 properties

properties

 

- console 표시

console

 

2. 기초

▣ Test01

package day01;

public class Test01 {

	public static void main(String[] args) {
		// 한 줄 주석
		/* 여러줄 주석 */
		// System.out.println("콘솔 출력 테스트") => sysout (ctrl + space)
		// ctrl + F11 실행 단축키
		System.out.println("Hello World~!!");
		System.out.println("그럼 제가 선배 맘에 ~");
		
		// let const javascript
		// 타입별로 변수 유형을 결정해야 함.
		// String 문자형 => 기본타입이 아님. 참조형 타입
		// 변수타입 8가지
		// 변수는 범위(scope) { } 를 벗어나면 변수는 사용할 수 없음.
		
		int num = 10; // 타입 변수명 = 값;
		System.out.println(num);
		{
			int num2 = 20;
			System.out.println(num2);
		}
		
		// System.out.println(num2); // 범위를 벗어나서 Exception
		// java에서 error (프로그램(코드) 적으로 손댈 수 없는 에러)
		// Exception 프로그램적으로 발생할 수 있는 에러(내가 코드를 잘못 짠 경우)
		
		// char : 한 글자만 저장 가능. ' '
		// String : 단어 장문 가능. " "
//		char ch = "a"; // Type mismatch
//		String s = 'a'; // Type mismatch
		
		char ch = 'a';
		System.out.println((int)ch); // 유니코드(아스키) 표에 의해 변환된 10진수를 출력

		// long / float은 L(l)-생략가능 / F(f) 를 접미사로 표현
		// java 정수의 기본자료형 int 실수의 기본자료형 double
		long l = 1L; // long 형의 특징
		System.out.println(l);
		
		float f = 0.1f;
		System.out.println(f);
		
		// 사칙연산자 : + - * / %(나머지)
		// 증감연산자 : ++ -- +=
		// 논리연산자 : && || !
		// 대입연산자 : = == !=
		// 조건선택연산자 : (조건식) ? true : false 연결해서 다중 사용가능
		
		// + : 산술연산자, 연결연산자
		// 숫자 + 숫자 => 산술연산자로 인지
		// 숫자 + 문자 => 연결연산자로 인지 이후부터 문자로 인식
		System.out.println(1 + 2);
		System.out.println(1 + 2 + "가나다");
		System.out.println("가나다" + (1 + 2));
		
	}

}

 

▷ 출력

출력 (1)

 

▣ Test02

package day01;

public class Test02 {

	public static void main(String[] args) {
		// main + ctrl + spacebar
		/* 국어 영어 수학 세 점수의 합계와 평균을 출력
		 * if문을 이용하여 평균 80점 이상이면 pass / fail
		 * */
		int kor = 78;
		int eng = 89;
		int math = 98;
		
		int sum = kor + eng + math;
		double avg = (double)sum / 3;
		
		String s = "";
		if(avg >= 80) {
			s = "pass";
		}else {
			s = "fail";
		}
		
		System.out.println("합계 : " + sum + " 평균 : " + avg + " 결과 : " + s);
	}
}

 

▷ 출력

출력 (2)

 

▣ Test03

package day01;

import java.util.Scanner;
// Scanner + ctrl + spacebar

public class Test03 {

	public static void main(String[] args) {
		/* Scanner 클래스 : 콘솔에서 값을 입력받을 때 사용
		 * (int)(Math.random()*개수)+시작값 : 시작값부터 개수만큼 정수형 랜덤값 생성
		 * */
		// 값을 입력받으려면 Scanner scan = new Scanner(System.in);
		
		// 주사위 값 랜덤 발생
//		int random = (int)(Math.random()*6)+1;
//		System.out.println(random);
		
		// 랜덤으로 주사위를 굴려 총 30칸을 이동하시오.
		// 주사위를 던지는 횟수를 출력.
		/* 주사위 게임
		 * 주사위는 Enter를 치면 던져짐.
		 * 주사위 : 3
		 * 3칸 전진 => 27칸 남음.
		 * 주사위 : 5
		 * 5칸 전진 => 22칸 남음
		 * ...
		 * 도착!! 총 던진 횟수 > ??
		 * */
		
		// for(횟수가 일정한 경우) / while(횟수가 일정하지 않는 경우)
//		for(int i = 0; i <= 10; i ++) {
//			// 처리 0부터 10까지 1씩 반복
//		}
//		
//		while(식) {
//			처리;
//			
//		}
		
		// Enter 인지 => Scanner 사용
		
		int finish = 30;
		int cnt = 0;
	
		Scanner scan = new Scanner(System.in);
		while(finish > 0) {
			cnt ++;
			System.out.println("주사위 굴리기(Enter)");
			scan.nextLine(); // next() : Enter 처리불가
			int random = (int)(Math.random()*6)+1;
			finish -= random;
			System.out.println("주사위 : " + random);
			if(finish > 0) {
				System.out.println(random +"칸 전진 => " + finish + "칸 남음.");				
			}else {
				System.out.println("도착!! 총 던진 횟수 > " + cnt);				
			}
		}
		
		// ctrl + shift + F : 들여쓰기 자동 정렬
	}
}

 

▷ 출력

출력 (3)

 

▣ Test04

package day01;

import java.util.Scanner;

public class Test04 {

	public static void main(String[] args) {
		// 배열 : 같은 타입, 같은 의미를 가지는 변수들의 집합 (참조변수)
		// 타입 배열명[] = new int[개수];
		// 지역변수는 초기값이 없음. (안 정해주면 에러가 남)
		// 참조변수는 초기값이 있음. (숫자는 0, 문자는 null)
		String s = new String("가나다라");
		// String 워낙 자주 사용하는 참조변수 => 일반 지역변수처럼 사용
		String s1 = "akqkt";
		System.out.println(s);
		System.out.println(s1);
		
		int arr[] = new int[5];
		arr[0] += 1;
		System.out.println(arr[0]);
		
//		int num;
//		num += 1; // 초기값이 없어서 Exception 발생
		
		// arr 배열에 숫자를 1,2,3,4,5로 채우고 출력
		// arr.length = 총길이 -1 번지를 가지기 때문. 
		for(int i = 0; i < arr.length; i++) {
			arr[i] = i + 1;
			System.out.print(arr[i]);
		}
		System.out.println();
		arr[0] = 10;
		arr[1] = 20;
		System.out.println(arr[0]);
		
		/* 5자리 숫자를 입력 받아서 각 자리의 합을 출력
		 * 입력값 => 12345 출력 => 1+2+3+4+5 = ?? 출력 => 5+4+3+2+1 = ??
		 * */
		
		Scanner scan = new Scanner(System.in);
		System.out.println("숫자를 5자리 입력해주세요. >");
		String num = scan.next();
		String number[] = num.split(""); // 갯수 상관이 입력한 숫자가 배열로 리턴
		
		int sum = 0;
		for(int i = 0; i < number.length-1; i++) {
			// String 연산 불가능.
			System.out.print(number[i] + " + ");
			// String => int 변환 Integer.parseInt(변환가능한 문자);
			sum += Integer.parseInt(number[i]);
		}
		sum += Integer.parseInt(number[number.length-1]);
		
		System.out.print(number[number.length-1]+"= "+sum);
		
		System.out.println();
		for(int i=number.length-1; i > 0; i--) {
			System.out.print(number[i] + " + ");
		}
		System.out.println(number[0] + "= " + sum);
		
		scan.close();
		
		// 다른 풀이과정
		/*
		System.out.println("5자리 숫자를 입력해주세요.");
		Scanner scan = new Scanner(System.in);
		String str = scan.next();
		int sum = 0;
		char arr1[] = new char[5];
		String text1 = "";
		String text2 = "";
		
		for(int i = 0; i < arr1.length; i ++) {
			arr1[i] = str.charAt(i);
			sum += Character.getNumericValue(arr1[i]);
		}
		
		for(int i = 0; i < arr1.length; i ++) {
			if(i < 4) {
				text1 += arr1[i] + " + ";				
			}else {				
				text1 += arr1[i] + " = " + sum;				
			}
			if(i < 4) {
				text2 += arr1[arr1.length-1-i] + " + ";				
			}else {				
				text2 += arr1[arr1.length-1-i] + " = " + sum;				
			}
		}
		System.out.println(text1);
		System.out.println(text2);
		
		scan.close();
		*/
		
		
		
		
		
	}
}

 

▷ 출력

출력 (4)

 

▣ Test05

package day01;

import java.util.Scanner;

public class Test05 {

	public static void main(String[] args) {
		
		String[] fileName = {"spring.java", "python.py", "react.jsx", "css.css", "String.java",
				"component.jsx", "text.txt"};
		
		// ex : 검색어를 입력 받아 fileName 배열에 검색어가 존재하면 해당 파일 이름을 출력
		/* 검색어 : java
		 * spring.java
		 * String.java
		 * 
		 * 검색어 : s
		 * spring.java
		 * css.css
		 * String.java
		 * 
		 * 검색어 : 가나다
		 * 검색결과가 없습니다.
		 * */
		
		Scanner scan = new Scanner(System.in);
		
		 System.out.println("검색어를 입력해주세요.");
		 String word = scan.next();
		 
		 int cnt = 0;
		 for(String file : fileName) {
 		 	 if(file.toLowerCase().contains(word.toLowerCase())) {
				 System.out.println(file);
				 cnt++;
			 }
		 }
		 if(cnt == 0) {
			 System.out.println("검색결과가 없습니다.");
		 }
	}
}

 

▷ 출력

출력 (5)

 

3. 느낀 점

최근에 React Project를 하느라 머리를 싸매면서 Project를 준비해서 정신적으로 힘들었는데, 오늘 수업을 들으면서 오랜만에 JAVA에서 간단한 문제들을 풀어보아서 정신적으로 좋았던 것 같다.