본문 바로가기

전체 글

(129)
[css] 단위 (px, pt, em, rem, vh, vw) 절대단위와 상대단위 ​ 절대단위 : in, cm, mm, pt, px가 있으며 출력장치(모니터)의 물리적 속성을 아는 경우 효율적 상대단위 : %, em, rem, vh, vw이 있으며 기종간, 플랫폼 간의 호환성을 유지하는데 유리 ​ ⇒ 모바일/태블릿/웹사이트 모두에 호환되는 반응형 어플리케이션을 만들고자 한다면, 상대단위를 사용하는 것이 유리하다. 절대단위 ​px 와 pt ​ px (pixel) 절대값으로 사용 되는 단위이다. 고정된 값이기 때문에 사용하기 편하고 이해하기도 쉽지만 반응형 웹사이트를 만들때에는 적절하지 않은것 같다. ​ pt (point) 1 px = 0.75 pt ​ ​ 상대단위 ​% ​ 부모 엘리먼트의 size를 기준으로 한 상대적인 size ​ %를 기준으로 max-width, ..
[Javascript] jquery 비동기 처리 (promise, $.when.apply) UI 단을 jquery로 개발할때 여러 rest api를 사용해서 데이터를 조합하고 화면을 그리는 일을 많이 하게 된다. 그러나 ajax로 비동기 api 호출 시 api 종료 시점을 판단하고 그때 무언가 하고 싶을때는 어떨게 하면 될까? 아래와 같이 rest api를 호출하는 함수가 하나 있다고 하자 function testCall(url) { $.ajax({ type : "GET" ,url : url ,async : true ,dataType: null ,beforeSend: function (xhr) { } ,success : function(response) { console.log(response); } ,error : function(jqXHR, error) { } }); } function c..
[Kubernetes] 쿠버네티스 Service 개념 - ClusterIP, NodePort 서비스(Service) 가 필요한 이유 파드는 일회성이다. 노드에서 파드가 제거되면 새로운 파드가 생성되거나, 클러스터의 노드에 장애가 발생되면 다른 노드로 이동된다. 쿠버네티스의 파드는 노드에 스케쥴된 후 시작하기 전에 IP 주소를 할당하기 때문에 미리 파드의 IP 주소를 알기 어렵다. Scale-out(HPA) 는 여러 파드가 같은 서비스를 제공하는 것을 의미하는데 각 파드는 개별 IP 주소를 가지게 된다. 클라이언트는 서비스를 제공하는 파드의 수와 IP를 신경 쓸 필요가 없어야 한다. -> 서비스 (Service)를 사용하면 파드가 클러스터 안 어디에 있던 고정 IP 주소 (Endpoint IP Address)를 통해서 접근할 수 있다. CluserIP 기본 서비스 타입으로 클러스터 내부에서 사용이..
[Kubernetes] Controller - Replicaset 레플리카셋(Replicaset)의 3가지 구성 요소 label selector 레플리카셋에 의해 관리될 파드를 선택할 레이블 정의 .spec.template.labels의 필드와 spec.selector.matchLabels가 같아야 한다. 레이블을 기준으로 파드가 관리되므로 실행 중인 파드를 중단하거나 재시작하지 않고 레플리케이션 컨트롤러가 관리하는 파드 변경 가능 replicas 유지할 파드의 수 기본 값은 1 pod template 레플리카셋이 실행할 파드의 정의 레플리카셋에 의해서 실행할 파드의 컨테이너 이미지, 포트, 이름등의 구체적 명세 레플리카셋 yml 예제 (rs-nginx.yaml) apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-ngi..
[Oracle] 특정 테이블에 데이터가 없을 시 기본값 출력하기 DB쿼리를 짤때 값이 없을 경우에는 디폴트 값을 보여줘야하는 시나리오가 종종 나오게 된다. 그럴경우에 한번에 초기 테이블을 만들때 다음과 같은 방법으로 해볼 수 있다. 아래의 테이블 내용은 STR_ID 별로 물품 카테고리와 물품들 리스트를 보관하는 테이블의 데이터 모습이다. 여기서 특정 STD_ID에 해당하는 카테고리/물품 내용이 저장되어 있지 않을 경우 디폴트 STR_ID = 0인 값들로 무언가 해보고자 한다면 과연 어떻게 초기 테이블을 가져갈 수 있을까? UNION ALL을 활용해 값이 없을때의 STR_ID = 0 인 조회결과와 실제 원하는 값이 있을때의 테이블 결과를 UNION ALL 하면 위 시나리오 대로 실행을 해볼 수 있다. 아래와 같이 조회를 원하고자 하는 STR_ID = 3에 해당하는 값이..
[Oracle] first_value 함수 사용하기 오라클로 DB개발시 특히 집계 결과를 생성시에 최소값 또는 최대값을 기준으로 편차를 계산하는 등의 작업이 필요할 때가 있다. 오라클의 first_value 함수를 사용하면 특정 집단내의 기준값을 찾고 그 기준으로 결과를 뽑아내기가 쉬워진다. 정의는 다음과 같다. FIRST_VALUE (expr [ IGNORE NULLS ]) OVER (analytic_clause) 다음과 같이 간단한 데이터 테이블이 있다고 가정하자.... 카테고리별로 물품이 있고 각 물품은 가격을 가지고 있다. 각 물건의 가격을 전체 집단의 최저가격 대비 얼마만큼 차이가 있는지 쉽게 알수 있는 방법은 뭘까? 예제1. 각 카테고리별로 최저값을 구하고 각 카테고리별로 모든 물품의 최저값과의 차이를 구해라 SELECT CATEGORY, PR..
[Kubernetes] 네임스페이스(Namespace) 살펴보기 네임스페이스 동일한 물리 클러스트를 기반으로 하는 논리적으로 구분된 가상 클러스터를 네임스페이스라고 한다. 여러개의 팀이나 많은 사용자가 있는 경우, 클러스터안에서 여러개의 어플리케이션을 실행해야 하는 경우 사용 root@master:~# kubectl get namespace NAME STATUS AGE default Active 10d kube-node-lease Active 10d kube-public Active 10d kube-system Active 10d root@master:~# kubectl get deploy No resources found in default namespace. root@master:~# kubectl get deploy -n kube-system NAME READY..
[Kubernetes] 쿠버네티스 Architecture와 기본 동작 Kubernetes Clustering Architecture 1. 로컬에서 이미지를 생성해서 Push를 수행한다. 2. Push된 이미지가 Docker Hub에 업로드 된다. 3. 4. kubectl 명령어를 실행해 Kubernets API 서버로 REST HTTP 요청을 전달하고 클러스터에 새로운 레플리케이션 컨트롤러 오브젝트 생성 5. 레플리케이션 컨트롤러는 새 파드를 생성하고 스케쥴러(Scheduler)가 워커 노드 중 하나에 스케쥴링 6. 해당 워커 노드의 Kubelet은 파드가 스케쥴링 된 것을 확인 7. 이미지가 로컬에 없기 때문에 Docker에게 레지스트리에서 특정 이미지를 Pull 하도록 지시 8. 이미지 다운 후 Docker는 컨테이너를 생성하고 실행 Master Node의 Schedu..