기술 정리 & CS 32

[기술면접 대비] Database 2 - Transaction, 격리레벨, 동시성

Transaction 개념과 ACID 원칙 👉 Transaction 이란? DB에서 Query문에 의해 발생하는 일정 작업의 최소 단위 👉 Transaction 4원칙 트랜잭션의 4원칙으로 원자성, 일관성, 독립성, 영구성을 의미 원자성 : 트랜잭션 연산의 단위는 다 반영되거나, 다 안되거나 일관성 : 트랜잭션을 반복적으로 실행하더라도 그 결과 일정한 것 독립성(isolation) : 여러개의 트랜잭션간 분리되어서 실행 되는 것 영구성 : 한번 트랜잭션이 완료되면, 그 결과가 유지되는 것 👉 Transaction의 ACID 원칙 깨진 사례 ACID 깨진 경험이 있었냐, 1개의 함수에서 2개의 Table을 각각 수정하는 경우, 1번째 경우만 성공하고 2번째에서 오류 나는 경우에서 Transaction Tr..

[기술면접 대비] Django, DRF, 배포

Django 👉 Django의 장단점은? 장점 : 관리자 admin 패널 제공, 기존에 개발되어 있는 다양한 패키지들이 많음, 로그인 로그아웃 등 미리 구현 단점 : 기본적으로 요소들이 다 포함되어 있기 때문에 오히려 무겁다는 점, 자유도가 떨어집니다. 👉 Django의 MTV 패턴 시스템은 무엇입니까? Model : DB에 대한 ORM Model Template : 사용자에게 보여지는 화면 View : 프로그램이 동작하는 비즈니스 로직 부분 참고 링크 [Django] MTV 패턴과 동작 Flow Django https://www.djangoproject.com/ The web framework for perfectionists with deadlines | Django Django Django make..

[기술면접 대비] Web 일반 & 보안

HTTP 👉 HTTP 란? Hyper Text Transfer Protocol로 클라이언트와 서버 간에 정보를 주고 받는 프로토콜 (규약) HTTP Request 메시지 = Request Header + Request Body HTTP Response 메시지 = Response Header + Response Body 👉 HTTP Header HTTP 메시지에 대한 정보를 포함하며, key-value 형태 content-type : 본문의 Type을 나타냄. ex) application/json, text/html Accept : 클라이언트가 처리 가능한 Type을 나타냄 ex) application/json, text/html 등 👉 HTTP 의 주요 특징 비연결 (서버-클라 전송 완료시 연결 종료, ..

[기술면접 대비] 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...

[기술면접 대비] CI-CD, Infra, Cloud

👉 1. CI CD란? CI 빌드 자동화, 유닛 및 통합 테스트, 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 개발자가 서로 충돌할 수 있는 문제를 해결 가능 CD 지속적인 서비스 제공(Continuous Delivery) or 지속적인 배포(Continuous Deployment)를 의미 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것을 의미 👉 2. EC2, ECS, S3, IAM, Lambda, S3, SQS, ElasticCache, EKS 등 EC2 (Elastic Compute Cloud..

[Web 일반] 실시간 통신 (Pooling, Long Pooling, Streaming, WebSocket) 비교

HTTP Pooling Client가 Server로 주기적으로 요청을 날려 이벤트 확인하는 방식 (ex. 10초마다 서버로 Request 확인) 🎈 단점 일정 주기에 기반한 것이라 완벽한 실시간성이 보장되지 않음 (ex. 10초마다 , 서버는 근데 1초에 바뀌는 경우 9초 후에 전송되는 것) 요청 후 응답이 오래걸리더라도, Server로 계속 추가적인 Request를 보내기 때문에 Server의 부담이 큼 HTTP Long Pooling Client가 Server로 요청을 날려 이벤트가 생길 때 까지 기다리는 방식 (ex. Request 10초 후 이벤트 발생하여 Response를 보내고, 응답 하는 즉시 Request를 보내 연결) 🎈 단점 요청이 많아지면 (동시에 이벤트가 발생하면) Server로의 ..

[Web 기본] URI, URL, URN 차이

URI, URL, URN 이란? 👉 URI (Unifom Resource identifier, 통합 자원 식별자) URI는 인터넷 상의 자원을 나타내는 고유 식별자로, 즉 인터넷에 있는 자료의 ID이다. URI의 역할은 리소스(전화, 지도, 이미지, 텍스트) 에 접근할 수 있는 유일한 식별자 역할을 수행하며, URI를 수신하는 기기는 해당 URI에 맞게 데이터를 반환한다. URI의 하위 개념으로는 URL과 URN 등이 있다. 👉 URL (Uniform Resource Locator) 특정 리소스에 대한 구체적인 위치를 서술하는 것 (현재 대부분의 URI는 거의 URL인 경우가 많다) URL의 표준 포맷은 다음과 같다. 일반적으로 Protocol, HostName, Port, Query 4가지 요소로 구분..

[Authentication] Session/Cookie vs Token 차이

Session / Cookie 방식 한마디로 요약하면, 사용자는 Cookie를 이용하여 인증받고, 서버에서는 Cookie를 통해 Session 정보를 인증함 우선 Session과 Cookie가 의미하는 바는 다음과 같습니다. Session : 서버에서 클라이언트 정보를 가지고 있는 것을 의미 Cookie : 서버에서 발급된 세션을 열기 위한 값 (= Session ID라는 Key값 저장) Session / Cookie 방식의 특징 인증 간 기본적으로 Session 저장소(DB, Memory DB, WAS 등의 방법이 있음)를 활용함 Session 저장소는 사용자가 로그인시 로그인한 사용자의 정보를 저장하고, 세션 ID (Key 값)를 만들어 Response의 HTTP Header에 같이 보냄 브라우저는 ..