📝약타입
다른 타입으로 변환이 가능하며 심지어 암묵적으로 변화을 해주기도 한다
int a = 1;
float b = 1.1f;
float c = a + b;
📝강타입
다른 타입으로 변환이 금지 되었고 명시적으로 타입을 선언해줘야한다
int a = 1;
String b = "Hello"
String c = a + b;
📝MView
물리적으로 존재하는 테이블로 데이터가 일정 공간을 차지한다는 특징이 있습니다
MView는 특정 결과를 생성하는 쿼리가 자주 사용되거나 실행 시간이 많이 소요되는 조인이나 복잡한 SQL에 대한 성능을 향상시키기 위해 사용한다
기존의 뷰(View)와는 달리, MView는 실제 데이터를 저장하고 있어 해당 값을 빠르게 조회 데이터 웨어하우 (Data Warehouse)나 대규모 데이터베이스 환경에서 효과적으로 사용될 수 있습니다
📝Base64
데이터를 64진법으로 표현하는 방식으로 2^6 =64 → 6bit로 문자 한개를 표현한다 (이진데이터 → 텍스트 형식 변환)
6bit를 4개씩 모아 변환하는데 이 때문에 비는 공간이 발생한다 빈공간은 = 문자로 채운다
Base64로 인코딩시 데이터의 크기는 33%증가하게 된다.
UTF-8하고 인코딩하는게 비슷해보이지만 UTF-8의 경우 문자 인코딩에 특화되어있어서 HTML, 텍스트 파일, 문자에 대해서는 사용되지만 엑셀, 이미지와 같은 이진데이터의 경우 Base64를 사용해서 보낼 수 있다
- UTF-8
- 문자열 → UTF-8 인코딩 → 이진형태로 변환 후 데이터 전송 → 이진형태 디코딩 → UTF-8 디코딩 → 문자열
- Base64 (엑셀파일 기준)
- 엑셀 파일 (데이터 이진 형태) → Base64 인코딩 문자열 전송 (이진형태로 데이터를 안 보내도 전송할 수 있게 설계되어있음) → Base64 디코딩 → 이진형태 Content Type에 맞게 해독
📝CI(Continuous Integration) / CD(Continuous Delivery, Continuous Deployment)
CI/CD 개념은 소프트웨어 개발 생명주기를 자동화하고 가속화하여 효율성을 높이고 신속한 소프트웨어 제공 가능
많이 사용하는 제품으로 Jenkins가 있다
📝CI (Continuous Integration)
CI는 "지속적 통합"을 나타내며 소프트웨어 개발에서 발생할 수 있는 문제를 조기에 감지하고 해결하기 위한 개발 방법론으로 개발자들이 코드를 중앙 저장소에 푸시할 때마다 자동으로 빌드 및 테스트를 수행합니다 이를 통해 코드 변경 사항의 통합이 지속적으로 이루어지며, 팀 내에서 코드 품질을 높이고 오류를 조기에 발견할 수 있습니다
💗장점
- 코드 퀄리티 향상 → 반드시 유닛테스트가 필요하기 때문에 그에 맞는 방향으로 개발해 실수를 줄인다.
- 즉각적인 버그 알림 → 유닛테스트 후 문제가 생긴 곳을 개발한 개발자에게 즉각 알림
📝CD (Continuous Delivery, Continuous Deployment)
CI를 기반으로 하는 지속적인 전달과 배포를 의미
- Continuous Delivery (CD):
- Continuous Integration에서 온 테스트 및 빌드 단계를 통과한 코드를 자동으로 운영 환경에 배포 가능한 상태로 만듭니다
- Continuous Deployment (CD):
- Continuous Integration에서 테스트 및 빌드를 통과한 코드가 자동으로 실제 운영 환경에 배포됩니다
📝쿠버네티스
컨테이너 관리 툴로서 나뉜 걸 배포하려고 할 때 수동으로 하나하나씩 올리기 힘들기 때문에 자동화 해주고 컨테이너를 모니터링해주고 죽은 즉시 바로 재시작을 시켜준다
컨테이너를 미리 카피하고 만들어 부하분산을 해준다.
🔗 참고 및 출처
https://www.youtube.com/watch?v=4oSS6xZ_fuM
'[CS 지식]' 카테고리의 다른 글
[CS 지식] MIME타입, 싱글톤(SingleTon) 패턴, Chunk 지향 처리, APM, 메모리디비 (0) | 2022.09.27 |
---|---|
[CS 지식] 검색엔진, 엘라스틱(Elastic), Solar, 검색엔진 동작 방식 (역인덱싱), BM25(TF, IDF) (0) | 2022.09.12 |
[CS 지식] 개발자 종류 [1] (프론트엔드 개발자, 백엔드(서버쪽), 모바일개발자, 애플리케이션개발자, 게이밍 플레이 개발자, 게이밍 엔진 개발자, 보안 개발자, 백엔드 시스템 플랫폼 개발자) (0) | 2022.09.04 |
[CS 지식] SGML, XML, DTD (0) | 2022.09.04 |
[CS 지식] 서버, DNS 플러시, 데이터의 이동, 웹 방화벽, 방화벽, IDS, IPS (0) | 2022.09.04 |