분류 전체보기 612

[SQLD 이론 기초] 2. 관계형 데이터베이스

1. 관계형 데이터베이스란 관계형 데이터베이스 키와 값들의 간단한 관계를 테이블화한 데이터베이스 입니다. 관계형 모델 집합론에 기반을 둔 일종의 데이터베이스 모델 테이블 (행,열) 안에 데이터가 저장됨 각각의 로우를 식별하는 기본키가 있음 row : record, tuple column : field, attribute 2. SQL 기초 지식 SQL이란 RDBMS의 데이터를 관리하기 위한 특수목적의 프로그래밍 언어. 세계 표준 용도 관계형 데이터베이스에서 데이터를 조회 및 갱신하기 위한 언어 SELECT SELECT "검색하고자 하는 컬럼" FROM "테이블" WHERE "검색하고자 하는 컬럼의 조건" AND "컬럼" NOT LIKE "조건" AND "컬럼" LIKE "조건" INSERT INSERT I..

Database 2021.07.28

[SQLD 이론 기초] 1. 데이터베이스란

* 해당 포스팅은 패스트캠퍼스 '데이터베이스와 SQLD 합격패스 Online' 강의를 듣고 공부한 내용을 정리한 것입니다. 1. 데이터베이스란 다양한 정보를 체계적이고 효율적으로 관리하기 위해 컴퓨터 시스템에 전자적으로 저장된 데이터의 집합을 의미합니다. 대용량의 데이터를 저장하고 조회합니다. 데이터베이스를 사용하기 전에는 '텍스트 파일형태'로 저장하고 관리합니다. DBMS (데이터베이스 관리 시스템) 데이터베이스에 저장된 데이터를 관리하고, 사용자의 요구사항에 따라 적절하게 처리하고 응답해주는 시스템입니다. 사용자는 복잡한 내부 구조나 데이터의 물리적 위치에 신경 쓰지 않고, 필요한 정보에 직접적으로 접근하고 활용할 수 있습니다. 특징 실시간 접근성 : 사용자의 요구에 따라 실시간으로 데이터베이스 내 ..

Database 2021.07.28

[Spring Security] 3-1. Authentication: Architecture

1. SecurityContextHolderSpring Security의 인증 모델의 핵심 SecurityContext가 들어있음 (현재 인증된 사용자 정보)인증이 필요할 떄 꺼내서 사용 권한을 검사하거나 인증 여부를 확인함SecurityContextHolder에 인증 정보가 존재하면, 그 사용자는 인증된 사용자로 간주됨 저장 방식ThreadLocalThreadLocal을 이용해서 현재 인증 정보인 SecurityContext를 저장함같은 스레드 내의 메서드들은 SecurityContext를 전달하지 않고도 사용할 수 있음요청 처리가 끝나면 FilterChainProxy가 SecurityContext를 지워줌 저장 전략전략설명 MODE_THREADLOCAL (기본값)현재 스레드에만 인증 정보 저장 MOD..

[Spring Security] 1. Architecture

1. A Review Of Filters Spring Security는 Servlet Filter 기반으로 동작함 동작 방식더보기클라이언트: 요청 보냄서블릿 컨테이너: 필터들을 묶어 FilterChain 생성서블릿 컨테이너: 요청 경로를 기준으로 어떤 Filter들이 요청을 처리할지 결정. Servlet FilterHTTP 요청을 처리하기 위한 사전/사후 작업용 인터셉터 동작구분설명결과stop이후의 필터나 서블릿에 요청을 전달하지 않음Filter가 직접 응답 작성modifyHttpServletRequest 또는 HttpServletResponse를 수정한 뒤 전달수정된 객체가 하위로 전달됨 FilterChain여러 개의 Servlet Filter가 연결된 객체✅ 요청을 다음 필터로 넘길지 결정할 수 있음..

[ 쿠버네티스 입문: 90가지 예제로 배우는 컨테이너 관리 자동화 표준 ] Chapter18. 오토스케일링

18. 1 HPA의 구조 HPA는 컨트롤러 매니저(kube-controller-manager) 안에서 주기적으로 실행하면서 설정된 HPA의 상태를 확인함. HPA가 디플로이먼트에 속한 파드들의 상태를 모니터링하다가 지정된 조건에 이르면 디플로이먼트를 스케일해서 파드 개수를 늘리거나 줄임. 지정된 자원을 API로 먼저 확인한 후 조건에 맞을 때 HPA가 오토스케일링함. 18.2 HPA 설정하기 targetCPUUtilizationPercentage : CPU사용률이 얼마일 때 오토스케일링을 적용할 지 설정함.

DevOps/Kubernetes 2021.07.22

[ 쿠버네티스 입문: 90가지 예제로 배우는 컨테이너 관리 자동화 표준 ] Chapter17. 로깅과 모니터링

