maven
보통 관례를 따라서 구조를 설정함. maven.apache.org

 

Maven – Welcome to Apache Maven

Welcome to Apache Maven Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. If you

maven.apache.org

위 사이트에서 왼쪽에서 user클릭. "The 5 minute test" 클릭. The POM 위에 보면 maven의 관례에 따라 프로젝트 폴더 구조가 나와있음.

pom.xml은 maven 설정 파일

pom.xml이 문법상 오류가 없는지 확인하려면
pom.xml이 있는 디렉토리로 이동 후 
mvn validate 명령어를 입력하면 BUILD SUCCESS 가 나옴. 이러면 pom.xml은 문법상 오류는 없는 것.
src/main/java, resources(xml설정파일들) - 사이트엔 안 나와 있음

mvn compile 명령어를 진행하면 java컴파일을 진행.
컴파일이 끝나고 나면 디렉토리에 target폴더가 생김. target폴더를 지우려면 mvn clean 

실행가능한 jar파일을 만들려면 maven 플러그인 필요

Posted by 知彼知己百戰不殆
,

root-context.xml
- jsp와 관련없는 객체(bean)을 설정해주는 로직을 위한 설정.
- 웹 자원과 관련되지 않은 모든 자원의 설정.

survlet-context.xml
- jsp와 관련있는 객체(bean)를 설정해 줌.(controller, multiresolver(파일업로드), Interceptor(로그인) 등)

Posted by 知彼知己百戰不殆
,

The fully qualified name of the bean's class, except if it serves only as a parent definition for child bean definitions.

pom.xml 과 root-context.xml 설정 중 위와 같은 에러 메시지가 나왔다.
검색해보니 pom.xml에 org.springframework의 dependency가 없어서 에러가 나는 거였다. 하지만, 확인해보니 추가가 돼 있었고, 오타를 확인했더니 artifactId가 오타나서 그랬다.

pom.xml 수정 후 오류 처리 완료.

Posted by 知彼知己百戰不殆
,

C++언어를 사용하여 개발할 일이 있어서 평소에 java 개발 용으로 쓰던 Eclipse를 C/C++ 컴파일도 가능하게 환경설정을 셋팅해보았다.

install software  http://download.eclipse.org/tools/cdt/releases/9.9

CDT Main Features와 LaunchBar, Uncategorized를 모두 설치해준다. CDT Optional Features는 설치하지 않는다.

모두 설치 후 Eclipse restart.

처음엔 보이는 것 모두 설치를 해서 CDT Builder에러가 났었다. source의 #include <iostream>에 에러가 나기도 하고, Project clean시에 에러가 발생해서 clean도 안되는 상황이었다. 우리나라 사이트에는 mac에 대한 정보가 없어서 해외 사이트를 찾아가며, 정보를 얻었다.

재부팅 후 clean하고 build를 했으나, cannot create pty에러가 발생했다. terminal로 로그를 봤더니. 에러가 자세히 나왔다.

/workspace/.metadata/.log   .파일이나 폴더는 모두 숨김 파일/폴더

또 한 참의 해외 사이트 삽질 후 얻은 결과.

Eclipse Neon 버전을 사용하고 있으면 install software에서 http://download.eclipse.org/tools/cdt/releases/9.3 해당 CDT 버전을 다운 받고 rebuild project해야 함.

그렇게 한 결과 console창에 출력 결과 띄우기 성공. Eclipse로 java는 맥에서 무리없이 돌아갔었는데, C/C++을 컴파일 해보려니 많은 시행착오가 있었다. 그래도 다음에 이런 에러가 난다면 무리없이 헤쳐나갈 수 있는 걸로.

 

'OS > Mac OS' 카테고리의 다른 글

