자료 검색중 좋은 자료가 있어서 공유드립니다.

(원글 : jung-max.github.io/2020/06/23/Web-1_SpringBoot-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95/)

 

=====================================================

 

스프링부트를 처음 시작하기 위한 개발환경 구성에 대해서 설명한다.

JDK 설치

Spring Boot를 사용하기 위해서는 JDK 설치가 선행되어야 한다.

요즘은 오라클의 정책으로 인해서 OpenJDK가 권장된다.

https://github.com/ojdkbuild/ojdkbuild에서 자신의 컴퓨터와 맞는 jdk를 다운받아 설치한다.

java version확인

위와같이 자바 버전이 확인된다면 설치가 성공된 것이다.

이클립스 설치

스프링부트를 사용하기 위한 IDE로서는 IntelliJ IDEA가 가장 좋다고 말한다. 하지만 구독료가 있기 때문에 여기서는 이클립스에 대해서 설명한다.

아래 링크에서 이클립스를 다운받는다.

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

설치시 스프링 프레임워크를 사용하기 위해서 JaveEE(Java Plaform, Enterprise Edition)을 설치한다.

JAVA EE

플러그인 설치

STS(Spiring Tool Suite)는 스프링 어플리케이션 개발을 위한 이클립스 기반의 개발환경이다.

이클립스 상단 메뉴중 Help > Eclipse Marketplace…을 선택한다. Find 창에서 STS를 검색한다.

마켓플레이스 목록에서 최신 버전의 STS를 설치한다.

STS 설치

STS 설치시 모든 기능을 선택 후 설치하면 된다.

Gradle 설치

라이브러리 관리를 위한 Gradle을 설치한다. 라이브러리 관리는 크게 Maven과 Gradle이 있지만 여기서는 Gradle을 중심으로 설명한다.

그 이유는 메이븐의 경우 xml로 이루어져 있어 사람이 알아보기는 쉽지만 라이브러리가 추가되거나 각각의 라이브러리가 서로 다른 버전의 라이브러리를 참조하는 종속성을 가지고 있을 경우에는 관리가 어려워지는 문제가 있다.

위에서 STS를 설치한 것처럼 마켓플레이스에서 gradle을 검색해 설치한다. 이미 설치가 되있다면 넘어가도 좋다.

Gradle 설치

Gradle을 설치했다면 거기에 맞는 에디터 또한 설치한다. 여기서는 Minimalist Gradle Editor를 설치한다.

Minimalist Gradle Editor 설치

설치 후 그레이들 파일을 연결한다.

상단 메뉴에서 Windows > Preferences를 선택하고 General > Editors > File Associations 메뉴에서 *.gradle을 찾아서 Minimalist Gradle Editor을 Defauilt로 선택한다.

Minimalist Gradle Editor을 Defauilt로 선택

이클립스 메뉴 변경

아래는 필자가 추천하는 메뉴 구성 변경에 대해서 설명한다.

Customize Perspective 변경하기

Windows > Preferences > Customize Perspective를 선택한다.

Customize Perspective를 선택

Shortcuts 메뉴에서 아래와 같이 선택한다.

Java Shortcuts

Web Shortcuts

패키지 보여주기 변경하기

패키지의 계층 구조를 한눈에 파악하기 위해 패키지 보여주기 방법을 변경한다.

Project Explorer에 ∨ 버튼을 누른 후 Package Presentation > Hierarchical을 선택한다.

Hierarchical을 선택

이클립스 뷰 변경하기

소스코드외 여러 필요한 정보를 보기 위한 화면 구성이다.

Windows > Show View > Other…를 선택한다.

Other... 선택

Console, Problems, Progress, Search, History, Package Explorer을 추가하고 사용하지 않는 메뉴는 삭제한다.

Package Explorer는 Project Explorer뷰 옆으로 이동한다.

이클립스 뷰

프로젝트 인코딩 설정하기

한글등 여러 문제 발생을 피하기 위해서 UTF-8로 인코딩을 설정한다.

Windows > Preferences를 선택한 후 General > Workspace를 선택한다.

Text file encoding을 UTF-8로 변경한 후 OK를 누른다.

UTF-8로 변경

테마 변경하기(다크 테마)

이클립스 상단 메뉴중 Help > Eclipse Marketplace…을 선택한다. Find 창에서 Dark Theme를 검색한다.

Dark Theme

해당 플러그인을 인스톨 후 재시작하면 다크 테마를 적용할 수 있다. 또한 클래식 또는 화이트 테마 역시 선택 가능하다.

추후 테마를 변경하고 싶다면 Windows > Preferences를 선택한 후 DevStyle에서 Color Themes에서 변경 가능하다.

Theme 변경

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

