실무에 필요한 개념 정리

존스노우·2023년 10월 23일
0

도메인

  • 도메인과 아이피 주소가 매핑되 저장되 있음

  • 대표적인 업체가 cloudflare

VIP

  • 255개 서버를 대표하는 아이피
  • DNS 서버에는 vip 하나만 알려주면 됨
  • 로드 벨런싱 역할도 함
  • 부하 분산

라운드 로빈

  • 순서대로 첫번~ 마지막 다시 첫번째 요청

  • 여러가지 부하분산 알고리즘

SLB , GSLB

  • 로드벨런식이랑 같은 말

  • 한곳에 있으면 너무 위험해

  • 이렇게 바꾼게 GSLB

  • ip 가 아닌 도메인을 가짐

  • 헬스를 고려해 서버에 죽으면 요청이 안가게 하는 LB 기능과

  • 로드벨런싱시 서버위치를 고려해서 효율적임

  • 비용이 많다..

  • 저렴하게는 vip 없이 구현하기도 함

  • 여기까지 말했던게 L4 트랜스포트 레이어

FQDB

  • 풀 도메인

  • cdn
  • 콘텐츠를 송수신할때 효율적으로 만든 네트워크

  • 네트워크 캐시처럼 사용하게 만드는 것

  • 여러 군대 cdn 을 설치하면 페이지 로딩이 빨라짐

  • 네트워크 망에 ip 를 허용하는 리스트

  • 중개자

  • TSL 은 향상된 버전 같은 취금을 함

  • helloword 요청이 들어오면 서버로 연결 할때
  • 연결된 서버가 신뢰할수 있을까?

  • 비대칭키 만들기

  • 퍼블릭키를 들고 인증 기관을 찾아감 CA


  • 인증서가 정보를 가지고 암호화함
  • 클라이언트 서버 인증 요청 -> 인증 서 내려줌

  • 공개키로 풀어버림

  • 대칭키를 만들어 퍼블릭키로 암호화함

  • 양쪽 대칭키를 만들어 통신을하게 됨

  • 정리

MSA

  • 느슨한 결합인 MSA

  • 현재 실무에 적용죽인 모놀로틱 아키텍쳐

  • 이런식으로 나눠는게 MSA

  • 이런 용어도 있어서 신기

  • 전 회사에서 이런상태였다

  • 애자일
  • 다들 한다하는데 재대로 하는 곳을 못봤다.
  • 어떤일이 벌어질지 모르는 소프트웨어는
  • 팀 자체가 문제해결 할수 있는 팀이 되어야 한다는 정신 무장 이다.

DevOps

  • 개발 운영을 하나로 합쳐서 하는 것.

  • 개발 -> 빌드 -> 배포

  • 컨테이너 배포관리기술

  • 이미지를 말아서 쿠버네티스로 배포

  • 현재 프로젝트에서 쓰고 있는 방식

쿠버네티스

  • 현재는 컨테이너 개발 시대

  • 100~300대 이렇게 띄울 수 있다.

  • 요즘은 쿠버네티스 많이 씀 줄여서 k8s

  • 컨테이너가 죽음 설정한 갯수에 맞춰서 새로 띄움

  • 컨테이노 배포 그림

  • 로드벨런서 ingress ~ Service

  • pod 프로그램

  • 외우기 중요함

  • Object / Controller

  • 오브젝트를 다루는 컨트롤러

  • 위에는 오브젝트 밑에는 컨트롤러

목적에 맞는 다양한 사용

  • 조회수 좋아요 재고수는 빠르게 변화 하는값이라
  • 주로 redis 라는 nosql을 사용함

  • 통신하는데 데이터가 유실될 걱정에 사용할 솔루션들

  • 검색 서비스는 ES

  • 리디스 메모리에 올라와있어서 빠르게 데이터 가져옴
  • 레디스 특징 들
  • 병렬처리로 부터 자유로워져 고성능 자랑
  • 싱글 스레드 사용상 샤딩 과 클러스터라는 확장 전략을 사용

  • 관계가 없어서 읽기 성능이 빠름
  • 데이터를 어떻게 골고루 저장할지 내용인 Consistent hashing
  • 노드 하나에 너무 많이 저장되지 않게 함

  • 문서 디비

  • 검색성능이 탁월 함

  • 엄밀이 말하면 update는 없음 삭제하고 다시만듬

  • 몽고는 트랜잭션 지원 , 전문 검색 기능 제공

  • 팔로우 기능 구현할때 탁월 간단하게그냥..

  • 디비라고 보기엔 애매

  • 거대한 큐처럼 동작

  • 정말 기본적인 내용

  • Exchange 에 저장된 데이터가 Broker가 보냄

  • 토픽 파티션 컨슈머그룹 컨슈머

  • 토픽에 데이터 publish하며 토픽은 키값에 따라 파티션에 보냄

  • 컨슈머들이 파티션을 바라보고 처리함

  • 파티션하나에는 컨슈머그룹 마다 하나의 컨슈머만 붙을수 있음

  • 내부 구현은 큐라고 보긴 어려움

  • 왼쪽으로 들어오는 데이터를 감시하는 consumer가 감시하는 방식

  • 파티션은 너무 큰숫자 잡으면 안됌

RestAPI

  • patch 메소드는 거의 안씀
  • 검색하는데 POST 메소드 사용하면 안됌

  • 어려운 restAPI..
  • v1 버저닝 하는걸 극혐한 로이필링

OAuth

  • 불변성의 본질인 함수형 프로그래밍
  • 순수함수 임뮤터블 데이터,
  • 부수효과가 없다. (= side effect)

  • 프로그램 주도권이 누구한테 있냐
  • 자동이면 프레임워크 내가 수동으로? 라이브러리

MySql

  • 인덱스가 잘 타고 있는가 ?

  • index - 인덱스 풀스캔
  • 인덱스 타입이면 안좋음 인덱스 스캔이 아니라 풀스캔 이라서
  • fulltext - mysql 전문검색기능 이용
  • all - 모든 데이터 풀스캔 (데이터가 별로없을경우)

  • 풀스캔은 다 타버려..
  • 처음 부터

  • 트랜잭션내에 같은 쿼리 결과가 다를 수 있어서 (수정하고 커밋할때))

  • non-repeatable read

  • Repeatable Read InnoDb 디폴트 값

  • 없던 레코드가 발생하는 현상 팬텀 리드

  • innoDb사용하면 팬텀 리드 사용하지 안흥ㅁ

  • 데이터 정합성에 필요하지만 공짜는 아니다.

  • 한방 쿼리말고 쪼개고 쪼개고 애플리케이션에서 조합하는게 낫다.
  • 쉽고 빠른일을 여러번 주는게 좋다.
  • 서브쿼리는 지양 하자

  • 한계가 많은 기능

  • jpa를 사용하고 있는대 배치를 써서 갯수를 조정하자

  • 이거 꿀팁!

  • 주기적으로 싱크 전량
  • write - back
profile
어제의 나보다 한걸음 더

0개의 댓글