728x90

패키지 시작 이름

  • java : 자바 기본 패키지 (JDK 벤더에서 개발)
  • javax : 자바 확장 패키지 (JDK 벤더에서 개발)
  • org : 일반적으로 비 영리단체 (오픈 소스) 의 패키지
  • com : 일반적으로 영리단체 (회사) 의 패키지

대표적인 오픈소스 그룹의 아파치 코드들은 모두 org.apache 로 시작한다.

홈페이지는 http://www.apache.org 인데, 도메인 이름을 거꾸로 한 org.apache 로 시작한다

 


https://songeunjung92.tistory.com/38

 

[JAVA] 패키지 시작 이름

패키지 시작 이름 java : 자바 기본 패키지 (JDK 벤더에서 개발) javax : 자바 확장 패키지 (JDK 벤더에서 개발) org : 일반적으로 비 영리단체 (오픈 소스) 의 패키지 com : 일반적으로 영리단체 (회사) 의

songeunjung92.tistory.com

https://dblog94.tistory.com/entry/Java-Study-7%EC%9D%BC%EC%B0%A8

 

[Java Study] 7일차 package와 import

학습할 것 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드 클래스들을 구분하는 폴더, 집합의 개념입니다. 클래스에는 맴버 변수와 메소드를 담고

dblog94.tistory.com

https://catch-me-java.tistory.com/42

 

[Java-29] 자바 패키지, 접근제한자 & 클래스패스

Java Package, 접근제한자, classPath, 환경 변수 package 와 접근제한자, 클래스패스 에 관하여 우리가 실제로 개발하면서, 정말 많은 클래스를 만들거나, 이미 만들어져 있는 클래스를 사용할 수 있다.

catch-me-java.tistory.com

 

728x90

'개념정리' 카테고리의 다른 글

JSP (Java Server Page)  (0) 2021.10.25
정규표현식  (0) 2021.08.09
binary 파일  (0) 2021.07.28
keydown, keypress, keyup  (0) 2021.07.26
DOM (Document Object Model)  (0) 2021.04.29
728x90

Maven

라이브러리 + 빌드툴(AMT역할 제공)

Apache에서 나온 ant다음의 자바용 프로젝트 관리도구로 Spring 프로젝트 뿐만 아니라 Java의 대다수의 프로젝트는 Maven이라는 빌드(Build) 도구를 통해 개발되고 있다.

프로젝트에 쓰이는 라이브러리는 만약 여러 개발자들과 협력해서 만들어야할 시 동일한 라이브러리가 공유되어야 한다. 그때 각자 매번 수동으로 jar파일을 전달하는 방식은 혼선이 올 수 있고 누락이 될 수도 있다.

그래서 만들어진게 Maven 이다. maven은 pom.xml에 정의 해놓으면 네트워크를 통해 라이브러리르 자동으로 다운받아준다. 그러므로 jar파일을 수동으로 복사할 필요가 없어진다.

주로 라이브러리 의존성 관리를 위해 사용되며, 프로젝트에서 필요한 라이브러리들을 POM(Project Object Model)에 정의해주면, Maven이 네트워크를 통해 자동으로 다운로드하여 프로젝트에 주입해준다.

Dependent(의존관계)는 Libray가 관리한다.
여러 프로젝트에서 사용하는 jar는 공유한다.
모든 프로젝트 빌드 프로세스를 일관되게 가져갈 수 있다.

편집기가 없기 때문에 어떤 IDE에도 붙여서 쓸 수 있다. (이클립스, IntelliJ, STS ...)

Build Tool로서 프로젝트 설계를 도와준다.

메이븐의 특징으로는

  1. 프로젝트를 모델링 - 다양한 목적을 가지고 있는 플러그인은 POM(Project Object Model)으로 정의된다. 프로젝트에 의존되는 라이브러리들은 pom.xml에서 의존관계를 정의한다.

  2. Maven 플러그인을 통한 전역적인 재사용 - Maven은 빌드에 대한 대부분의 책임을 각 플러그인에 위임한다. 이러한 플러그인들은 Maven 저장소(Repository)에 저장되어 진다.

  3. 공통 인터페이스 - Maven 이전에는 각 개발환경에 대한 빌드 프로세스를 파악하는데 시간이 꽤나 소요되었는데 빌드에 필요한 프로세스를 정의하고 이를 인터페이스로 제공함으로써 문제를 해결하였다고 한다.

