웹개발 환경 세팅 - 2. 웹프로젝트 생성하기(https://noobnim.tistory.com/20?category=847081) 에 이어서 진행합니다.

 

웹개발 환경 세팅 - 2. 웹프로젝트 생성하기

웹개발 환경 세팅 - 1.Intellij Community 설치하기 (https://noobnim.tistory.com/19) 에 이어서 진행합니다. 웹개발 환경 세팅 - 1. Intellij Community 설치하기 웹 개발 환경 설정부터 공부를 시작하기까지 기..

noobnim.tistory.com

 

 

1. OpenJDK 설치하기 

 

과정을 진행하기 전에 JDK를 먼저 설치했어야했는데 출처의 글을 보면서 이제야 생각이 났네요.

OpenJDK를 다운받으러 가도록 합니다.  (https://jdk.java.net/13/)

 

 

운영체제에 맞게 JDK를 다운받습니다. 저는 Windows 환경이므로 Windows용을 다운로드 받았습니다.

다운받아진 압축파일은 본인이 원하는 위치에 풀어주도록 합니다.

저는 C:\Program Files 안에다 풀어두었습니다.

 

 

 

2. OpenJDK 환경변수 설정하기 

 

윈도우+R 키를 눌러 실행창을 열고 cmd를 입력하여 실행합니다.

 

 

echo %PATH%

를 입력하여 현재의 환경변수 PATH를 확인합니다.

 

 

set PATH=%PATH%;C:\Program Files\Java\openjdk-13\bin

자신이 압축해제한 OpenJDK의 경로에서 bin폴더까지의 경로를 추가한 후 제대로 추가되었는지 확인합니다.

 

 

java --version

을 입력하여 버전확인이 제대로 되고있다면 환경변수 설정이 잘 된것입니다.

 

 

 

3. Spring Boot 적용하기 

 

Intellij에서 생성한 프로젝트에서

build.gradle 파일을 열면 기본적으로 작성되어 있는 소스가 있습니다.

 

buildscript {
    ext {
        springBootVersion = '2.1.6.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group 'web'
version '1.0.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('org.springframework.boot:spring-boot-starter-thymeleaf')
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    runtime('com.h2database:h2')
    runtime('org.springframework.boot:spring-boot-devtools')
    compileOnly('org.projectlombok:lombok')
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

위의 코드를 복사하여 덮어쓰기 하도록 합니다.

group, version은 본인이 처음 설정한 내용대로 입력하도록 합니다.

 

 

위와같이 패키지 구조를 만들고 각각 Application, Controller 클래스파일을 생성하도록 합니다.

 

package com.myhome;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String arg[]){
        SpringApplication.run(Application.class, arg);
    }
}

첫번째로 Application 클래스의 소스입니다.

패키지선언부분을 제외하고 붙여넣습니다.

 

package com.myhome.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HomeController {
    @RequestMapping("/")
    public String index(){
        return "확인!";
    }
}

두번째로 Controller 클래스의 소스입니다.

마찬가지로 패키지 선언부분을 제외하고 붙여넣습니다.

 

@ (어노테이션)에 대해서는 별도로 포스팅 하도록 하겠습니다.

 

 

인텔리제이의 우측상단에 Add Configuration을 클릭합니다.

 

 

팝업에서 + 버튼을 누른다음 그래들을 선택합니다.

 

 

그래들 프로젝트의 명칭을 지정해준다음

Tasks에 bootRun을 추가해주고 OK버튼을 클릭합니다.

 

 

정상적으로 추가가 되었으며 Run버튼이나 Debug 버튼을 클릭하여 로컬 서버를 실행하도록합니다.

 

 

인텔리제이 하단의 콘솔에서 SpringBoot가 정상적으로 실행되는 모습입니다.

 

 

정상적으로 실행되었습니다.

http://localhost:8080/ 로컬페이지를 열어보도록 합니다.

 

위와같이 확인 이라는 메세지가 보이면 성공적으로 실행 된것입니다.

SpringBoot 설정은 여기서 마치겠습니다.

 

출처) https://www.bsidesoft.com/?p=6926

자주 사용하는 프로젝트 조합을 미리 만들어놓아 스프링을 더욱 쉽고 간편하게 사용하기 위해 만들어진 프레임워크이다. 최소한의 설정으로 스프링의 여러 라이브러리를 사용할 수 있고, 톰캣, 제티 등이 내장되어 있다.

 

아래의 링크만큼 자세하고 가독성이 좋은 설명이 되어있는 곳은 없는듯 하다.

 

 

출처) https://gist.github.com/ihoneymon/8a905e1dd8393b6b9298

'IT 용어 정리' 카테고리의 다른 글

리눅스 런레벨 간단 정리  (0) 2019.10.14
Ioc/DI 란?  (0) 2019.10.09
JVM 이란?  (0) 2019.09.30
DAO 와 DTO 란?  (0) 2019.09.26
MyBatis 란?  (0) 2019.09.26

■ Spring 이란?

 

Spring Framework 란 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서, 동적인 웹사이트를 개발하기 위한 여러가지 서비스는 제공하고 있는 프레임워크 이다. 스프링을 사용하므로써 이미 잘 짜여진 구조 위에서 핵심 로직에만 집중할 수 있어서 높은 생산성과 높은 코드 품질의 좋은 소프트웨어를 개발 할 수 있다.

 

 

■ 애플리케이션 프레임워크 란?

 

애플리케이션 프레임워크는 특정 계층이나 기술, 업무 분야에 국한되지 않은 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크이다. 애플리케이션 프레임워크는 애플리케이션 개발의 전 과정을 빠르고 편리하며 효율적으로 진행하는데 일차적인 목표를 두는 프레임워크이다. 

 

 

 

 

출처) https://12bme.tistory.com/157

        https://cjh5414.github.io/why-spring/

 

