본문 바로가기

1. interface List interface List
Spring Aop Aop란? AOP(Aspect Oriented Programing)는 관점지향형 프로그래밍이다. 이는 반복 사용되는 로직들을 모듈화 하여 필요할때 호출해서 사용하는 방법이다. 즉 횡단 관심사(Cross-Cutting Concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. * Proxy는 중개인을 뜻하는 영단어로써, 업무처리를 대신한다는 개념이다. 구체적인 예시를 통해 알아보자. public interface ControllerContainer { public void controller1(int[] arr); public void controller2(int[] arr); } public static class ControllerFactory implements C..
동기화 처리 Synchronized Java의 동기화 Synchronized 필요성 대두 Java에서 MultiThread Programming을 하게 될시, 공유자원에 Thread들이 접근을 하는 경우가 생깁니다. 그럴때, Thread가 공유자원에 접근할때, 동기화를 해줘야 하는 필요성이 있고 그때 사용하는 키워드가 Synchronized입니다. 고유 락과 Synchronized block 자바의 모든 객체는 고유 lock을 가지고 있다. 자바의 Synchronized block은 동시성 문제를 해결하는 가장 간편한 방법으로, 고유 락을 이용하여 여러 스레드의 접근을 제어한다. public class Counter { private int count; public int increase() { return ++count; // 스레드 안..
Stream 확실히 알기 필요성 대두 기존 Java에서는 컬렉션 데이터를 처리할때는, for문 혹은 foreach문을 사용하여 Collection내의 요소들을 하나하나 다루었습니다. 간단한 처리나 Collection의 크기가 작으면, 큰 문제가 아니었지만, 복잡한 처리가 필요하거나 Collection크기가 커지면 루프문의 성능은 사용저하를 일으켰습니다. 스트림의 등장 스트림은 Java8에서 추가된 기능으로, Collection데이터를 선언형으로 쉽게 처리할수 있습니다. 복잡한 루프문을 사용하지 않아도 되며, 루프문을 중첩해서 사용해야 하는 최악의 경우도 더이상 없어졌습니다. 또한 스트림은 병렬처리를 별도의 멀티쓰레드 구현없이도 쉽게 구현할수 있습니다. 다음 예제로 스트림을 사용한 경우와 사용하지 않는 경우를 살펴보겠습니다. [스..
Stream vs List Stream 스트림은 데이터 처리 연산을 위해 자바에서 제공하는 인터페이스이다. 내부적으로 어떻게 작동하는지 궁금해서 살펴보았는데, spliterator를 인자로 받아, 다음과 같이 RefrenecePipleLine.HEAD를 반환한다. HEAD는 Spliterator source부터 상위 클래스로 인자를 전달한다. 인자 중 Spliterator는 Collection이라면 Collection Source에서 요소를 탐색하고 분할하여 반환하기 위해 사용하는 Java8 제공 인터페이스이다. 상위 클래스 ReferencePipleline은 그 상위 클래스 AbstractPipleline에 인자를 전달하고, 다음과 같이 전달받은 source를 sourceSupplier에 전달하고 함수형 인터페이스인 Suppli..
0. 암호화 복호화 암호화 복호화 암호화의 필요성 대두 암호화란? 암호화란 공개되어서는 안되는 정보를 암호문으로 변환하는 과정을 의미합니다. 사용자가 입력한 데이터를 알아볼 수 없는 정보로 변경하는 것이며, 이러한 암호화된 형태를 저장장치나 전송장치에 전송함으로써 그 정보를 보호할수 있습니다. 복호화란? 복호화란 암호화의 반대를 말하는 것이며, 사람이 인지할수 없게 변형된 정보를 사람이 인지할수 있게 변환하는 과정을 의미합니다. 암호화의 종류 암호화 방식은 크게 단방향 암호화 방식과 양방향 암호화 방식이 존재합니다. 단방향 암호화 단방향 암호화란? 단방향 암호화 방식은 평문을 암호화 방식을 사용해서 암호문으로 변환하는 작업을 의미합니다. 암호화된 데이터를 다시 원래의 데이터로 되돌릴수 없는 방식이며, 대표적인 예가 온라인 ..
0. interface Collection 메소드 설명 public interface myCollection { int size(); boolean isEmpty(); boolean contains(Object o); Object[] toArray(); boolean add(E e); boolean remove(Object o); boolean containsAll(Collection c); boolean addAll(Collection c); void clear(); } 1. size() : 내부 배열 사이즈를 반환한다. 2. isEmpty() : 내부 배열이 비었는지 아닌지를 확인한다. 3. contatins(Object o) : 전달받은 객체가 포함되어 있는지 여부를 확인한다. 4. toArray() : object 배열을 반환한다. 5. ..
0. 계층도 계층도를 보면 Collection inteface를 List가 extends하고 ArrayList와 Vector는 그 List를 implements한다. 따라서, 1단계로 ArrayList 구현을 목표로 잡고 실행한다. 1단계 : 2022년 6월 8일 ~ 2022년 6월 10일까지 진행.