728x90

1. pom.xml에 추가

<dependency>
	   <groupId>org.bgee.log4jdbc-log4j2</groupId>
	   <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
	   <version>1.16</version>
</dependency>

2. src/main/resources안에 log4j.xml파일 수정

3. web.xml에 추가

 

 

로그레벨

FATAL > ERROR > WARN > INFO > DEBUG > TRACE

로그설정을 INFO로 하게 되면 DEBUG로 한 로그는 INFO보다 레벨이 낮아서 출력되지 않는다.


victorydntmd.tistory.com/173

 

[Spring] 로그 남기기 ( Logback )

로그 ( Log ) 로그는 기록을 남기는 것을 의미합니다. 구체적으로는 프로그램 개발이나 운영 시 발생하는 문제점을 추적 하거나 운영 상태를 모니터링 하는 정보를 기록하는 것이죠. 또한 분석을

victorydntmd.tistory.com

 

hayunstudy.tistory.com/54

 

# spring Logback 설정 및 적용

slf4j 를 사용하여 로그를 남기고, 콘솔창에서 확인하는 용도로만 로깅처리를 이용해왔다. 내가 남긴 로그들을 파일을 통해 따로 관리할수 있게하기위해 검색을 하던중, logback 에 대해서 알게 되

hayunstudy.tistory.com

 

baessi.tistory.com/66

 

[스프링] log4J 처음 사용하기[xml 이용]

안녕하세요 이번에는 스프링 프레임워크에서 Log4J 를 사용하는 방법에 대해 알려드리고자 합니다. 일단 간단하게 Log4J의 정의입니다   Log4j 정의 log4j는 Apache에서 만든 오픈소스 라이브러리로

baessi.tistory.com

https://cluster-taek.tistory.com/entry/log4j%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%82%AC%EC%9A%A9%EB%B2%95

 

728x90

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

비주얼스튜디오  (0) 2021.03.30
자바 게시판 엑셀출력  (0) 2021.03.30
(미완성)인터프리터 방식  (0) 2021.02.23
Java EE 와 Java SE의 차이점  (0) 2021.02.22
스프링(Spring)  (0) 2021.02.19
728x90

728x90

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

자바 게시판 엑셀출력  (0) 2021.03.30
spring 쿼리로그 출력, log4j  (0) 2021.03.29
Java EE 와 Java SE의 차이점  (0) 2021.02.22
스프링(Spring)  (0) 2021.02.19
메이븐 (Maven)  (0) 2021.02.19
728x90

자바 프로그래밍 언어의 플랫폼은 4가지가 존재한다

  • 표준 에디션의 자바 플랫폼(Java SE)
  • 엔터프라이즈 에디션의 자바 플랫폼(Java EE)
  • 마이크로 에디션의 자바 플랫폼(Java ME)
  • JavaFX


모든 자바 플랫폼들은 자바 가상 머신(JVM)과 어플리케이션 프로그래밍 인터페이스(API)들로 구성되어 있다.
자바 가상 머신(JVM)은 하드웨어와 소프트웨어 플랫폼에서 자바 기술을 사용한 어플리케이션을 동작시키기 위한 프로그램.
API는 개발자들이 직접 컴포넌트나 어플리케이션을 만들 때 사용할 수 있는 소프트웨어 컴포넌트의 집합
.

 

Java SE (Java Standard Edition)
대부분의 사람들이 자바 프로그래밍 언어를 떠올릴때 바로 이 플랫폼이 됩니다.  Java SE의 API는 자바 프로그래밍 언어의 핵심 기능들을 제공하기 때문입니다. 기초적인 타입부터 네트워킹, 보안, 데이터베이스 처리, 그래픽 사용자 인터페이스 개발은 물론 XML 파싱에 이르는 고수준의 클래스들을 모두 다룰 수 있습니다.
코어 API에 더하여 자바 SE 플랫폼에서는 가상 머신, 개발도구, 배포 기술 그리고 자바 기술을 사용하는 어플리케이션에서 일반적으로 사용되는 부가적인 클래스 라이브러리들과 툴킷까지 제공하고 있습니다.
흔히 자바 언어라고 하는 대부분의 패키지가 포함된 에디션이며
주요 패키지로는 java.lang.*, java.io.*, java.util.*, java.awt.*, javax.rmi.*, javax.net.* 등이 있습니다.

 

