2017년 10월 18일 수요일

DB에서 구분자가 들어간 파라메터를 한줄로 출력

업무를 하다 보니...

DB 프로시저 등에 파라메터를 여러개 전달해서

구분자로 분해해서 쿼리의 IN 문장에 쓰고 싶은 경우가 많은데..

정작 찾아보니... 없다!!

split 구현한것들은 내가 원하는 형태가 안 나오길래.. 직접 구현..

목표는 '5040:5050:5060:' --->'5040','5050','5060' 요 딴식이다!!

이하 mssql 스칼라 함수!!

(
P.S. 기껏 만들어 놨더니.. 생각대로 안됨... 내가 상상한 사용법으로 안됨..

https://stackoverflow.com/questions/2944511/sql-server-in-clause-with-a-declared-variable

위의 링크대로 해야 함..
)


  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5. -- =============================================
  6. -- Author:     
  7. -- Create date: <2017-10-18>
  8. -- Description: <특정구분자로 결합된 문자 집합을 IN에 사용할 수 있는 형식으로 변경 반환 '5040:5050:5060:' --->'5040','5050','5060' >
  9. -- 구분자 마지막까지 붙일것!!!
  10. -- SELECT dbo.UFN_CONVERT_PARAMS('5040:5050:5060:',':')
  11. -- =============================================
  12. ALTER FUNCTION dbo.UFN_CONVERT_PARAMS(
  13.     @PARAMS VARCHAR(5000),
  14.     @TOKKEN VARCHAR(10)
  15. )
  16. RETURNS VARCHAR(5000)
  17. AS
  18. BEGIN
  19.     DECLARE @RTN    VARCHAR(5000)
  20.     DECLARE @TMP_CNT    INT
  21.     DECLARE @loop INT
  22.     SET @TMP_CNT = LEN(@PARAMS)-LEN(REPLACE(@PARAMS,@TOKKEN,''))    -- 슬래시 갯수 추출
  23.     SET @loop = 0
  24.    
  25.     DECLARE @SPLIT_SP   VARCHAR(500)    --분리한 값 저장
  26.     DECLARE @SPLIT_REMAINS  VARCHAR(500)
  27.     DECLARE @SPLIT_TMP_CD   VARCHAR(5)
  28.     SET @SPLIT_SP = ''
  29.     SET @SPLIT_TMP_CD = ''
  30.     SET @SPLIT_REMAINS = @PARAMS
  31.     WHILE(@loop < @TMP_CNT)
  32.     BEGIN
  33.         SET @SPLIT_TMP_CD = LEFT(@SPLIT_REMAINS,CHARINDEX(@TOKKEN,@SPLIT_REMAINS)-1)
  34.         SET @SPLIT_SP = @SPLIT_SP + '''' + @SPLIT_TMP_CD + '''' + ','
  35.         SET @SPLIT_REMAINS = REPLACE(@SPLIT_REMAINS,LEFT(@SPLIT_REMAINS,CHARINDEX(@TOKKEN,@SPLIT_REMAINS)),'')
  36.         SET @loop = @loop + 1      
  37.     END
  38.     RETURN LEFT(@SPLIT_SP, LEN(@SPLIT_SP) - CHARINDEX(',', reverse(@SPLIT_SP)))
  39. END
  40. GO

2017년 10월 16일 월요일

[Google Cloud 번역-0]앱 엔진 환경 선택


내맘대로 번역

앱 엔진 환경 선택

당신은 유연한 환경이나 표준 환경을 사용하여 앱 엔진에서 당신의 응용 프로그램들을 구동시킬수 있다. 또한 당신의 응용 프로그램에 두개의 환경을 사용하도록 선택할 수도 있고 서비스에 각 환경의 개별적인 이점을 얻을 수 있게 허용할 수도 있다.

앱 엔진 환경을 선택하라

microservice 아키텍처를 사용하여 응용 프로그램을 구성하면, 특히 두 환경을 모두 사용하기로 결정한 경우 App Engine에 가장 잘 부합된다. 응용 프로그램과 해당 서비스에 더 적합한 환경을 결정할 때 고려해야 할 몇 가지 요소가 있다. 다음 섹션으로 응용 프로그램의 요구 사항을 가장 잘 충족시키는 환경을 파악하고 이해하시오.

유연한 환경을 선택했다면

앱 엔진 유연한 환경을 사용한다는 것은 응용 프로그램 인스턴스가 구글 연산 엔진 가상 머신 (VM)의 Docker 컨테이너 내에서 실행된다는 것을 뜻한다.
일반적으로, 유연한 환경에 적합한 응용 프로그램들은 일정한 트래픽을 수신하거나, 정기적인 트래픽 변동이 생기거나, 점차적으로 매개변수들이 조정되는 것들이다.
유연한 환경은 다음과 같은 특징이 있는 응용 프로그램들에 최적화 되어 있다:
  • 지원되는 프로그래밍 언어의 모든 버전으로 소스 코드를 작성함: 
    PythonJavaNode.jsGoRubyPHP, 또는 .NET
  • 사용자 정의 런타임이 포함되었거나 다른 프로그래밍 언어로 작성된 소스코드가 포함된 Docker 컨테이너에서 구동.
  • imagemagick, ffmpeg, libgit2, Ehsms apt-get을 통한 그 밖의 운영체제를 포함하는, 다른 소프트웨어에 의존.
  • 네이티브 코드가 포함된 프레임웍을 사용하거나 의존.
  • 연산 엔진 네트웍에 있는 당신의 클라우드 플랫폰 프로젝트 리소스나 서비스에 접근.

