본문 바로가기

분류 전체보기

[Spring] 따라해보는 스프링 프로젝트 생성 이클립스를 통한 메이븐 프로젝트 생성 spring 프로젝트를 생성하는 여러 방법이 있는데, 그중 이클립스를 통하여 생성해 볼 것이다. 먼저, Maven이 무엇인지 알아보자. Maven은 자바 프로젝트의 빌드를 자동화해주는 빌드 툴로, 자바 소스를 컴파일하고 패키지 해서 배포하는 일을 자동화해주는 것이다. 이어서 Maven이 참조하는 설정 파일을 보자. 1) settings.xml maven tool 자체에 관련된 설정을 담당한다. 2) pom.xml POM(Project Object Model)을 설정하는 부분으로 프로젝트 내 빌드 옵션을 설정하는 부분이다. pom.xml 파일은 ...로 둘러싸여 section별로 여러 정보를 나타내며 설정할 수 있다. (pom.xml파일 태그) 정리하자면, pom.xm.. 더보기
[Spring] 스프링 프레임워크란 도대체 무엇인가? 프레임 워크란 무엇인가? 스프링 프레임워크를 배우기 위해선 사전 지식이 필요한데, JAVA, JSP 학습을 하고 난 후 보는 걸 추천한다. 먼저, 프레임워크는 개발자들이 개발을 하기위한 어떠한 업무를 추상적으로 정의를 해놓은 틀이라고 할 수 있다. 내가 처음 작업을 할 때 아무 틀없이 작업을 하는 것보다, 어떠한 정해진 틀이 있어서 그 안에서 작업을 하면 훨씬 더 수월할 것이다. 즉, 프레임워크는 추상적으로 정의된 틀로, 그 틀을 기반으로 개발자들은 그것을 구현만 하면 된다. 스프링 프레임워크 모듈 아래는 스프링 프레임워크에서 제공하는 있는 모듈 중 일부이다. 스프링 프레임워크에서 제공하고 있는 모듈를 사용하려면, 모듈에 대한 의존설정을 개발 프로젝트에 XML 파일등을 이용해서 개발사가 직접 하면된다. .. 더보기
[ES6+: 응용] 프론트엔드에서 활용하기 (2) [ES6+: 응용] 프런트엔드에서 활용하기 (1) : https://opentogether.tistory.com/82 [ES6+: 응용] 프론트엔드에서 활용하기 (1) #1 프론트엔드에서 함수형/이터러블/동시성 프로그래밍 ES6 템플릿 리터럴 활용 이후에 템플릿 리터럴을 통해 프로그래밍을 해볼 것인데, 템플릿 리터럴의 사용법은 아래와 같다. const a = 10; const b = 5; con.. opentogether.tistory.com 클래스 대신 함수로 하는 추상화 앞 챕터에서 배웠던 코드는 중복이 많았는데, 이를 줄여나가는 추상화를 시켜보자. 먼저, Ui.message를 "확인, 취소"창뿐 아니라, "경고"창도 코드 하나로 구현되게끔 해주자. const Ui = {}; Ui.message = .. 더보기
[ES6+: 응용] 프론트엔드에서 활용하기 (1) #1 프론트엔드에서 함수형/이터러블/동시성 프로그래밍 ES6 템플릿 리터럴 활용 이후에 템플릿 리터럴을 통해 프로그래밍을 해볼 것인데, 템플릿 리터럴의 사용법은 아래와 같다. const a = 10; const b = 5; console.log(`${a} + ${b} = ${a + b}`); // 10 + 5 = 15 이미지 목록 그리기 실습할 CSS 코드 더보기 실습할 JSON 데이터 더보기 [ { name: "HEART", url: "https://s3.marpple.co/files/m2/t3/colored_images/45_1115570_1162087.png" }, { name: "하트", url: "https://s3.marpple.co/f1/2019/1/1235206_1548918825999_7.. 더보기
[ES6+: 응용] 시간을 이터러블로 다루기 #1 take, takeWhile, takeUntil로 코드 다루기 takeWhile, takeUntil 먼저 range와 take를 다시 알아보자. 위 두 개는 즉시 평가되는 것과 지연 평가되는 것으로 나뉘는데 이를 해석해보면 다음과 같다. _.go( _.range(10), /* 0 ~ 9 까지의 배열 */ _.take(3), /* 앞에서부터 3개만 자르기 */ _.each(console.log)); // 0 1 2 _.go( L.range(10), /* 0 ~ 9 까지의 이터러블, 최대 10번 수행 */ L.take(3), /* 최대 3개의 값이 필요하고, 최대 3번의 일을 수행 */ _.each(console.log)); // 0 1 2 위 항목에서 range이후에 delay(1000)이 들어간다면.. 더보기
[ES6+: 응용] 사용자 정의 객체를 이터러블 프로그래밍으로 다루기 #1 사용자 정의 객체를 다루기 map, set 다루기 자바스크립트의 기본객체가 아닌 추가적으로 만들어인 사용자 정의 내장 객체 역시도 이터러블로 프로그래밍을 다룰 수 있다. 먼저 Map을 알아보자. let m = new Map(); m.set('a', 1); m.set('b', 2); m.set('c', 3); 위와 같은 Map도 이터러블로 프로그래밍 하고 다시 새로운 Map으로 생성이 가능하다. _.go( m, _.filter(([k, v]) => v % 2), entries => new Map(entries), console.log); // Map(2) {"a" => 1, "c" => 3} 이어서 Set같은 경우도 마찬가지이다. let s = new Set(); s.add(10); s.add(20).. 더보기
[ES6+: 응용] 객체를 이터러블 프로그래밍으로 다루기 #1 객체를 다루는 함수, 이터러블 프로그래밍화 시키기 values 다루기 다음과 같은 객체가 있다고 보자. const obj1 = { a: 1, b: 2, c: 3, d: 4 }; 먼저 위코드의 values 값들을 콘솔을 통해 출력해보자. console.log(Object.values(obj1)); // [1, 2, 3, 4] 위 처럼 value값들을 뽑아낼 수 있으며, 위 값들을 go함수를 통해 값을 뽑아내는 함수를 보자. _.go( obj1, Object.values, _.map(a => a + 10), _.take(2), _.reduce((a, b) => a + b), console.log); // 23 위 값에서 console.log를 하기까지 단 2개의 값이 필요했지만, 사실상 모든 value.. 더보기
[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 이제, 이것을 안전한 함수 합성을 위.. 더보기