본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


반응형

분류 전체보기

(160)
Spring core 스터디 1 - spring framework이란? spring framework의 장점 1.스프링을 사용하면 java 엔터프라이즈 애플리케이션을 쉽게 만들 수 있다 . JVM에서 대체 언어로 Groovy 및 Kotlin을 지원하여 엔터프라이즈 환경에서 Java 언어를 수용하는데 필요한 모든것을 제공하며 , 애플리케이션의 필요에 따라 다양한 종류의 아키텍처를 생성할 수 있다 . 스프링 5.1 버전부터 JDK 8이상 버전이 필요하며 JDK 11LTS 에 대한 기본 지원을 제공한다 . JavaSE 8 update 60 은 최소 패치 릴리즈로 java8을 제안하지만, 일반적으로 최신 패치 릴리즈의 사용을 추천한다 . 2.스프링은 광범위한 애플리케이션 적용 시나리오를 지원한다 . 큰 규모의 기업에서 , 애플리케이션은 오랫동안 존재하며 업그레이드 주기가 개발자가 ..
JAVA 스터디 24 - 스트림(Stream) 자바에서는 다양한 데이터 소스를 표준화된 방법으로 다루기위해 이전의 데이터소스들(List,Set,Map, 배열 등.)은 각각 성격이 달라 데이터를 다루는 방법이 모두 달랐다. JDK 1.8버전 이후부터 추가된 Stream은 데이터를 다루는 방법을 표준화 한 기능이다 구현방식은 위의 그림과 같다 데이터소스는 스트림으로 변환되고 중간 연산은( n번가능) 최종 연산(한번)을 거쳐 결과가 만들어진다 . 스트림의 특징 -스트림은 데이터소스 (원본) 데이터를 읽기만할 뿐 (Read Only) 변경지 않는다. List list = Arrays.asList(3,1,5,1,4,2); List sortedList = list.stream().sorted().collect(Collectors.toList()); //[3, ..
JAVA 스터디 23 - 메서드 참조(method reference) 메서드 참조 ? 하나의 메서드만 호출하는 람다식은 '메서드 참조' 로 더 간단히 할 수 있다. static 메서드 참조 //1.문자열 s 를 파라미터로 받아서 Int로 변환하여 반환하는 메서드 Integer method(String s){ return Integer.parseInt(s); } //2.위 메서드의 람다식 표현 Function func = (s)->Integer.parseInt(s); //3.위 람다식을 메서드 참조 표기 //입력값 출력값에 대한 정보가 Function의 제네릭에 들어 있기 때문에 //2번의 (s)를 지우고 아래처럼 사용할 수 있다 . //메서드만 참조해주면 알아서 타입을 잡아준다. Function func = Integer::parseInt 메서드 참조가 이해가 안간다면 메..
JAVA 스터디 22 - 컬렉션 프레임웍과 함수형 인터페이스 인터페이스 메서드 설명 Collection boolean removeIf(Predicate filter) 조건에 맞는 요소를 삭제 List void replaceAll(UnaryOperator operator) 모든 요소를 변환하여 대체 Iterable void forEach(Consumer action) 모든 요소에 작업 action 수행 Map V compute(K key,BiFunctionf) 지정된 키의 값에 작업 f를 수행 V computeIfAbsent(K key , Function f) 키가 없으면 , 작업 f 수행 후추가 V computeIfPresent(K key , BiFunction) f 지정된 키가 있을 때, 작업 f 수행 V merge(K key , BiFunction f) 모든 ..
JAVA 스터디 21 - Predicate의 결합 predicate는 조건식을 정의할 때 사용하는 함수형 인터페이스다 연산자의 && (and) , || (or) 와 같이 and(), or() , negate()로 두 Predicate를 하나로 결합(default 메서드) 할 수 있다. 예제 코드 import java.util.function.Predicate; public class PredicateExam { public static void main(String[] args) { //세개의 Predicate 를 구현하였다. Predicate a = i->ii i%2 == 0 ; //negate() 반대로 만든다 i=100 으로 바꾼다. //연산자의 !와 같다. Predicate notA = a.negate(); //i>=100 && i=100 && ..
JAVA 스터디 20 - 람다식 (Lamda Expression) 람다식이란? 자바는 원래 OOP 언어이지만 JDK 1.8 부터 함수형 언어의 기능을 포함 했다. 람다식의 특징 1.함수 (메서드) 를 간단한 식으로 표현하는 방법이다. 2. 익명함수 (이름 없는 함수 , anonymous function) 일반식 : int max(int a , int b){ return a>b ? a:b;} 람다식 : (int a,int b)->{return a > b ? a : b;} 화살표 함수를 블록앞에 추가 람다식 : (int a,int b)->{return a > b ? a : b;} a > b ? a : b //a 혹은 b가 반환 타입이 된다 3.매개변수의 타입이 추론 가능하면 생략가능(대부분의 경우 생략 가능하다.) 람다식 : ( a , b )-> a > b ? a : b ..
JAVA 스터디 18 - 애노테이션 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 annotation 이란 ? -프로그래밍 언어에 영향을 미치지 않으며 ,유용한 정보를 특정 프로그램에게 제공하는 것. annotation의 특징 -'@' 로시작된다. -컴파일 된 프로그램의 동작을 변경하지 않는다. -메타 데이터를 프로그램 요소(인스턴스 변수 , 생성자 ,메서드 ,클래스 등..)에 연결하는 방법을 제시한다. -코드 라인 수를 줄이고 , 선언으로 해결 한다 -소스코드의 비지니스 로직에는 영향을 주지 않지만 ,해당 타겟에 영향을 주거나 소스코드의 구조를 변경할 수 있다. -소스 코드에 메타데이터를 삽입하는 것이기 때문에 가독성 뿐만 아니라 ,전체적인 소스코드를 구성하는데 도움된다. annota..
JAVA 스터디 17 - ENUM enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet enum 이란 ? enum이란 상수 그룹을 나타내는 특수 "클래스"이다 enum의 특징 1.내부적으로 enum 은 class를 사용하여 구현된다. enum FoodType{ KOREAN,JAPANESE,AMERICAN,ITALY; } //내부적으로는 아래와 같이 구현된다. class FoodType{ public static final FoodType KOREAN = new FoodType(); public static final FoodType JAPANESE = new FoodType(); public static final FoodType AMERICAN = new Fo..

반응형