Scala 기본문법

변수선언 var(variable) - 가변형변수 var yourPast : String = "Good Java Programer" val(value) - 불변형변수(java final 과 같은 의미) val yourPast : String = "Good Java Programer" 클래스 class Money(amount:Int,currency:String) 일반적으로 위와 같은 형태로 선언하게 되는데.. 실제 사용된 변수를 필드로 설정하려면 다음과 같이 파라미터에 var 또는 val을 붙여줘야 한다.(default public val) class Money(var amount:Int,var currency:String) * case 클래스(자바빈스타일의 클래스 스타일) case class Money(amount:Int=1,var currency:String="USD") case 클래스를 사용하는 경우 메소드에서 new를 사용하지 않고도 인스턴스를 제공할수 있는 팩토리메소드로도 사용이가능하다. case class Money(var amount:Int = 1, var currency:String="USD"){   def +(other: Money) : Money = Money(amount+other.amount, "USD") } 메소드 def 뒤에 메소드명을 붙여 사용한다.(python과 동일) 연산자 역시 메소드명으로 사용이 가능하다. 컬렉션 - 스칼라의 컬렉션은 기본적으로 모두 불변형이다. 이는 병렬처리를 기본적으로 안전하고 정확하게 작동하도록 지원하는 구조이다. 1. List 객체 기본적으로 여러타입의 데이터를 복합해서 사용할수 있다. var numbers = List(1,2,3,4,5,6) for(n 콘스연산자 var cons_numbers = 1::2::3::4::5::6::Nil var simpleLi...

git과 github 그리고 SVN

이미지
git 과 github 차이는.. 원격지에 존재에서 git 원격서버를 제공하고 social coding이 가능하도록 지원한다. git 1. 원격저장소가 존재한다.(분산처리 DVCS) 장점 안전한 데이터 , 빠른처리속도(offline 개발가능) 단점 두단계에 걸친 원격지 반영( 흐름이 끊길수 있음) 2. 스테이지 영역의 존재( 커밋대상의 분리) 장점 소스수정후 수정한 내용이 필요하지 않게된 경우 번거러운 백업 및 처리 과정이 존재하지 않는다. 3. 스냅샷을 이용한 버젼관리 장점 빠르고 편리한 브랜치 병합 git hub 1. git 기반 2. Folk & PullRequest 모델 - 오픈소스의 커미터와 어트리뷰터의 원활한 소통지원 3. 코드리뷰 - 라인단위로 댓글을 달수 있음 회사에서 svn에서 git으로 전환이슈가 나온경우  A. 전환을 반대할때 기능비교 svn 1. server-client 방식 2. 명령어 수가 적다(쉽다) 3. 익숙하다. 4. 많은 한국어 레퍼런스와 자료가 있다. git 1. 분산저장소방식 방식 2. 명령어 수가 많다.(단순하다) 3. 생소하다 4. 찾아보지 않아서 모르겠다.. B. 전환을 찬성할때 기능비교 svn 1. server-client 방식(느리다) 2. 구식기술 3. 브랜치 생성과 병합이 복잡하다 4. 안전하지 않다.(서버 유실시 대책없음) git 1. 분산저장소방식 방식(빠르다) 2. 대세기술 3. 브런치 생성과 병합이 간단하다 4. 안전하다(서버가 유실되도 복구가능) 참고자료 http://blog.outsider.ne.kr/865 Github를 이용하는 전체 흐름 이해하기#1 http://blog.outsider.ne.kr/866 Github를 이용하는 전체 흐름 이해하기#2 http://minslovey.tistory.com/100 Git으로 전환이 필요할까? http://www.allofsof...

velocity 명령어 예제모음

$number.format('00', 1) == '01'

메이븐 소스 다운로드 plugin

자동으로 폼안에 다운로드 가능한 소스를 모두 받는다. * 아래 plugin 폼에 추가 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <configuration> <downloadSources>true</downloadSources> <downloadJavadocs>true</downloadJavadocs> </configuration> </plugin>
public class CloneTest { // shallow cloning 인 경우 또는 변수할당인 경우 @Test public void 변수테스트1(){ Address add1= new Address(); Employee emp1 = new Employee(); add1.setHouseNo(100); emp1.setName("ryan"); emp1.setAddress(add1); // Employee emp2 = emp1; 아래와 동일한 결과 Employee emp2 = emp1.clone(); emp2.setName("ryan2"); System.out.println("emp1 : " + emp1); System.out.println("emp2 : " + emp2); System.out.println("emp1==emp2 "+(emp1==emp2)); } class Address { private int houseNo; public int getHouseNo() { return houseNo; } public void setHouseNo(int houseNo) { this.houseNo = houseNo; } @Override public String toString() { return "houseNo : " + houseNo; } } class Employee implements Cloneable { private String name = null; private Address address=null; @Ove...

이클립스에서 톰캣 publish할때 에러

Tomcat 오류.. Could not delete xxx. May be locked by another process 에러 발생시 1. 이클립스에서 Tomcat SErver를 우클릭 후 Clean을 시킨다. 2. 이클립스 메뉴바에 Project -> Clean을 실행시킨다 3. Tomcat Server의 왼쪽을 누른 후 자신이 원하는 Project를 우클릭 후 Clean module work directory를 클릭한다 Resource is out of sync with file system. 에러 발생시 package Project뷰에서 F5를 눌러서 프로젝트폴더를 새로고침을 해주면 해결된다 java.lang.ClassNotFoundException : org.springframework.web.context.CointextLoaderListener 에러 발생시 1. 우선 웹프로젝트의 Deployment Assembly 에 라이브러리가 제대로 등록되지 않은 경우 프로젝트 >> properties >> Deployment Assembly를 선택한 후, "Add" >> Java Build Path Entries >> Maven Dependencies 선택한 후, "Apply"를 해준다. 2. eclipse project property에서 deploymentAssembly 카테고리가 사라졌을 경우 org.eclipse.wst.common.project.facet.core.nature 프로젝트 .project > natures 에 org.eclipse.wst nature를 추가한다. <?xml version="1.0" encoding="UTF-8"?> <projectDescription>   <name>snsbook</name>   <comm...

BoneCP(Javadatabaseconnectionpool) 설정및사용-Spring의AppContext

BoneCP 설정 및 사용 * 예제 http://jolbox.com/index.html?page=http://jolbox.com/configuration-spring.html * 설정 <default-config> <!-- Sets the name of the pool for JMX and thread names. --> <!-- <property name="poolName">(null or no default value)</property> --> <!-- Sets the minimum number of connections that will be contained in every partition.      Also refer  to {@link #setPoolAvailabilityThreshold(int)}. --> <property name="minConnectionsPerPartition">0</property> <!-- Sets the maximum number of connections that will be contained in every partition.       Setting this to 5 with 3 partitions means you will have 15      unique connections to the database.  Note that the connection pool will not      create all these connections in one go but rather start off  with      minConnectionsPerPartition and gradually increase connections as r...