분류 전체보기

728x90

USP : User-Defined Stored Procedure

UFN 또는 UDF : User-Defined Function

 

사용자가 필요에 의해 정의(User-Defined)하여 사용하는 쿼리 집합이자 절차.

파라미터와 리턴값을 지정할 수 있고 둘 다 구조는 같다.

프로시저는 서버(DB)상에서 처리되고 함수는 클라이언트에서 처리되는데 서버상에서 처리되는 프로시저가 속도가 더 빠르다. 

 

차이점

Procedure Function
서버(DB) 상에서 처리 Client 상에서 처리
트랜잭션 가능
(TRY-CATCH, CUD, 프로시저 호출 가능)
트랜잭션 불가능
(TRY-CATCH, CUD, 프로시저 호출 불가능)
리턴 필수 아님 리턴 필수

 


생성

-- USP
CREATE PROCEDURE DBO.USP명 (
    @InParameter		NVARCHAR(30), -- 파라미터타입
    @OutParameter		NVARCHAR(20) OUTPUT,
    @ERRMSG             	NVARCHAR(200) OUTPUT
) AS

BEGIN
    SET NOCOUNT ON; -- 'n개 행이 적용됨' 메시지 표시X(성능 향상됨)
    -- DECLARE @Variable		NVARCHAR(10) --필요 시 변수 선언
    
    BEGIN TRY  -- 트랜잭션 필요한 경우 TRY CATCH
    	BEGIN TRANSACTION
            -- 원하는 CRUD작업 추가
            UPDATE ...
            SELECT @OutParameter = Target_Col FROM TABLE_A WHERE Search_Col = @InParameter 
        COMMIT TRANSACTION
        RETURN 1
    END TRY
    BEGIN CATCH
    	-- 원하는 내용 추가
        SET @ERRMSG = ERROR_MESSAGE()
        ROLLBACK TRANSACTION
        RETURN -1
    END CATCH
    
    SET NOCOUNT OFF;
END
GO


-- UFN
CREATE FUNCTION DBO.UFN명 (
    @InParameter		NVARCHAR(30) -- 파라미터타입
)
RETURNS NVARCHAR(5) -- 리턴타입, RETURNS TABLE 테이블도 가능
AS
-- RETURN ( SELECT문 ) -- 테이블 리턴일 경우
BEGIN
    DECLARE @OutParameter	NVARCHAR(10)
    SELECT @OutParameter = Target_Col FROM TABLE_A WHERE Search_Col = @InParameter 
    RETURN @OutParameter
END
GO

 

수정/삭제

수정은 생성문에서 CREATE 를 ALTER 로 바꾸고 수정하고 싶은 부분을 수정한 후 실행하면 된다.

CUD는 트랜잭션 잊지 말자

-- 수정
ALTER PROCEDURE ...
ALTER FUNCTION ...

-- 삭제
DROP PROCEDURE USP명
DROP FUNCTION UFN명

 

조회 & 실행

-- USP 조회
SP_HELPTEXT USP명

-- 조회
SELECT * 
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE' -- 또는 FUNCTION
AND ROUTINE_NAME LIKE '%USP명%' -- 또는 UFN명
-------------------------------------------------------------

-- USP 실행
DECLARE @OutParameter VARCHAR(20), @ERRMSG VARCHAR(200) -- OUTPUT 값 저장할 변수
EXEC USP명 'InParameter값', @OutParameter OUTPUT, @ERRMSG OUTPUT
SELECT @OutParameter -- 값 찍어보기

-- UFN 실행
SELECT DBO.UFN명('InParameter값') 리턴별칭
728x90
728x90

안시 쿼리란 From절에서 조인을 하며 조인조건을 ON 으로 명시해주어 가독성이 좋은 쿼리다. 조인되는 테이블이 많고 조건이 많을 수록 쿼리의 가독성이 떨어지는데 안시쿼리를 사용하면 From절과 Where절을 각각 한 눈에 볼 수 있다. 특히 조인되는 컬럼과 조회 조건 컬럼을 따로 확인할 수 있어서 편하다. 단, 띄어쓰기나 공백을 활용하여 잘 정리해주어야 한다. 아니면 더 보기 힘들어 질 수 있다.정리 안되면 모든 쿼리가 보기 힘들다..


예시1)

TABLE_A와 TABLE_B가 있고 각 테이블에는 col_a, col_b 라는 컬럼이 있는데 조인 조건은 col_a를 쓴다고 가정하자.

SELECT 
    * 
FROM 
    TABLE_A A, 
    TABLE_B B
WHERE 
    A.col_a = B.col_a

-- ANSI
SELECT 
    *
FROM 
    TABLE_A A 
    INNER JOIN TABLE_B B ON A.col_a = B.col_a

 

예시2)

