'프로젝트'에 해당되는 글 19건

  1. 2017.11.15 두 List간 정렬
  2. 2017.11.10 인자(argument)와 매개변수(parameter)의 차이점
  3. 2017.11.03 DirectMemory
  4. 2017.10.18 Java 용어 정리
  5. 2017.10.10 [Cp2] 토비의 스프링
  6. 2017.10.10 [Cp1] 토비의 스프링
  7. 2017.09.17 Javascript 유용 태그
  8. 2015.11.08 스프링
  9. 2015.09.03 Socket.io 정리

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

public class arraylisttest {

public static void main(String[] args) {

ArrayList<Integer> arr = new ArrayList<Integer> ();

arr.add(5);

arr.add(2);

arr.add(3);

arr.add(1);

arr.add(4);

ArrayList<Data> arr2 = new ArrayList<Data> ();

arr2.add(new Data(1));

arr2.add(new Data(2));

arr2.add(new Data(3));

arr2.add(new Data(4));

arr2.add(new Data(5));

for(Data a : arr2) {

System.out.println(a.getNumber());

}

Comparator<Data> cpr = new Comparator<Data>() {

@Override

public int compare(Data o1, Data o2) {

System.out.println(o1 + " " + o2 + " " + Integer.compare(arr.indexOf(o1.getNumber()), arr.indexOf(o2.getNumber())));

return Integer.compare(arr.indexOf(o1.getNumber()), arr.indexOf(o2.getNumber()));

}

};

Collections.sort(arr2, cpr);

for(Data a : arr2) {

System.out.println(a.getNumber());

}

}

}


class Data {

int number = 0;

Data(int number) {

this.number = number;

}

public int getNumber() {

return number;

}

public void setNumber(int number) {

this.number = number;

}

}

'프로젝트 > 자바' 카테고리의 다른 글

JAVA 인증서 관련  (0) 2018.02.05
linux java 설정  (0) 2018.02.05
인자(argument)와 매개변수(parameter)의 차이점  (0) 2017.11.10
DirectMemory  (0) 2017.11.03
Java 용어 정리  (0) 2017.10.18
Posted by agaytr
,



- 인자

함수를 호출하는 입장에서 "넘겨주는 값"을 일컫는다.

 

- 매개변수

"인자를 받은 값"을 일컫는다.

 

ex)

getTest( num ); // 이 메서드를 호출했다면 "num"이 인자가 된다.

 

getTest( int num )  // 메서드 구현부분에서의 "num"이 매개변수가 된다.

{

    ..........

}

 

'프로젝트 > 자바' 카테고리의 다른 글

JAVA 인증서 관련  (0) 2018.02.05
linux java 설정  (0) 2018.02.05
두 List간 정렬  (0) 2017.11.15
DirectMemory  (0) 2017.11.03
Java 용어 정리  (0) 2017.10.18
Posted by agaytr
,

DirectMemory

프로젝트/자바 2017. 11. 3. 18:14

* java.lang.OutOfMemoryError: Direct buffer memory: 

NIO를 이용한 파일전송 시도 중 위와 같은 에러가 발생했다. -XX:MaxDirectMemorySize= 를 늘려줘서 해결했음. 같은 DirectMemory를 사용하는 것으로 보인다.


'프로젝트 > 자바' 카테고리의 다른 글

JAVA 인증서 관련  (0) 2018.02.05
linux java 설정  (0) 2018.02.05
두 List간 정렬  (0) 2017.11.15
인자(argument)와 매개변수(parameter)의 차이점  (0) 2017.11.10
Java 용어 정리  (0) 2017.10.18
Posted by agaytr
,

* JVM을 튜닝한다는 의미는 Old 영역으로 넘어가는 객체의 수를 최소화하는 것과 Full GC의 실행 시간을 줄이는 노력이다