Maven에서 제공하는 이러한 특징을 이용해서 개발자는 프로젝트에 필요한 다양한 플러그인을 효율적으로 관리하고 개발자의 IDE가 아닌 별도의 빌드 머신에서 빌드하고 결과물을 운영서버에 배포하는 과정을 자동화 할 수 있게 된다.


 

STS를 통해 새로운 Maven Project를 생성하게 되면 아래와 같은 프로젝트 구조를 가진다.

pom.xml

POM(Project Object Model)은 Maven의 근간이 되는 개념으로 현재 프로젝트의 구성과 프로젝트에서 사용하고 있는 외부 플러그인 그리고 각 플러그인들 간의 의존 관계를 pom.xml에 정의 할 수가 있다.

이클립스의 Dynamic Web Project 구조는 웹 애플리케이션 프로젝트에 기반이 되는 Spring Framework, Database Connnection을 위한 기반 라이브러리, Freemarker와 같은 Template 엔진 등을 사용하기 위해서는 
/WEB-INF/lib에 필요한 라이브러리을 개발자가 직접 복사해 사용했지만, 
Maven을 활용하면 pom.xml를 이용해 프로젝트에 필요한 라이브러리를 정의하고 Version도 효율적으로 관리 할 수 있다. 뿐만 아니라 pom.xml 정의한 다양한 플러그인은 Maven Repositoriy를 통해 Remote로 자동으로 Download하여 Local에서 관리 할 수 있다.


참고: blog.naver.com/eunnaelee/222223569062

 

Maven 이란?

Maven은 우선 Apache에서 나온 ant다음의 자바용 프로젝트 관리도구이다.프로젝트에 쓰이는 라이브러리는...

blog.naver.com

 

blog.naver.com/ksw6169/221495438877

 

[Maven] Maven이란?

​​안녕하세요.회사에서 Spring Boot와 Maven을 이용해 간단한 프로젝트를 진행하게 되었습니다! 아직 ...

blog.naver.com

 

설치과정

blog.naver.com/1150amy/221751573966

 

728x90

'개념정리' 카테고리의 다른 글

(미완성)인터프리터 방식  (0) 2021.02.23
Java EE 와 Java SE의 차이점  (0) 2021.02.22
스프링(Spring)  (0) 2021.02.19
eclipse (이클립스) vs STS  (1) 2021.02.18
JAVA 자바  (0) 2021.02.16
728x90

컴퓨터와 의사소통하기 위한 언어중 하나

객체 지향 프로그래밍 언어(OOP: Object Oriented Programming)로 보안성이 뛰어나며 컴파일한 코드는 다른 운영 체제에서 사용할 수있도록 클래스(class)로 제공한다.

 

자바는 객체를 만들기 위해 설계도인 클래스를 작성하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들어 낸다.

 

자바는 객체 지량 언어의 특징인 캡슐화, 상속성, 다형성을 지원한다.

 

자바는 운영체제에 독립적이기 때문에 자바로 작성된 프로그램은 자바 실행환경(JRE: Java Runtime Environment)이 설치되어 있다면 운영체제의 종류에 관계없이 실행이 가능하다. (윈도우, 맥, 리눅스...) 
= 이식성이 높다

 

자바는 메모리를 자동으로 관리해주기 때문에 c언어 처럼 개발자가 메모리를 따로 관리하지 않아도 된다. 비효율적이긴 하지만 개발자가 개발에만 집중할 수 있다는 장점이 있다.

 

자바로 작성한 파일은 컴퓨터가 알 수 있는 기계어로 변환하는 컴파일이라는 과정을 거쳐 컴퓨터가 읽고 동작할 수 있다. 이 컴파일을 javac.exe가 담당한다.

 

자바는 다양한 애플리케이션을 개발할 수 있다. 단순한 콘솔 프로그램에서부터 윈도우 애플리케이션, 서버용 웹 애플리케이션, 모바일용 안드로이드 앱 등 거의 모든곳에서 실행되는 프로그램을 개발 할 수 있다.

 

멀티스레드(Multi-Thread)를 쉽게 구현할 수 있다. 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하므로 운영체재에 상관없이 멀티쓰레드를 구현할 수 있다.

 