SpringToolSuite4 can't be opened 오류  (0) 2023.03.27
Mac 부하테스트(stress test)  (0) 2020.12.27
MACOS Sieera able to Unidentified Apps  (0) 2018.01.22
Oralcle DB 설치  (0) 2017.09.05
Beyond Compare - 디데이 초기화 프로그램  (0) 2017.08.07
Posted by 知彼知己百戰不殆
,
public class Main {
	public static void main(String[] args) {
		System.out.println("=================생성자테스트=================");
        Child c1 = new Child();
        Child c2 = new Child("1");
        
        System.out.println("====================생성자테스트2=================");
        Parent p1 = new Child();
        Parent p2 = new Child("2");
        
        System.out.println("====================생성자테스트3=================");
        GrandParents gp1 = new Child();
        GrandParents gp2 = new Child("3");
        
        System.out.println("=================상속 중복 정의 테스트==================");
        
        Child c3 = new Child();
        System.out.println("c3 str = " + c3.pStr);
        
        Child c4 = new Child("4");
        System.out.println("c4 str = " + c4.pStr);
        
        Parent p3 = new Child();
        System.out.println("p3 str = " + p3.pStr);

        Parent p4 = new Child("5");
        System.out.println("p4 str = " + p4.pStr);
        
        GrandParents g1 = new Child();
        System.out.println("g1 str = " + g1.pStr);

        GrandParents g2 = new Child("6");
        System.out.println("g2 str = " + g2.pStr);
        
        GrandParents g3 = new Parent();
        System.out.println("g3 str = " + g3.pStr);

        GrandParents g4 = new Parent("7");
        System.out.println("g4 str = " + g4.pStr);

        GrandParents g5 = new GrandParents();
        System.out.println("g5 str = " + g5.pStr);

        GrandParents g6 = new GrandParents("8");
        System.out.println("g6 str = " + g6.pStr);
	}
}

class GrandParents {
    String pStr = "grand parents";
    
    GrandParents() {
        System.out.println("GrandParents()");
    }
    GrandParents(String str) {
        System.out.println("GrandParents str생성자");
    }
}
 
class Parent extends GrandParents {
    String pStr = "parents";
    
    Parent(){
        System.out.println("Parent 생성자");
    }
    Parent(String str){
        System.out.println("Parent str생성자");
    }
}
 
class Child extends Parent{
    String pStr = "child";
    
    Child(){
        System.out.println("Child 생성자");
    }
    Child(String str){
        System.out.println("Child str생성자");
    }
}

 

생성자와 변수 데이터는 메소드 오버라이딩과 결과가 조금 달랐다.

메소드 오버라이딩은 자식 클래스에 오버라이딩이 돼 있으면 부모 클래스에서 같은 메소드명을 호출해도 자식 클래스의 메소드를 우선 호출했다. 하지만 생성자와 변수 데이터는 변수 타입을 많이 따라간다는 생각이 들었다.

Posted by 知彼知己百戰不殆
,

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        String int_rate = "2.2596";
        
        System.out.println("[D] int_rate = " + int_rate);
        
        System.out.println("[D] String double Round1 = " + Double.parseDouble(int_rate)*1000);
        System.out.println("[D] String double Round2 = " + Double.parseDouble(int_rate)*1000/1000.0);
        System.out.println("[D] String double Round3 = " + Math.round(Double.parseDouble(int_rate)*1000/1000.0));
        System.out.println("[D] String double Round4 = " + String.format("%.2f" , Float.parseFloat(int_rate)) );
 
        
        System.out.println("[D] String double Round5 = " + Double.parseDouble(int_rate)*1000/1000.0);
        System.out.println("[D] String double Round6 = " + Math.round(Double.parseDouble(int_rate)*1000/1000.0));
        System.out.println("[D] String double Round7 = " + Double.toString(Math.round(Double.parseDouble(int_rate)*1000/1000.0)));
        
        
        Double add_rate = 3.141592;
        add_rate = Math.round(add_rate*1000)/1000.0;
        System.out.println("[D] String double Round9 = " + add_rate);
cs

소스 결과

 

String.format을 사용할 때 

