반응형

 

STS3에서 MVC Project를 찾을 수 없음(STS MVC Project invalid thread access, org.springframework.samples.mvc failed)

2월 이후 STS3 버전을 다운로드 받고 워크스페이스를 변경하면 Spring MVC Project를 찾을 수 없는 현상이 발생했습니다.

일부 블로그에서는 워크스페이스\.metadata\.plugins\org.springsource.ide.eclipse.commons.content.core에 https-content.xml을 작성하면 MVC Project를 생성할 수 있다는 글도 있지만, 프로젝트 생성 시 보이기는 하지만 만들수는 없는 현상이 발생 했습니다.

※ https-context.xml을 넣어서 프로젝트를 생성할 때 MVC Proejct를 보이게끔 해주어야 합니다. 해당 파일은 이후 업로드 예정입니다. 
※ 기존에 사용하던 프로젝트가 있으신 분들은 https-context.xml을 가져와서 넣으시면 됩니다.

 

Spring 홈페이지나 여러가지 레퍼런스들을 찾아봣지만 그렇다할 오피셜은 없었습니다. https-content.xml을 봣을 때 MVC Project를 다운로드 받기 위한 URL을 어떠한 이유로 차단하고 있거나, 더이상 서비스하지 않는것으로 추측됩니다. (이슈로 인해 잠시 안되는 것인지, MVC Project에 대한 지원이 아예 종료된것인지는 확인이 되지 않습니다.)

https-content.xml

 

URL을 통해 다운로드를 받아오지 않고 아래에 배포한 zip 파일을 직접 워크스페이스\.metadata\.sts\content\org.springframework.templates.mvc-3.2.2에 넣음으로써 해결할 수 있습니다.

 

※ 해당 zip 파일에 있는 내용은 이전에 작업하셨던 프로젝트가 있다면 해당 경로에 찾아가면 있습니다. 기존 프로젝트가 있으신 분이라면 워크스페이스\.metadata\.sts\content\org.springframework.templates.mvc-3.2.2 경로로 이동하여 파일들을 새로운 워크스페이스 경로에 넣으시면 됩니다.

 

org.springframework.templates.mvc-3.2.2.zip
0.01MB

 

반응형
반응형
※ 포스팅에서 사용된 그림 등을 퍼가시거나 기타 자료로 활용 하셔도 괜찮지만, 출처 표기 부탁 드립니다.

 

자바의 기본형 변수, 비트와 바이트, 자바 메모리(Java Data Type, Primitive Type, bit, byte, Java Memory Stack/Heap/Static)

자바에서의 자료형은 아래 그림과 같이 기본형(Primitive Type) 변수와 참조형(Reference Type) 변수로 나눠지는데, 이번 포스팅에서는 기본형 변수에 대해 다룹니다.

 

A. 기본형 변수의 특징1 - 고정된 데이터 크기(byte)를 가지고 있음

 

 

B. 비트(bit)와 바이트(byte)의 이해

위의 그림에서 바이트는 자료형의 크기를 의미하게 되며 이를 이해하기 위해서는 비트(bit)와 바이트(byte)를 이해할 필요가 있습니다.

  1. 비트(bit) : 비트는 컴퓨터에서 데이터를 표현하기 위한 최소한의 단위로써 0과 1로 이루어져 있습니다.
  2. 바이트(byte) : 1byte는 8개의 bit가 모아진 형태를 의미 하며 16bit는 8byte가 됩니다

즉 1byte가 숫자로 표현할 수 있는 범위는 0~255 이며, 표현 범위 가능한 개수는 256개 입니다. (0이 포함되므로)

 

아래와 같이 2의 n승이 올라가는 방향으로 움직일수록 표현할 수 있는 숫자가 많아집니다.

  2의 0승
데이터 표현 범위 0
1
  2의 1승
데이터 표현 범위 0 0
0 1
1 0
1 1
  2의 2승
데이터 표현 범위 0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

 

각각의 데이터는 2의 n승으로 계산할 필요 없이 아래와 같이 위에는 비트 자리를, 아래는 숫자를 128 ~ 1까지 적어놓으면 편하게 계산할 수 있습니다. 비트에 있는 자리가 1이 오르면, 아래에 있는 숫자를 더하면 됩니다.

 

만약, 아래와 같이 비트가 01010011로 표현 된다면 64+16+2+1의 값인 83이 됩니다.

 

11001010으로 표현 된다면 128+64+8+2의 값인 202가 됩니다.

 

 

C. 자료형의 메모리 크기와 기본값, 표현 범위

다시 자료형의 이야기로 돌아가서 각각의 자료형은 아래와 같은 크기와 값, 표현 범위를 갖게 되는데 정수형의 예약어인 byte는 1byte의 크기를 가지므로 표현 가능한 개수는 256개지만, 음수를 표현하므로 0~255가 아니라 -128~127이 됩니다.

