컬렉션 프레임워크자바에서는 많은 수의 다양한 패키지(Java API)를 제공하여 개발자들이 자바 어플리케이션을 쉽게 개발할 수 있도록 도와준다.그 중 컬렉션 프레임워크에 대해 알아보겠다.컬렉션 프레임워크는 다수의 데이터를 쉽게 처리할 수 있는 표준화된 방법을 제공하는 클래스이다. 컬렉션 프레임워크의 핵심 인터페이스- List, Set, Map각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스르 정의하고, 인터페이스 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다. List순서가 있는 데이터의 집합, 데이터의 중복을 허용한다.ArrayList, LinkedList, Stack, Vector 등Set순서를 유지하지 않는 데이터의 집합. 데이터의..
분류 전체보기
형상관리를 해야하는 이유실수, 고의로 파일을 삭제시, 복구할 방법이 없음하나의 파일을 여러 사람이 동시에 작업 불가이전 데이터로 복구 불가 형상관리의 장점소스코드 변경 이력 관리프로젝트 팀원 및 관계자들이 서로 공유 가능장애 혹은 기능상 필요할 때 이전 버전으로 복구 가능동일한 소스 코드를 공유해서 개발 가능, 버전 충돌 문제 관리 가능 요즘 형상 관리 도구에서는 동시 작업을 위한 처리 방식으로 Copy-Modify-Merge 방식을 사용한다.=> 다른 개발자가 소스 코드에 접근 하지 못하도록 Lock을 거는 방식이 아니고, 수정을 원하는 개발자가 소스 코드를 다운로드해서 수정한 다음 형상 관리에 커밋을 하되 버전에 충돌이 생길 경우 머지 명령을 통합해서 이를 해결하는 방식이다.다른 개발자의 수정 작업이..
메이븐(maven) 의존성 관리pom.xml에 lib관련 내용을 추가하면 maven repositoy에서 라이브러리를 다운받아서 로컬의 메이븐 저장소에 저장(기본 위치는 사용자 홈 디렉터리 하위의 .m2 디렉터리에 저장되며 설정에 따라서 위치 변경 가능)ex) maven Repositoy(http://search.maven.org/) 의존성 관리를 하면서 빼놓을 수 없는 것이 관련 라이브러리를 메이븐에서 어느 범위까지 적용해서 사용할 것인지 정의하는 부분이다.메이븐에서 사용가능한 5가지 범위 존재Compile- 기본값, 컴파일 범위는 모든 단계. - 즉, 컴파일, 테스트, 실행, 배포 전체에 클래스 패스로 사용되며 현재 프로젝트와 연관된 다른 프로젝트에도 영향을 준다.Provided- Compile 범위..
AOP(Asepect Oriented Programming) 기능기존의 비즈니스로직 외 작성해야 하는 코드를 별도로 분리함으로써 개발자가 좀 더 비즈니스 로직에만 집중해서 처리할 수 있는 방법을 제공=> 비즈니스로직이 아닌 공통적이고 반족적인 코드를 처리하기 위한 방법 AOP와 트랜잭션 처리를 통해서 다음과 같은 기능을 완성 할 수 있음개발자가 원하는 코드를 실행하는데 얼마나 시간이 소모되는지 쉽게 알 수 있다.개발자는 메소드에 전달되는 파라미터나 리턴 값에 대해서 로그를 기록할 수 있다.데이터베이스 상에서 트랜잭션 처리를 설정하여, 성공하는 경우에만 모든 데이터가 완전하게 처리되는 방법 적용할 수 있다. AOP에서 'Aspect'란=> '비즈니스 로직은 아니지만, 반드시 해야하는 작업', '반드시 해야..
Controller에 요청이 들어오기전에 무엇인가를 수행한다는 기능만 보면 interceptor와 filter는 무척 비슷해 보인다. (전, 후처리기 역할을 수행한다.)위의 사진을 보면 차이점을 쉽게 알 수 있는데, 둘다 컨트롤러 전에 작업을 처리하는 용도로 사용되지만 호출되는 시점이 다르다.필터(Filter)는 dispatcherServlet으로 요청이 가기전에 실행되고인터셉터(Interceptor)는 Controller로 요청이 가기전에 실행이된다. FilterDispatcherServlet 앞단에서 정보 처리J2EE 표준스펙에 정의되어 있는 기능InterceptorDispatcherServlet에서 Handler(Controller)로 가기전에 정보 처리SpringFramework에서 자체적으로 제..
일반프로그램 : OS에서 실행 (Program OS Hardware)Java 프로그램 : JVM에서 실행(JVM은 OS에 종속적) (Java Program JVM OS Hardware) JVM이란?Java Virtual MachineJava와 OS 사이에서 중계자 역할Java Program이 OS에 구애받지 않고 실행될 수 있게 해줌메모리 관리 기능(Garbage Collection) JVM 메모리 구조Java Source : 사용자가 작성한 Java 코드(.java) Java Compiler : Java 코드를 Byte Code(.calss)로 변환시켜주는 기능을 함Class Loader : Class 파일을 메모리(Runtime Data Area)에 적재시켜주는 기능을 함Byte Code(.class..
svn 사용시 해당 패키지 및 파일을 삭제하고 commit을 하려다보니 아래와 같은 오류가 났다. 구글링을 해보니, 파일이나 폴더를 삭제하거나 이름을 변경할 때 자주 발생하는 에러라고 한다. 클라이언트가 가지고 있는 svn 파일의 정보가 너무 오래되어서 그렇다고하여, 헤더정보를 업데이트 후 커밋을 하면 된다는 정보를 얻었다. 해당 프로젝트를 Update to Head 한 후, commit을 하니 오류 없이 commit이 됬다.
X.509는 암호학에서 공개키 인증서와 알고리즘의 표준 가운데에 공개 키 기반(PKI)의 ITU-T 표준이다.=> ITU-T (국제전기통신연합 전기통신표준화부문, International Telecommunication Union Telecommunication Standardization Sector) 인증서(.der) 인증서 구조X.509 v3 디지털 인증서의 구조CertificateVersion 인증서의 버전을 나타냄Serial Number CA가 할당한 정수로 된 고유 번호Signature 서명 알고리즘 식별자Issuer 발행자Validity 유효기간Not Before 유효기간 시작 날짜Not After 유효기간 끝나는 날짜Subject 소유자Subject Public Key Info 소유자 공개..
RSA 개인키 PEM문자열을 PrivateKey 객체로 변환할 때 exception이 났다. java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : algid parse error, not a sequence //PKCS#8 privateKey PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encoded); KeyFactory kf = KeyFactory.getInstance("RSA"); PrivateKey prkey = kf.generatePrivate(keySpec); (위 코드를 사용 했는데, exception을 내뱉음) 원인은 pem문..
POM 구조 이해메이븐은 프로젝트 객체 모델(Project Object Model)이라는 개념을 바탕으로 프로젝트 의존성 관리, 라이브러리 관리, 프로젝트 생명 주기 관리 기능 등을 제공하는 프로젝트 관리 도구이다.다른 빌드 도구와는 다르게 선언적 접근 방법(Declarative Approach)를 사용한다. 빌드 프로세스를 이벤트 단위로 기술하는 것이 아니라, 프로젝트를 설명하고 프로젝트 구조에 대해서 정의하고 이와 관련된 연관 정보들을 기술하는 형태를 가지고 있다. pom.xml 에 들어가는 정보내용기본정보 프로젝트 정의(컨텍스트와 아티팩트를 정의) : 필수연관 정보(라이브러리 연관 관계 및 상위 프로젝트 등 관련 정보에 대한 기술) : 필수 프로젝트 정보 선택 빌드 설정 빌드 정의(기본 설정되어 있..