본문 바로가기

전체 글

(133)
[Java] 컬렉션 프레임워크 Java Collection은 널리 알려져 있는 자료구조를 바탕으로 객체, 데이터들을 효율적으로 관리할 수 있는 라이브러리를 컬렉션 프레임워크라고 합니다. List, Set은 Collection 인터페이스를 상속받지만, Map 인터페이스는 구조상 차이라 별도로 정의합니다. List 순서가 있는 데이터의 집합으로 데이터의 중복을 허용함 구현 클래스: ArrayList, LinkedList, Stack, Vector, … 순서 O / 중복 O Set 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않음 구현 클래스: HashSet, TreeSet, … 순서 X / 중복 X Map 키와 값의 쌍(pair)으로 이루어진 데이터 군집으로 순서는 유지되지 않음 키는 중복을 허용하지 않지만, 값은 중복..
[Spring] DI, DL, IoC , AOP란? DI(Dependency Injection): 한 객체에서 다른 객체를 필요로 하여 의존성을 갖게 하는 기술 DL(Dependency Look-up): 한 객체에서 필요로 하는 다른 객체를 찾아서 사용하는 기술 IoC(Inversion of Control): 직접 제어해야하는 부분에 대한 권한을 프레임워크 등에 넘기는 기술 AOP(Aspect Oriented Programming): 공통의 관심 사항을 추출하여 원하는 곳에 적용하는 기술
[Spring] CORS란? CORS(Cross-Origin-Resource-Sharing)란 도메인이 다른 2개의 사이트가 데이터를 주고 받을 때 발생하는 문제입니다. 서로 다른 도메인 간에 자원을 공유하는 것을 뜻합니다. 예를 들어 naver.com -> google.com으로 데이터를 요청한다고 하면, 따로 설정을 해주지 않는 한 CORS 에러를 만나게 됩니다. CORS가 생기게 된 이유는 서버 내에서 요청이 허락된 도메인에만 데이터를 주기 위해서인데, 요청을 허락하기 위해서는 Access-Control-Allow-Origin: {도메인}과 같은 내용을 Response의 헤더에 추가해주어야 합니다. 만약 도메인을 *으로 설정하면 모든 도메인에 대해 요청을 허락할 수 있습니다. 그 외에도 Access-Control-Allow-M..
[Spring] WAS와 WS의 차이 WAS(Web Application Server) 비지니스 로직을 넣을 수 있음 Tomcat, PHP, ASP, .Net 등 WS(Web Server) 비지니스 로직을 넣을 수 없음 Nginx, Apache 등
[Java] 가비지 컬렉션(Garbage Collection)의 과정 가비지 컬렉터(Garbage Collector)란? '더이상 참조되지 않은 메모리'인 가비지를 청소해주는 JVM의 실행 엔진의 한 요소입니다. JVM은 new와 같은 연산에 의해 새롭게 생성된 객체들 중에서 더이상 참조되지 않는 객체를 정리해줍니다. 가비지 컬렉터는 Heap 영역을 위주로 탐색하여 메모리를 정리해줍니다. 가비지 컬렉션(Garbage Collection)의 과정 가비지 컬렉션(GC)은 메모리를 정리하는 과정입니다. GC는 Heap 영역에서 사용하지 않는 객체들을 제거하는 작업을 총칭합니다. 이 객체를 제거하는 작업이 필요한 이유는 자바는 개발자가 메모리를 직접 해제해줄 수 없는 언어이기 때문입니다. 따라서 객체를 사용하고 제거하는 기능이 필요하게 됩니다. GC의 동작방식은 가장 간단한 Se..
[Spring] Bean/Component 어노테이션에 대해서 설명, 둘의 차이점 IoC 컨테이너에 Bean을 등록하기 위해서 사용 @Component: 개발자가 작성한 class를 기반으로 실행 시점에 인스턴스 객체를 1회(싱글톤) 생성 -> @Controller, @Service, @Repository는 모두 @Component 이며 실행 시점에 자동으로 의존성을 주입 @Bean: 개발자가 작성한 method를 기반으로 매서드에서 반환하는 객체를 인스턴스 객체로 1회(싱글톤) 생성
[Spring] Autowiring 과정 컨테이너에서 타입(인터페이스 또는 오브젝트)을 이용해 의존 대상 객체를 검색하고, 할당할 수 있는 빈 객체를 찾아 주입한다.
[Spring] DI(Dependency Injection) 종류는 어떤 것이 있고, 이들의 차이는 무엇인가요? DI(Dependency Injection: 의존성 주입) 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로, 인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 다이나믹하게 주입하여 유연성을 확보하고 결함도를 낮출 수 있게 해준다. 의존성이란 한 객체가 다른 객체를 사용할 때 의존성이 있다고 한다. 두 객체 간의 관계라는 관심사의 분리 두 객체 간의 결합도를 낮춤 객체의 유연성을 높임 테스트 작성을 용이하게 함 DI는 세가지 방법이 있습니다. 생성자 삽입, Setter를 이용한 메소드 매개 변수 삽입, 필드 주입이 있습니다. 생성자 주입: 생성자 호출 시점에 딱 1번만 호출되는 것을 보장하며, 불변, 필수 의존관계에 사용 Setter 주입: 선택, 변경..