
CI와 Jenkins CI란? CI/CD CI 시스템 구축을 위한 핵심 구성요소 CI 자동화 수행 절차 상황) 프로젝트 중반 쯤 고객이 프로젝트 진행 상황을 알고 싶다고 한다 → 여러 개발자가 자신의 코드를 통합을 하는데… 다른 개발자의 코드들을 합치니 실행이 안된다 내 PC에서는 됐는데 통합하니 실행이 안된다 통합되기 전에는 자신이 갖고 있는 소스가 최근 통합된 코드가 아닐 수 있다 요즘처럼 소프트웨어 거대 복잡해지면서, 팀 단위 개발을 많이 하게되었고, 애자일 방법론을 비롯한 분업과 협업은 필수적이게 되었는데요. 위 상황처럼 개발자 각자 개발한 소스코드 형상관리 서버에 커밋하고 별도의 품질관리 없이 개발 막바지에 통합하여 테스트 진행한다면, 개발 후반에 모두 장애로 발견되게 됩니다. Continuou..

(7) 8장. 데이터베이스 설계 34~36강 설계, 정규화, 트랜잭션 34강. 데이터베이스 설계 데이터베이스의 스키마 내에 테이블, 인덱스, 뷰 등의 데이터베이스 객체를 정의하는 것 (==스키마 설계) → 테이블의 이름이나 열, 자료형을 결정하는 것 → 이 테이블은 이 열을 이용해 저쪽 테이블과 연결한다; 테이블 간의 관계를 생각하면서 여러 테이블을 정의하고 작성 하나의 테이블에 대해 두 개의 이름을 지정할 때도 있는데, 물리명; 하나는 데이터베이스에서 사용될 이름으로 실제로는 CREATE TABLE에 지정하는 이름 > 시스템 규칙에 따라 길이에 제한이 있거나 공백문자를 사용할 수 없는 등의 제약이 따름 논리명; 테이블의 설계상 이름 (ex) 물리명은 'item_master' / 논리명은 ..

(6) 7장. 복수의 테이블 다루기 31~33강 집합 연산 및 결합 31강 집합 연산 UNION; 합집합 A∪B 연산자로 키워드 다음에 DISTINCT 또는 ALL이라는 키워드 추가해서 중복 레코드에 대한 처리 방법 선택 가능 (기본 선택은 DISTINCT), UNION은 두 집합의 합을 만들어 내기 위해 버퍼 역할을 하는 임시 테이블을 사용 UNION ALL; 두 개의 집합에서 중복된 레코드에 대해 별도의 처리 과정을 거치지 않고 바로 반환 (단순히 임시 테이블만 사용) UNION DISTINCT; 두개의 집합에서 중복된 레코드를 제거한 후 (두 집합의 레코드 가운데 중복된 레코드 중 하나는 버림) 합집합을 사용자에게 반환 → UNION을 수행해야할 대상은 이미 임시 테이블로 만들어졌으며, 이 임시 테..

(5) 5장. 집계와 서브쿼리 20~24강 COUNT, GROUP BY, 서브쿼리 20강. 행 개수 구하기 - COUNT + 21강. COUNT 이외의 집계함수 집합(으로부터 하나의 값을 계산하는)을 다루는 집계함수 5개 ※집계함수는 집합 안에 NULL 값이 있을 경우 무시함! COUNT SUM sum집계함수에 지정되는 집합에 문자열은 쓸 수 없음 AVG null 값을 0으로 간주해 평균을 내고 싶으면 case문 또는 IFNULL(컬럼명, '대체할 값')을 사용하면 됨 MIN & MAX 집계함수에 지정되는 집합에 문자열과 날짜시간형도 사용 가능 22강. 그룹화 - GROUP BY 특정 칼럼의 값으로 레코드를 그룹핑하고, 각 그룹별로 집계된 결과를 하나의 레코드로 조회할 때 사용 (ex) 각..