데스크톱, 서버, 임베디드시스템을 위한 표준 자바 플랫폼. 자바 가상머신 규격 및 API집합을 포함 JAVA EE,ME는 목적에 따라 SE를 기반으로 기존의 일부를 택하거나 API를 추가하여 구성된다. SE는 가장 일반적으로 사용된다. JDBC나 기본적인 기능이 모두 포함되어 있기 때문에 Android개발할때 주로 SE를 사용한다.


Java EE (Java Enterprise Edition)
자바 EE 플랫폼은 자바 SE 플랫폼을 기반으로 그 위에 탑재됩니다. 자바 EE 플랫폼에서는 대규모, 다계층, 확장성, 신뢰성 그리고 보안 네트워킹 어플리케이션의 개발과 실행을 위한 API 및 환경을 제공하고 있습니다.

 

자바를 이용한 서버측 개발을 위한 플랫폼. 기존 SE에 웹 애플리케이션 서버에서 동작하는 분산 멀티미디어를 제공하는 자바의 기능을 추가한 서버를 위한 플랫폼. JAVA SE에 서버측을 위한 기능을 부가하였기 때문에 SE기능을 모두 포함한다.


Java EE는 Java SE의 API에 추가로(lib 디렉토리에 포함되어 있는 JAR파일들)의 차이

www.ibm.com/support/knowledgecenter/ko/SSQP76_8.9.1/com.ibm.odm.dserver.rules.res.managing/topics/con_javase_javaee_applis.html



Java ME  (Java Platform Micro Edition)
자바 ME 플랫폼에서는 모바일 폰과 같이 자바 프로그래밍 언어 기반의 어플리케이션이 보다 조그만 가상 머신으로 동작시킬 수 있는 기능과 API를 제공합니다. 물론 자바 SE API의 하부 구조로 API가 구성되어 있기 때문에 일관성 있는 개발이 가능하게 됩니다. 작은 장치에서 동작하는 자바 어플리케이션 개발에 필요한 전용 클래스 라이브러리들을 제공하며 자바 EE 플랫폼 서비스의 클라이언트 역할을 수행하게 될때도 있습니다.

 

이름에서 알 수 있듯이 임베디드를 위한 자바 플랫폼이다. 자바 플렛폼, 마이크로 에디션의 약자이다. Java ME 또는 J2ME 등으로 불림 제한된 자원을 가진 휴대전화, PDA, 세트톱박스 등에서 Java프로그래밍 언어를 지원하기 위해 만들어진 플랫폼이다.



Java FX
경량 사용자 인터페이스 API를 사용하여 리치 인터넷 어플리케이션을 만들 때 사용됩니다. JavaFX 어플리케이션은 하드웨어 수준에서 가속기능을 사용할 수 있는 그래픽과 미디어 엔진을 갖추고 있어 보다 클라이언트의 성능에 신경을 써야하는 분야에서 사용하면 좋습니다. JavaFX 어플리케이션 또한 자바 EE 플랫폼 서비스의 클라이언트 역할을 담당할 수 있습니다. 

Eclipse 도 개발할수있는 환경이 여러종류인데 JAVA를 접해보셨다면 JAVA SE,JAVA EE 가 있습니다 .

 

728x90

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

spring 쿼리로그 출력, log4j  (0) 2021.03.29
(미완성)인터프리터 방식  (0) 2021.02.23
스프링(Spring)  (0) 2021.02.19
메이븐 (Maven)  (0) 2021.02.19
eclipse (이클립스) vs STS  (1) 2021.02.18
728x90

자바 언어를 기반으로 다양한 어플리케이션을 제작하기 위한 약속된 프로그래밍 틀로서
개발자의 생산성을 높여주며 코드의 경량화가 이루어지게 하며
현재는 자바 개발자들의 표준 개발 프레임워크이다.
대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.

 