'develop > Spring' 카테고리의 다른 글

Spring @ (어노테이션) 정리  (0) 2019.10.09

■ JVM 이란?

 

Java Virtual Machine의 줄임말이며 Java byte code를 OS에 맞게 해석해주는 역할을 합니다. Java Compiler는 .java 파일을 .class 라는 Java byte code로 변환시켜 줍니다. Byte code는 기계어가 아니기때문에 OS에서 바로 실행되지 않습니다. 이때 JVM은 OS가 Byte code를 이해할 수 있도록 해석해줍니다. 하지만 JVM의 해석을 거치기 때문에 c언어같은 네이티브 언어에 비해 속도가 느렸지만 JIT (Java In Time) 컴파일러를 구현해 이점을 극복했습니다. Byte Code는 JVM 위에서 OS상관없이 실행된다. 이런 점이 Java의 가장 큰 장점이라고 할수 있습니다. OS에 종속적이지 않고 Java 파일 하나만 만들면 어느 디바이스든 JVM 위에서 실행 할 수 있습니다. JVM은 크게 Class Loader, Runtime Data Areas, Excution Engine 3가지로 구성되어 있고 자세한 설명은 아래에 이이서 하겠습니다.

 

 

 

■ JVM 구조

 

- Class Loader

RunTime 시점에 클래스를 로딩하게 해주며 클래스의 인스턴스를 생성하면 클래스 로더를 통해 메모리에 로드하게 됩니다.

 

- Runtime Data Areas

JVM이 프로그램을 수행하기 위해 OS로 부터 별도로 할당 받은 메모리 공간을 말하며, Runtime Data Areas는 크게 5가지 영역으로 나눌 수 있습니다.

 

- Execution Engine

Load된 Class의 ByteCode를 실행하는 Runtime Module이 바로 Execution Engine입니다. Class Loader를 통해 JVM 내의 Runtime Data Areas 에 배치된 바이트 코드는 Executin Engine에 의해 실행되며, 실행 엔진은 자바 바이트 코드를 명령어 단위로 읽어서 실행합니다.

최초 JVM 이 나왔을 당시에는 Interperter방식(한 줄씩 해석하고 실행)이였기 때문에 속도가 느리다는 단점이 있었지만 JIT complier 방식을 통해 이 점을 보완했습니다. JIT는 ByteCode를 어셈블러 같은 NativeCode로 바꿔서 실행이 빠르지만 역시 변환하는데 비용이 발생합니다. 이 같은 이유 때문에 JVM은 모든 코드를 JIT Compiler 방식으로 실행하지 않고 Interpreter 방식을 사용하다 일정한 기준이 넘어가면 JIT Compiler 방식으로 실행합니다.

 

 

출처) https://medium.com/@lazysoul/jvm-%EC%9D%B4%EB%9E%80-c142b01571f2

'IT 용어 정리' 카테고리의 다른 글

Ioc/DI 란?  (0) 2019.10.09
Spring Boot 란?  (0) 2019.10.04
DAO 와 DTO 란?  (0) 2019.09.26
MyBatis 란?  (0) 2019.09.26
NoSQL 이란?  (0) 2019.09.17

+ Recent posts