같은 컴퓨터 안에 브라우저와 톰캣을 띄어봤으니

이제 본격적으로 AWS에 올려 볼 것이다.

 

그러기 위핸 우리가 만든 프로젝트를 export해야 한다.

 

war파일 선택 후

 

프로젝트이름과 경로를 저장하는데 이때 중요한 것은

확장자를 .war로 해야 한다.

압축파일로 만들어질 수도 있고 war자체로 만들어질 수 있는데 상관 없다.

 

 

 

 

aws에 들어가서 프리티어 서비스 사용량을 확인 할 수 있다.

오른쪽 상단에 본인 아이디 클릭 후 - 계정 - 프리티

인스턴스가 실행중이라면 사용하지 않을 경우 중지를 하자

 

원격을 다시 시작하려니 갑자기 만들었던 인스턴스가 보이지 않았다.

알고보니 지역선택이 바뀌어져 있으니 원래 지정했던 것으로 돌려놓으니 해결된다.

 

 

연결

 

 

중지했다 시작하면 ip가 바뀌므로 원격 데스크톱 다운로드를 다시 해주어야 한다.

 

기존의 만들었던 key를 가져오고 해독한 후 복붙

 

아까 만들었던 ch2.war 파일을 apache-tomcat - webapps에 복붙하면 자동으로 압축이 풀린다.

 

createshortcut 후 바탕화면으로 이동

 

실행을 하면 압축이 풀리면서 ch2 폴더가 만들어진다.

 

 

이제 로컬에서 원격 aws서버를 접속할 것인데

IPv4 퍼블릭 ip를 복사

 

로컬PC에서 localhost 대신 복사한 IPv4를 붙여 넣으면 이렇게 나오는데 

 

IPv4 + :8080/ch2/hello 하니 접속이 된 것을 확인할 수 있다.

https://aws.amazon.com/ko/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all

 

무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어

이러한 프리 티어 혜택은 AWS 신규 고객에게만 제공되며 AWS 가입일로부터 12개월 동안 유효합니다. 12개월의 무료 사용 기간이 만료되거나 애플리케이션 사용량이 프리 티어 범위를 초과할 경우

aws.amazon.com

 

 

쭉 가입을 하다 보면 이 화면이 나온다.

AWS Management Console로 이동 클릭

 

검색에 ec2검색 후 클릭

 

오하이오를 아시아 태평양(서울)로 변경

 

인스턴스 시작 클릭

 

 

본인이 원하는 이름으로 키 이름 지정후 인스턴스 시작

 

 

인스턴스 시작이란? 가상 컴퓨터를 새로 만드는 것

 

 

 

상태 검사를 하는 데 시간이 조금 걸리므로 기다렸다가 새로고침을 누르고

저렇게 상태 검사가 확인되면 연결 버튼을 누른다.

 

그 후 생성된 암호 복사 후 붙여넣기

 

 

가상 컴퓨터가 만들어짐을 확인 할 수 있다.

 

 

브라우저를 열고 깃허브로 들어간다.

 

그 후 나오는 팝업은 open -> close

https://github.com/castello/spring_basic

 

GitHub - castello/spring_basic: 남궁성의 스프링 기본 강의 @fastcampus.co.kr

남궁성의 스프링 기본 강의 @fastcampus.co.kr. Contribute to castello/spring_basic development by creating an account on GitHub.

github.com

 

이제 JDK랑 Tomcat을 설치 할 것이다.

보안때문에 설치가 안될 것인데

 

톱니바퀴 클릭후 Internet Options 클릭 -> Security -> Custom level -> File download(enabel) -> ok

 

 

이제 OpenJDK, Tomcat 이 설치 가능하다.

 

https://jdk.java.net/archive/

 

Archived OpenJDK GA Releases

Archived OpenJDK General-Availability Releases This page is an archive of previously released builds of the JDK licensed under the GNU General Public License, version 2, with Classpath Exception. WARNING: These older versions of the JDK are provided to he

jdk.java.net

 


https://tomcat.apache.org/download-90.cgi

 

Apache Tomcat® - Apache Tomcat 9 Software Downloads