17.1 로깅 오케스트레이터를 사용하는 환경에서 로그를 수집할 때 로그를 로컬 디스크에 파일로 저장하지 말아야 함. 쿠버네티스는 특정 앱 컨테이너의 로그를 확인하려면 전체 클러스터의 노드 중 어떤 노드에 해당 컨테이너가 실행되었는지 확인해야 로그도 확인이 가능함. 파드 로그 확인하기 ‘Kubectl logs -f 파드이름’ : 파드의 로그 확인 2. 일래스틱서치로 로그를 수집한 후 모아서 보기 로컬 디스크에 로그를 저장하면 용량 문제로 삭제한 예전 로그들을 확인할 수 없음. 장비 각각에 저장한 로그를 한 곳에 모아서 살펴보도록 서버를 구축함. 일래스틱서치 파드를 배포하고 서비스를 붙여 외부에 노출시킴. 키바나는 일래스틱서치의 데이터를 검색하므로 접근할 도메인을 알아야함. env의 ELASTICSEARCH..

DevOps/Kubernetes 2021.07.22

[ 쿠버네티스 입문: 90가지 예제로 배우는 컨테이너 관리 자동화 표준 ] Chapter16. 쿠버네티스 DNS

16.1 쿠버네티스 DNS 클러스터 안에서만 사용하는 DNS 설정 가능. 파드 사이에 통신 시 도메인 사용 가능. IP로 통신 설정시 IP 대역이 다를 때 수정해야 하므로 번거로움 16.2 클러스터 안에서 도메인 사용하기 내부 도메인은 서비스와 파드를 대상으로 사용하며 일정한 패턴이 있음. 서비스 접근 :’서비스이름.네임스페이스이름.svc.cluster.local’처럼 구성함. 파드 접근 : ’파드IP주소.네임스페이스이름.pod.cluster.local’처럼 구성함. 단 IP주소를 사용하면 의미가 없음 그러므로 파드 생성 시, 호스트네임과 서브 도메인을 설정해서 사용하기 .spec.template.spec.hostname .spec.template.spec.subdomain 설정 시, ’호스트네임이름.서..

DevOps/Kubernetes 2021.07.22

[ 쿠버네티스 입문: 90가지 예제로 배우는 컨테이너 관리 자동화 표준 ] Chapter15. 클러스터 네트워킹 구성

15.1 파드 네트워킹 쿠버네티스는 파드에 IP를 할당함. 파드들은 IP를 이용해 서로 통신함. 도커 컨테이너의 네트워킹 도커 브리지 타입 네트워크는 호스트안에 docker() 라는 브리지를 추가해 컨테이너와 호스트 사이를 연결함. docker()는 호스트의 네트워크 네임스페이스라 함. 호스트의 기본 네트워크는 여기서 만들어지고 관리함. container1(veth0)과 container2(veth1)는 컨테이너 네트워크 네임스페이스라고 함. 컨테이너를 생성할 때마다 만들어지고 컨테이너마다 별도의 네트워크를 사용할 수 있도록 함. veth는 한쪽 끝은 컨테이너, 다른 한쪽 끝은 호스트의 브리지(docker() )를 연결하여 호스트 네임스페이스와 컨테이너 네임스페이스 사이를 통신함. 도커 컨테이너 네트워킹..

DevOps/Kubernetes 2021.07.22

[ 쿠버네티스 입문: 90가지 예제로 배우는 컨테이너 관리 자동화 표준 ] Chapter14. 데이터 저장

14.1 볼륨 컨테이너는 기본적으로 상태가 없는 앱 컨테이너를 사용함. -> 다른 노드로 자유롭게 옮길 수 있음 -> 상태를 저장할 수 없어 컨테이너가 재시작시 데이터가 사라짐 데이터를 보존하기 위해 볼륨을 사용함. 볼륨은 클라우드 볼륨 서비스, 디스크, 서버 컨테이너 볼륨 플러그인 등 다양한 종류가 있음 .spec.container.volumeMounts.mountPropagation : 파드 안에있는 컨테이너끼리 혹은 노드 안에 파드들끼리 공유할 지 설정 None : 컨테이너가 만들어 놓은 마운트를 호스트에서 볼 수 없음. HostToContainer : 호스트에서 해당 볼륨 하위에 마운트된 다른 디렉터리들도 볼 수 있음 Bidirectional : 호스트 안 모든 컨테이너나 파드에서 같은 볼륨을 사..

DevOps/Kubernetes 2021.07.22

[ 리팩토링 by 마틴 파울러 ] Chapter12. 상속 다루기

12.1 메서드 올리기 12.2 필드 올리기 12.3 생성자 본문 올리기 생성자는 할수 있는 일과 호출순서에 제약이 있음 (생성될 때만 호출, 리턴 X, 오브젝트 초기화 용도) 부모-자식의 클래스 중, 생성자 호출 단계에서 부모의 생성자를 호출하지 않는 자식의 경우가 있다면 체크 후 자식 생성자에 따로 알맞은 로직을 호출하도록 코딩한다 12.4 메서드 내리기 12.5 필드 내리기 12.6 타입 코드를 서브클래스로 바꾸기 타입코드 비슷한 대상들을 특정 특성에 따라 구분해야 할 때 서브 클래스로 생성하여 조건에 따라 다르게 동작하는 다형성 제공하기 특정 타입에서만 의미가 있는 값을 사용하는 필드나 메서드가 있을 때 사용하기 직접 상속 Employee를 상속한 클래스가 타입에 따라 Engineer, Manag..

Code/Refactoring 2021.07.22