컴퓨팅 기술

들어가기 한 달 동안 진행되었던 고랭 알고리즘 스터디가 팀원 분들이 시간이 안 되는 관계로 끝났다 4월에 다시 하자는 말이 있었는데 한다면 난 하면 할 것 같은데, 과연 다시 시작할지는 모르겠다 그동안 문제 풀고 그걸 블로그에 글로 추가함으로써 뭐 쓸지 고민 안 해도 돼서 편했는데 이제 주제를 다시 정해야 될 때가 와버렸다.. 주제 선정에 고민하다가 문뜩 GPT가 기억났다, 그래서 한번 물어봤는데 역시 대단한 친구라 그런지 여러 가지 답변을 줬는데 그중에서 눈에 들어온 친구가 있었다 오? GraphQL? 어디선가 많이 본 친구가 보였고 이김에 이거로 하기로 마음을 먹었고 관련해서 좀 알아보면 아래 세 개로 정의할 수 있다 API를 쿼리로 사용하는 언어이다 페이스북(Facebook)에 의해 2012년 내부..
Docker 도커란 컨테이너화 기술을 통해 애플리케이션을 패키징하여 사용하는 데 이 컨테이너 방식은 애플리케이션과 의존성을 함께 패키징함과 동시에 기존에 가상 머신을 사용하여 사용자 환경을 나누는 것과 비교하면 훨씬 가볍고 빠르게 구현으로 사용자 환경을 나눌 수 있습니다. 아래 이미지를 보면 왼쪽은 가상머신을 사용할 때의 상황을 가식화한거고 오른쪽 이미지는 컨테이너를 사용하는 방식입니다. 가상머신은 Guest OS까지 띄우고 진행해야 한다는 점에서 도커보다 무겁고 느릴 수밖에 없습니다. Docker Desktop 다운로드 Desktop에서 Docker를 관리하기 용이하게 해주는 Docker Desktop을 다운해줍시다. https://www.docker.com/products/docker-desktop/..
개요 웹 서비스를 한다면 크롤링을 알 수밖에 없을 것입니다. 자체적으로 API를 통해 공개하는 데이터 이외에도 아무 데이터나 긁어가 버리니 귀찮은 존재죠. Captch나 자체적으로 로그를 쌓아서 이를 체크해서 막는 방법 등 각자의 노하우로 여러 가지가 있을 겁니다. 물론 막는 법을 잘 아는 게 중요하지만 공격 쪽 입장에서의 생각도 알면 더 좋겠다는 생각으로 정리해 봤습니다. 번외로 요즘은 합법적으로 토렌트처럼 분산 요청을 통해 Captch도 뚫어버리는 서비스도 있는데 참 신기합니다 1. User Agent 가장 쉽고 편하게 해 볼 수 있는 방법입니다. Python + Selenium 기준으로 아래처럼 헤더라 User Agent를 추가하면 됩니다. headers = { "Accept": "text/html..
클라우드 컴퓨팅 개념 개념은 정말 간단하고 생각해 컴퓨팅와 관련된 모든 자원(PC를 포함한 하드웨어나 애플리케이션 등등)을 돈 주고 빌리는 것 Pay as you go Q : 근데 왜 구름(cloud )이야? 렌탈 컴퓨팅이라고 하면 편하잖아 A : 구름은 같이 언제든지 볼 수 있는 지만 구름의 내부까지 못 보는 것과 같이 사용자가 실제로 어떤 리소스를 사용하는지까지는 알 수 없다는 점이 구름과 비슷하고 크기가 항상 바뀌는 구름처럼 기존에 컴퓨팅에 유연성과 확장성을 추가한걸 설명하기 위함이야 즉 언제든지 크기를 키울 수도 줄일 수도 있고 원하는 기능을 추가할 수 도 있어 거기에 우리는 자그마한 부분의 리소스를 가져다가 쓰게 될 텐데 그게 꼭 전체 구름(전체 리소스)에서 필요한 구름만(필요한 리소스) 떼어내..
개요애플리케이션에서 다른 애플리케이션이 이용할 수 있는 데이터 패킷을 수신 애플리케이션이 준비가 되었을 때 발송해줌(네트워크나 수신 애플리케이션의 장애가 발생하더라도 메시지 큐는 보존됨)  흐름도Producer → 메시지(작업) 지시 → Queue(적재 & 반출) → 메시지(작업) 진행 → Consumer  적용 분야메시지 큐의 사용 목적은 큐에 적재한 작업이 언젠가 소비(실행) 될거라고 믿기 때문이다.일반적인 HTTP 요청일 경우 (Client ↔ Sever) 소비자는 응답을 기다려야 하므로 메시지 큐는 바람직하지 않다.아래 분야에 적용하기 적합블로그 포스팅 : 용량이 큰 이미지의 경우 업로드 시 이미지 최적화 서비스의 큐를 사용이메일 : 애플리케이션의 핵심 기능이 아닐 경우 메시지 큐를 통해 메일 발..
도커에서 아래와 같이 apm을 전부 정상적으로 설치했음에도 데이터베이스가 연결 안될 경우 아래 방법을 적용하면 됩니다., define( 'DB_NAME', 'myapp' ); /** MySQL database username */ define( 'DB_USER', 'root' ); /** MySQL database password */ define( 'DB_PASSWORD', 'secret' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' ); /** Database Charset to use in creating database tables. */ define( 'DB_CHARSET', 'utf8' ); /** The Database Collate t..
해싱(Hasing)의 개념 해시(Hash) 탐색키에 산술적인 연산을 통해 버킷 주소를 계산하는 해시 함수를 사용하여 데이터 배분 및 접근하는 기법 아래 이미지와 같다고 생각하시면 됩니다. 여기서 버킷(Bucket)이란 한 개 이상의 레코드를 저장할 수 있는 저장공간의 단위로, 일반적으로 디스크 블록의 크기와 일치한 크기를 지닌다. 해시의 구조 아래 이미지처럼 탐색키가 해시 함수를 거치면 어느 버킷에 저장되는지 정해지는 것 해시의 사용 그렇다면 어떻게 데이터를 꺼낼 수 있는가? 아래처럼 값을 입력하면 그에 상응하는 버킷을 알려줌 그렇다면 해시 함수의 역할은 자연스럽게, 여러 버킷에 균등하게 제공해야 한다, 만약 한 버킷에 모든 레코드를 저장하다면 해시의 성능이 확 떨어짐 => 실제 해시 인덱스에서는 완벽한..
인덱스의 이해 인덱스의 개념 인덱스(Index) : DBMS에서 요청된 레코드에 빠르게 접근할 수 있도록 지원하는 데이터와 부가적인 구조 인덱싱(Indexing) : 인덱스를 구성하고 생성하는 작업 => 인덱스의 탐색키를 이용하여 해당 레코드가 저장된 블럭에서 디스크 저장 장치 또는 메모리에서 파악하여 해당 블럭을 빠르게 적재할 수 있음 탐색키 : 파일에서 레코드를 찾는데 사용되는 컬럼이나 컬럼의 집합 인덱스 기반의 검색 과정 기존에는 디스크에서 메모리에 모든 컬럼을 올린다면 인덱스를 이용한다면 메모리에는 인덱스만을 올리고 필요할 때 추가 컬럼을 가져오는 방식을 이용 => 인덱스가 컬럼의 집합보다 크기가 작기 때문에 가능 인덱스의 종류 순서 인덱스 : 특정 값에 대해 정렬된 순서 구조 해시 인덱스 : 버..
데이터베이스의 데이터가 저장되는 공간은 무엇일까? 아래는 컴퓨터 내부의 저장 공간의 종류입니다, 내려갈 수록 저장 요량이 커지며, 올라올 수록 속도와 가격이 높아집니다.(행 기준) 명칭 특성 설명 레지스터 (Register) 휘발성 극히 소량의 데이터나 처리중인 중간 결과와도 같은 프로세스가 바로 사용할 수 있는 데이터를 담는 영역 캐시 (Chache Memory) 휘발성 고비용 저장장치로 빠른 접근 속도를 보장 메인 메모리 (Main Memory) 비휘발성 실제 프로그램과 데이터 적재 공간 자기 디스크 (Magnetic Disk) 플래시 메모리 (Flash Memory) 비휘발성 자기 디스크 : 데이터베이스 전체를 안정적으로 저장 플래시 메모리 : 메인 메모리와 유사하나 비휘발성, 전기적으로 데이터를 ..
데이터의 중복의 문제점 - 일관성 유지의 어려움 - 저장 공간의 낭비 갱신 이상 - 삽입 이상 : 레코드 추가 시 불필요한 컬럼의 값이 없이는 추가를 못함 - 삭제 이상 : 삭제시 의도치 않았던 데이터도 삭제되는 경우 - 수정 이상 : 중복 저장된 레코드를 수정 시 모두 안되어 DB의 일관성이 깨지는 경우 데이터베이스에서 나쁜 릴레이션의 예시 등급, 할인율에서 중복 데이터를 사용 => 할인율 변경 시나 등급 변경 시 일관성 유지가 어려움 데이터베이스에서 좋은 릴레이션의 예시 새로운 테이블 만듦으로써 할인율의 삽입, 삭제, 수정 등이 용이해짐 + 데이터가 많아질 경우 데이터의 사용 공간을 절약함 위에서 어느 릴레이션을 나눌지 정하는 요소가 바로 함수적 종속성이다 정의 1. 릴레이션 인스턴스를 분석하여 속성..
DSeung
'컴퓨팅 기술' 카테고리의 글 목록