실제로 사용되는 쿼리는 예시1처럼 단순하지 않다. 약간 더 복잡하게 해보자.

똑같은 조건으로 A, B, C, D, E 까지 있다면? 그리고 col_b 가 "b" 인 값을 조회하고 싶다면? 

SELECT 
    * 
FROM 
    TABLE_A A
    , TABLE_B B
    , TABLE_C C
    , TABLE_D D
    , TABLE_E E
WHERE 
    A.col_a = B.col_a
    A.col_a = C.col_a
    A.col_a = D.col_a
    A.col_a = E.col_a
    A.col_b = 'b'

-- ANSI
SELECT 
    *
FROM 
    TABLE_A A 
    INNER JOIN TABLE_B B ON A.col_a = B.col_a
    INNER JOIN TABLE_C C ON A.col_a = C.col_a
    INNER JOIN TABLE_D D ON A.col_a = D.col_a
    INNER JOIN TABLE_E E ON A.col_a = E.col_a
WHERE
    A.col_b = 'b'

안시 쿼리는 FROM절에 조인컬럼이, WHERE절에 조회조건이 구분되는 것을 볼 수 있다.

728x90
728x90

소지한 노트북에 내장 쿨러가 포함되어 있어서 프로그램이 열심히 돌아가면 쿨러도 열심히 돌아간다...근데 이 Antimalware Service Executable 라는 보안 프로그램이 CPU를 자주, 많이 차지하는데 그때마다 소음이 굉장하다ㅠㅠ 일 열심히 하는 건 좋지만 소음 때문에 불편해서 줄일 방법을 찾아봤는데 설정을 바꾼다던가 제외한다던가 하는 방법은 전혀 먹히지 않았다. 그러다 효과있는 방법을 찾았다. CPU 점유율에 제한을 두는 것이다.


 

검색창에 gpedit.msc 검색해서 열고

 

 

컴퓨터 구성  > 관리 템플릿 > Windows 구성 요소 > Microsoft Defender 바이러스 백신 더블클릭

 

 

스캔 더블클릭

 

 

어쩌구~CPU utilization~저쩌구 한국어로 검사 도중 최대 CPU 사용률 지정 더블클릭

 

 

사용으로 설정하고, 최대 사용률 원하는 만큼 줄여준다!

0 으로 되어있으면 제한이 없다는 뜻이다. 점유를 100% 해버리면 먹통이 되는데 그걸 예방하기 위해서라도 0 이면 바꿔주는 게 좋을 것 같다.

 

 

후기) 최대 사용률을 5% 로 했었는데 쿨러가 막 돌아가길래 이상하다 싶어서 확인해봤더니 나 몰래 8% 이상 쭉쭉 올라가다가 내려갔다. 음...뭐 그래도 전 처럼 몇십퍼까지는 안 올라가서 훨씬 소음이 덜 해졌다.

 

 

2022.04.06 후기 추가)

20% 까지도 올라갔다...이 방법도 글렀나ㅠ 아니면 내 노트북이 검사할 거리가 많은건지...


🔗참고 https://extrememanual.net/37203 감사합니다....👍

728x90
728x90

github.io 와 템플릿을 사용하여 누구나 접속가능한 포트폴리오를 만들 예정이다.

 

설치 순서는

1. Ruby 설치

2. Jekyll 설치

3. 템플릿 연결


#1 Ruby 설치

🔗 https://rubyinstaller.org/downloads/

최신버전 x64 다운로드 후 설치파일 우클릭 관리자권한으로 실행, 라이센스 동의하고 디폴트로 설치

에러나면 x86

 

 

엔터 설치끝, cmd 창에서 Ruby 설치 확인

> ruby --version

 


#2 Jekyll 설치

cmd 창에서 설치(권한오류 뜨면 관리자권한으로 실행)

> gem install jekyll bundle

 

 

jekyll 설치 확인

> jekyll --version

 

 

> jekyll new 저장경로

 

 

jekyll serve 했는데 에러가 난다. 검색해보니 webrick이 빠져서 추가설치하면 된다

🔗 참고 https://junho85.pe.kr/1850 

 

 

webrick 추가설치

> bundle add webrick

 

 

> jekyll serve

 

 

경로로 접속해서 이렇게 뜨면 성공

 


#3 깃허브 Template 연결

유저이름.github.io 레파지토리를 생성할 건데 포트폴리오 템플릿을 사용했다.

템플릿 뒤적거리다가 맘에 드는 걸 찾았다. 감사합니다(※라이센스 확인하고 사용하기)

🔗 https://github.com/techfolios/template 

🔗데모 https://techfolios.github.io/template/   

+) 다시 들어가 보니 만들었을 때 보다 템플릿이 많이 바뀌었다. 참고하시길

Fork 해서 Rename 해주기

 

 

