공부의 기록/자바 풀 스택 : 수업내용정리

자바 풀 스택 12/12 오전 기록 016-1

파티피플지선 2024. 12. 12. 13:16

8:20 경 학원 도착, JAVA 책 조금 읽어봄

 

<9:30 1교시>

The Community for Open Collaboration and Innovation | The Eclipse Foundation

 

The Community for Open Collaboration and Innovation | The Eclipse Foundation

The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …

www.eclipse.org

vs code와 같은 편집기인데 JAVA를 공부하기 위해 사용할 TOOL.

SPRING 을 배울 때 이클립스를 활용할 것이기 때문에 eclipse로 java를 배울 것

https://www.eclipse.org/downloads/packages/

 

JAVA란

객체지향 프로그래밍.

어떤 기능을 수행하고 싶은 앱을 만들기 위해서 객체들의 기능을 코딩하기 위한 고급 프로그래밍 언어

프로그래밍 : 데이터를 다루어 원하는 목적을 달성

 

JAVA에 없는 sqlplus 접속 기능들을 만들고, 그 기능들이 DB 접속할 수 있게 해줘서 요청하는 정보들을 select해서 정보를 주고, 그런 정보들을 어떻게 가지고 올건지를 JAVA는 그런 기능들이 있는 객체를 만들어서 진행한다.

 

객체에는 기능을 만들 수 있는 설계도가 제공이 되는데, 그걸 직접 만들수도 있고 만들어 놓은 것을 받아올 수도 있고 그럼.

ex) 클라이언트가 입력한 문자열을 파일로 만드는 객체, mp3 파일을 재생하고 싶을 때 재생을 도와주는 객체도 있고 그런 느낌

 

객체를 변수에 넣을 때는 비유하자면, 사물함에 배정된 객체가 사물함의 키만 들고 다니면서 물건이 통채로 변수에 들어가는게 아니라 그 키값만 변수에 들어가는 거.

 

객체는 수행할 기능도 가지고 있고, 자기가 필요한 데이터들을 가지고 있는 저장소도 있으며, 기능만 필요하거나 저장소만 필요하거나 둘 다 필요한 경우 등 여러가지가 있음.

 

객체에서 수행할 기능인 method(메서드), 저장소인 field(필드)로 이루어져 있다.

필드 또한 하나의 객체로 볼 수 있어서 그 안에 또 다른 객체가 들어 있을 수도 있다.

 

ex) 나의 기능은 수업 듣고 자바 풀스택 과정을 듣는것인데, 내 필드는 뇌와 위장, 이름, 주민번호, 등등이 있는 내 필드는 또 다른 객체들을 포함할 수 있고 그 참조값을 가질 수도 있음.....

 

일단 들어두라고 하심.

 

 

 

이클립스 실행

 

vs code가 자바스크립트랑 node.js 기반으로 만들었다면 이클립스는 java로 만들었음

 

디폴트 환경이 웹 개발 환경이기 때문에 우리는 Java를 공부할 환경의 창도 열어준다.

 

 

 

프로젝트(가장 최상위 폴더)에서 하위 폴더 만드는 개념은 new package(package는 src의 하위 폴더로 들어감)

 

vs code에서 html의 개념이었던게 자바에서는 Clss 개념

 

만들어진 java가  텍스트 문서로서 존재

 

 

 

<10:30 2교시 >

폰트 사이즈 바꾸기 

Windows>Preferance>General>Colors and Fonts > Text Font > 글씨 크기 조정

자바는 대소문자를 가린다. 자바의 기본 형태.

 

 

자바는 오토세이브 기능보다는 수동 저장 기능을 사용하는 습관을 들여라.

 

데이터 타입은 자바스크립트와는 다르게 무한대로 선언 가능하다. 왜냐하면 우리가 데이터 타입을 선언할 수 있기 때문에!! 신기하다!!

 

 

 eclipse에서 진한 빨강색으로 표시된 단어는 예약어이다.
 예약어는 아주 특별히 해석되기로 약속된 단어이기 때문에  식별자(클래스명, 메소드명, 변수명 등)으로 사용할 수 없다.

 

 

자바 텍스트 문서는 바로 앱이 되지 않고, 컴파일 과정을 거쳐서 실행 파일로 만들어주는 과정이 필요하다.

bin 폴더에 main 폴더로 들어가면 src>main 폴더의 MainClass.java가 MainClass.class 타입으로 컴파일되어 자바가 해석하기 좋은 형태로 만들어서 이클립스가 대신 실행해준다.

 

 

 

<11:30 3교시>

 

메서드의 개념은 javascript의 function과 비슷하나 동일한 것은 아니니 참고만 해야 한다.

 

주석달기, 정수형과 실수형 변수 선언 및 값 대입하기 연습

보통 int와 double을 많이 쓰는데,

이렇게 숫자를 선언하는 변수 데이터타입이 다양한 이유는, 메모리의 공간을 효율적으로 사용하기 위해서 이다.

long type 쓸일은 없는데, 전에 싸이 영상 조회수 땜에 유튜브가 아마 long type으로 수정했을거라고 하시네 

 

코드 정리

