전체 글

초보 개발자의 지식 공유의 장
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 에 들어가는 정보내용기본정보 프로젝트 정의(컨텍스트와 아티팩트를 정의) : 필수연관 정보(라이브러리 연관 관계 및 상위 프로젝트 등 관련 정보에 대한 기술) : 필수 프로젝트 정보 선택 빌드 설정 빌드 정의(기본 설정되어 있..
빌드 및 패키징 앞에서 만든 메이븐 프로젝트를 빌드하고 패키징하는 일이 남았다. 모든 동작은 POM파일에 작성되어 있다. 많은 빌드 소프트웨어의 스크립트는 클래스 패스를 설정하고 정보를 설정하고 컴파일 방법과 패키징 방법을 기술하도록 되어 있는데(예 : ANT빌드) pom.xml파일에는 그런 내용이 없다.(늘상 반복적으로 정의하는 빌드 프로세스가 내장되어 있고 그래서 각 명령에 대한 상세 정의 역시 존재하지 않는다.) pom.xml이 저장되어 있는 위치에서 mvn compile 실행(컴파일) 작업이 완료되면 target 디렉터리가 생긴 것을 볼 수 있다. target에는 src디렉터리를 기반으로 컴파일한 결과물과 자원들이 저장된다. test 코드 실행 mvn test 실행(JUnit 테스트 코드 실행) ..
RSA를 이용한 데이터 암복호화 키발급부터 개인키로 암호화(전자서명) 한 후 공개키로 복호화는 과정입니다. public static void main(String[] args){ /* server code */ /* Key 발급 */ PublicKey publicKey = null; // 공개키 PrivateKey privateKey = null; // 개인키 SecureRandom secureRandom = new SecureRandom(); // random number generator(RNG) try { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); // RSA(1024, 2048), DiffieHellman(10..
메이븐 설치메이븐은 해당 url에서 쉽게 다운로드 가능 (http://maven.apache.org/download.cgi)메이븐을 설치한 후에는 자바를 설치한 것처럼 환경변수를 잡아 주어야한다.(보통 JAVA_HOME 처럼, 메이븐에서는 M2_HOME으로 설정해주는 것 같음)M2_HOME=E:\apache-maven-3.5.3PATH=%M2_HOME%/bin 메이븐은 명령형 기반의 도구이기 때문에 압축을 해제하고 운영체제의 환경변수에 설정값을 반영하면 모든 것이 끝이 난다. 메이븐의 이해메이븐은 자바기반의 빌드 도구 이며, 플러그인을 설치하면 리포팅과 문서화, 각종 테스트와 검사를 수행할 수 있는 확장 가능한 구조를 가지고 있다.(pom.xml 파일 하나만 변경하면 메이븐 설정을 변경할 수 있음)메이븐..
깡냉쓰
평범한 개발자 노트