(관련링크: https://www.holaxprogramming.com/2017/10/09/java-jvm-performance/)

'프로젝트 > 자바' 카테고리의 다른 글

JAVA 인증서 관련  (0) 2018.02.05
linux java 설정  (0) 2018.02.05
두 List간 정렬  (0) 2017.11.15
인자(argument)와 매개변수(parameter)의 차이점  (0) 2017.11.10
DirectMemory  (0) 2017.11.03
Posted by agaytr
,

* AutoWired: 

변수에 할당가능한 bean을 자동으로 찾는다.

우선 순위: 

1. Type이 일치하는 Bean을 찾는다.

2. 변수명과 같은 이름의 빈이 있는지 확인한다.


* 어디에 DI를 적용해야될지 고민되면, 효과적인 테스트를 만들기 위해서는 어떤 필요가 있을지를 생각해보면 도움이 된다. 두 개의 모듈이 강하게 결합되어 있어 DI가 불가능한 구조로 만든다면 테스트할 때 불편해진다거나, 자동화된 테스트가 아예 불가능하지 않을까 의심해보자.


* 테스트하기 좋은 코드가 좋은 코드다.


Junit 관련

* assertThat(Set<T>, is(hasItem(this)) 

 - T 타입이 Set에 존재하는지 확인한다. 보통 Set<T>.add(thks) 되어있음


ex@Test public void test() {

assertTaht(testObjects, not(hasItem(this)));

testObjects.add(this);

}


Junit Spring Test 확장클래스로

지정한 경로의 xml에 Bean 정보를 참고하여 

하나의 Application Context를 생성한다.

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration("junit.xml")

'프로젝트 > 스프링' 카테고리의 다른 글

spring jpa 삽질  (0) 2021.04.09
ibatis -> mybatis 변환  (0) 2018.08.01
[Cp1] 토비의 스프링  (0) 2017.10.10
Posted by agaytr
,

* 리팩토링 메소드 추출 기법


* 개방, 폐쇠 법칙: 확장에는 열려있고, 변경에는 닫힘


* 템플릿 패턴: 어떤 로직이 있고, 로직의 구체적 기능은 하위 클래스에서 구현한다. 골격은 정해져 있고, 디테일한 인테리어는 개별 구현할때 유용하다.


* 전략 패턴: 상황에 맞춰 알고리즘 ( Interface를 구현한 Class ) 을 선택해서 사용하는

(의존하는) 기법. 


* DI (Depencency Injection): 오브젝트 레퍼런스를 외부로부터 제공받고, 이를 통해 다른 오브젝트와 통신한다.


* 스프링 프레임워크의 주된 관심은 오브젝트의 생성과 관계설정이다.( = 객체지향 & 테스트)


* 프레임 워크: 스스로 제어권을 가지고 주도적으로 동작한다.

'프로젝트 > 스프링' 카테고리의 다른 글

spring jpa 삽질  (0) 2021.04.09
ibatis -> mybatis 변환  (0) 2018.08.01
[Cp2] 토비의 스프링  (0) 2017.10.10
Posted by agaytr
,

클로져 관련


https://perfectacle.github.io/categories/Front-end/React/

'프로젝트 > 자바스크립트' 카테고리의 다른 글

모듈 패턴 샘플  (0) 2019.01.28
Posted by agaytr
,

스프링

프로젝트 2015. 11. 8. 13:35

스프링 개념: http://gangzzang.tistory.com/entry/스프링Spring-MVC-프레임워크Model-View-Controller-Framework-1

jquery: http://javacore.tistory.com/90


스프링에서 jquery 받아오는 법:

<c:url var="jq" value="/js/jquery-1.11.3.min.js" /><script type="text/javascript" src="${jq}"></script>

날짜변경

http://egloos.zum.com/aslike/v/1627250

 

자바스크립트 프로토타입 개념

http://www.nextree.co.kr/p7323/

 

<script>
$(document).ready(function(){
 $("#test").click(function() {
  opener.document.getElementById("text1").value= $("#text").val(); 
  alert("확인");
 });
});

</script>
</head>
<body>

<input id= "text" type="text" value="입력바람">
<input id = "test" type="button" value="변경하기" onclick="" >

 

 

<script>

$(document).ready(function(){
 
 $('#button1').click(function(){ window.open("into.jsp?text="+$('#text1').val(),"aaa","width=300 height=400 menubar=yes status=yes  location=yes");
 
 });
});

</script>


<title>Insert title here</title>
</head>
<body>

<input type="text" id="text1" value="dd">
<input type="button" id = "button1" value="팝업창" >


</body>
</html>

Posted by agaytr
,

- 클라이언트

1. 적용방법

- 안드로이드 스튜디오: File ->Projcet Structure -> Modules에서 해당 app 을 선택 -> Dependencies 탭에서 + 를 눌러서 com.github.nkzawa:socket.io-client:0.6.0 을 추가한다.

2. 중요 명령

- 소켓 선언

Socket mSocket;
{
    try {
mSocket = IO.socket(http://xxx.218.xxx.33:xxxx);    }

catch (URISyntaxException e) {}

}

- 소켓 연결

mSocket.connect();

 

- 이벤트 보내기(JSON 을 보낼수 있습니다. 이벤트 명은 string으로 등록합니다.)

JSONObject obj = new JSONObject();
try {
obj.put("image", byteArrayImage);
mSocket.emit("connect_start", obj);
} catch (JSONException e) {
e.printStackTrace();
}

 

- 리스너 등록(서버에서 보낸 이벤트를 받아오는 리스너를 string 으로 등록합니다.)

mSocket.on("받아올 이벤트 명", listen_start_person);

 

private Emitter.Listener listen_start_person = new Emitter.Listener() {

public void call(Object... args) {
final JSONObject obj = (JSONObject)args[0];

//서버에서 보낸 JSON객체를 사용할 수 있습니다.

runOnUiThread(new Runnable() {
@Override
public void run() {

//이곳에 ui 관련 작업을 할 수 있습니다.


}
});
}
};

 

- 리스너 해제         

mSocket.off("picture", listen_picture);

 

 

- 서버

 

* node.js 를 이용할때 socke.io 버전에 따라서 명령어가 조금씩 다릅니다.

npm install socket.io 로 설치할 경우 최신 버전이 설치되는데

꼭, http://socket.io/ 에서 문서를 확인하세요.(참고로 서버의 socket.io가 최신이 아닐경우

안드로이드에서 connect 시도 시 handler 에러가 발생하는 걸 확인했습니다.)

 

 

 

 
 
 
 
 
Posted by agaytr
,