자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크 "스프링 프레임워크(Spring Framework)"라고 하는 것이 정확한 표현이다.

자바(JAVA) 엔터프라이즈 개발을 위한 "오픈소스(Open Source)" 애플리케이션 프레임워크(Framework)

- Open Source : 소프트웨어(S/w) 혹은 하드웨어의(H/W) 제작자의 권리를 지키면서 원시 코드를 누구나 열람할 수 있도록 한 소프트웨어, 오픈 소스 라이선스에 준하는 모든 통칭을 일컫는다. (소스가 공개되어 여러 개발자가 플랫폼을 함께 개발, 구축, 보완해 나가는 시스템. )

 - Framework : 개발할 때 설계 기본이 되는 뼈대나 구조 / 환경 (문제 영역을 해결한 재사용, 확장 가능한 라이브러리.)

engkimbs.tistory.com/601

 


특징

스프링은 다른 프레임워크에 비해 다음과 같은 특징을 가진다.

  • 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다.
  • 스프링은 Plain Old Java Object 방식의 프레임워크이다. 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.
  • 스프링은 제어 반전(IoC : Inversion of Control)을 지원한다. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.
  • 스프링은 의존성 주입(DI : Dependency Injection)을 지원한다. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
  • 스프링은 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)을 지원한다. 따라서 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.
  • 스프링은 영속성과 관련된 다양한 서비스를 지원한다. iBATIS 하이버네이트 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공한다.
  • 스프링은 확장성이 높다. 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하기 때문에 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.

 


참고: goddaehee.tistory.com/156

 

[Spring] 스프링(Spring) 정의 및 특징 정리

[Spring] 스프링(Spring) 정의 및 특징 정리 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 스프링(Spring) 정의, 스프링 특징 ] 입니다. : ) 스프링프레임워크(Spring Framework)  - 자바 플랫폼을 위한 오..

goddaehee.tistory.com

khj93.tistory.com/entry/Spring-Spring-Framework%EB%9E%80-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%ED%95%B5%EC%8B%AC-%EC%A0%95%EB%A6%AC

 

[Spring] Spring Framework란? 기본 개념 핵심 정리

Spring Framework란? 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션입니다. 엔터프

khj93.tistory.com

 

728x90

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

(미완성)인터프리터 방식  (0) 2021.02.23
Java EE 와 Java SE의 차이점  (0) 2021.02.22
메이븐 (Maven)  (0) 2021.02.19
eclipse (이클립스) vs STS  (1) 2021.02.18
JAVA 자바  (0) 2021.02.16
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

결론

이클립스, sts는 개발도구

이클립스 = 기본 상태의 개발도구 = 순정

이클립스에서 마켓들어가서 메이븐, spring 이것저것 다운받아서 튜닝가능

STS = 이미 튜닝 되있는 이클립스 


통합 개발 환경 (IDE : Integrated Development Environment) 중의 하나로 IDE는 에디터, 컴파일러, 디버그 등 프로그래밍에 필요한 툴이 하나의 인터페이스로 통합되어 사용 가능한 개발 환경을 말한다.
이클립스, 비주얼 스튜디오 등이 있다.

이클립스

이클립스는 JAVA를 기반으로 만들어졌다. 원래는 IBM의 IBM VisualAge용 소프트웨어 개발 툴로서 만들어졌으나, 제작 도중 방향이 바뀌어서 관련 소스 등을 모조리 공개하는 자유 소프트웨어가 되었다.

운영체제의 제한 없이 어디서든 사용이 가능하다

 

jeongchul.tistory.com/214

 

08 개방형 플랫폼 - 이클립스

08 개방형 플랫폼 - 이클립스 이클립스 Eclipse 프로젝트 1. 이클립스 Eclipse 의 소개 이클립스 프로젝트 이클립스에 대해 알아보도록 하겠습니다. 이클립스란 높은 수준의 통합 도구를 개발할 수 있

jeongchul.tistory.com

 


sts

