2017년 6월 27일 화요일

[hackerrank][java8][clojure] Simple Array Sum

/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
Scanner scan = new Scanner(System.in);
int[] i_arr = new int[scan.nextInt()];
for(int i = 0 ; i < i_arr.length; i++) 
  i_arr[i] = scan.nextInt();

System.out.println(Arrays.stream(i_arr).sum());
clojure코드도 한번 써봤다
(use '[clojure.string :only (split trim)])

(let [
  n (Integer/parseInt (read-line))
  arr_t (split (read-line) #"\s+") 
  arr (map #(Integer/parseInt %) arr_t)]
  (println (reduce + arr))   
)
비교를하면
Arrays.stream(i_arr).sum()
이것과
(reduce + arr)
이것의 차이

2017년 6월 18일 일요일

[JBoss] 설치 및 배포해보기

JBoss를 사용해보자. 일단 다운로드 여기에서 zip 파일을 다운받자.(필자는 6.4버전을 받았다.)
그리고 압축을 푼다.

압축을 푼 모습, 여기서 standalone 폴더로 들어가보자.

일단 바로 배포를 해보자. 만약
  1. 일단 가지고 있는 AAA.war파일의 압축을 푼다.
  2. standalone폴더 안에 deployments폴더로 들어간다.
  3. AAA.war라는 이름으로 폴더를 만든다.
  4. 그 안에 압축푼 내용을 넣는다.
  5. Jboss 루트 폴더로 돌아가서 bin/standalone.bat 파일을 실행한다.
  6. 아래 처럼 AAA.tar.deployed 라는 파일이 생성되면 배포 완료!


만약 폴더 안에 내용을 바꾸고 재배포를 하고 싶다면?
  1. standalone/deployments 안으로 들어간다.
  2. AAA.war.dodeploy라는 파일을 생성한다.
  3. AAA.war.isdeploying 이라는 파일이 생성될 것이다.
  4. 위 두 파일이 사라지고 AAA.war.deployed만 남는다면 성공!!

2017년 6월 12일 월요일

[JavaScript] 스코프 제대로 알기 - 3

스코프 제대로 알기 - 3

부제: 함수를 이용한 스코프

function myAlert(index) {
   $("#js-scope3-number"+index).click(function() {
      alert("js-scope3-number" + index + " 번을 클릭했습니다.");
    });
}
$(document).ready(function(){
  var len = 3,
       i;
  for (i = 0; i < len; i++) {
   myAlert(i);
  }
});
보면 알 수 있겠지만 함수 안에서는 새로운 스코프가 연결된다. 다르게 해보자
$(document).ready(function(){
  var len = 3,
       i;
  for (i = 0; i < len; i++) {
    (function (index) {
      $("#js-scope3-number"+index).click(function() {
       alert("js-scope3-number" + index + " 번을 클릭했습니다.");
     });
    }(i));
  }
});
관련페이지 http://www.whynam.com/2017/06/javascript.html http://www.whynam.com/2017/06/javascript-2.html

[JavaScript] 스코프 제대로 알기 - 2

스코프 제대로 알기 - 2

부제: with내용 대충하고 넘어가기

var yhnam = {
  name="yhnam"
  blog="www.iamfrom.kr"
  git="ssisksl77"

with (yhnam) {
    console.log(name);
    console.log(blog);
    console.log(git);
}
실행안해봐도 대충 뭔지 알았을 것이다. 블록 안에 해당 객체가 가지고 있는 변수들을 추가한다. 이걸로 이용해서 문제를 해결하자.
var len = 3,
     i;
for (i = 0; i < len; i++) {
  with ({idx: i}){
    $("js-scope2-number"+idx).click(function() {
      alert("js-scope2-number" + idx + " 번을 클릭했습니다.");
    }
  }
}
     
하지만 이렇게 쓰지 말길.. ECMAScript에서 with쓰지말라고 아예 없애버린듯 하다. 관련페이지 http://www.whynam.com/search/label/javascript http://www.whynam.com/2017/06/javascript-3.html

[JavaScript] 스코프 제대로 알기 - 1

스코프 제대로 알기 - 1

스코프를 왜 공부해야하는가.

이런 코드를 짰다.
var len = 3,
     i;
for (i = 0; i < len; i++) {
  $("#number" + i).click(function() {
    alert("number" + i + " 번을 클릭했습니다."); 
  });
}
아래 3개의 버튼이 있다. id는 number0, 1, 2 이다. 이제 이들을 클릭해보자. 어째서 이런 것일까? 왜 number3 번을 클릭했습니다. 만 뜨는 것일까
scope에 대한 이해가 필요한 시점이다. 자바스크립트에서 스코프에 영향을 주는 3가지 요소
  1. function
  2. with
  3. catch
우리는 이 중에서 function을 많이 살펴볼 것이다. with는 많이 쓰지 않는 듯하고...이제 못 쓸것 같다. 관련페이지 http://www.whynam.com/2017/06/javascript-2.html http://www.whynam.com/2017/06/javascript-3.html