이와 같이 각각 몇 바이트의 크기를 가지고 있느냐에 따라 표현 범위가 달라지게 되고, 변수가 선언 되면서 각자 가지고 있는 데이터 크기 만큼의 메모리 영역을 확보하게 됩니다. (https://nirsa.tistory.com/377 - 2.변수 선언 그림 참고)

특이하게도 논리형 boolean의 경우 1byte임에도 표현 범위는 true / false 단 2개 입니다. 0 또는 1 두가지로 true / false를 나타낼 수 있을 것 같은데, boolean이 1byte를 사용하는 이유는 CPU가 메모리에 접근할 수 있는 최소 단위가 1byte이기 때문에 1bit가 아닌 1byte를 사용 합니다.

 

 

D. 기본형 변수의 특징2 - Stack 영역에 값을 직접 저장

기본형 변수의 또 다른 특징으로는 자바 메모리 영역에서 Stack에 직접 값을 저장하고 사용 합니다. 이후 포스팅할 참조형 변수의 경우 Stack에 참조할 주소를 저장 하지만, 기본형 변수는 값을 직접 저장 하게 됩니다.

 

 

E. 자바의 메모리 구조 참고 (PC Register, Native Method 제외)

 

 

반응형
반응형

 

자바 변수명 네이밍 규칙(Java Name Convenction)

자바에서의 변수명 네이밍 규칙은 아래와 같습니다만, 예약어의 경우 자바를 공부하면 자연스럽게 터득하게 되기 때문에 굳이 예약어들의 종류를 외우려고 하지 않으셔도 됩니다.

  1. 대소문자를 구분하며 길이 제한이 없음
  2. 예약어 사용 불가
    ex) int, true, public, final, if, …
  3. 숫자로 시작할 수 없음
    ex) 1num (X)
  4. 특수문자는 _와 $만 허용
    ex) @num (X), $num (O), _num (O)
  5. 관례적으로 카멜 표기법(낙타 표기법)을 사용

 

표기법의 종류

자바에서 자주 사용되는 표기법은 아래와 같습니다.

  1. 카멜 표기법(Camel notaion : Camel case : 낙타표기법) : 소문자로 시작하며 이어지는 단어들의 시작을 대문자로 작성 → 자바에서 대부분의 경우에 카멜 표기법을 사용
    ex) userName, boardList
  2. 파스칼 표기법(Pascal case) : 대문자로 시작하며 이어지는 단어들의 시작을 대문자로 작성 → 클래스의 이름에 사용
    ex) UserName, BoardList  
  3. 스네이크 표기법 (Snake case) : 소문자로 이루어진 단어 사이에 언더바(_)를 활용하는 표기법 → 프론트엔드쪽에서 자주 사용됨 
    ex) user_name, board_list

그 외로 자바에서는 대문자로 이루어지고, 단어의 사이마다 언더바(_)를 넣을때가 있는데 상수를 작성할 때 사용됩니다.

반응형
반응형
※ 포스팅에서 사용된 그림 등을 퍼가시거나 기타 자료로 활용 하셔도 괜찮지만, 출처 표기 부탁 드립니다.

 

1. 자바 변수란? (Java Variables)

변수란 어떠한 값(data)를 저장할 수 있는 저장 공간을 뜻합니다. 왼쪽에 작은 박스가 있고, 그 안에 내가 원하는 물건(값)을 넣는 그림을 생각하셔도 됩니다.

 

굳이 변수라는 개념을 사용하는 이유는 여러번의 수정이 필요한 작업이 있을 때 사용된 값을 모든 데이터에서 수정하는 것이 아니라, 변수에 할당시킨 값만을 초기화 한다면 단 한번의 수정으로 모든 값을 변경할 수 있습니다.

아래의 코드에서 변수를 사용하지 않을 경우 100 이라는 값을 수정 하기 위해서는 총 7번의 수정이 필요하고, 변수를 사용할 경우 단 한번의 수정으로 모든 값을 변경할 수 있습니다.

총 7번의 수정이 필요한 코드

총 1번의 수정이 필요한 코드 (변수 사용)

 

 

2. 변수 선언

자바에서의 변수 선언은 메모리에 값(data)를 올리기 위해 공간을 확보하는 과정입니다. 아래와 같이 int형의 기본 자료형일 경우  정해진 바이트의 크기만큼을 메모리에 올릴 수 있도록 공간을 확보 합니다. (https://nirsa.tistory.com/379 - [JAVA 변수 강의-3]  참고)

자바의 변수 선언과 메모리 확보

 

자바의 변수 선언은 다음과 같이 데이터 타입을 지정하고, 사용할 변수명을 입력 합니다.

 

데이터 타입(자료형)은 참조 자료형과 기본 자료형으로 나눠지며, 기본 자료형의 경우 8가지로 나눠지게 되는데

  1. 논리형 : boolean
  2. 문자형 : char
  3. 정수형 : byte, short, int, long
  4. 실수형 : float, double

변수 선언 시 각각의 크기만큼의 메모리의 공간을 확보하고 그 곳에 값을 넣게 됩니다. (그림 '자바의 변수 선언과 메모리 확보' 참고)

 

 

3. 변수 초기화

위에서 변수 선언을 먼저 했다면 데이터 타입을 제외하고 작성하여 변수 초기화, 즉 변수에 값을 할당할 수 있습니다. 이렇게 변수에 값을 할당하는 과정을 `변수 초기화`라고 하며 넣으려는 값은 `리터럴`이라는 용어를 사용하기도 합니다.

 

하지만 만약, 변수의 선언과 초기화를 동시에 하고 싶다면 데이터 타입을 포함하여 작성하시면 됩니다.

 

변수를 초기화 할 때 데이터 타입 앞에 final을 붙이면 상수가 됩니다. 상수는 단 한번만 저장되고 그 이후에는 변경할 수 없는 값을 뜻하고, 관례적으로 병수명을 지을 때 모두 대문자로 지으며 단어 사이에 언더바(_)를 넣어 대문자로 이루어진 변수명을 사용합니다.

 

반응형

+ Recent posts