전체 글 315

[기술면접 대비] Network

네트워크 계층 구조 (OSI 7계층, TCP/IP 5계층 등) 👉 OSI 7 계층 이란? 두 호스트가 네트워크를 통해 데이터를 전달하면서 수행되는 일련의 프로토콜을 의미 응용->표현->세션->전송->네트워크->데이터링크->물리 로 수행됨 응용 계층 : 응용 서비스를 통해 최초 데이터를 생산 표현 계층 : 시스템 간의 형식을 변환 하며 암호화 복호화, 인코딩-디코딩 등을 수행 (SSL 수행) 세션 계층 : 양 끝단 연결 기기에 대한 세션 관리 (TCP/IP 세션을 만들고 없애는 책임) 전송 계층 : TCP/UDP 프로토콜을 통해 세션을 유지하는 사용자와의 데이터 통신 보장 네트워크 계층 : 위 계층에서 완성된 데이터-Header 조합을 패킷 단위로 목적지(IP주소) 까지 라우팅 역할 수행 데이터 링크 계층..

[기술면접 대비] Database 1 - DB 기본, 정규화, 종류

DB 기본 👉 DB Key의 개념과 종류 슈퍼키(Super Key) : 유일성을 가진 키 전체 후보키 (Candidate Key) : 릴레이션을 구별 할 수 있는 기본키들의 부분집합 기본키 (Primary Key) : 후보키들 중 하나 고른 것 대체키 (Alternate Key) : 후보키들 중 선택된 기본키를 제외한 나머지 외래키 (Foreign Key) : 다른 릴레이션 기본키 참조 복합키 (Composite Key) : 2개 이상 속성을 조합하여 만든키 👉 데이터 관계 1:1 관계 : 하나의 레코드가 다른 테이블의 하나의 레코드와 연결 된 것 1:N 관계 : 하나의 레코드가 다른 테이블의 다수의 레코드와 연결 된 것 N:M 관계 : 다수의 레코드가 다른 테이블의 다수의 레코드와 연결 된 것 (ex...

[Python Utils] Python 매직메소드 (MagicMethod) 이해하기

매직메소드란? "__Method__" 형태의 인스턴스(객체)가 생성될 때 인터프리터에 의해 자동으로 호출되는 메소드 매직메소드 예시 __init__, __call__, __getattribute__ 등은 모두 매직메소드의 형태로 호출된다. # 1. 기본 MagicMethod class A: def __init__(self): print("A 클래스 __init__ 생성자 매직메소드로 실행됨") # 2. Class를 함수 호출하기, __call__ 매직메소드 class B: def __call__(self, *args, **kwargs): print("B 클래스 __call__ 매직메소드로 호출됨") b = B() b() # 3. '.' 도 __getattribute__ 의 매직메소드 class C: de..

Python/Utils 2022.10.14

[DevOps]서비스 무중단배포 전략 설계하기 (+실제 프로젝트 적용)

무중단 배포란? 배포 중인 서비스의 변경사항 적용시 서비스가 중단되는 현상 없이 이루어지게 작업하는 방법 무중단 배포 방법엔 크게 3가지 방법이 있다. 1. 롤링 배포 2. Blue/Green 배포 3. 카나리 배포 롤링(Rolling) 배포 롤링 배포는 사용중인 인스턴스 들을 새 버전으로 점진적으로 교체하는 방식. EX) 서비스 중인 인스턴스 하나를 Loadbalancer에서 제외시키고, 새 버전으로 적용 및 순차적으로 적용함 장점 인스턴스를 차례대로 전환하기 때문에 배포중 문제가 생기더라도 Rollback 등으로 대응 가능 단점 새 버전 전환 중 실 서비스에 대응되는 인스턴스 수가 감소하기 때문에 트래픽이 몰릴 수 있음 서비스 처리 용량에 대한 고려 필요 배포 진행 간 구/신 버전 공존으로 인한 호환..

