목록전체 글 (75)
Super Coding Addict
* 스트림 - 자료의 대상과 상관없이 동일한 연산 수행할 수 있는 기능 --> 자료의 추상화 - 배열, 컬렉션(ArrayList)에 동일한 연산이 수행되어 일관성있는 처리 가능 - 한번 생성하고 사용한 스트림 재사용 불가 --> 스트림 객체 새로 만들어야 함! ( 스트림은 원본 배열을 건드리는 게 아니라, another 메모리에서 하나씩 꺼내서 소모하는 연산이 이루어지므로 ) - 중간연산과 최종연산으로 구분되며, 최종연산이 수행되어야 모든 연산이 적용되므로 중간연산 결과를 도중 확인불가 * 스트림 연산 - 중간 연산 - filter() : 조건에 맞는 요소를 추출 ex) 문자열 길이가 5이상인 요소만 출력하기 sList.stream().filter(s-> s.length() >= 5).forEach(s ..
* 함수를 변수처럼 사용하는 람다식 - 변수 : 자료형에 기반하여 선언 / 매개변수로 전달 / 메서드의 반환값으로 사용 --> 람다식을 프로그램내에서 이러한 변수처럼 사용할 수 있다! * 예제 # TestLambda 클래스 package ch12.lambda; interface PrintString{ void showString(String str); } public class TestLamda { public static void main(String[] args) { PrintString lambdaStr = s->System.out.println(s); lambdaStr.showString("Test"); showMyString(lambdaStr); PrintString test = returnSt..
* 람다식 - 자바8부터 지원 - 자바에서 함수형 프로그래밍을 구현하는 방식 - 클래스 생성X, 함수의 호출만으로 기능 수행 * 함수형 프로그래밍 - 순수 함수를 구현, 호출 --> 외부변수 사용X ==> 매개변수만을 사용, 따라서 외부 자료에 부수적 영향(side effect) 발생X ==> 외부에 영향 미치지 않으므로 병렬처리등 가능, 안정적인 확장성 있는 프로그램 방식 * 람다식 문법 - 매개변수가 1개인 경우 괄호 생략 가능 (두 개인 경우 생략불가) str -> {System.out.println(str);} - 중괄호 안의 구현부 한 문장입면 중괄호 생략가능 str -> System.out.println(str); - 중괄호 안의 구현부가 한 문장이더라도 return문이면 중괄호 생략불가 st..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bKePEC/btqVJSNGy5O/VCijVZ8uGMZKDyUdfeVTiK/img.png)
barunmo.blogspot.com/2013/10/apache-camel-hello-world.html Apache Camel, Hello, world! 세상을 위한 바른 기술 barunmo.blogspot.com package com.vtw.camel; import java.util.Arrays; import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b4EyfZ/btqVzSAxcXl/wdiRaC8RfE042yJPHHzj9k/img.png)
* DB의 Column과 VO 변수명이 다를 때 - 프로젝트를 할 때까지만 해도 DB컬럼명과 VO변수명을 동일하게 처리했기 때문에 이것을 매칭시키는 작업이 필요하지 않았음 - 그러나 보통 DB 컬럼명은 Snake Case를 쓰는 한편, VO 변수명은 Camel Case를 쓰기 때문에, DB에서 데이터를 가져오는 select를 할 때 VO 객체에 바로 값을 넣지 못하는 문제가 생김 (물론 JPA를 쓰면 이 문제는 자동으로 해결된다) - Mapper에서 resultMap을 선언하여 이를 매칭시키는 작업이 필요 --> 다음과 같이 type에 VO클래스를 적어주고, id는 select태그에서 참조할 때 쓸 이름으로 적어준다 --> property에는 VO 변수명, column에는 DB 컬럼명을 적어준다 --> ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/7AurV/btqVyVRBSyz/xfaBWDqn10wGyZZvQEAF2K/img.png)
* build.gradle에 의존성 추가 - JPA와 mysql연결을 위한 의존성 추가하기 dependencies{ compile('org.springframework.boot:spring-boot-starter-data-jpa') compile('mysql:mysql-connector-java') } * JPA - ORM (Object Relational Mapping) - DB정보를 객체지향으로 손쉽게 활용할 수 있게 해줌 - 쿼리보단 객체에 집중할 수 있게 해줌 # MySQL에서 생성한 user테이블 # com.example.study.model.entity 패키지 > entity 클래스 package com.example.study.model.entity; import lombok.AllArgsC..