(4) 3장. 정렬과 연산 9~15강 ORDER, LIMIT, 연산 9강. 정렬 - ORDER BY SELECT명령의 ORDER BY구를 사용해 검색 결과의 행 순서를 바꿈 (정렬 방법) SELECT 열명 FROM 테이블명 [WHERE 조건식] ORDER BY 열명 [DESC(내림차순)]; 기본은 오름차순 대소관계 수치형 문자열형 사전식 순서 (ex1) '가방' < '가족' (ex2) '1' < '11' < '2' ← 숫자가 문자열형으로 되어있을 경우 서버에서 클라이언트로 행 순서를 바꾸어 결과를 반환하는 것 뿐, 저장장치에 저장된 데이터의 행 순서를 변경하는 것은 아님 10강. 복수의 열을 지정해 정렬하기 SELECT 열명 FROM..

(3) 4장. 데이터의 추가, 삭제, 갱신 16~19강 INSERT, DELETE, UPDATE 16강. 행 추가하기 - INSERT INSERT 명령을 사용해 테이블의 행 단위로 데이터를 추가 INSERT INTO 테이블명(컬럼명1, 컬럼명2, ...) VALUES(값1, 값2, ...); [신규 등록] 또는 [추가] 버튼 클릭 시 처리되는 데이터 추가 기능 NOT NULL 제약이 걸려있는 열은 NULL 값을 허용하지 않음 default설정이 있는 경우; default로 값을 설정하거나(↖명시적 방법) 열을 지정하지 않으면(암묵적 방법↗) default 값으로 행이 추가됨 AUTO_INCREMENT 제약의 INSERT 특성 → NOT NULL 제약이 있더라도 별도의 값이 지정되지 않아도 됨 (AUTO_..

(2) 2장. 테이블에서 데이터 검색 4~8강 검색 조건 4강. Hello World 실행하기 SQL 명령은 키워드에 의해 '구'라는 단위로 나눌 수 있음 → ex) select구와 from구 select 명령은 여러 개의 구(select구, from구...)로 구성됨 데이터베이스 객체명에는 예약어와 동일한 이름을 사용할 수 없음 select 명령 실행 시 출력되는 표 형식 데이터 → 행(레코드) + 열(컬럼/필드) 행; 모두 동일한 형태로 되어있음 열; 옆으로 나열 된 것으로 열마다 이름이 지정되어 있음 셀; 각각의 행과 열이 만나는 부분으로 하나의 데이터 값이 저장되어 있음 각 열은 하나의 자료형만 가질 수 있음 ex) '수치형', '문자열형', '날짜시간형' ... 보통 column은 대소문자 구분..

(1) 6장. 데이터베이스와 SQL 28~30강 인덱스와 뷰 인덱스 (색인 or 목차) == 정렬 : 테이블에 대한 동작 속도를 높여주는 자료구조 고속의 검색(select, where) 동작 레코드 접근 관련 효율적인 순서 매김 동작 테이블 내의 1개 또는 여러 개의 컬럼을 이용하요 생성 카디널리티가 높은순 → 낮은순으로 구성하는 것이 성능에 더 도움 인덱스는 테이블에 의존하는 객체로 테이블을 삭제하면 인덱스도 함께 삭제된다 오라클 / DB2 ; 인덱스는 스키마 객체 → 스키마 내에 이름이 중복되지 않도록 관리 SQL Server / MySQL ; 인덱스는 테이블 내 객체 → 테이블 내에 이름이 중복되지 않도록 관리 인덱스에 쓰이는 대표적 검색 알고리즘은 Binary search (이진 트리에는 중복하는..
Go 1.13 Release Notes install go get golang.org/dl/go1.13rc1 //jetbrain IDE의 경우 SDK를 다운받아 쓰는 방법이 있음 code review https://go-review.googlesource.com/c/go/+/보고싶은변경사항num 관련 변경사항들 볼 수 있음 Changes number literal proposal Tools Runtime Core library 1. number literal proposal prefix 0b or 0B으로 2진수 표현 가능 prefix 0o or 0O으로 8진수 표현 가능 prefix 0x or 0X으로 16진수 표현 가능 허수 i 사용 가능 엑셀에서의 1,100,000처럼 보기 쉽게 쉼표를 _로 표현 ..