DevOps/CI-CD 2022.10.07

[FastAPI] (3) FastAPI 열거형 enum - GET

Enum이란? 열거형 (Enumeration) 객체로, Python 에서 Query Parameters, Path Parameters에 대한 Entity 정의를 하기 위해 사용 Case 1 from enum import Enum class Score(str, Enum): A="A" B="B" C="C" @app.get("/grade") def get_grade(score:Score): return {"score":score} 요청 1) curl localhost:8000/grade?score=A => { "score":A } 반환 요청 2) curl localhost:8000/grade => 422 entity error 발생 요청 3) curl localhost:8000/grade?score=D => ..

Python/FastAPI 2022.10.05

[FastAPI] (2) FastAPI 경로 매개변수, 쿼리 매개변수 - GET

경로 매개변수란? 경로 매개변수(Path Parameters)란 URL 경로에 들어가는 변수를 의미 아래 예시에서의 user_id를 뜻함 (매개 : 넘겨주는 + 변수 : 변하는 값) Case 1 @app.get("/users/{user_id}") def get_user(user_id:int): return {"user_id":user_id} 요청 1) curl localhost:8000/users/3 => { "user_id":3 } 반환 요청 2) curl localhost:8000/users/3.4 => 422 entity error 발생 (type 안맞아서 발생하는 error) Case 2 @app.get("/users/{user_id}/{art_id}") def get_user(user_id:in..

Python/FastAPI 2022.10.04

[FastAPI] (1) FastAPI란? (+Setting)

Fast API 란? FastAPI - https://fastapi.tiangolo.com/ FastAPI FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production Documentation: https://fastapi.tiangolo.com Source Code: https://github.com/tiangolo/fastapi FastAPI is a modern, fast (high-performance), web framework for buil fastapi.tiangolo.com 코어 시스템 (Starlette) Wrapping을 통한 ASGI 지원과, Pydantic을 통한 간편한 유..

Python/FastAPI 2022.10.04

[DB] Clustering, Sharding, Replication 차이

Clustering (DB 서버에 대한 고민) 우선, STORAGE는 DB 저장소를 DB 서버는 DB 작업을 하는 서버를 의미한다. 👉목표 서버를 여러개 만들어 DB SERVER가 죽는 것을 방지하자 👉 종류 1. 하나의 큰 STORAGE 안에 2 ACTIVE SERVER : 처리 속도는 더 빠르지만 병목현상 있을 수 있음 2. 하나의 큰 STORAGE 안에 ACTIVE-STANDBY : 하나는 대기 상태로 두어 병목현상 X REPLICATION (DB 손실에 대한 고민) 👉 목표 실제 데이터가 저장되는 저장소도 복제하여, 저장된 데이터 손실을 방지하자 👉 특징 MASTER-SLAVE 구조로 MASTER로 들어온 데이터를 SLAVE로 동기화하여 데이터를 백업 MASTER는 수정, 삽입, 삭제 역할 SLA..

DB/이론 2022.10.03

[DB] Replication 이란? (Feat. Mysql, Mongo)

Replication 이란? 복제본 데이터베이스를 운용하는 것 (=한 서버에서 다른 서버로 동기화 하는 것)을 Replication이라고 지칭 주로 DB 운용 상황에서 많이 사용되는데 데이터베이스(Master, 소스 서버), 복제된 데이터베이스(Slave, 레플리케이션 서버)라고 많이 부른다 Replication 사용 이유 Slave 데이터베이스는 Master 데이터베이스를 복제(Replication)하여 동일한 데이터를 가지게 됨 이유 1. 데이터 분산 부하 관리 Insert, Update, Delete 등의 작업 : Master 데이터베이스에서 처리 Select 등의 조회 작업 : Slave 데이터베이스에서 처리 ex) Scale-out 목적 트래픽 대응 ex) 데이터 분석의 경우 대량의 조회를 하는..

DB/이론 2022.10.03