인라인 뷰는 FROM 절에 사용되는 서브쿼리를 의미한다.
select 컬럼,~~~~ //메인쿼리
from (select 컬럼,~~~~ from~~~~) //서브쿼리(인라인뷰)
인라인 뷰를 통해 테이블을 일시적으로 생성하고, 인라인 뷰에 대해서 rounum을 이용하여 쿼리문을 실행하면
원하는 결과도 검색가능 하다.
인라인 뷰는 FROM 절에 사용되는 서브쿼리를 의미한다.
select 컬럼,~~~~ //메인쿼리
from (select 컬럼,~~~~ from~~~~) //서브쿼리(인라인뷰)
인라인 뷰를 통해 테이블을 일시적으로 생성하고, 인라인 뷰에 대해서 rounum을 이용하여 쿼리문을 실행하면
원하는 결과도 검색가능 하다.
DECODE 함수는 오라클 쿼리에서 가장 많이 사용하는 함수 중 하나이다.
프로그래밍에서의 if else 와 비슷한 기능을 수행한다.
간단한 사용방법은 아래와 같다.
DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3..........)
아래처럼 조건에 맞지 않은것은 마지막에 결과3 으로 뺄수 있다.
조건에 안맞은 것은 모두 12로 줘봤다.
순수함수에 이어 일급함수가 무엇인지 알아보자.
일급함수의 정의는 함수를 값으로 다룰수 있다. 이다.
함수도 그냥 값이라는 것이다.
let f1 = function(a) { return a*b );
이처럼 f1 변수에 function(a) { return a*b ) 라는 함수는 넣는것이다.
다시말해 f1 변수에 function(a) { return a*b ) 라는 값을 넣는것이다.
함수도 값이 라는것을 생각하고 또 생각하면
function f2( f ) {
return f();
}
이렇게도 쓸수있다.
그리고 console.log( f2(function() { return 10; }) );
이렇게 출력도 할수 있다.
console.log( f2(function() { return 10; }) ); 는 곧,
console.log( 10 ); 이기 때문에 결과값은 10이 출력된다.
이처럼 함수형 프로그래밍은 앱, 함수의 구성요소, 더 아나가 언어 자체를 함수처럼 여기도록 만들고, 이러한 함수
개념을 가장 우선순위에 놓는다.
인라인 뷰(inline view)란? (0) | 2020.07.24 |
---|---|
오라클 DECODE (0) | 2020.07.24 |
순수함수가 무엇? (0) | 2020.07.24 |
함수형 프로그래밍 (0) | 2020.07.24 |
프레임 워크와 라이브러리의 차이 (0) | 2020.07.24 |
함수형 프로그래밍에서 순수함수라는 것이 나온다.
순수함수는 말 그대로 순수한 함수다.
function add(a,b){
return a+b;
}
이것이 순수함수인가?
그렇다.
순수함수를 결정하는 조건이 몇가지가 있다.
첫번째로 항상 동일한 인자를 주면 항상 동일한 값을 리턴한다. 이다.
let c=20;
function add(a,b){
return a+b+c;
}
이것은 순수함수인가???
아니다.
조건 두번째로 부수효과가 없어야한다.
외부의 인자가 함수 안에서 변경이 되면 안된다.
c는 얼마든지 바꿀수 있다.
그럼 const 로 선언을 하면 될까?
const c=20;
function add(a,b){
return a+b+c;
}
이렇게 되면 add는 순수함수가 된다.
c는 절대로 바뀌지 않으니까 말이다.
객체의 경우도 보자.
let obj1={ val : 10 };
function add4(obj, b){
obj.val = obj.val+b;
}
이것도 역시 순수함수가 아니다.
obj1 객체의 val의 값이 바뀌기 떄문이다.
이걸 해결하려면 그냥 객체를 통째로 return 하면 된다.
이렇게 말이다.
let obj1={ val : 10 };
function add4(obj, b){
return { val : obj.val + b };
}
다음은 일급함수가 무엇인지 알아볼 것이다.
오라클 DECODE (0) | 2020.07.24 |
---|---|
일급함수가 무엇? (0) | 2020.07.24 |
함수형 프로그래밍 (0) | 2020.07.24 |
프레임 워크와 라이브러리의 차이 (0) | 2020.07.24 |
디자인 패턴 종류 (0) | 2020.07.24 |
함수형 프로그래밍이 다들 참 어렵다고들 한다.
먼저 함수형 프로그래밍이 뭔지부터 알아보자.
함수형 프로그래밍이란 성공적인 프로그래밍을 위해 부수효과(잡일제거)를 미워하고 조합성을 강조하는 프로그래밍
이라고 할수있다.
이때 부수효과를 미워한다 라는 말에서 나오는 함수형 프로그래밍 종류가 순수함수라는 것이다.
순수함수는 다음 게시글에.
일단 프레임 워크란 뭘까?
소프트웨어의 특정 문제를 해결하기 위해 상호 협력하는 클래스와 인터페이스의 집합. 이라고 검색하면 나온다.
쉽게 말해 프레임 워크란 개발시 필수적인 코드, 알고리즘, 데이터베이스 연동 등과 같은 기능들을 위해 어느정도
뼈대를 제공해 주는 것이다.
그렇다면 라이브러리는 뭘까?
라이브러리는 특정 기능에 대한 도구 or 함수들을 모든 집합이라고 한다.
라이브러리는 프로그래머라면 누구나 써봤을 것이고 써보지 않으려 노력해도 어차피 쓰고있는 것이다.
특정 기능에 대한 도구들이라고? 그럼 둘다 똑같은거네?
라고 나도 생각했다.
하지만 차이점을 짚어보자.
둘의 차이는 흐름에 대한 제어 권한이 어디 있냐의 차이이다.
프레임워크는 전체적인 흐름을 자체적으로 가지고 있고, 프로그래머가 그 안에 필요한 코드를 작성하는 반면
라이브러리는 사용자가 흐름에 대해 제어를 하며 필요에 따라 마음대로 가져다가 쓰는 것이다.
이 내용을 한 문장으로 정리하자면 FRAMEWORK에는 IOC가 적용되어 있다는거다.
전체적인 흐름을 자체적으로 가지고 개발자가 해야 할 일을 프레임 워크가 하는거다.
팩토리 패턴 - 객체 생성 처리를 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴
싱글톤 패턴 - 전역변수를 사용하지 않고, 객체 하나만 생성하도록 하며 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴
프록시 패턴 -
어댑터 패턴
MVC 패턴
커맨드 패턴 - 실행될 기능을 캡슐화함으로서 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴
즉, 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용하고자 할때 유용하다.
템플릿 패턴
함수형 프로그래밍 (0) | 2020.07.24 |
---|---|
프레임 워크와 라이브러리의 차이 (0) | 2020.07.24 |
디자인 패턴 (0) | 2020.07.24 |
Dispatcher Servlet 이란? (0) | 2020.07.24 |
기본형 변수와 참조형 변수 (0) | 2020.07.24 |
개발자에게 디자인 패턴이란 무엇인가?
디자인 패턴이란 많은 실무 프로그래머들이 인정한 효율적인 코딩방법 or 구조 라고 보면 된다.
효율적인 코딩방법은
1. 코드가 명확단순
2.모듈(클래스나 함수)은 한가지 기능만 하도록 세분화
3.재사용성이 높음
4.유지보수가 쉬움
5.리소스의 낭비가 없거나 최소화
라고 볼수있다.
이러한 효율적인 코드를 만들기 위해 '디자인 패턴'을 익혀야 한다.
디자인 패턴은 외우는게 아니라, 직접 코드에 적용해보고 익혀야 한다.
차후 여러 상황에 대해 어떤 패턴을 적용 시킬것인가에 대한 판단 및 적용을 할줄 아는 능력이 필요하다.
대표적인 패턴 7가지가 있다.
팩토리 패턴
싱글톤 패턴
프록시 패턴
어댑터 패턴
MVC 패턴
커맨드 패턴
템플릿 패턴
이것은 다음 게시글에 설명할 것이다.
프레임 워크와 라이브러리의 차이 (0) | 2020.07.24 |
---|---|
디자인 패턴 종류 (0) | 2020.07.24 |
Dispatcher Servlet 이란? (0) | 2020.07.24 |
기본형 변수와 참조형 변수 (0) | 2020.07.24 |
apache와 tomcat을 구분하자 (0) | 2020.07.24 |