Welcome to the Apache Tomcat® 9.x software download page. This page provides download links for obtaining the latest version of Tomcat 9.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification version

tomcat.apache.org

 

 

톰캣 다운로드 들어가서 zip 클릭 후 save

 

 

설치가 잘 됬음을 확인

 

파일 이름을 jdk-11.0.2 -> jdk11로 변경

 

bin 경로 복사

 

control panel 검색 후 이동 (제어판)

 

 

아까 복사한 jdk의 bin 폴더의 경로를 복사 후 넣어준다.

이번에는 bin을 빼고 넣어준다.

 

이러면 환경변수 설정 끝

설정이 잘 되었는지 확인한다.

cmd로 들어간후 javac -version

 

톰캣도 jdk와 같이 c드라이브로 옮겨주면 자동으로 압축이 풀린다.

톰캣의 bin의 startup클릭

톰캣이 실행된다.

 

톰캣도 잘 실행이 되었는지 확인하기 위해 브라우저를 열고

http://localhost:8080 입력 후

톰캣이 잘 열리는 지 확인

 

 

이제 가상 컴퓨터에 직접 접속하기 위해 방화벽설정에서

내부로 들어오는 것을 열어주어야 한다.

Inbounded Rules -> New Rule

 

AWS에서도 방화벽을 열어주어야 한다.

 

 

이제 마지막으로 내 pc에서 가상pc의 톰캣으로 접속이 되는지 확인 할 것이다.

ec2의 대시보드에 들어가서 인스턴스(실행 중) 클릭

 

체크를 한 후 퍼블릭 IPv4 주소를 복사

그 후 :8080 을 붙여주면 접속된다.

 

 

VisualStudio Code의 셋업파일을 더블클릭하여 설치 후 

Extension을 추가로 설치할 것이다.

 

이런식으로 설치 후 제거가 보이면 설치가 완료된 것이다.

 

 

 

 

 

 

이렇게 우선 총 5개를 설치하였다.

Korean, Prettier, Open in browser, indent-rainbow, Auto Rename Tag

 

깃 설치 중에

 

 

이 부분이 master 에서 main으로 바뀌고 있는 추세인데 이것만 체크하고 나머지는 모두 Next 한 후 설치

 

아파치도 압축을 해제한 후 폴더 그대로 C드라이브로 옮긴다.

 

해당 폴더의 bin에 들어가서 폴더 경로를 복사후

cmd에서 cd + 경로 후

startup하면 아래와 같은 창이 열린다.

1080은 1.08초 시간이 들었다는 것이다.

한글

 

 

그 후 localhost:8080 으로 들어갔을때 이 화면이 나오면 잘 작동되는 것이다.

 

 

이제 마지막으로 STS를 설치할 것인데

 

압축파일 안에서 이것을 꺼내어 C드라이브로 옮겨주면 된다.

 

STS런처를 실행한다.

 

이 화면이 나오면 성공이다.

 

File -> New -> Spring Legacy Project

 

아래에 템플릿이 다 보이지 않는다면

Configure templates 클릭

가운데 것을 제외 하고 두가지를 Remove 한 후 Apply and Close하면 생긴다고 하는데 필자는 되지 않아서

몇시간 동안 찾아본 결과

 

몇년 전부터 이 기능을 이제 지원하지 않는다 한다.

따라서 기존에 빈프로젝트를 만들어 놓은 것을 임포트 해야 한다고 한다.

 

 

이러면 생성된다. 아래의 폴더를 설치하자(압축해제X)

firstSpring.zip
0.02MB

 

이렇게 잘 만들어짐을 확인할 수 있다.

 

만약 이렇지 않고 원할하게 MVC project를 생성했을 경우

여기에 이런식으로 넣어주면

 

이렇게 패키지 이름이 만들어진다.

 

 

이제 서버를 연결해줄 것이다.

이 아래 버튼을 누르고 tomcat검색후 설치했던 9버전 next

 

 

그 후 Finish 하면 완료가 되어 있는 상태

 

 

 

 

이제 서버를 실행 시켜 볼 것 이다.

 

한글은 현재 깨지고 현재 시간이 출력된다.

 

