- 인터프리터 구동 방식
- 컴파일 언어(정적 타입)와 인터프리터(동적 타입)으로 되어 있으며, 인터프리터의 경우는 개잘과정에서 코드를 컴파일을 하지 않고 코드 자체로 보내어 프로그램안에서 동작시 한 줄 씩 기계어로 변환하여 동작을 하게 되어 있습니다. 자료의 일관성을 유지하기 위해서는 컴파일 언어를 사용하는 것이 유용하다. 간단한 코드를 작성할 때에는 인터프리터 언어가 유용하다 규모가 커질 경우애는 컴파일언어를 주로 사용한다.
- 쓰래드 구동 방식
- 프로세스와 쓰래드는 프로그램을 동시적으로 구동을 하기 위해서 존재하는 것이며, 코어의 갯수를 통해서 병렬성을 가질 수 있으며, 프로세스를 하나씩 해결해 가면서 나가는 건 동시성으로 말한다. 하나의 프로세스에서 자원을 공유하며 만들기 때문에 데이터를 효율적으로 사용할 수 있으나. 같은 프로세스의 쓰래드가 동시에 작업시 오류가 발생할 수도 있기 때문에 디버깅이 필요하다.
- 캐시 메모리의 저장 방식
- 램보다 훨씬 빠른 속도로 자주 이용해야 하는 메모리를 저장해 두는 곳이며, 저장 규칙으로는 최근에 접근된 데이터(시간적 지역성)과 죄근에 접근된 데이터의 주변 데이터(공간적 지역성)을 기반으로 저장을 합니다. 즉 데이터 크기는 작지만 빠른속도로 처리가 되어야 하는 작업을 넣어 놓기 좋습니다.
- redis저장 방법
- 외부 딕셔너리 서버 - 데이터를 하드디스크에 저장하는 것이 아닌 램에 저장하여 더 빠른 메모리에 더 자주 접근하고 덜 자주 바뀌는 데이터를 저장하자 서버가 여러개인 경우에는 문제가 발생 할 수 있음. 쓰래드가 하나이기때문에 O(N) 복잡도는 멀리하는것이 좋다. 메모리 파편화로 인하여 용량은 계획보다 크게 해주는 것이 좋다. 자주 사용하지 않는 데이터는 메인메모리에 저장했다가 다시 꺼내는 방식으로 사용할 수 있으나 레이턴시가 발생할 수 있으므로 잘 선택을 해야 합니다.
- 데이터베이스의 저장방법
- key-value 형식의 데이터 방식,
- 관계형 데이터 베이스 테이블
SQL 문법을 이용해서 작성을 해야 하며 중복을 싫어하여 정규화 하여 중복을 제거 합니다. 트렌젝션 기능으로 안전성이 높다. - 그래프 데이터 베이스
노드를 만들고 각 노드와 연결점을 만들어서 Graph Query Language라는 것을 이용하여 사용 할 수 있습니다.
sns, 노선, 이어져 있는 관계를 표현하기 좋습니다. - Document database (NoSQL)
collection 안에 document라는 것을 만들어서 JSON형태의 데이터를 보관하며 데이터를 중복적으로 입력이 가능합니다. 데이터베이스를 분산 시켜서 저장할 수 있습니다. - Column-family Database
테이블 위에 로우를 만들어서 자유롭게 컬럼을 만들수 있습니다. 대신 SQL문이 아닌 각자의 언어로 되어진 문법을 사용하여야 합니다. 복제 및 분산이 가능합니다. - seartch engine
검색 보관을 위한 데이터베이스 검색 기록을 보관하고 추천검색을 위해서 잘 사용한다.
- key-value 형식의 데이터 방식,
- AWS 배포 흐름에 대해서(로드밸런싱)
- 한마디로 컴퓨터를 랜탈해서 빌려 서버를 운영하는 것인데. 거기에 내가 만든 코드를 넣고 구동을 시키는 것이라고 볼 수 있다,
- DDL, DML, DCL이란?
- SQL에서 사용하는 언어에 대한 것? 도메인, 테이블, 뷰 인덱스를 정의, 변경하는 제어 언어
- 커널이 무엇인가?
- 셸, 커널, 터미널
셸은 운영체제를 감싸 사용자에게 노출시키는 구조 커널은 운영체제의 핵심이여 하드웨어를 직접 제어 하며 사용자가 직점 통제를 할 수 없습니다. 예를 들어 작업을 분배해서 CPU에게 나눈어 주는 일을 한다. 터미널은 사용자와 커널이 상호작용을 하기 위해서 하나의 예뮬레이션 이라고 생각하면 된다.
- 셸, 커널, 터미널
- 프로세스와 스레드는 정확하게 무엇인가?
- 프로세스와 스레드는 프로그램들이 동시성과 병렬성을 가지기 위해서 작업을 진행 할 수 있도록하는데. 프로세스는 여러가지의 작업을 조금씩 돌아가면서 진행을 하는데. 그 세션에서 같은 작업을 공유해 가면서 효율적으로 작업하기 위해서 쓰레드를 이용하여 같은 자원을 공유하면서 작업을 합니다. 쓰레드는 자원을 공유함으로 써 메모리를 효율적으로 사용 할 수 있는 방법이지만 동시에 작업이 진행되어 겹치는 상황에 에러가 발생할 수 있다는 단점이 있으며, 프로세스에 경우는 쓰레드에 비해 큰 자원을 차지하고 있다는 점이 있습니다.
- JWT에 대해서
- 세션방식과 토큰방식으로 회원 인증 방식으로 이용을 할 수 있는 것인데 세션방식은 입장권을 가지고 있으면 그 번호로 서버에서 조회를 한다음에 인증하는 방식이면 토큰 방식은 모든 데이터가 적인 유효기간을 보고 넘어간다.이러한 방식은 서버의 부담을 줄여준다. 또한 시크릿키가 유출되면 보안이 약해진다.
- 자료구조에 대해서 (해시테이블)
- 자료구조란 데이터를 저장하고 관리하는 방식이며, 데이터를 효율적으로 저장을 하기 위해서 데이터에 맞추어 자료의 형태를 잘 맞추어 설정을 해야 합니다. 그래서 자료구조에 따라 알고리즘의 실행 시간이 영향을 크게 미치게 됩니다. 리스트는 어래이와 링크드리스트가 있으며 각 노드에 값과 다음 노드의 주소가 있습니다.
- 계층별 주요 프로토콜 및 네트워크 장비
- physical : 디지털 신호를 전기신호로 변환하여 통신
- datalink : 도착해야 하는 컴퓨터에 보낼 수 있도록 mac주소를 부여 및 확인
- network : 컴퓨터와 컴퓨터를 연결하는 포인트
- transport : 데이터를 쪼개어 순서를 정하고 포트를 붙임, 어플리케이션을 구분, 에러를 컨트롤, (TDP,UDP)
- session : 컴퓨터가 연결이 되었을 때에 인증, 허가, 세션을 만들고 반대로 온것을 확인
- presentation : 생성된 데이터를 변환, 압축, 암호화
- application : 데이터를 생성하고 만듬, 반대로 수신받은 데이터를 보여줌
- 엔티티와 스키마
- 스키마 : 서로 연관된 테아블을 그룹지어놓는 것
- 엔티티 : 데이터 베이스에서 각 개체를 나타냄 초기 단계에서 모델링하는 방법
- 트랜잭션과 ACID
- 데이터 베이스가 신뢰성을 가지기 위해서 필요함
- 데이터 베이스가 하나의 명령을 온전히 수행을 함
- 4가지의 동작이 전부 끝까지 진행이 되어야 함 (원자성, 일관성, 지속성, 독립성)
- 효울적인 쿼리
- SELECT (5번)
FROM (1번)
WHERE (2번)
GROUP BY (3번)
HAVING (4번)
ORDER BY (6번) - 각 명령문이 실행이 되는 순서를 잘 기억해두었다가 반영을 하는것이 좋다.
- SELECT (5번)
- 장고 정참조와 역참조
- 장고의 ORM을 이용하여 객체에 접근을 해야 할 때에 Foreign Key를 이용한 개체를 참조하는 방법이며, 역참조는 FK가 없는 객체가 관계된 모델을 참조하는 방법이다.또는 relate_name을 이용한 설정으로 가능하다.
- TCP, UDP
- 둘다 end point간 신뢰성있는 데이터 전송을 담당하는 계층이며, 이를 이용하여 데이터를 순차적으로 전송할 수 있게 합니다. tcp의 경우 양방향 통신을 커넥션 하여 연결 흐름제어 혼잡제어 오류감지 기능을 함 UDP의 경우는 tcp에 비해 안정성은 떨어지지만 속도를 중요시 하기 위해서 만들어짐 스트리밍 서비스를 제공하기 좋음
- 웹소켓이란?
- 웹 페이지의 데이터를 받아오기 위해서 서버에 요청을 해서 받아오는데 계속해서 지속적으로 받아야 하는 데이터를 요청없이 받아오기 위해서 사용(예시:주식 가격, 채팅) WS ://으로 작성http같이 사용
- API란?
- api는 하나의 프로그램에서 다른 프로그램으로 데이터를 주고 받기 위한 방법으로 프로그램을 동작시키기위한 메뉴얼 데로 동작할 수 있습니다.
- SQL은?
- 구조화 된 정해진 질의어 관계형 데이터데이스를 관리하고 데이터에 대해서 생성, 수정, 삭제를 할 수 있는 언어
'코딩 정리함' 카테고리의 다른 글
면접 대비 질문 (0) | 2024.08.26 |
---|---|
Docker를 사용하는 이유 (0) | 2024.08.26 |
CS 기술 면접 준비 (0) | 2024.08.21 |
CS면접 질문 (0) | 2024.08.14 |
⭐AI 코딩 교육 내일배움캠프를 경험한 나의 실제 후기⭐ (0) | 2024.06.24 |