11월 19, 2023

VS Code gradle build 시 "JAVA_HOME is not set and no 'java' command could be found in your PATH" 에러

 VS Code에서 gradle build 시


 ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH 

에러가 뜬다면 어떻게 해결해야 할까?


말 그래도 VS Code에 java_home path가 인식되지 않아서 그런데

일단 먼저 

1. 제어판 시스템 환경변수에 JAVA_HOME 이 설정되었는지 확인한다. JAVA 설치 시 하는 것이므로 대부분 되어 있을 것


2. VS Code path를 확인한다. 

VS Code에서 control "," 를 누르고

"java.home"이라고 검색을 하면 위와 같이 Java_home 경로를 설정할 수 있다. 


거기에 현재 컴퓨터에 설치되어 있는 JAVA jdk 의 경로를 적어주면 된다. 


혹은 아래 있는 "Edit in settings.json"을 클릭하여 json 파일에서 setting을 바꾸어주어도 된다. 


변경을 한 다음 vs code를 닫고 다시 실행시켜주면 이제 vs code가 java_home의 path를 인식하는 것을 알 수 있다. 


11월 19, 2023

Visual Studio Code 라이브 서버 설치방법, 언제 사용하는가 (Go Live)

 오늘은 VS Code에서 web proejct를 생성할 때 유용하게 사용하는 라이브 서버 익스텐션 설치 방법에 대해 알아보겠다. 


VS Code는 다양한 extension 지원으로 코딩을 훨씬 더 편리하게 해주는데, 그 중 하나가 live server이다. 




먼저 설치는 VS Code extension 칸에 들어가서 live server라고 검색하면 아주 간단히 할 수 있다. 


live server라고 검색 시 가장 먼저 나오는 것에서 Install 버튼을 클릭한다. 



그러면 위와 같이 설치 중이라는 메세지가 뜨다가 몇 초 이내로 설치가 완료된다. 


설치가 완료되면 



오른쪽 하단에 Go Live라는 버튼이 보이는데 

html 코드를 작성하고 Go Live를 클릭하면 로컬 서버에서 테스트 하는 용도로 활용이 가능하다. 


혹은 편집창에서 마우스 우클릭을 하여 Open With Live Server를 클릭해도 테스트가 가능하다. 


Liver Server 설치 하나로 로컬에서 웹 테스트가 가능하니 이처럼 편한 기능을 잘 활용해보자. 


11월 14, 2023

Java doubleValue(), byteValue() primitive type 변환 메소드, 유의점

 Java에서는 primitive type 간 변환을 도와주는 여러 메소드들이 있다.

doubleValue()byteValue()와 같은 메소드들을 소스 상에서 여러 번 보았을 텐데, 이들은 해당 primitive type을 다른 타입으로 변환해준다.

java
public class TypeConversionExample
public static void main(String[] args)
// doubleValue() 예제 
int intValue = 15
double doubleValue = (double) intValue; // int를 double로 변환 
 System.out.println("int를 double로 변환: " + doubleValue);  // int를 double로 변환:  15.0
// byteValue() 예제 
Double myDouble = 200.75;
// byteValue()를 이용해 byte로 변환 byte myByte = myDouble.byteValue();
  // 결과 출력
System.out.println("Double 값: " + myDouble); // Double 값: 200.75 System.out.println("Byte로 변환된 값: " + myByte); // Byte로 변환된 값: -56

즉, doubleValue() 는 값을 double로 변환할 때 사용, byte는 형태를 byte 형태로 변환할 때 사용한다.


여기서 doubleValue()는 일반적으로 int, float, long 등의 값을 double로 변환할 때 사용되기 때문에 데이터 유실에 크게 주의가 필요하지는 않다. (더 큰 형태로 변환하는 것이기 때문)

반면, byteValue()는 반대로 큰 데이터 타입인 double, int, float 등을 작은 byte 타입으로 변환할 때 쓰이기 때문에 주의가 필요하다. 변환 과정에서 데이터 손실이 발생할 수 있으므로 범위를 벗어나는 값은 의도하지 않은 결과를 초래할 수 있다. 예시에서 보듯이 double value 200.75는 byte로 변환되면서 -56이라는 의도하지 않은 값을 출력하게 된다.

이런 메소드들은 데이터 유실 없이 안전하게 변환이 필요한 경우에 사용해야 한다. 만약 데이터의 손실 없이 변환하고 싶을 때는 wrapper 클래스인 Integer, Double 등의 메소드를 사용하는 것이 좋다.


11월 10, 2023

Oz Report 내용 없으면 공간 줄어들기 기능 (자동크기 줄어듬, 자동크기조정)

 Oz Report를 사용하다 보면 조건에 따른 분기를 많이 사용한다. 


if (조건 A){

setattr("caption", "조건 A입니다");

} else if (조건 B){

setattr("caption", ""); 

}


즉 조건 A일 때는 특정 위치에 "조건 A입니다" 라는 글자가 보이고 싶지만, B일때는 아무런 글씨가 보이지 않게 하고 싶은 것이다. 


위 조건만 있다면 위 oz script로도 충분히 작동한다. 


하지만 만약 캡션이 없게 보이는 것에서 그치는 것이 아니라 아예 그 공간이 없어지길 바란다면 ? 


그럴 때는 ozr 옆에 있는 동적 자동 크기 조정, 자동크기 줄어듬 이라는 기능을 사용해야 한다. 


자동크기 조정 = > "예"

자종크기 줄어듬 => "예" 


로 설정하면 아예 caption이 없을 때 해당 줄이 사라지게 할 수 있는 것이다. 

물론 caption을 "" 로 설정하는 oz script도 필요하다. 



위 사진에서 볼 수 있듯이 oz report는 기본적으로 자동크기 조정, 줄어듬이 "아니오"로 설정되어 있는데 저 부분을 "예"로 바꾸면 된다. 


자동크기 조정이라는 속성은 표시할 데이터 양이 라벨 컴포넌트의 크기보다 큰 경우 컴포넌트 크기를 자동으로 확대,


자동크기 줄어듬은 표시할 데이터 양이 라벨 컴포넌트의 크기보다 작은 경우 컴포넌트의 크기를 자동으로 축소하는 기능이다. (출처 https://www.forcs.com/file/OZReportTrainingBook7.0.pdf)


하지만, ‘자동크기 조정’ 속성이 ’예’로 설정된 경우에만 자동크기 줄어듬 속성이 유효하기 때문에 둘다 "예"로 설정해주어야 한다. 





주의할 점은 위와 같이 Component A, B, C가 한 열로 구성되어 있다면,

A,B,C 모두에 ozr 자동크기 조정, 자동크기 줄어듬 속성을 "예"로 해놓아야 해당 라인이 없어지는 것을 알 수 있다.