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

 

 

for문은 단순해 보이나 중요한 것이 있다.

for문이 돌아가는 순서에 대해서 이다.

 

초기식 -> 조건식 -> 증감식 순이 아닌

초기식 -> 조건식 -> 중괄호 안에 있는 문 -> 증감식 순으로 이어진다.

 

위의 잘못된 로직으로 생각할 시 코딩을 했을 때

마지막 변수가 출력되지 않은 적을 다들 경험해 봤을 것이다.

필자 또한 그런 경험이 있다.

 

 

 

아래 코드에서 주석 처리 된 부분은 일반적인 for문인데

자바에서는 아래와 같이 향상된 for문을 이용하여

코드의 길이를 줄일 수 있다.

 

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

//        for(int i=0; i<numbers.length; i++){
//            System.out.println(numbers[i]);
//        }
        //foreach문 (향상된 for문)
        for(int su : numbers){
            System.out.println(su);
        }
    }
}

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

 

 

 

4월29일 부터 8월2일까지 어떻게 보면 길고도 짧았던 프로젝트 리뷰를 남긴다.

현재 플레이스토어에 비공식으로 테스트 버전으로 올라가 있다.

 

기존의 게임을 똑같이 오마주 삼기보다 여러 게임의 아이디어를 가져와 종합하느라,

레퍼런스라고 딱히 지정할 것이 없어서 "창작"이라고 생각하는데 가깝다.

그렇기에 팀원들이 한 곳을 바라보아야 하는데 각자 생각하는 프로젝트의 그림이 달라서 이 점을 종합하는데

다소 시간이 들였다.

 

하지만 우리는 Papter prototype을 통해 게임의 재미를 입증하였고, 의견을 모을 수 있었다.

필자는 "던전 추적자"라는 프로젝트를 동시에 했기에 몇달간 하루에 4시간 가량만 잠을 자며 정말 바빴다.

하지만 돌이켜 생각해보면 우리가 원했던 '개발자가 해도 만족스러운 게임'을 지향하며 달려온 길은 행복했다.

다들 고생이 많았고, 모두에게 행복한 기억으로 남았으면 좋겠다.

 

게임 시작 씬

 

로비 씬

 

특성 창
카드 도감 창
설정 창
마지막 특성 활성화 후, 게임 시작 시 선택 창
초기 카드 선택 씬
시작 스토리
맵 씬
아이템 인벤토리와 스탯 창
준비 카드 인벤토리
행동카드 인벤토리
전투 씬
게임 승리 및 패배 씬
크레딧

제목을 Test로 지정한 후 프로젝트를 생성

 

 

그러면 아래 그림과 같이 빈 프로젝트가 생성된다.

 

 

src에 우클릭을 한 후 보기와 같이 새로운 클래스를 만들어 준다.\

그리고 클래스의 이름은 ForBlog로 지정하였다.

 

그러면 보기와 같이 클래스가 만들어진다.

 

클래스를 쉽게 사람으로 생각하면 사람이라고 생각하면 된다.

사람이 무슨 동작을 하기 위해 행동이 필요하다.

이를 메서드라 부른다.

기본 클래스는 main이라는 메서드가 필요하다.

 

main을 입력한 후 tab or enter or 더블클릭을 하면 보기와 같이 기본 main클래스가 만들어진다.

자바에는 무언가 출력을 할때

System.out.println();

이런 기본형태가 필요하고 저 괄호안에 원하는 값을 입력하면 된다.

그리고 나서 초록색 버튼을 클릭하고 실행 시키고

아래 콘솔창을 보면 Hello 가 찍힘을 확인할 수 있다.

 

실행을 하고 나서 왼쪽 사이드바를 자세히 보면 새로운 폴더가 생성됨을 알 수 있다.

 

이것에 관하여는 학원의 관련자료로 설명하겠다.

우선 설명을 하자면 소스코드는 우리가 만든 부분이고,

그것을 실행하기 위해 API가 필요하며

실행을 하면 실행된 파일인 out에 class가 만들어진 것이다.

 

우리는 터미널을 열어서 컴파일을 초록색 화살표 버튼이 아닌 명령어로 실행해 볼 수 있다.

여기서 -encoding UTF-8은 만약에 수동으로 출력할때 한글이 끼어져 있으면 글씨가 깨지기 때문에

인코딩 형식을 직접 지정해주어야 한다.

 


 

중요 : JVM과 자바의 구동 방식

 

 

전에 유니티를 사용했을 때 Window로 작업을 하다 Mac으로 넘어갈 경우

라이더를 구매하지 않으면 한글이 깨지고 그런 현상이 있었는데,

자바는
1차적으로 src코드가 bytecode로 저장된다.
또한 실행을 하더라도 한번더 JVM을 거쳐서 exe로 마지막에 로딩하여 실행하기 때문에
다른 프로그램이랑 다르게 독립적으로 OS와 상관없이 작동한다.

 

 

내일배움카드

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

이번에는 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