본문 바로가기

분류 전체보기

(101)
Hash Table 해싱이란 해시함수를 사용하여 고정된 크기의 값으로 변환하는 작업입니다. 해싱을 이용해 데이터를 저장하는 자료구조를 Hash Table이라합니다. 이는 기존 자료구조인 이진 탐색트리나 배열에 비해 빠른 속도로 탐색, 삽입, 삭제를 할 수 있습니다. Collection Data Structure Add Contains Remove Next HashSet Hash Table O(1) O(1) O(h/n) ArrayList Array O(1) O(n) O(n) Hash Table이란 해시함수를 사용해 변환한 값을 index로 삼아 key, value를 저장하는 자료구조입니다. 기본 연산으로는 탐색,삽입 삭제가 있습니다.' 해시테이블을 이해하기 위해선 '충돌(Collision)'에 대해 이해해야합니다. 적재율 적..
Mapper, Dependency Maven Dependency 에 대해 작성해보겠습니다. mvnrepository.com/ Maven Repository: Search/Browse/Explore The JWebSwing implementation for Angular Pretty Checkboxes Last Release on Nov 2, 2020 mvnrepository.com modelMapper 는 도메인 값과 DTO의 mapping을 자동으로 해주는 역할입니다. 1. Mapper mapstruct.org/ MapStruct – Java bean mappings, the easy way! Java bean mappings, the easy way! Get started Download mapstruct.org 기존에는 JPA En..
Spring boot Spring boot 는 제품수준의 Spring 기반 어플리케이션을 보다 쉽고 빠르게 만들수 있게 도와줍니다. 3rd party library 를 비롯한 스프링에 대한 설정들도 제공해줍니다. 대표적으로 내장 서버가 있습니다. XML 설정도 더 이상 하지 않습니다. code generation도 하지 않습니다. 이런 장점으로 더 customizing 하기가 쉽습니다. Spring boot 는 java8 이상부터 사용가능합니다. 보다 자세한 설명은 spring 공식 사이트를 참고해주세요 :) docs.spring.io/spring-boot/docs/current/reference/html/ Spring Boot Reference Documentation The reference documentation co..
ApplicationEventPublisher & ResourceLoader ApplicationEventPublisher ApplicationEventPublisher 는 이벤트 프로그래밍에 필요한 인터페이스를 제공하며 옵저버 패턴의 구현체입니다. 이벤트를 발생시킬 수 있는 기능을 ApplicationContext 가 가지고 있습니다. Spring 4.2 이전에는 Event는 Application Event 를 상속받아야하고 Event Handler는 Bean으로 등록 후 ApplicationListener를 구현해서 사용해야 했습니다. 이를 통해 전달받은 이벤트를 가지고 원하는 작업을 수행할 수 있습니다. 4.2 이후부터는 Event는 Application Event를 상속받지 않아도 됩니다. Spring Framework가 추구하는 것은 비침투성입니다. spring fram..
Environment ApplicationContext가 가지고 있는 기능들을 살펴보겠습니다. ApplicationContext 는 Bean Factory 기능 뿐 아니라 다른 기능도 가지고 있습니다. ApplicationContext는 위 그림과 같이 여러 인터페이스들을 상속받고 있습니다. 오늘은 그중에서도 EnvironmentCapable 에 대해서 정리하겠습니다. Profile 빈들의 묶음으로 "환경"이라고 할 수 있습니다. 예를 들어 실제 상용에서는 A 환경을 쓰고 테스트할때는 B환경을 쓰려고 할때 이런 환경을 의미합니다. 각각의 환경에서 다른 Bean을 사용해야하는 경우나 특정 Bean을 사용해야하는 경우 Profile을 사용합니다. 아무런 Profile을 설정하지 않은 경우에는 ApplicationContext.g..
Scope 저희가 만든 모든 bean은 모두 scope을 가지고 있습니다. scope 은 크게 '싱글톤' , '프로토타입'으로 나눌 수 있습니다. 싱글톤: 해당 bean의 인스턴스가 오직 하나뿐입니다. 프로토타입: 매번 새로운 객체를 새로운 인스턴스를 만들어서 사용해야하는 scope입니다. 그림을 통해 프로토타입을 자세히 보겠습니다. 프로토타입의 Proto 클래스와 싱글톤타입의 Single 클래스를 만들겠습니다. 그런 후에 아래와 같이 각 빈을 호출해보면 Proto는 매번 다른 인스턴스를 만들어서 보여주는 것을 볼 수 있으며 Single은 항상 같은 인스턴스를 보여주고 있습니다. Singleton 타입의 Bean에서 Prototype 스콥의 Bean을 사용할때에는 주의를 기울여야합니다. 왜냐하면 Singletone..
Autowired & Component Spring boot 프로젝트에서 여러 annotation이 사용됩니다. 이번 글에서는 annotation에 대해서 정리를 진행하도록 하겠습니다. 객체의 의존성을 가지는 부분에 해당 어노테이션을 사용하여 쉽게 의존성을 주입할 수 있습니다. 의존 객체를 주입하는 방법은 스프링 설정파일에서 혹은 태그로 의존 객체를 명시하는 방법이 있습니다. 의존객체 자동 주입(Automatic Dependency Injection)은 스프링 컨테이너가 자동으로 의존 대상 객체를 찾아 해당 객체에 필요한 의존성을 주입해줍니다. 이를 구현하는 방법은 @Autowired 와 @Resource를 통해 구현가능합니다. 1. Autowired 1.1 설명 @Autowired는 주입하려하는 Bean의 타입이 일치하는지 찾고 의존성 주입..
기본 개념 Spring Spring 의 기본부터 차근차근 정리해나가겠습니다. 1. IoC 컨테이너 IoC 란 Inversion of Control의 약어로 의존관계 주입이라고도 합니다. 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는 것이 아닌, 주입 받아 사용하는 방법입니다. IoC는 Spring 없이도 사용 가능합니다. 그러나 그렇게 사용하지 않고 Spring을 사용하는 이유는 DI 방법의 노하우가 쌓여있는 방법이기 때문입니다. 초기에는 xml 방식으로 주입을 했었지만 현재는 annotation방식으로 주입하고 있습니다. Bean을 담고있는 것을 Container라 합니다. IoC 컨테이너가 관리하는 객체를 Bean이라 합니다. Bean으로 등록하는 이유는 의존성을 주입하고 싶거나 싱글톤으로 관리하고 싶은 경우 등록..