해당 페이지로 넘어온 전체 속성값(request, attribute) 를 확인하는 방법입니다.

 

하기 소스를 이용하여 전체값을 출력해보세요~~

 

<% 

out.println("<br/>");

out.println("<전체 request.getAttribute 출력>");

out.println("<br/>");

Enumeration attrs = request.getAttributeNames();

while(attrs.hasMoreElements()){

String attr = (String)attrs.nextElement();

out.println(attr+"<br/>");

}

out.println("<br/>");

 

out.println("<br/>");

out.println("<전제 request.getParameter 출력>");

out.println("<br/>");

Enumeration params = request.getParameterNames();

while(params.hasMoreElements()){

String param = (String)params.nextElement();

out.println("param:"+param+"<br/>");

}

%>



블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

간단한 소켓 클라이언트(Socket Client) 만들기 예제입니다.

 

 

JAVA를 이용한 간단한 소켓 클라이언트 (Socket Client) 만들기 예제입니다.


// 서버와 통신할 소켓 생성
Socket s = new Socket("localhost",3000);

// 소켓으로부터 inputStream 과 outputStream 얻기
OutputStream os = s.getOutputStream();
InputStream is = s.getInputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
BufferedReader br = new BufferedReader(new InputStreamReader(is));

// 서버에 메세지 전송하기
bw.write(" => 클라이언트 입니다. \n");

// 서버에서 메세지 받아오기
String message = br.readLine();

 

 

 

 

 

 

*** 소스

 

package com.redjava.interfaces.socket;

import java.io.*;
import java.net.*;

public class EchoClient{
 public EchoClient(){
  try{
   Socket s = new Socket("localhost",3000);
   
   OutputStream os = s.getOutputStream();
   InputStream is = s.getInputStream();
   BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
   BufferedReader br = new BufferedReader(new InputStreamReader(is));
   
   bw.write(" => 클라이언트 입니다. \n");
   bw.flush();
   
   String message = br.readLine();
   System.out.println("[서버 메세지] " + message);
  }catch(UnknownHostException e){
   System.out.println("[경고] 서버를 찾을 수 없습니다.");
  }catch(IOException e){
   System.out.println("[경고] 사용되지 않는 PORT 번호 입니다.");
  }
 }
 
 public static void main(String[] args){
  new EchoClient();
 }
}

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

간단한 소켓서버(Socket Sever) 만들기 예제입니다.

 

 

JAVA 로 구현하는 간단한 소켓서버 (Socket Server) 의 구현 예제 입니다.

 

// 서버 및 포트 설정
ServerSocket ss = new ServerSocket(3000);

// 클라이언트 연결 소켓 생성
Socket s = ss.accept();

// 접속한 클라이언트 정보 얻기
InetAddress userInfo = s.getInetAddress();
String ip = userInfo.getHostAddress();

// 소켓으로부터 inputStream 과 outputStream 얻기
InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));

// 클라이언트가 전송한 메세지 받기
String message = br.readLine();

// 클라이언트에 메세지 전송
bw.write("["+ip+"]님 환영합니다. \n");

 

 

 

 

 

 

*** 소스

 

package com.redjava.interfaces.socket;

import java.io.*;
import java.net.*;

public class EchoServer{
 public EchoServer(){
  try{
   ServerSocket ss = new ServerSocket(3000);
   System.out.println("=== 서버 가동 ===");
   
   Socket s = ss.accept();
   System.out.println("= 클라이언트 연결 소켓 생성 =");
   
   InetAddress userInfo = s.getInetAddress();
   String ip = userInfo.getHostAddress();
   System.out.println("[" + ip + "] 님 접속");
   
   InputStream is = s.getInputStream();
   OutputStream os = s.getOutputStream();
   BufferedReader br = new BufferedReader(new InputStreamReader(is));
   BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
   
   String message = br.readLine();
   System.out.println("[메세지]" + message);
   
   bw.write("["+ip+"]님 환영합니다. \n");
   bw.flush();
  }catch(IOException e){
   System.out.println("[경고] 해당 PORT는 사용중입니다.");
  }
 }
 
 public static void main(String[] args){
  new EchoServer();
 }
}

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,


나머지 연산자를 활용한 예제입니다.

 

 

JAVA 에서 나누기 연산 후  나머지를 활용한 연산예제입니다.

// 변수 선언
double d = 32;

//변수 d의 값을 10으로 나눈뒤 나머지를 화면에 출력
System.out.println("d mod 10 = " + d%10);

 

 

*** 원문

 

ModulusOperator.java


Modulus Operator Example
This example shows how to use Java modulus operator (%). 

 

 

 

 

*** 소스

 

package com.redjava.java.operator;

public class ModulusOperator {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
        System.out.println("Java Modulus Operator example");