외부 브라우저로 변경할 것이다.

돋보기를 클릭

 

web browser 선택후 external로 변경 후 chrome을 클릭후 apply

 

그리고 다시 Run on Server를 하면 Chrome으로 실행됨을 확인 할 수 있다.

https://jdk.java.net/archive/

 

Archived OpenJDK GA Releases

Archived OpenJDK General-Availability Releases This page is an archive of previously released builds of the JDK licensed under the GNU General Public License, version 2, with Classpath Exception. WARNING: These older versions of the JDK are provided to he

jdk.java.net

 

개인의 컴퓨터에 맞게 버전을 설치해 줄 것인데,

필자는 11.0.2 윈도우 버전을 설치했다.

 

스프링으로 개발하기 위해 필요한 도구들

자바 개발 도구 : Java11

통합개발 환경 : STS, IntelliJ(Ultimate 유료버전만)

웹 서버 : Tomcat 9

웹 브라우저 : Chrome

데이터 베이스 : MySQL 5.7

기타 : VS code, Git, AWS, Maven

 

우선 STS를 설치할 것이다.

https://github.com/spring-attic/toolsuite-distribution/wiki/Spring-Tool-Suite-3

 

Spring Tool Suite 3

the distribution build for the Spring Tool Suite and the Groovy/Grails Tool Suite - spring-attic/toolsuite-distribution

github.com

 

 

IntelliJ 유료 설치(30일 무료)

https://www.jetbrains.com/ko-kr/idea/download/?section=windows

 

최고의 Java 및 Kotlin IDE인 IntelliJ IDEA를 다운로드하세요

 

www.jetbrains.com

 

Tomcat 9 다운로드

톰캣은 EE에 포합된다(Enterprise Edition)

https://tomcat.apache.org/download-90.cgi

 

Apache Tomcat® - Apache Tomcat 9 Software Downloads

Welcome to the Apache Tomcat® 9.x software download page. This page provides download links for obtaining the latest version of Tomcat 9.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification version

tomcat.apache.org

 

 

VisualStudio Code 설치

https://code.visualstudio.com/download

 

Download Visual Studio Code - Mac, Linux, Windows

Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.

code.visualstudio.com

 

Git 다운로드

https://git-scm.com/downloads

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. Latest source Release 2.47.0 Release Notes (2024-10-06) Download Source Code GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but ther

git-scm.com

 

 

import java.util.*을 사용함으로써 scan을 사용할 수 있는데

이는 사용자가 키보드로 수치를 입력할 수 있다.

정수형이면 scan.nextInt()

실수형이면 scan.nextFloat()를 사용한다.

근데 아래의 출력을 보면

마지막 str1을 입력하지 않았는데 자동으로 Hello와 World 잘려서 바로 출력됨을 알 수 있다.

import java.util.*;
public class ScannerTest {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("정수를 입력하세요:");
        int num =scan.nextInt();
        System.out.println("num = " + num);
        
        System.out.print("실수를 입력하세요:");
        float f = scan.nextFloat();
        System.out.println("f = " + f);

        System.out.print("문자를 입력하세요:");
        String str = scan.next();
        System.out.println("str = " + str);

        //scan.nextLine();//버퍼비우기(스트림 비우기)

        System.out.print("문자를 입력하세요:");
        String str1 = scan.next();
        System.out.println("str1 = " + str1);
    }
}

 

 

이에 대한 원인으로

scan.next();
공백을 기준으로 한 단어 또는 한 문자씩 입력받는다.
버퍼에 입력된 문자나 문자열에서 공백 전까지의 단어를 읽는다.

 

scan.nextLine();
문자 또는 엔터를 치기 전까지의 문장 전체를 입력받는다.
버퍼에 입력된 문자열을 개행 문자까지 다 가져온다.

따라서 이 문제점을 scan.nextLine();을 사용함으로서 문제를 해결할 수 있다.

앞에 Hello가 출력되고 나서 그 다음 버퍼에 World가 출력되어야 하는데

scan.nextLine(); 을 사용하여 버퍼를 비울 수 있기 때문이다.