표준 환경을 선택했다면

앱 엔진 표준 환경 사용은 당신의 응용 프로그램 인스턴스가 하나의 샌드박스 내에서 구동되고, 다음에 나열된 지원 언어의 런타임 환경을 사용한다는 것을 뜻한다.

일반적으로, 표준 환경에서 실행되는 응용 프로그램을 빌드하는 것이 더 제한적이고 복잡하지만, 응용 프로그램의 빠른 크기 조정 시간을 가질 수 있다.

표준 환경은 다음과 같은 특징이 있는 응용 프로그램에 최적화 되어 있다:
  • 지원되는 프로그래밍 언어의 특정 버전으로 소스 코드가 작성함:
    • Python 2.7
    • Java 7, Java 8
    • PHP 5.5
    • Go 1.6
  • 무료 또는 저렴한 비용으로 운영되며, 필요한 곳과 필요할 때만 비용을 지불한다. 예를 들어, 당신의 응용 프로그램이 트래픽이 없다면, 0 인스턴스로 조정 할 수 있다.
  • 즉각적인 크기 조정이 요청되는 급작스럽고 극단적으로 트래픽이 치솟음을 겪음.
고수준 기능 비교
다음 표는 두개의 환경에 대한 차이점에 대한 요약이다:
기능유연 환경표준 환경
인스턴스 시동 시간 수분 수초
최대 요청 시간만료 60 분 60 초
백그라운드 스레드 가능 제한적인 가능
백그라운드 프로세스가능 불가능
SSH 디버깅 가능 불가능
크기 조정 수동, 자동 수동, 기본으로 자동
로컬 디스크에 기록 가능, 임시적 (각 VM 시동시 디스크 초기화됨) 불가능
런타임 수정가능(Dockerfile 통해서) 불가능
자동 내부 보안 패치 가능(컨테이너 이미지 런타임 제외) 가능
네트워크 접근 가능 앱 엔진 서비스(아웃 바운드 소켓 포함)를 통해서만, 결제가 가능한 Python, Go 및 PHP 애플리케이션에만 사용할 수 있음.
써드-파티 바이너리 설치 지원가능 불가능
지역 North America, Asia Pacific, 또는 Europe North America, Asia Pacific, 또는 Europe
가격 vCPU, 메모리, 그리고 영구 디스크들의 사용에 기반함 instance 시간에 기반함
환경의 심도있는 비교는, 언어의 안내서를 참고하라: PythonJavaGo, 또는 PHP.

유연 환경을 연산 엔진과 비교

유연한 환경은 연산 엔진 VM에서 인스턴스 내의 서비스로 구동되지만, 유연한 환경은 다음 같은 점에서 연산 엔진과 차이가 있다:
  • 유연한 환경에서 사용되는 VM 인스턴스는 매주 재시작된다. 재시작 중에는, 구글의 관리 서비스는 필요한 운영 체제 및 보안 업데이트를 적용한다.
  • 항상 연산 엔진 VM 인스턴스에 root로 접속한다. 기본으로, 유연한 환경내의 VM 인스턴스에 대한 SSH 접근은 비활성화이다. 당신이 선택한다면, 앱의 VM 인스턴스에 root 접근을 활성화 할 수 있다.
  • 유연한 환경에서 사용되는 VM 인스턴스의 지리적 영역은 Cloud Platform 프로젝트의 App Engine application에 지정하는 위치에 따라 결정된다. Google의 관리 서비스는 최적의 성능을 위해 VM 인스턴스가 함께 배치되도록 한다.

표준 환경에서 유연 환경으로 이전

당신에게 표준 환경에서의 응용 프로그램이 있다면, 몇개의 서비스를 유연 환경으로 옮기고 싶어할 수 있다. 지침으로,  PythonJavaGo, 그리고 PHP의 권장 사항을 참고하라.
특정 서비스의 이전은, PythonJavaGo, 그리고 PHP에 대한 지침서를 참고하라.

BE Band (비밴드) - 2024년 03월 02일 잠실새내 락앤롤욱스 공연

나의 10~20대를 보낸 잠실에서의 공연.. 오랜만에 가보니.. 여기가.. 마눌님과 자주 가던 영화관이었는데... 여긴 뭐가 있었는데... 란 추억도 떠올리며 기분좋게 감.​ 공연장은 좀 협소한 편이었고, 인천의 쥐똥나무 보다는 약간 크고... 인천 ...