        /*
         * Modulus operator returns reminder of the devision of
         * floating point or integer types.
         */

         int i = 50;
         double d = 32;


         System.out.println("i mod 10 = " + i%10);
         System.out.println("d mod 10 = " + d%10);

 

 }

}

 

 

*** 결과

 


 

Java Modulus Operator example
i mod 10 = 0
d mod 10 = 2.0


블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

연산자에 대한 예제입니다.

 

JAVA 에서 칙연산을 활용한 기본적인 예제입니다.

// 변수 i 선언, 더하기 연산
int i = 50 + 20;

// 변수 j 선언, 빼기 연산
int j = i - 10;

// 변수 k 선언, 곱하기 연산
int k = j * 2;

// 변수 l 선언, 나누기 연산

double l = k / 6;

 

 

*** 원문

 

ArithmeticOperators.java


Arithmetic Operators Example

This example shows how to use Java Arithmetic operators like + (addition),
- (subtraction), * (multiplication) and / (division). 

 

 

 

*** 소스

 

package com.redjava.java.operator;

public class ArithmeticOperators {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
       System.out.println("Arithmetic operators example :");

          int i = 50 + 20;
          int j = i - 10;
          int k = j * 2;
          double l = k / 6;

          System.out.println("i = " + i);
          System.out.println("j = " + j);
          System.out.println("k = " + k);
          System.out.println("l = " + l);
 }

}

 

 

*** 결과

 

Arithmetic operators example :
i = 70
j = 60
k = 120
l = 20.0

 

 


블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

charArray을 사용한 간단한 예제입니다.

 

JAVA 의 자료형중 하나인 charArray 를 활용한 간단한 예제입니다.

 

*** 원문

 

// charArray 선언 및 값 대입
char[] charArray = new char[]{'J','a','v','a'};

"VcharArray.java"

/*
* To convert char array to String in Java, use
* String(Char[] ch) constructor of Java String class.
*/

 

 

 

 

*** 소스

 

package com.redjava.java.variable;

public class VcharArray {
 
 public static void main(String args[]){

        //char array
        char[] charArray = new char[]{'J','a','v','a'};


        /*
         * To convert char array to String in Java, use
         * String(Char[] ch) constructor of Java String class.
         */

        String str = new String(charArray);
        System.out.println("Char array converted to String: " + str);


 }


}

 

 

*** 결과

 

Char array converted to String: Java

 

 


블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

변수형 double을 사용한 간단한 예제입니다.

 

JAVA 의 자료형중 하나인 double 형을 활용하는 간단한 예제 입니다.

 

*** 원문

 

// double 선언 및 값 대입
double d = 1232.44;

Vdouble.java

/*
* double is 64 bit double precision type and used when fractional precision
* calculation is required.
*
* Declare double varibale as below
* 
* double = ;
* 
* here assigning default value is optional.
*/

 

 

 

*** 소스

 

package com.redjava.java.variable;

public class Vdouble {
 
 public static void main(String[] args) {

  double d = 1232.44;
        System.out.println("Value of double variable d is :" + d);              
 }

}

 

*** 결과

 

Value of double variable d is :1232.44

 

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

변수형 float을 사용한 간단한 예제입니다.

 

JAVA의 자료형중 하나인 float 형을 활용하는 간단한 예제 입니다.

 

*** 원문

 

// float 선언 및 값 대입
float f = 10.4f;

Vfloat.java


/*
* float is 32 bit single precision type and used when fractional precision 
* calculation is required. 
* 
* Declare float varibale as below 
* 
* float = ;
* here assigning default value is optional.
*/

 

 

 

*** 소스

 

package com.redjava.java.variable;

public class Vfloat {
 
 public static void main(String[] args) {
  
     float f = 10.4f;
        System.out.println("Value of float variable f is :" + f);   
  
 }

}

 

*** 결과

 

Value of float variable f is :10.4

 

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

변수형 int을 사용한 간단한 예제입니다.

 

 

JAVA의 자료형중 하나인 int 를 활용하는 간단한 예제 입니다.

 

*** 원문

 

/*
* int is 32 bit signed type ranges from ?2,147,483,648 
* to 2,147,483,647. int is also most commonly used integer 
* type in Java.
* Declare int varibale as below
* 
* int = 
;
*
 
* here assigning default value is optional.
*/

 

 

 

*** 소스

 

package com.redjava.java.variable;

public class Vint {

  public static void main(String[] args) {

  

          int i = 0;
          int j = 100;


          System.out.println("Value of int variable i is :" + i);
          System.out.println("Value of int variable j is :" + j);


 }
}

 

 

*** 결과

 

Value of int variable i is :0
Value of int variable j is :100

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,