import java.util.*;
public class ScannerTest {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("정수를 입력하세요:");
        int num =scan.nextInt();
        System.out.println("num = " + num);
        
        System.out.print("실수를 입력하세요:");
        float f = scan.nextFloat();
        System.out.println("f = " + f);

        System.out.print("문자를 입력하세요:");
        String str = scan.next();
        System.out.println("str = " + str);

        scan.nextLine();//버퍼비우기(스트림 비우기)

        System.out.print("문자를 입력하세요:");
        String str1 = scan.next();
        System.out.println("str1 = " + str1);
    }
}

 

 

이번에는 또 다른 문제가 생겼다.

Hello World를 출력하고 싶은데 앞에 Hello만 잘려서 나온 것이다.

왜냐하면 위에 설명한 것 처럼

그냥 next는 공백을 기준으로 잘라서 출력하고

Line을 이어서 붙어 주어야만 엔터를 했을 때를 기준으로 출력하기 때문이다.

import java.util.*;
public class ScannerTest {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("정수를 입력하세요:");
        int num =scan.nextInt();
        System.out.println("num = " + num);
        
        System.out.print("실수를 입력하세요:");
        float f = scan.nextFloat();
        System.out.println("f = " + f);

        System.out.print("문자를 입력하세요:");
        String str = scan.next();
        System.out.println("str = " + str);

        scan.nextLine();//버퍼비우기(스트림 비우기)

        System.out.print("문자를 입력하세요:");
        String str1 = scan.nextLine();
        System.out.println("str1 = " + str1);
    }
}

 

 

public class TwoDimArrayInit {
    public static void main(String[] args) {
        int[][] a = {
                {1,2,3,4},
                {5,6,7,8}
        };

        for(int i=0; i<a.length ; i++){
            for(int j=0;j<a[i].length; j++){
                System.out.print(a[i][j] + "\t");
            }
            System.out.println();
        }

        int[][] b = new int[5][];
        b[0] = new int[1];
        b[1] = new int[2];
        b[2] = new int[3];
        b[3] = new int[4];
        b[4] = new int[5];

        for(int i=0; i<b.length ; i++){
            for(int j=0;j<b[i].length; j++){
                b[i][j] = '*';
                System.out.print((char)(b[i][j]) + "\t");
            }
            System.out.println();
        }
    }
}

Movie 타입의 객체를 저장할 수 있는 배열 m을 생성

 

  • Movie[] m = new Movie[3];로 배열을 생성한 후, 각 배열 요소에 대해 new Movie()로 객체를 생성하여 초기화

※Movie라는 만들어진 객체의 정보를 가져와 m이라고 이름을 지정하여 3개로 만들었기에

각각의 속성에 접근하기 위해서 m[0], m[1], m[2]를 각각 모두 초기화 해주어야함

  • 각각의 Movie 객체에 대해 여러 속성에 값을 할당하고, 마지막으로 이를 출력하여 각 영화의 정보 보여줌

 

import java.sql.SQLOutput;

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

        Movie[] m = new Movie[3];

        m[0] = new Movie();
        m[0].mtitle = "A영화";
        m[0].mmajor = "박매일";
        m[0].mtime = 160;
        m[0].mlevel = 15;
        m[0].mday = "2023-01-15";

        m[1] = new Movie();
        m[1].mtitle = "B영화";
        m[1].mmajor = "나길동";
        m[1].mtime = 180;
        m[1].mlevel = 12;
        m[1].mday = "2023-01-11";

        m[2] = new Movie();
        m[2].mtitle = "C영화";
        m[2].mmajor = "조길동";
        m[2].mtime = 140;
        m[2].mlevel = 18;
        m[2].mday = "2023-11-16";

        for(int i=0 ; i<m.length ; i++){
            System.out.println(m[i].mtitle+"\t"+m[i].mmajor+"\t"+m[i].mtime+"\t"+m[i].mlevel+"\t"+m[i].mday);
        }
    }
}

 

 

 

C#을 하다가 자바를 하니 문법같은 것을 처음에 모르다 보니

GPT를 활용하여 변경하였다.

문자열 보간이라던지 약간 다른부분이 있어서 헷갈렸지만 이 또한 적응할 것 이다.

 

