Aspect Orientated Programming(AOP)횡단 관심사(공통된 코드)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다.특징Spring은 프록시 패턴을 사용한다.Proxy는 외부 메서드 호출만 인터셉트하여 동일 클래스 내 메소드 호출 시, 동작하지 않는다. Bean으로 정의된 Method를 대상으로만 적용이 가능하다.용어Aspect횡단 관심사를 모듈화 한 것이다.TargetAspect를 적용하는 곳이다.Advice부가 기능(코드)을 담은 모듈이다.Before Advice메서드가 실행되기 전에 수행하는 모듈이다.@Before 어노테이션을 사용하여 정의한다.Around Advice메서드가 실행되기 전과 실행된 후에 각각 수행하는 모듈이다.@Around 어노테이션을..
Jasypt개발자가 암호화에 대한 이해도가 높지 않더라도 프로젝트에 암호화 기능을 추가 할 수 있도록 고안된 Java Library이다.단방향 및 양방향 암호화 모두에 높은 보안, 표준 기반의 암호화 기술 등을 제공한다.Spring 기반 애플리케이션과 Spring Security와 통합이 가능하다.Bouncy CastleJava 및 C#용 경량 암호화 오픈 소스 API이다.JCE(Java Cryptography Extension) 공급자보다 더 보안적으로 강력한 암호화 패키지이다.AES(Advanced Encryption Standard) 알고리즘을 구현하였다.Spring with JasyptJasypt의 digesters와 encryptors를 Spring Bean으로 등록하여 Spring 애플리케이션..
Java Secure Channel(JSch)순수 SSH2의 Java 구현체로, sshd 서버에 연결하여 포트 포워딩, X11 포워딩, 파일 전송 등을 사용할 수 있다.Connect서버에 접속하기 위해 사용되는 사용자 인증 방식은 password, publickey, keyboard-interactive, gssapi-with-mic이 있다.password서버에 등록된 계정으로 로그인하는 방식이다.publickeySSH Key를 이용하여 로그인하는 방식이다.DSA, RSA, ECDSA 기반으로 암호화된 Public key를 서버에 등록하여 Local에 보관하고 있는 Private key를 이용하여 로그인한다.ssh-keygenOpenSSH에 포함된 ssh key-pair를 만들기 위한 도구이다.사용키 생..
BeanSpring IOC Container가 관리하는 자바 객체이다.Bean 등록 방식Component Scan특정 클래스들을 Bean으로 등록하기 위해 사용되는 방법이다.basePackage지정된 패키지를 포함한 그 이하 패키지의 클래스들을 대상으로 @Component Annotation 혹은 연관 Annotation(@Controller, @Service, ...)이 선언되어 있으면 해당 Component를 Scan한다.basePackageClasses주어진 클래스의 위치에 해당하는 패키지를 포함한 그 이하 패키지의 클래스들을 대상으로 @Component Annotation 혹은 연관 Annotation(@Controller, @Service, ...)이 선언되어 있으면 해당 Component를 S..
Functional Programming(OOP)자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다.특징Immutability함수형 프로그램의 핵심 개념으로, 객체를 생성한 후 수정할 수 없는 객체이다.Java에서는 Final keyword를 사용하고 Setter method를 사용하지 않음으로써 불변 Object 생성할 수 있으나, Reflection을 통해 깨버릴 수 있다.public class Musician { private final String name; public Musician(String name) { this.name = name; } public String getName() { return this.name; ..
Object-Oriented Programming(OOP)컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임이다.강한 응집도(Cohesion)과 약한 결합도(Coupling)을 지향한다.응집도(Cohesion)한 모듈 내부의 기능적인 연관도를 나타낸다.응집도의 종류순서대로 응집도는 감소한다.기능적 응집도(Functional Cohension)모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우.순차적 응집도(Sequential Cohension)동일합 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있을 경우.절차적 응집도(Procedural Cohension)모듈이 다수의 관련 기능을 가질 때..
Error런타임 시, 시스템 혹은 가상머신에서 비정상적인 상황으로 인해서 발생하는 심각한 수준의 오류이다.개발자가 사전에 예측하여 처리할 수 없기 때문에, 오류에 대한 처리를 신경쓰지 않아도 된다.대표적으로 StackOverflowError, OutOfMemoryError 등이 존재한다.Exception런타임 시, 개발자가 잘못 구현한 로직(코드) 혹은 사용자의 잘못된 조작에서 발생하는 오류이다.개발자가 사전에 예측하여 처리할 수 있기 때문에, 예외를 구분하여 그에 맞는 대처를 할 수 있다.대표적으로 IOException, NullPointerException 등이 존재한다.Checked Exception & Unchecked Exception예외 처리명시적 예외 처리생략 가능확인 시점컴파일 단계런타임 ..
Garbage CollectionJava 프로그램이 자동 메모리 관리를 수행하는 프로세스이다.Java 프로그램은 Java Virtual Machine 또는 간단히 JVM에서 실행할 수있는 바이트 코드로 컴파일된다.Java 프로그램이 JVM에서 실행될 때 프로그램 전용 메모리의 일부인 힙에 개체가 생성된다.결국 일부 개체는 더 이상 필요하지 않는다. 가비지 수집기는 이러한 사용하지 않는 개체를 찾아 삭제하여 메모리를 확보한다.용어Stop-The-World(STW) GC을 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것이다. Stop-The-World가 발생하면 GC를 실행하는 스레드를 제외한 나머지 스레드들은 모두 작업을 멈추게된다.Metaspace JAVA 7에서 Heap Memory 영역..
Generic클래스, 인터페이스 및 메서드를 정의할 때 유형이 매개변수가 되도록 한다.코드 내부에서 사용할 자료형을 외부에서 지정하는 기법이다.사용의 이점 컴파일 시, 강력한 타입 검사를 통해 런타임 오류를 방지한다. 캐스팅을 제거하여 불필요한 코드를 줄인다.// The following code snippet without generics requires casting.List list = new ArrayList();list.add("hello");String s = (String) list.get(0);// When re-written to use generics, the code does not require casting.List list = new ArrayList();list.add("h..
Spring CacheSpring Cache Abstraction를 사용하여 비용이 많이 드는 메서드 수행을 반복하지 않고 데이터를 반환함으로써, 시스템 성능을 향상시킬 수 있다.단, 여러 노드로 구성된 어플리케이션과 같은 Multi-Process 환경에서는 Cache Provider를 환경에 따라 구성해야 한다.Dependency org.springframework spring-context-support 5.3.30 compile일반적으로 "spring-context-support"를 maven dependency로 추가 혹은 gradle implementation하여 사용할 수 있다. org.springframework.boot spring-boot-starter-cacheSpring B..
- Total
- Today
- Yesterday
- multi stage biluild
- extensibility
- minio
- Promise
- bean
- ASYNCHRONOUS
- barman
- repmgr
- PostgreSQL
- patametertype
- await
- object storage
- graecful shutdown
- functional programing
- java
- JWT
- hot-backup
- javascript
- kubernetes
- Spring
- async
- Ai
- db lank
- reusability
- docker
- mybtis
- nosuchmethodexception
- model context protocol
- point cut
- aws s3
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |