목록전체 글 (134)
바닥코딩

GIT에서는 commit을 하면 초록색으로 그 날 커밋에 대한 여부를 확인 할 수 있습니다. 일명 '잔디 심기'라고 불리는 git의 특성인데 git에서 중요한 기능은 아니지만 개발 or 공부를 하게 되면서 심어지는 잔디를 보며 나름의 뿌듯함을 느끼는 요소가 개발욕구를 끌어올리는 것 같습니다. 구글에만 1일 1커밋을 검색해 보면 여러 개발자들이 하루에 최소 하나 이상의 커밋을 진행하며 열심히 개발 공부를 하는 모습을 볼 수 있습니다. 이런 잔디가 뺴곡히 심어진 화면을 보면 저도 모르게 나도 열심히 해야 하겠다는 자극이 되고는 합니다. 이건 저의 잔디? 입니다. 작년 기준 10월 부터는 사업이 많이 바쁜지라 개인적인 공부를 하지 못했네요 ,, 이런걸 보면서 반성도 하게 되고 좀더 열심히 채워보겠다는 욕심도 ..

클로저? 자바스크립트에는 자바스크립트 만의 고유의 개념은 아니지만 '클로저' 라는 것이 존재합니다. 정의를 살펴보면 “A closure is the combination of a function and the lexical environment within which that function was declared.” - 클로저는 함수와 그 함수가 선언됐을 떄의 렉시컬 환경과의 조합이다 - 이런 의마라고 한다는데 ... 사실 이해가 되지 않았습니다. 그래서 클로저를 사용한 여러 예제를 찾아보고 실제 사용되는 의미를 파악해본 결과 일반적으로 클로저는 어떤 함수가 자신의 스코프가 아닌 외부에서 선언된 변수에 접근 하는것을 의미한다라는 정의를 내릴 수 있었습니다. 사실 이말도 이해가 안될거라고 생각합니다.....

순환문은 일정한 범위의 소스 코드 문장을 반복적으로 수행하는 기능을 제공합니다. 당연히 순환문에서는 무한루프를 방지하기 위해 탈출문이 존재하며 순환문은 LOOP, WHILE, FOR등을 제공합니다. LOOP BEGIN LOOP --충족조건이 없는 무한 루프 NULLL; end loop; end; LOOP 문의 일반적인 구조는 위와 같습니다 위와 같은 조건일 경우 LOOP 안쪽에 문장을 반복하게 되는데 따로 조건이 없기 떄문에 직접 실행을 해본다면 무한루프에 빠지는것을 확인 할 수 있습니다. 이러한 LOOP 문의 탈출 조건을 지정하기 위하여 탈출문이 존재합니다 EXIT WHEN declare is v_num number :=1; begin loop DBMS_OUTPUT.PUT_LINE('v_num =' |..

PL/SQL 은 논리 조건에 따라서 다른 문장을 실행 할 수 있도록 조건 분기문을 제공합니다. 조건분기문은 IF문과 CASE문 두가지를 제공합니다 IF 조건문 IF 조건문은 타 프로그래밍 언어의 IF와 유사합니다. 일단 예제를 통해 알아보겠습니다. create or replace procedure Iftest_proc is v_cnt number; v_type STRING(10); begin select count(*) into v_cnt from USER_TABLES where TABLE_NAME ='EMP'; if v_cnt > 0 then DBMS_OUTPUT.PUT_LINE('테이블 emp 가 존재 합니다'); elsif dbms_output.PUT_LINE('테이블 emp가 존재 하지 않습니다'..

PL/SQL의 궁극적인 목표는 SQL의 한계를 극복하는 것이지만 가장 중요한 것은 SQL을 실행시키는 기능이 가장 중요합니다. 결국 SQL을 보조하기 위해 만들어진 언어기 떄문에 PL/SQL에 내 SQL 처리 기능을 매우 강력하고, 기본 SQL을 수행할 수 있어야 올바른 활용이라 할 수 있습니다. SQL에서 가장 많이 쓰이는 SELECT, INSERT , UPDATE, DELETE 문 등을 통해 알아보겠습니다. SELECT create or replace procedure fn_SalRate is v_ename emp.ENAME%type; - --EMP 테이블의 타입 복사 v_empno emp.EMPNO%type; v_rate number := 1.1; v_sal number; begin v_empno ..

어떤 언어든 프로그래밍 언어를 접해보셨다면 변수, 상수에 대한 내용을 알고 있을겁니다. 프로그램의 실행을 위해 계산에 사용될 값을 ~~~ 이런 설명에 대해서는 생략하고, 변수와 상수는 PL/SQL에서 어떻게 선언하는지 또 리터럴은 무엇인지에 대해 예제를 통해 알아보겠습니다. 변수 DECLARE v_num number; --변수 선언 begin v_num := 10; -- 변수에 값 넣기 end; 변수는 위와 같이 선언 되고 사용되어집니다. 여기서 주의 해야할점은 = 이 아니라 := 로 작성을 해주어야 10이 대입디 된다는 점입니다 PL/SQL에서 = 대입이 아니라 동등 연산을 의미합니다 상수 DECLARE c_pi CONSTANT NUMBER := 3.14; BEGIN DBMS_OUTPUT.PUT_LIN..

앵커(%)를 사용한 데이터타입 지정 데이터 타입을 지정하는 방법중에서 특이하면서도 유용한 방식이 있는데 변수나 컬럼, 테이블 , 커서 등 기존 선언을 참고하여 데이터 타입을 지정하는 방법이 있습니다. 이를 앵커라고 부르며(오라클에서 공식적으로 사용하는 언어는 아니라고 합니다.) 앵커를 활용하면 선언문이 간결해지는 것과 차후에 참조되는 타입이 변경되더라고 참조하는 쪽은 수정을 하지 않아도 된다는 장점을 가지고 있습니다 %TYPE DECLARE v_ename emp.ename%TYPE; -- 특정 컬럼의 타입이랑 동일하게 생성 v_ename2 v_ename%TYPE; -- 특정 변수의 타입이랑 동일하게 생성 %TYPE BEGIN SELECT ename INTO v_ename FROM EMP WHERE ROW..

PL/SQL 기본 구조 PL/SQL은 이전 포스트에 특징에서 다루었듯 블록 구조로 이루어져 있습니다. DECLARE v_str VARCHAR2(100); -- 선언부 BEGIN -- 시작 v_str := 'Hello world'; DBMS_OUTPUT.PUT_LINE(v_str); EXCEPTION WHEN OTHERS THEN -- 예외처리 DBMS_OUTPUT.PUT(SQLERRM); END; -- end 선언부 : DECLARE 와 BEGIN 사이에 위치하며 타입, 상수 , 변수 , 예외 , 커서 서브프로그램들이 오는 구역 BEGIN ~ END : 실행부에 해당하며 실제로 데이터를 처리하는 문장이 놓입니다 실행부는 반드시 있어야 하는 필수 영 역이며 END 는 ; 으로 끝나야 합니다.