대문자에서 소문자로 가려면 아스키코드 + 32

 

내일배움카드

혜택으로 유니티를 수료하였고

이번에는 k-digital 기초역량훈련을 수강하게 되었다.

 

자바는 개발에 필요한 요소

1. JDK 설치

2. 자바 통합 개발에 필요한 도구인 IntelliJ or Eclipse (요새는 주로 IntelliJ를 사용)

 

자바 언어로 만들 수 있는 프로그램의 유형 (3가지)

1. 데스크톱 응용소프트웨어 : JavaSE 플랫폼을 구축해야 함.

2. 웹 기반 응용소프트웨어 : JavaEE 플랫폼을 구축해야 함.

3. 모바일 기반 응용소프트웨어 : JavaME 플랫폼을 구축해야 함.

 

 

이 중에서 필자는 JavaSE를 설치 할 것이다.


JDK설치

 

https://openjdk.org/

 

OpenJDK

Learn about the key active Projects in the Community including Amber (high-productivity language features), Loom (lightweight concurrency), Panama (foreign functions and foreign data), Valhalla (primitive types and specialized generics), and, of course, th

openjdk.org

 

우선 이 사이트로 접속 후

이 곳을 클릭

 

그 후 SE11클릭

 

윈도우를 사요할 것이므로 윈도우버전으로 설치하는데

이 부분에 관해서는 각각의 OS에 맞춰 설치하면 된다.

 

그 후 보기와 같은 순서로 경로를 지정해 줘야한다.

 

환경 변수 창에 들어오면 아래쪽의 시스템 변수의 새로 만들기를 누른 후

변수 이름 : JAVA_HOME

변수 값 : 앞서 설치한 JDK11의 위치를 찾아서 넣어주면 된다.

 

환경 변수 만들기가 끝났으면

시스템 변수에서 Path를 찾아서 더블 클릭후 새로만들기

%JAVA_HOME%\bin 추가

이때 / 가 아닌 역슬래시인 백스페이스키 아래의 \ 이니 주의

그 후 위로 이동을 눌러 최상단으로 위치시켜준다.

 

잘 설치가 되었는지 확인 하기 위해서는 윈도우 자체에 깔려있는

실행창에 cmd 검색후 들어가서

java -version 입력을 하면 버전을 확인 할 수 있다.

 


IntelliJ 설치

 

https://www.jetbrains.com/ko-kr/idea/download/?section=windows

 

최고의 Java 및 Kotlin IDE인 IntelliJ IDEA를 다운로드하세요

 

www.jetbrains.com

해당 사이트로 접속 후

Ultimate 버전은 학생인 경우 학교를 등록하지 않으면

1달 사용후 유료이므로 우선 Community 버전을 설치

※마찬가지로, 자신의 OS에 맞는 버전을 설치

 

IntelliJ설치를 할때 다음을 누르다

정보 보내기?가 있으면 Don't send

설치 경로는 기본(Default)로 진행하면 된다.

 

체크는 이렇게 하면되고, 이에 대한 설명이다.

 

 

그 후 절차대로 다음을 눌러가며 진행하면 설치가 완료된다.

 

IntelliJ를 설치하면 이런 화면이 나오는데

 

 

새 프로젝트를 클릭

 

위치는 임시로 C드라이브에 만들어놓은 곳을 지정하였고

왼쪽을 확인하면 언어는 자바로 설정

그리고 JDK를 눌러보면 여러가지가 있고 설치를 할 수 있는데

디스크에서 JDK 추가 -> 보기와 같이 클릭 -> 11버전이 JDK에 추가된다.

그리고 생성하면 완료

 

 


 

정보

1. 자바개발 4가지 플랫폼
=> JavaSE, JavaEE, JavaME, JavaFX

2. JavaSE개발환경을 구축하기 위해서 설치하는 프로그램
=> JDK(Java Development Kit)

3. JDK를 설치하면 PC에 설치 되는 것들
=> JVM, API, TOOL

4. 자바 프로그램을 구동하는 프로세서
=> JVM(Java Virtual Machine)

+ Recent posts