MVC 패턴 (Model1 vs Model2)
·
Programming Language/JSP
Model 1 Architecture 현재는 거의 사용 안함 JSP로만 웹 어플리케이션 개발하는 방법 JSP가 client 요청에 대한 로직 처리와 view에 대한 처리를 모두 수행한다. client로부터 요청이 들어오면 JSP 페이지는 java beans나 별도의 service class를 이용하여 작업을 처리하고, 결과를 client에 출력한다. 단점 view 코드와 로직처리르 위한 java코드가 섞여있어 복잡하다. jsp 코드에 Back-end와 Front-end가 혼재되어있어 분업이 힘들다. 유지보수가 어렵다. 확장성이 나쁘다. Model 2 Architecture ( MVC ) MVC 패턴을 웹개발에 도입한 구조이다. client 요청에 대한 처리는 Servlet이, logic 처리는 java ..
자바 스트림 API - Optional
·
Programming Language/JAVA
OptionalInt, OptionalDouble, OptionalLong 컬렉션에 값이 없을 경우 집계 메서드를 사용하면 예외 발생된다. 예외방지 + default 값 설정하는 기능을 제공한다. 1. 컬렉션에 값이 존재하는 경우 List list = new ArrayList(); list.add(10); list.add(25); OptionalDouble avg = list.stream() .mapToDouble(a->a) .average(); System.out.println(avg); //OptionalDouble[17.5] System.out.println(avg.getAsDouble()); //17.5 System.out.println(avg.orElse(0.0)); //17.5 - 값이 있다면..
자바 스트림 API - 최종처리(4)_collect2
·
Programming Language/JAVA
collect(partitioningBy(Predicate)) => true 값과 false로 나누어서 반환 collect(Collectors.groupingBy(Function)) => Function에서 리턴값으로 그룹핑해서 반환 8. 성별 분류 //익명클래스 Predicate predicate = new Predicate() { @Override public boolean test(Stu t) { return t.isMale(); } }; Map xxx = Stream.of(stuArr).collect(Collectors.partitioningBy(predicate)); List male = xxx.get(true); List female = xxx.get(false); System.out.prin..
자바 스트림 API - 최종처리(3)_collect
·
Programming Language/JAVA
collect collect(Colltecor
자바 스트림 API - 최종처리(2)_IntStream, LongStream, DoubleStream의 집계메서드
·
Programming Language/JAVA
통계처리 IntStream, LongStream, DoubleStream 의 집계 메서드 **합계: sum() 평균: average() 최대: max() 최소: min() 갯수: count()** int[] arr = {1,2,3,4,5}; 합계: sum() int sum = Arrays.stream(arr) .sum(); System.out.println("합계:" + sum); sum = Arrays.stream(arr) .filter(n->n%2==0) .sum(); System.out.println("짝수의 합계:" + sum); //합계:15 //짝수의 합계:6 평균: average() double avg = Arrays.stream(arr) .average() .orElse(0.0); Syst..
자바 스트림 API - 최종처리_allMatch/anyMatch/noneMatch
·
Programming Language/JAVA
최종처리 단계에서 요소들이 특정 조건에 만족여부 확인 allMatch(Predicate): 모든 요소들이 Predicate 조건에 일치하는지 체크 anyMatch(Predicate): 일부분의 요소들이 Predicate 조건에 일치하는지 체크 noneMatch(Predicate): 모든 요소들이 Predicate 조건에 일치하지 않는지 체크 => 최종 결과는 boolean 값으로 반환 --- int[] arr = {1,2,3,4,5}; allMatch(Predicate) //익명클래스 IntPredicate predicate = new IntPredicate() { @Override public boolean test(int t) { return t < 10; } }; //모든 요소가 10보다 작냐? b..
자바 스트림 API- 중간처리(3)_boxed/asDoubleStream()
·
Programming Language/JAVA
int[] arr = {1,2,3,4,5}; boxed() : 기본형 ⇒ 참조형 //가. boxed(): int ---> Integer IntStream s = Arrays.stream(arr); s.boxed() .forEach(System.out::println); //1 //2 //3 //4 //5 asDoubleStream() IntStream => DoubleStream LongStream => DoubleStream //나. asDoubleStream(): 정수 ---> 실수 Arrays.stream(arr) .asDoubleStream() .forEach(System.out::println); //1.0 //2.0 //3.0 //4.0 //5.0
자바 스트림 API - 중간처리(2)_sorted/skip/limit
·
Programming Language/JAVA
class Person{ String username; int score; public Person() {} public Person(String username, int score) { this.username = username; this.score = score; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } @Override public String toStr..
자바 스트림 API - 중간처리(1)_distinct/filter/map/mapToInt/flatmap
·
Programming Language/JAVA
distinct 중복제거 //컬렉션에서 Stream 생성 List list = Arrays.asList("홍길동", "이순신", "유관순", "이순신"); //1. 중간처리 (중복제거- distinct) list.stream() .distinct() .forEach(System.out::println); //홍길동, 이순신, 유관순 filter 필터링 //익명함수 Predicate predicate = new Predicate() { @Override public boolean test(String t) { return t.startsWith("이"); } }; //filter list.stream() .filter(predicate) .forEach(System.out::println); //람다표현식..
자바 스트림 API - 스트림 생성
·
Programming Language/JAVA
1. 컬렉션에서 Stream 생성 //1. 컬렉션에서 Stream 생성 List list = Arrays.asList("홍길동", "이순신", "유관순"); Stream s = list.stream(); //스트림얻기. 중간처리,최종처리를 할 수 있음. System.out.println("스트림 요소 갯수: " + s.count()); //스트림 요소 갯수: 3 //익명클래스 Consumer c = new Consumer() { @Override public void accept(String t) { System.out.println(t); } }; //s라는 변수를 계속 반복적으로 쓸수 없기 때문에 새로운 스트림을 얻어 forEach할때 사용 list.stream().forEach(c); System...
xoo | 수진
'Programming Language' 카테고리의 글 목록