사용할 경로에서 git bash  열고 clone

버전 관리를 위해 Default 폴더를 만들어서 클론 했다.

$ git init
$ git clone 레파지토리URL

 

 

소스 경로로 들어가서 로컬에서 테스트해보기

> jekyll serve

해당 경로로 들어가면 템플릿 데모와 같은 화면이 나온다. 나중에 로컬에서 디버깅용으로 사용하면 된다.

이제 경로를 username.github.io 로 바꾸기 

 

 

_config.yml 파일에서 url을 본인의 깃허브.io 주소로 바꿔주고 basurl 을 "" 로 해주면 끝

보통 템플릿 설명에 어떻게 바꾸는 지 적혀있다.

 

 

누구나 접속할 수 있다

수정은 차차 진행할 예정..


참고링크

🔗 http://mooonchivekr.blogspot.com/2020/08/windows-10-github-pages.html

🔗 https://m.blog.naver.com/hsy2569/221865301644

 


🔗 살짝 꾸며봤다 2022.04.14 - [Web/CSS] - [CSS] 오픈소스로 움직이는 화면 만들기(CodePen)

 

[CSS] 오픈소스로 움직이는 화면 만들기(CodePen)

CodePen 사이트를 활용해서 움직이는 화면을 만들어보자. CodePen은 CSS관련해서 오픈소스가 많은 사이트이고 공개된 소스는 MIT 라이센스를 따르기 때문에 무료이다. Pro모드를 사용한 코드만 저작권

nrmhvr.tistory.com

 

728x90

'GitHub' 카테고리의 다른 글

[GitHub] 깃허브 Readme 꾸미기(feat. VS Code)  (0) 2022.03.10
728x90

블로그 말고도 미루고 미루던 깃허브...이젠 해야 될 때가 왔다. 

요즘 Readme를 프로필로 꾸며서 사용하던데  본격적인 사용 전에 나도 한 번 꾸며볼려고 한다.


#1. Repo 생성

새로운 Repo를 생성하고 이름을 owner와 똑같이 해준다.

그러면 밑에 하늘색 부분에 프로필을 꾸밀 수 있는 특별한 Repo라면서 설명이 나온다.

 

 

생성하고 깃허브 프로필에 들어가면 이렇게 나온다. markdown으로 수정해서 commit할 수 있다.

 

 


#2. 수정

수정 툴로는 VS Code를 사용했다. 요즘 많이 쓴다길래 한 번 써보면서 익숙해질 겸 설치해봤다. 폴더 하나 만들어서 clone 하고 VS Code로 Readme.md를 열어서 오른쪽 위에 preview 버튼을 누르면 markdown 미리보기를 할 수 있다.

깃허브 프로필에서 봤던 것과 똑같이 나온다.

 

 

꾸미기 위한 구성은 이름(헤더), Stats, 업무에 쓰는 것들, 스킬 스택(사용해본 기술들)으로 정했다.

Top languages 위젯을 쓸려고 했는데 업무 소스는 깃허브에 올리지 않아서 언어가 안 뜨니까 그냥 뱃지를 사용했다.

다크모드, 라이트모드 둘 다에서 괜찮은 위젯 색깔 고르기가 은근 어려웠다.

 

 

위젯 점수가 후해서 좋다...위젯과 뱃지를 나란히 하기 위해 <table>을 사용해서 <td> 에 각각 넣어줬다. 처음에는 마크다운 테이블로 했는데 헤더 밑에 구분선이 맘에 들지 않아서 태그를 사용해봤다.

 

 


#3. 커밋

 

커밋 했더니 테이블 테두리가 너무 보기싫다...style로 해봐도 안 없어진다.

 

 

 


#3 - 1. 커밋...커밋...

테두리를 너무 없애고싶어서 열심히 찾아본 결과 방법을 찾긴 했다.

🔗참고 https://stackoverflow.com/questions/19075023/flow-text-around-an-image-in-github-markdown

<img> 태그에서 align을 사용하는 방법이다. 묘하게 넓은 간격이 좀 맘에 안 들지만 지금은 이게 최선인 것 같다.

 

🔗 결과 소스 https://github.com/nrmhvr/nrmhvr/blob/main/README.md?plain=1 

 

GitHub - nrmhvr/nrmhvr

Contribute to nrmhvr/nrmhvr development by creating an account on GitHub.

github.com


참고

🔗아이콘 https://gist.github.com/rxaviers/7360908

🔗 위젯 https://github.com/anuraghazra/github-readme-stats

🔗 뱃지 https://github.com/Ileriayo/markdown-badges

🔗 뱃지 직접 만들 때 https://shields.io

728x90

'GitHub' 카테고리의 다른 글

[GitHub] github.io 포트폴리오 만들기-템플릿 연결  (0) 2022.03.24