[Collection] Java의 배열과, ArrayList
·
Java/Collection
배열의 특징배열은 Java가 지원하는 CollectionFramework중의 하나로 데이터의 중복저장을 허용하고, 순서를 보장하는 Collection이다.배열에서 자료를 찾을 때 Index를 사용하면 매우 빠르게 자료를 찾을 수 있으며, Index를 통한 입력 및 변경, 조회의 경우 한번의 계산O(1)으로 자료의 위치를 찾을 수 있다.  배열이 인덱스의 위치를 찾는 방법arr[2]에 위치한 자료를 찾는다고 가정해보자.Array는 메모리상에 순서대로 붙어서 존재하게 된다.int는 4byte를 차지한다 -> 따라서 배열의 시작 위치부터 시작해서 자료의 크기(4byte)와 인덱스 번호를 곱하면 원하는 메모리 위치를 찾을 수 있다.배열의 시작 참조 위치 + 자료의 크기 + 인덱스 위치 = 해당 연산을 통해 값이..
[Java] 자바의 제네릭이란, Generic, 타입 매개변수
·
Java
해당 글에서는 Generic의 깊은 이해보다는 어떠한 이유로 제네릭이 생겨났구나 정도 파악하고 예제 코드로 학습하기 위한 목적입니다. 자바에서 제네릭이 필요한 이유 만약에 하나의 기능을 제공하는데, 타입별로 다를 경우를 생각해보면된다. 예를들어 String 타입의 값을 담아서 출력하는 객체, Integer타입의 값을 담아서 출력하는 객체, Double, Boolean 등등 있다고 가정해 보겠다. 그럼 각각의 타입이 서로다르다는 이유로 값을 담아서 출력해야하는 로직을 각 타입에 맞게 코드를 작성해주어야 한다.OutputString outputStr = new OutputString();String hello = "hello";outputStr.print(hello);OutputInteger OutputIn..
[Java] StreamAPI
·
Java
Stream의 등장자바 8에서 등장한 API로 자바에서는 이와 같은 문제점들을 고려하여 StreamAPI를 내놓게 되었다.다양한 프로그래밍 문제를 더 빠르게 대응하기 위해서이를 위해서는 유지보수가 잘 이루어져야 하는데, 역시나 문제는 가독성이였다. 그래서 이를 더 간결하게 표현하고자 Stream API가 나왔다.멀티코어 프로세서를 활용해서 병렬 실행 환경을 쉽게 관리하기 위해서.Stream이란Stream의 사전적 의미는 '냇가' 혹은 "줄줄 흐르다"." 줄줄 지어 이어지다" (출처 네이버)이다. 오라클 공식 문서에서는 "일련의 요소", 모던 자바 인 액션에서는 "연속된 요소"라고도 한다. 나는 개인적으로 Stream이란 단어를 들으면 연속된 요소(줄줄 흐르는 냇가)가 연상된다. Stream의 3가지 구성..
[Java] Optional
·
Java
Optional 이란null 가능성이 있는 값을 감싸는 컨테이너 객체이다.null 체크를 명시적으로 하지 않고도 null 값으로 인해 발생할 수 있는 NullPointerException을 예방할 수 있도록 도와주며, Optional을 사용하면 코드의 가독성이 향상되고, null 관련 버그를 줄이고 핸들링 할 수 있도록 도와준다. Optional을 사용하는 이유 먼저 Optional을 사용해야만 하는 이유에 대해서 살펴보자.Optional이란 null 가능성이 있는 값을 감싸는 컨테이너 객체이다.그렇다면 그냥 if 문으로 null 가능성이 있는 객체에 대해서 예외 처리를 해주면 되는데 왜 굳이 Optional을 사용해야 하는가...OnlineClass springBoot = new OnlineClass(..
[Spring] 4. 의존관계 자동 주입
·
스프링/스프링 핵심 기능
목차다양한 의존관계 주입 방법옵션 처리롬복과 최신 트렌드(필드를 final로 선언해주고 @RequiredArgsConstructor를 사용한다)조회 빈이 2개이상 - 문제@Autowired 필드 명, @Qualifier, @Primary 애노테이션애노테이션 직접 만들기조회한 빈이 모두 필요할 때, List, Map자동, 수동의 올바른 실무 운영 기준 다양한 의존관계 주입 방법의존관계 주입은 크게 3가지가 있다.생성자 주입setter 주입필드 주입 생성자 주입생성자 주입은 이름 그대로 생성자 메서드를 통해 의존 관계를 주입 받는 방식이다.생성자 주입 방식의 특징으로는 호출 시점에 딱 1번만 호출되는 것이 보장된다는 것이다.이를 잘 활용하면 생성자 주입 방식은 불변을 보장한다는 것인데, 불변이란 중간에 데이..
[Spring] 3. 컴포넌트 스캔
·
스프링/스프링 핵심 기능
목차의존관계 자동 주입과 컴포넌트 스캔탐색위치와 기본 스캔 대상필터중복 등록과 충돌 컴포넌트 스캔과 의존관계 자동 주입-> 스프링에서 의존관계를 주입받기 위해서는 2가지가 존재한다. @Configuration 클래스를 정한 뒤 @Bean 애노테이션을 등록해주거나 XML의 등을 통해서 설정 정보에 직접 등록할 빈을 나열 하는 수동 등록 방식과, 설정 정보가 없이도 자동으로 스프링 빈을 등록해주는 ComponentScan 이라는 기능과 의존관계를 자동으로 주입해주는 Autowired 기능을 제공한다. 컴포넌트 스캔컴포넌트 스캔이란.... @Component애노테이션이 붙은 클래스를 자동으로 모두 스캔해서 스프링 빈으로 등록하는 기능이다.그래서 스프링은 설정 정보가 없어도 자동으로 스프링의 빈으로 등록하는 컴..
[Spring] 2.스프링의 싱글톤 컨테이너
·
스프링/스프링 핵심 기능
(스프링의 싱글톤 빈이 동시요청을 처리하는 방법 ) https://leezzangmin.tistory.com/41?category=993028 -> 해당 게시글은 멀티스레드 환경에서 스프링의 싱글톤이 어떻게 내부에서 작동하는지 쉽게 설명되어있어서 가져왔습니다.   목차스프링이 싱글톤을 지원하는 이유싱글톤 패턴, 그리고 문제점스프링 싱글톤 컨테이너만능은 아니다... 싱글톤 방식의 주의점스프링이 싱글톤을 보장하는 방법(Configuration)  스프링이 싱글톤을 지원하는 이유 스프링은 기업용 온라인 서비스 기술을 개발자가 보다 효율적이고 생산적으로 관리할 수 있게끔 나온 프레임워크이다.이러한 온라인 서비스 생태계에서는 보통 여러 고객이 동시에 요청을 수행하게 되는데, 고객의 요청이 올 때마다 객체를 생성하..
cheolhyeon
'Java' 태그의 글 목록 (2 Page)