동적 로딩을 지원한다. 자바 애플리케이션은 클래스로 부터 생성된 여러 개의 객체가 서로 연결되어 실행된다.
애플리케이션 실행 시 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적 로딩해서 객체를 생성한다.

 

 


 

프로그래밍 언어는 크게 저급 언어와 고급 언어로 나뉜다.
컴퓨터가 이해하기 쉽고, 사람이 이해하기 어려운 언어가 저급언어
컴퓨터가 이해하기 어렵고, 사람이 이해하기 쉬운 언어가 고급언어 이다.

사람이 사용하는 고급언어를 컴퓨터가 이해할 수 있도록 기계어로 변환하는 과정을 컴파일(Compile)이라고 한다.
컴파일을 하는 프로그램은 컴파일러라고 부른다. 

C언어 소스를 JAVA소스로 변환하거나 그 반대의 경우도 컴파일이라고 부르긴 하는데
보편적으로는 고급언어를 기계가 이해하게 번역하는과정을 말한다.

 


 

자바의 장점은 플랫폼 독립성인데
플랫폼이란 크게 프로그램이 실행될 하드웨어와 운영체재를 말한다.
java가 아닌 다른 언어의 경우 운영체제별로 프로그램을 다르게 짜야하는 불편함이 있다.

JAVA는 이런 문제를 해결하기 위해 프로그램과 플랫폼 사이에 JVM(JAVA Virtual Machine)이라는 자바 가상 기계를 두고 있다. 이 JVM 때문에 java는 특별한 컴파일을 거친다.

자바 프로그램을 컴파일 하면 컴퓨터가 읽을 수 있는 기계어가 아닌, JVM이 읽을 수 있는 바이트코드로 변환된다.
그리고 JVM이 바이트 코드를 컴파일해서 기계어로 바꿔준다.

기계어로 변환해주는 JVM이 각 플랫폼이 읽을 수 있는 기계어별로 다르게 설정되어 있다면,
java프로그램 하나를 가지고 여러 플랫폼 위에서 동작시킬 수 있다.

위 그림에 빗대어 설명하면 각각의 플랫폼(윈도우, 리눅스 등)별 JVM이 따로 존재하고 
JVM이 읽어들이는 java프로그램은 동일하다.

그렇기 때문에 java는 플랫폼에 독립적이고, 이식성이 높은 언어라고 이야기 할 수 있다.

 


JAVA의 구성으로는 JRE(JAVA Runtime Environment)와 JDK(JAVA Development Kit)가 있습니다.

JRE란 자바 실행 환경이라는 뜻으로 java프로그램이 실행되기 위한 최소의 조건을 포함하고 있다. jvm과 표준 클래스 라이브러리(API)를 말한다. 때문에 java프로그램을 실행하고자 하는 플랫폼에는 필수적으로 JRE가 설치되어 있어야 한다.

JDK는 자바 개발 키트라는 뜻으로 개발자가 java프로그램을 개발하기 위한 환경을 제공한다.
jdk에는 jre가 포함되어 있으며, java소스를 jvm이 읽을 수 있는 바이트코드로 변환하는 컴파일러와 같이 개발에 필요한 도구를 포함하고 있다.

즉 우리가 java로 프로그램을 개발하기 위해서는 JRE가 포함되어 있는 JDK를 설치해야 한다.

 

참조: https://stage-loving-developers.tistory.com/2

 

 


자바를 사용하기 위해서는 JRE가 필요
개발을 위해서는 JDK가 필요
JDK에는 JRE가 포함되어 있으니 개발을 할때는 JDK만 설치하면 된다.

JDK설치

blog.naver.com/o3k3585/222203769160

 

■ java JDK설치

java 를 설치하기 위해서는 JDK가 필요한데,총 2개의 버전을 설치하였다.JAVA JDK 7, 8왜 두개의...

blog.naver.com

JRE설치

webnautes.tistory.com/1133

 

Windows에 JRE 설치하는 방법

Windows에 Java SE Runtime Environment(JRE)가 설치되었는지 여부 확인 및 JRE 설치하는 방법을 다룹니다. JRE 설치 여부 확인 방법 JRE 설치 방법 JRE 설치 여부 확인 방법 명령 프롬프트를 실행하기 위해 윈도