더보기
package Test.main;
/*
 *  [ Java 기본 데이터 type ]
 *  
 *  1. 숫자형
 *  
 *  정수형 : byte, short, int, long
 *  
 *  - byte 변수명;  // -128 ~ 127
 *  - short 변수명;  // -32768 ~ 32767
 *  - int  변수명; // -2,147,483,648 ~ 2,147,483,647
 *  - long 변수명; // -9223372036854775808 ~ 9,223,372,036,854,775,807
 *  
 *  실수형 : float, double
 *  
 *  - float 변수명; // 1.40129846432481707e-45 ~ 3.40282346638528860e+38
 *  - double 변수명; //4.94065645841246544e-324d ~ 1.79769313486231570e+308d
 */
public class MainClass01 {
	//run 했을 때 실행의 흐름이 시작되는 특별한 main 메소드
	public static void main(String[] args) {
		/*
		 	 여러 줄 주석은 /*쓰고
		 	 엔터를 누르면 되는데 
		 	 그사이에 *를 지울수도 있다.
		 */
		//정수형 변수 선언하고 값 대입하기
		byte iByte=10;
		short iShort=500;
		int iInt=1000;
		long iLong=10000;
		//실수형 변수 선언하고 값 대입하기
		float num1=10.1f;
		double num2=10.2d;
		double num3=10.3;//d, f 를 붙이지 않으면 디폴트로 double type 으로 간주된다.
		
	}
}

원래는 프로젝트 하나 당 하나의 메인 메서드여야 하는데, 우리는 학습을 위해 같은 패키지 않에 여러개 메인 메서드 만들기로 하자.

main Ctrl Space Enter : 메인 메서드 자동 작성됨

syso Ctrl Space Enter : 콘솔창에 출력할 명령 자동 작성됨

 

 

예제 풀어보기

 

더보기

 

package Test.main;

public class MainClass02 {
	public static void main(String[] args) {
		//1. 콘솔창에 "main 메소드가 시작되었습니다."를 출력해보세요.
		System.out.println("main 메소드가 시작되었습니다.");
		//2. 국어점수 95를 kor이라는 변수에 담아보세요.
		int kor =95;
		//3. 영어점수 100을 eng 라는 변수에 담아보세요.
		int eng=100;
		//4. 국어 점수와 영어 점수의 평균을 구해서(연산자 활용) avg라는 변수에 담아 보세요.
		float avg = (95+100)/2f;
		//5. 콘솔창에 avg 변수 안에 담긴 내용을 출력해 보세요.
		System.out.println(avg);
	}
}


//위에처럼 쓰거나


package Test.main;

public class MainClass02 {
	public static void main(String[] args) {
		//1. 콘솔창에 "main 메소드가 시작되었습니다."를 출력해보세요.
		System.out.println("main 메소드가 시작되었습니다.");
		//2. 국어점수 95를 kor이라는 변수에 담아보세요.
		int kor =95;
		//3. 영어점수 100을 eng 라는 변수에 담아보세요.
		int eng=100;
		//4. 국어 점수와 영어 점수의 평균을 구해서(연산자 활용) avg라는 변수에 담아 보세요.
		float avg = (kor+eng)/2f;
		//5. 콘솔창에 avg 변수 안에 담긴 내용을 출력해 보세요.
		System.out.println(avg);
	}
}

//double 써서 계산하는게 더 일반적이라고 해서 추가

package Test.main;

public class MainClass02 {
	public static void main(String[] args) {
		//1. 콘솔창에 "main 메소드가 시작되었습니다."를 출력해보세요.
		System.out.println("main 메소드가 시작되었습니다.");
		//2. 국어점수 95를 kor이라는 변수에 담아보세요.
		int kor=95;
		//3. 영어점수 100을 eng 라는 변수에 담아보세요.
		int eng=100;
		//4. 국어 점수와 영어 점수의 평균을 구해서(연산자 활용) avg라는 변수에 담아 보세요.
		double avg = (kor+eng)/2d;
        //int + int / 정수 2는 정수 값만 계산하게 된다
        //2d라는 것은 2d 가 실수 2라는 의미의 기호이다.
		//5. 콘솔창에 avg 변수 안에 담긴 내용을 출력해 보세요.
		System.out.println(avg);
	}
}

 

더보기
package Test.main;
/*
 *  [ Java 기본 데이터 type ]
 *  
 *  2. 논리형 (boolean)
 *  
 *  - true, false 두가지 값중 하나이다.
 *  - true, false 를 직접 쓰거나 비교연산 혹은 논리 연산의 결과로 얻어낼수 있다. 
 *  - 참과 거짓을 나타내는 데이터 type 
 */
public class MainClass03 {
	public static void main(String[] args) {
		//논리형 변수 선언과 동시에 값 대입하기
		boolean isRun=false;
		if(isRun) {
			System.out.println("달려요");
		}
		//비교 연산의 결과로 얻어진 boolean 값 담기
		boolean isGreater = 10>1;
		//논리 연산의 결과로 얻어진 boolean 값 담기
		boolean result=true||false;
		//한번 선언한 변수는 다시 선언할 수 없다
		// boolean result=false;
		result= false;// 변수에 다른 값을 대입할 수 있다.(동일한 type인 경우)
	}
}

 

 

<12:30 4교시>

디버깅 방법 놓친거 질문함