Spring Framwork를 이용한 프로젝트를 진행하다 보면 이클립스와 STS(Spring Tool Suite )를 많이 사용하게 된다.

STS(Spring Tool Suite )는 스프링 개발에 최적화된 이클립스라고 생각하면 된다.
이클립스 베이스에 Spring Framwork plugin이 자동으로 추가된 버전?이다.
(Maven과 이클립스의 Maven 플러그인인 m2Eclipse가 포함된 통합 개발환경)

 

기존 이클립스 - STS plug-in 별도 추가 설치
STS(Spring Tool Suite) 바로 개발 가능

장점으로는 이클립스는 톰캣을 직접 설치하고 따로 실행해줘야 하는데
STS는 개발자용 톰캣서버도 같이 설치&실행해주는 편리함이 있다.

참고: m.blog.naver.com/PostView.nhn?blogId=skawo32167&logNo=220879891748&proxyReferer=https:%2F%2Fwww.google.com%2F

 

Spring Framework - STS기능 ,Maven-Library관리, Spring Project생성

1. STS가 제공하는기능 2. Maven과 Library 관리 3. Spring Project 작성하기 STS (SpringSour...

blog.naver.com


스프링부트

=> 스프링에서 설정을 더 편하게 해주는 프레임워크

스프링 프레임워크는 기능이 많은 만큼 환경설정이 복잡한 편이다.
그래서 환경설정을 편하게 만들어서 나온게 스프링부트이다.

스프링부트는 스프링 프레임워크를 사용하기 위한 설정의 많은 부분을 자동화 하여 사용자가 정말 편하게 스프링을 활용할 수 있도록 돕는다.
스프링 부트 starter 디펜던시만 추가해주면 바로 API를 정의하고, 내장된 탐캣이나 제티로 웹 애플리케이션 서버를 실행할 수 있다.
심지어 스프링 홈페이지의 이니셜라이저를 사용하면 바로 실행 가능한 코드를 만들어준다.
실행환경이나 의존성 관리 등의 인프라 관련 등은 신경쓸 필요 없이 바로 
코딩을 시작하면 된다.
그리고 바로 그것이 스프링의 키 포인트이다.

 

 

 


스프링 프레임워크(Spring Framwork)

프레임 워크중 가장 많이 사용되고 있고 자바 웹 애플리케이션 개발을 위한 오픈소스 프레임 워크로 기존 프레임 워크보다 가벼운 경량 프레임 워크 이다.

또한 스프링은 경량 컨테이너라고 부른다. '컨테이너'라고 하면 대표적인 것으로 톰켓을 들 수 있다. 톰캣은 서블릿 컨테이너라고 부르는데, 그 이유는 톰 캣을 실핸ㅇ하면 톰캣은 서블릿의 생성 ,초기화, 서비스실행, 소멸에 관한 모든 권한을 가지고 서블릿을 관리하기 때문이다.

그리고 애플리 케이션에서 사용되는 여러 가지 빈(클래스 객체)을 개발자가 아닌 스프링이 권한을 가지고 직접 관리한다.

 

스프링은 java기술을 더 쉽게 사용할 수 있게 해주는 오픈소스 프레임워크이다.
그래서 sts가 아니라 이클립스에서 스프링을 적용해서 개발할 수도 있고 (sts보다 설정을 더 직접 잡아야 한다)
아니면 스프링으로 개발하는 것에 특화된 STS로 개발할 수 도 있다.

 

스프링의 주요 특징으로 4가지가 있는데 한번 훑어본다.

1. IoC(Inversion of Control, 제어 반전)

- 개발자는 JAVA 코딩시 new 연산자, 인터페이스 호출, 데이터 클래스 호출 방식으로 객체를 생성하고 소멸시킨다.

- IoC란 인스턴스 (객체)의 생성부터 소멸까지 객체 생명주기 관리를 개발자가 하는게 아닌 스피링(컨테이너)가 대신 해주는 것을 말한다.

- 프로젝트의 규모가 커질수록 객체와 자원을 이용하는 방법이 더 복잡해지고 어디서 코드가 꼬일지 모르는 것을 Spring의 IoC는 자동으로 관리해준다.

- 즉, 제어권이 개발자가 아닌 IoC에게 있으며 IoC가 개발자의 코드를 호출하여 그 코드로 생명주기를 제어하는 것이다.

 

2. DI(Dependency Injection, 의존성 주입)

- 프로그래밍에서 구성요소 간의 의존 관계가 소스코드 내부가 아닌 외부의 설정파일을 통해 정의되는 방식이다.

- 코드 재사용을 높여 재사용을 높여 소스코드를 다양한 곳에 사용할 수 있으며 모듈간의 결합도도 낮출 수 있다.

- 쉽게 말하자면 게임 캐릭터라는 하나의 객체가 존재하는데, 그 객체를 더 잘 이용하기 위해서 무기, 방패 등 아이템을 가져와 결합시키는 것이다. 이 객체는 무기와 방패를 뺐다 꼈다 자유자재로 할 수 있으며 아이템을 갈아끼우는데 어떤 상황에 구애받지도 않는다.

- JAVA에서 데이터를 저장하고 가져오는 기능을 외부의 Oracle Database를 사용할 수도 있고, JDBC, iBatis, JPA 등 다른 프레임 워크를 이용해 짤 수도 있다. 이때 Spring을 이용하면 그때마다 필요한 부분을 뺐다 꼈다 하면서 적절한 상황에 필요한 기능을 해낼 수 있다.

 

3. AOP(Aspect Object Programming, 관점 지향 프로그래밍)

- 로깅, 트랜잭션, 보안 등 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 관리 할 수 있다.

- 각각의 클래스가 있다고 가정하자. 각 클래스들은 서로 코드와 기능들이 중복되는 부분이 많다. 코드가 중복될 경우 실용성과 가독성 및 개발 속도에 좋지 않다. 중복된 코드를 최대한 배제하는 방법은 중복되는 기능들을 전부 빼놓은 뒤 그 기능이 필요할때만 호출하여 쓰면 훨씬 효율성이 좋다.

- 즉, AOP는 여러 객체에 공통으로 적용할 수 있는 기능을 구분함으로써 재사용성을 높여주는 프로그래밍 기법이다.

 

4. POJO(Plain Old Java Object) 방식

- POJO는 Java EE를 사용하면서 해당 플랫폼에 종속되어 있는 무거운 객체들을 만드는 것에 반발하여 나타난 용어이다.

- 별도의 프레임 워크 없이 Java EE를 사용할 때에 비해 인터페이스를 직접 구현하거나 상속받을 필요가 없어 기존 라이브러리를 지원하기 용이하고, 객체가 가볍다.

- 즉, getter/setter를 가진 단순한 자바 오브젝트를 말한다.

 

참고: jerryjerryjerry.tistory.com/62

 

[Spring] Spring 이란?

* Spring 이란? - JAVA의 웹 프레임워크로 JAVA 언어를 기반으로 사용한다. JAVA로 다양한 어플리케이션을 만들기 위한 프로그래밍 틀이라 할 수 있다. - 옛날에 비교하면 지금은 JAVA의 활용도가 높아졌

jerryjerryjerry.tistory.com

sas-study.tistory.com/274

 

[번역글] 스프링 vs 스프링 부트 차이 비교하기!

DZone이라는 사이트에서 번역해서 가져온 글입니다. 간단히 읽어보시고 원문을 읽어보고싶으시면 아래 url로 들어가셔서 바로 보시면 될것 같습니다. 참고문 정도로 보시면 좋겠습니다. 원문 : htt

sas-study.tistory.com

annajinee.tistory.com/20

 

[SpringBoot] Spring과 Spring Boot의 차이

지난 1여 년간 일하면서 Spring Boot만 사용했었는데 오늘 보니 대부분의 회사에서 Spring(SpringMVC)을 많이 쓴다고 합니다. 그래서 Spring Boot와 Spring의 차이가 무엇인지 좀 더 자세하게 알아보기 위해

annajinee.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
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

+ Recent posts