본문 바로가기

javascript

배열과 객체의 개념과 차이 (Array vs Object) #1 배열과 객체의 정의 배열의 선언방법 let arr = []; 1 2 3 let arr = []; // 빈 배열 선언 arr = [1, 3, 5, 7, 9]; // 배열에 값 할당 console.log(arr); // --> [1, 3, 5, 7, 9] cs - 배열은 순서가 있는 값으로, 그 순서는 인덱스로 구성이 되어있습니다. (번호는 0부터 매김) - 그 값들은 요소(element)라고 부르며, 각각의 요소들은 쉼표(comma)로 구분해줍니다. - 대괄호'[ ]'를 통해 배열을 만듭니다.​ 객체의 선언방법 let user = {}; 1 2 3 4 5 6 7 let user = {}; // 빈 객체 선언 user = { name: "Jun", email: "jun@gmail.com", city: .. 더보기
[Spring] JDBC 와 JdbcTemplate 그리고 커넥션 풀 JDBC와 JdbcTemplate JDBC JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다. JDBC로 데이터 베이스 중 mysql을 이용하는 방법을 한번 보자. /* Insert 쿼리 실행 */ @Repository public class MemberDao implements IMemberDao { private String driver = "oracle.jdbc.driver.OracleDriver"; private String url = "jdbc:oracle:thin:@localhost:1521:xe"; private String userid = "s.. 더보기
[ES6+: 응용] map과 filter로 하는 안전한 함수 합성 #1 안전한 함수 합성 map으로 합성하기 다음과 같은 합성함수를 선언했다. const f = x => x + 10; const g = x => x - 5; const fg = x => f(g(x)); 위와 같이 함수를 선언했을 때, 아래와 같이 인자값 없이 값을 실행하면 'NaN'으로 에러가 난다. console.log(fg(10)); // 15 console.log(fg()); // NaN - 에러가 난다. 잘못된 값이 들어왔을때, 아무 동작도 하지 않게끔 하려면 어떻게 해야될까? 바로 모나드와 map함수를 통해 안전한 합성을 이룰 수 있다. 위와 똑같은 동작을 하는 함수를 go 함수를 통해 나타내보자. _.go( 10, fg, console.log); // 15 이제, 이것을 안전한 함수 합성을 위.. 더보기
[JS: ES6+] 제너레이터/이터레이터 프로토콜로 구현하는 지연 평가 (1) #1 range와 느긋한 L.range 지연 평가의 정의 컴퓨터 프로그래밍에서 느긋한 계산법(Lazy evaluation)은 계산의 결과 값이 필요할 때까지 계산을 늦추는 기법이다. 지연 평가는 필요 할 때까지 계산을 늦추면서 불필요한 계산을 줄일 수 있다. 이러한 지연 평가는 3가지 이점을 가지고 있다. 불필요한 계산을 하지 않으므로 빠른 계산이 가능하다. 무한 자료 구조를 사용 할 수 있다. 복잡한 수식에서 오류 상태를 피할 수 있다. 그럼 이제부터 일반적인 평가와 지연평가를 비교해보록 하자. range 와 L.range 비교 숫자하나를 받고 그 숫자의 크기만한 배열을 리턴 후에 그 값들을 더하는 range함수를 선언해볼 것이다. const add = (a, b) => a + b; const rang.. 더보기
[JS: ES6+] 이터러블 프로토콜을 따른 map, filter, reduce #1 map 이터러블 프로토콜을 따른 map 간단하게 먼저, map 함수는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다. var array1 = [1, 4, 9, 16]; // pass a function to map const map1 = array1.map(x => x * 2); console.log(map1); // expected output: Array [2, 8, 18, 32] 이제, 이터러블 프로토콜을 따른 map함수를 알아볼건데요, 먼저 map을 사용하지 않은 예제를 봅시다. const products = [ { name: '반팔티', price: 15000 }, { name: '긴팔티', price: 20000 }, { name: '후드티.. 더보기
[JS: ES6+] 제너레이터와 이터레이터 #1 제너레이터와 이터레이터 제너레이터 함수란? ES6에서 도입된 제너레이터(Generator) 함수는 이터러블을 생성하는 함수이다. 제너레이터 함수를 사용하면 이터레이션 프로토콜을 준수해 이터러블을 생성하는 방식보다 간편하게 이터러블을 구현할 수 있다. 또한 제너레이터 함수는 비동기 처리에 유용하게 사용된다. function* gen() { yield 1; yield 2; yield 3; } const genIter = gen(); console.log(genIter.next()); // {value:1, done: flase} console.log(genIter.next()); // {value:2, done: flase} console.log(genIter.next()); // {value:3, d.. 더보기
[JS: ES6+] ES6에서의 순회와 이터러블:이터레이터 프로토콜 #1 기존과 달라진 ES6에서의 리스트 순회 ( for of, for i++) //기존 리스트 순회 const list = [1, 2, 3]; for (var i = 0; i< list.length; i++) { console.log(list[i]); // 1 2 3 } //기존 문자배열 순회 const str = 'abc'; for (var i = 0; i< str.length; i++){ console.log(str[i]); // a b c } //바뀐 리스트 순회 for (const a of list) { console.log(a); // 1 2 3 } //바뀐 문자배열 순회 for (const a of str) { console.log(a); // a b c } #2 Array, Set, Map을.. 더보기