String.format("%.2f" + Float.parseFloat(~~); 이렇게도 사용하니 

Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '%.2f' 라는 에러가 나왔다.

파라미터를 찾을 수 없다는 에러. 그래서 ","로 수정하니 잘 됨.

 

12,13번 line은 double형을 바로 round함수에 넣으면 제대로 출력이 되는데, String을 parseDouble로 변환하고 다시 String으로 변환하니 값이 짤려서 나온다. 실수값이 들어가 있는 String변수는 StringFormat을 써야함!!

Posted by 知彼知己百戰不殆
,

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        String int_rate = "2.2596";
        
        System.out.println("[D] int_rate = " + int_rate);
        
        //반올림 하는
        System.out.println("[D] String double Round1 = " + Double.parseDouble(int_rate)*1000);
        System.out.println("[D] String double Round2 = " + Double.parseDouble(int_rate)*1000/1000.0);
        System.out.println("[D] String double Round3 = " + Math.round(Double.parseDouble(int_rate)*1000/1000.0));
        
        int_rate = String.format("%.2f" , Float.parseFloat(int_rate) );
        System.out.println("[D] String double Round4 = " + int_rate);
        
        int_rate = Double.toString(Math.round(Double.parseDouble(int_rate)*1000/1000.0));
        System.out.println("[D] 2.259 Rounding up = " + int_rate);
        
        Double add_rate = 3.141592;
        add_rate = Math.round(add_rate*1000)/1000.0;
        System.out.println("[D] 3.141592 Rounding up = " + add_rate);
        
cs

 

String.format을 사용할 때 

String.format("%.2f" + Float.parseFloat(~~); 이렇게도 사용하니 

Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '%.2f' 라는 에러가 나왔다.

파라미터를 찾을 수 없다는 에러. 그래서 ","로 수정하니 잘 됨.

 

14번 line은 double형을 바로 round함수에 넣으면 제대로 출력이 되는데, String을 parseDouble로 변환하고 다시 String으로 변환하니 값이 짤려서 나온다. 실수값이 들어가 있는 String변수는 StringFormat을 써야함!!

Posted by 知彼知己百戰不殆
,

이클립스 주석 색깔 변경

Eclipse preference -> Java -> Editor -> Syntax Coloring

 

Posted by 知彼知己百戰不殆
,

1. 공통점

==, compare, equals 메소드 모두 문자열 비교가 가능함.

 

2. 차이점

== 연산자: 내용과 객체까지 같은지 비교. 

즉, 객체로 저장된 String과 상수 String을 ==연산자로 비교한 값을 확인해 보면 false로 나온다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public static void main(String[] args) {
 
        String str1 = "abc";
        
        System.out.println("[variable] str1 == \"abc\" ▶︎▶︎▶︎ " + (str1 == "abc") );
        System.out.println("[variable] str1.equals(\"abc\") ▶︎▶︎▶︎ " + str1.equals("abc") );
        System.out.println("[variable] str1.compareTo(\"abc\") == 0 ▶︎▶▶︎︎ " + (str1.compareTo("abc")==0) );
        System.out.println();
        
        String str2 = new String("abc");
        System.out.println("[object] str2 == \"abc\" ▶︎▶︎▶︎ " + (str2 == "abc") );
        System.out.println("[object] str2.equals(\"abc\") ▶︎▶︎▶︎ " + str2.equals("abc") );
        System.out.println("[object] str2.compareTo(\"abc\") == 0 ▶︎▶︎▶︎ " + (str2.compareTo("abc")==0) );
        System.out.println();
 
        
        String [] str3 = new String [1];
        str3[0= "abc";
        System.out.println("[object] str3[0] == \"abc\" ▶︎▶︎▶︎ " + (str3[0== "abc") );
        System.out.println("[object] str3[0].equals(\"abc\") ▶︎▶︎▶︎ " + str3[0].equals("abc") );
        System.out.println("[object] str3[0].compareTo(\"abc\") == 0 ▶︎▶︎▶︎ " + (str3[0].compareTo("abc")==0) );
        
        System.out.println("========================================================");
        System.out.println("[DEBUG] str3[0] ▶︎▶︎▶︎ " + str3[0]);
        System.out.println("[DEBUG] str3 ▶︎▶︎▶︎ " + str3);
    }
cs

 

 

코드 실행 결과

Posted by 知彼知己百戰不殆
,

1. Open the Terminal Apps in  /Applications/Utilities

2. sudo spctl --master-disable


How to disable the using unidentified Apps? 

>> sudo spctl --master-enable

'OS > Mac OS' 카테고리의 다른 글

Mac 부하테스트(stress test)  (0) 2020.12.27
Eclipse for mac OS Catalina  (0) 2019.12.02
Oralcle DB 설치  (0) 2017.09.05
Beyond Compare - 디데이 초기화 프로그램  (0) 2017.08.07
맥북 기본 Source Code Compare 프로그램  (0) 2017.07.31
Posted by 知彼知己百戰不殆
,