본문 바로가기

Main59

[Flask/APScheduler] 순환 참조로 인한 초기화 오류 해결 주기적으로 요청해야하는 프로그램이 있어 스케쥴러 프로그램을 작성했더니 (flask) from apscheduler.schedulers.background import BackgroundScheduler from flask import Flask from .batch import check_not_answer_question from .database import db from . import config from sqlalchemy import text from .routes import routes_bp global_api_key = config.API_KEY def create_app(): app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = .. 2024. 3. 1.
[기술면접대비] 5. 자료구조&알고리즘 자료구조 선형 자료구조 배열 : 정해진 크기만큼 데이터가 일렬로 저장되는 정적 자료구조 → 접근,검색,삽입,삭제 가능 연결리스트 : 크기가 정해져 있지 않은 동적 자료구조, 헤드 포인터와 테일 포인터로 시작과 끝을 알 수 있음 → 검색, 삽입, 삭제 가능 스택 : LIFO(후입선출) → 맨 위에 삽입, 가장 위에있는 데이터 삭제 및 확인, 비어있는지 확인, 가득찼는지 확인 모두 O(1) 큐 : FIFO(선입선출) → 맨뒤에 데이터 삽입, 맨앞에 데이터 삭제, 비어있는지 찼는지 확인, 맨 위에 있는 데이터 확인 모두 O(1) 시간복잡도/ 데이터구조 배열 연결리스트 스택 큐 접근 O(1) X X X 검색 O(n) O(n) X X 삽입 O(n) O(1) + O(n)→ 그러나 삽입 위치까지 가는데 O(n)이 걸.. 2024. 1. 29.
[기술면접대비] 4. 데이터베이스 데이터베이스 데이터베이스 스키마 종류 내부 스키마 : 사용자 측면의 데이터베이스 전체 구조 개념 스키마 : 데이터베이스 전체구조 외부 스키마 : 물리적 저장 측면에서 구조 관계형 데이터 베이스 VS NoSQL 릴레이션(개념적 모델) = 테이블(실제 구현 개체) NoSQL은 대용량 데이터 조회시 관계형보다 빠름, 데이터 확장과 대용량 데이터 조회가 빈번히 일어날 때 사용 +) 그렇다면 관계형 DB는 NoSQL에 비해 뭐가좋을까? → 데이터 쿼리와 트랜잭션 지원이 필요한 경우, DB끼리 join을 많이해야하는경우(복잡한 쿼리 사용할때) +) 수직확장과 수평확장은 뭘까? 정의: 수직 확장은 하나의 서버의 성능을 향상시키는 것을 의미합니다. 이는 일반적으로 더 강력한 CPU, 더 많은 RAM, 더 큰 저장 용량.. 2024. 1. 29.
[기술면접대비] 3. 네트워크 계층과 TCP&UDP 통신 OSI 7계층 네트워크 통신이 이뤄지는 과정을 7단계로 나눈 네트워크 표준 모델 각 계층은 독립적이며 데이터를 송신할 때 각 계층에서 필요한 정보를 추가해서 데이터 가공 프로토콜이란 데이터를 송수신하기 위해 정한 규칙 7계층(응용) : http,ftp등 눈앞에 보이는 UI 6계층(표현) : 데이터를 표준화된 형식으로 변경 5계층(세션) : 프로그램 간 통신 제어와 동기화 4계층(전송) : TCP, UDP 같은 전송 방식과 포트 번호 3계층(네트워크) : 데이터 송수신(라우팅) 수행, 네트워크 계층의 장비(라우터) 2계층(데이터 링크) : 데이터 흐름 관리(오류 검출 및 복구), 데이터 링크 계층의 장비 1계층(물리) : 데이터를 비트 단위로 변환해 장비를 사용해 전송, 전기 신호 데이터 복원(리피터,허브.. 2023. 12. 31.
[기술면접대비] 2. 스케줄링과 메모리 관리 전략 이전글에서 이어집니다. 3. 스케줄링 스케줄링의 단계 1. 장기 스케줄링 : 준비 큐에 어떤 프로세스를 넣을지 결정해 메모리에 올라가는 프로세스 수 조절 (잡 스케줄링, 승인스케줄링) 2. 중기 스케줄링 : 메모리에 로드된 프로세스 수를 동적으로 조절, 프로세스가 많이 로드되면 스왑 아웃해서 일부 프로세스를 통째로 저장 -> 이때 스왑아웃된 프로세스는 중단 상태가 됨(준비/대기 상태에 중단 되는 셈) 3. 단기 스케줄링 : 준비 큐에 있는 대기 상태 프로세스 중 순서를 정해주는 스케줄링 알고리즘으로 결정. 어떤 프로세스를 보낼지 결정함(CPU 스케줄링) 용어정리 - 스왑 아웃 : 프로세스가 너무 많이 로드돼 중기 스케줄러가 프로세스들을 통째로 저장 공간에 옮겨 저장하는 것 - 스왑 인 : 스왑 아웃한 프.. 2023. 12. 27.
[기술면접대비] 1. 운영체제와 프로세스 기술 면접 대비 스터디로 https://product.kyobobook.co.kr/detail/S000208504237 를 스터디중인데 해당 내용 요약정리 및 보면서 추가로 공부한것들을 백업하고자 한다. 1. 운영체제 운영체제 : 하드웨어와 응용프로그램 사이에서 사용자가 컴퓨터를 사용할 수 있는 환경을 제공하는 시스템(소프트웨어) CPU : 주 기억장치 & 보조 기억장치 메모리 계층구조 : (레지스터 - 캐시메모리)(여기까지가 CPU) - RAM - 하드디스크 +) CPU는 하나의 프로세스만 처리할 수 있어서 멀티 프로세스 환경에선 스케쥴링 알고리즘이 사용된다 -> 주로 사용되는 스케쥴링 알고리즘은? 커널 : 응용프로그램 CPU,메모리,외부기기 사이에서 자원관리를 해줌 예를 들어 CPU 스케쥴링이나 메모.. 2023. 12. 27.