webnautes.tistory.com

 

728x90

'개념정리' 카테고리의 다른 글

(미완성)인터프리터 방식  (0) 2021.02.23
Java EE 와 Java SE의 차이점  (0) 2021.02.22
스프링(Spring)  (0) 2021.02.19
메이븐 (Maven)  (0) 2021.02.19
eclipse (이클립스) vs STS  (1) 2021.02.18
728x90

1. 알파벳A~Z 일렬로 출력하기

package loop;

public class ForTest {
	public static void main(String[] args) {
		int i;
        
		for(i='A'; i<='Z'; i++) {
			System.out.print((char)i+" ");
		}
	}

}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 

2. 구구단  system.read를 이용해서 원하는 단 구하기

package loop;

import java.io.IOException;

public class ForTest02 {
	public static void main(String[] args) throws IOException {
		 
		System.out.print("원하는 단을 입력 : ");
		int dan = System.in.read()-48;
		for (int i=1; i<10; i++) {
			System.out.println(dan+"*"+i+"="+dan*i);
			
		}
	}

}

system.read를 이용하면 '한' 글자만 입력, 인식이 가능하고 
숫자가 아니라 문자로 인식해 아스키 코드로 인식한다.
그래서 0의 아스키코드 값인 48을 빼준다.


3. 난수 대문자(A~Z)를 100개 출력하세요

package loop;

public class ForTest03 {
	public static void main(String[] args) {
		
		for(int i=1;i<=100;i++) {
			System.out.println((char)((Math.random()*26)+65)+" "+i);
		}
		
	}

}

다른방법

package loop;

public class ForTest03 {
	public static void main(String[] args) {
		int num;
		
		for(int i=1;i<=100;i++) {
			num = (int)(Math.random()*26)+65;
			//System.out.printf("%2c",(char)num); //앞으로 정렬
            System.out.printf("%-2c",(char)num); //뒤로정렬
		}
		
	}

}
T K N S F ~ J C L F W V M W (총100개)

4. 난수 알파벳을 10x10으로 출력하기

package loop;

public class ForTest03 {
	public static void main(String[] args) {
		int num;

		for (int i = 1; i <= 100; i++) {
			num = (int) (Math.random() * 26) + 65;
			System.out.printf("%-2c", (char) num);
			
			if(i%10==0)System.out.println();
		}
        }
   }

for 중첩으로 풀기(printf사용)

package loop;

public class ForTest03 {
	public static void main(String[] args) {
		int num;

		for (int i = 1; i <= 10; i++) {
			for (int j = 1; j <= 10; j++) {
				num = (int) (Math.random() * 26) + 65;
				System.out.printf("%-2c", (char) num);
			}
			System.out.println();
		}

	}

}
T A Y N R Q B Q N R 
F Q P X C Y D P H K 
J J K M P J R H D F 
W M J X J R R N S G 
O F J X Q J H L F S 
R Z U B L O G H L B 
M H N J B S T D N Y 
G S H B G X F W D F 
M Y F S R X F I H R 
I M B R N N D D Y W 

5. 알파벳 10x10으로 출력하고 A가 몇개인지 구하기

package loop;

public class ForTest04 {
	public static void main(String[] args) {
		int num, count=0;
		
		for (int i = 1; i <= 100; i++) {
			num = (int) (Math.random() * 26) + 65;
			System.out.printf("%-2c", (char) num);
			if('A'==num) {
				count++;
			}
			
			if(i%10==0)System.out.println();
		}
		System.out.println("A의 개수 = "+count);
	}

}
T A Y N R Q B Q N R 
F Q P X C Y D P H K 
J J K M P J R H D F 
W M J X J R R N S G 
O F J X Q J H L F S 
R Z U B L O G H L B 
M H N J B S T D N Y 
G S H B G X F W D F 
M Y F S R X F I H R 
I M B R N N D D Y W 
A의 개수 = 1
728x90

'JAVA' 카테고리의 다른 글

switch 연습02  (0) 2020.09.08
if문 연습04 (가위, 바위, 보 게임)  (0) 2020.09.08
if, switch 연습(성적구하기)  (0) 2020.09.08
if문 연습03  (0) 2020.09.08
컴퓨터와 가위 바위 보  (0) 2020.09.08

+ Recent posts