post-thumbnail

[Python] 위상 정렬(Topological sort)

비순환 방향 그래프 (Directed Acyclic Graph) DAG라고 부르는 비순환 방향 그래프는 사이클이 없는 방향 그래프이다. DAG은 주로 이벤트간의 우선순위를 나타낼 때 사용한다. 사이클이 있으면 DAG이 아니므로 주의해야 한다.

2022년 12월 19일
·
0개의 댓글
·
post-thumbnail

[AWS] Kafka로 single consumer, multi consumer 구현하기

![](https:

2022년 11월 10일
·
0개의 댓글
·
post-thumbnail

[CS] 정렬 알고리즘

정렬(Sort)이란 자료의 원소들을 특정 기준에 의해 작은 값부터 큰 값 혹은 그 반대 순서로 재배열하는 것. (오름차순 정렬 / 내림차순 정렬)아래에 제시한 소팅들의 정렬 과정은 모두 오름차순 기준이다. O(n^2)버블 정렬은 매번 연속된 두 수를 비교하여 큰 값이

2022년 11월 9일
·
0개의 댓글
·
post-thumbnail

[AWS] EventBridge와 Lambda 이용해 S3에 기록 적재하기

EventBrigde : 서버리스 이벤트 버스로 다양한 이벤트를 받아서 라우팅, 필터링, 트리거링할 수 있다. 특정 규칙을 지정하고 그 규칙에 부합하면 AWS의 다른 서비스를 호출할 수 있다. 여기서는 일정 시간마다 AWS 서비스를 호출시켜주는 스케줄러로서 사용해보자.

2022년 11월 9일
·
0개의 댓글
·
post-thumbnail

[CS] 메모리 구조(스택/힙/데이터/코드)

프로그램을 실행시키면, 운영체제는 우리가 실행시킨 프로그램을 위해, 메모리 공간을 할당한다. 프로그램이 운영체제로부터 할당받는 메모리 공간은 다음과 같다.1\. 코드(code) 영역2\. 데이터(data) 영역3\. 스택(stack) 영역4\. 힙(heap) 영역프로그

2022년 11월 8일
·
0개의 댓글
·
post-thumbnail

[AWS] S3에 있는 Log Json파일 Athena로 살펴보기

s3 : 모든 데이터들을 저장할 데이터 레이크같은 역할버킷 : bucket, 객체가 파일이라면 버킷은 연관된 객체들을 그룹핑한 최상위 디렉토리, globally unique name이기 때문에 이름 지을 때 중복을 조심해야 한다.준비물 : AWS 계정, Log Json

2022년 11월 7일
·
0개의 댓글
·
post-thumbnail

[CS] DB 인덱스, 인덱스 자료구조

DB를 사용하면서 데이터의 양(Row)이 늘어남에 따라 실행 결과의 속도의 차이가 난다. 특히 JOIN, 서브 쿼리 사용 시 발생하는 곱연산에 따른 데이터의 양은 엄청나게 증가하게 된다. 이러한 데이터의 증가로 인해 WHERE 조건절로 필요한 데이터만 추출해서 사용하였

2022년 11월 7일
·
0개의 댓글
·
post-thumbnail

[CS] 단편화, 세그멘테이션, 페이징(내부단편화 ,외부단편화)

메모리 관리 기법은 크게 연속 메모리 관리와 불연속 메모리 관리로 나뉜다.프로그램 전체가 메모리에 연속적으로 할당되어야 하는 관리 기법고정 분할 기법 : 메모리가 고정된 파티션으로 분할, 내부 단편화 발생동적 분할 기법 : 파티션들이 동적 생성, 자신의 크기와 같은 파

2022년 11월 2일
·
0개의 댓글
·
post-thumbnail

[CS] TCP vs UDP

TCP와 UDP는 TCP/IP의 전송계층에서 사용되는 프로토콜이다. 전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층이다.TCP는 Transmission Control Protocol의 약자인데, 이를 해석하면 TCP를 해석

2022년 11월 1일
·
0개의 댓글
·
post-thumbnail

[CS] OS 데드락, 동기화

데드락이란 일련의 프로세스들이 서로가 가진 자원을 기다리며 벽돌처럼 block되어 더 이상 진행이 될 수 없는 상태를 말한다. 그림처럼 각각의 자동차가 모두 자기 앞에 있는 자동차가 지나가기를 기다리는 상황이 되어 모든 차가 더 이상 움직일 수 없는 상태를 말한다. 예

2022년 10월 31일
·
0개의 댓글
·

[CS] DB- 트랜잭션의 4가지 특성 (ACID)

트랜잭션은 데이터베이스 내에서 데이터를 처리하는 작업 수행의 논리적인 작업 단위(하나의 그룹)를 의미한다.트랜잭션은 작업의 완전성을 보장해야한다. 즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는

2022년 10월 28일
·
0개의 댓글
·
post-thumbnail

[CS] OS 스레드 , 프로세스 차이(멀티스레드와 멀티프로세스차이, PCB)

어떤 작업을 실행할 수 있는 파일파일이 저장장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태 ⇒ 즉 사용자가 눌러서 실행하기 전의 파일. 코드 덩어리   운영체제로부터 시스템 자원을 할당받는 작업의 단위프로그램을 실행하는 순간 파일은 컴퓨터 메모리에 올라

2022년 10월 27일
·
0개의 댓글
·
post-thumbnail

[CS] 네트워크 / 웹브라우저에 google.com을 검색하면 발생하는 과정

웹의 동작 과정을 이해하기 위해서는 먼저 인터넷의 동작 과정을 이해해야 한다.'인터넷'하면 익스플로러나 크롬 이미지를 떠올리는 사람이 있다면 우선 웹과 인터넷의 개념을 분리할 필요가 있다. 인터넷과 웹의 관계는 너무 밀접해서 마치 인터넷과 웹이 동일한 개념인 것처럼 느

2022년 10월 24일
·
0개의 댓글
·
post-thumbnail

[데이터 엔지니어링 on Cloud] 4주차 정리

대량의 데이터를 실시간으로 분석하기 위해 batch로 만든 데이터와 실시간 데이터를 혼합하여 사용하는 아키텍처Lambda Architecture = batch layer + serving layer + speed layer• Duplicate Code: 두 개의 서로

2022년 10월 17일
·
0개의 댓글
·
post-thumbnail

[CS] HTTP, HTTPS(TLS(SSL))/HTTP 1.0 1.1 2.0 3.0/ HTTP RESTFUL / HTTP 응답코드 외우기

HTTPHTTP의 두가지 특징Request, Response 구조HTTP Request Methods    HTTP는 HyperText Transfer Protocol의 약자이다.HTML은 HyperText Markup Language의 약자로, HyperText(웹

2022년 10월 17일
·
0개의 댓글
·

[Python] 깊은 복사, 얕은 복사

복사에는 깊은 복사와 얕은 복사라는 개념이 있다.얕은 복사라는 것은 변수를 복사했지만 실제로는 복사가 아니라 연결되있는 것을 의미한다.깊은 복사는 우리가 흔히 알고있는 복사의 개념이다.   얕은 복사를 하면 복사를 했다고 생각하지만 사실 복사한 것은 참조(메모리 주소)

2022년 10월 7일
·
0개의 댓글
·

[Python] Mutable, Immutable

파이썬에는 객체의 종류가 두가지가 있다.mutable : 변경 가능한 객체immutable : 변경 불가능한 객체mutable 객체로는 set, list, dictionary가 있고 immutable 객체로는 int, float, tuple, str, bool이 있다.

2022년 10월 7일
·
0개의 댓글
·
post-thumbnail

[데이터 엔지니어링 on Cloud] 3주차 정리

Apache Kafka란 데이터 파이프라인, 스트리밍 분석, 데이터 통합을 위한 오픈 소스 분산 이벤트 스트리밍 플랫폼(distributed event streaming platform)이다.이벤트 스트리밍은 인체의 중추 신경계에 해당하는 디지털 처리 방식으로,비즈니스

2022년 10월 5일
·
0개의 댓글
·

[백준] 포켓몬 도감

name = "Bulbasaur", "Ivysaur", "Venusaur", "Charmander", "Charmeleon", "Charizard", "Squirtle", "Wartortle", "Blastoise", "Caterpie", "Metapod", "Butt

2022년 10월 4일
·
0개의 댓글
·

[Python] 분할 정복(Divide and Conquer)

분할 정복이란 크고 방대한 문제를 조금씩 나눠가면서 쉽게 풀 수 있는 문제 단위로 나눈 다음 그것들을 다시 합쳐서 문제를 해결하는 방법이다.분할 정복은 세 단계로 설계할 수 있다.기존 문제를 작은 문제로 나누는 Divide단계나누어진 각 부분 문제를 해결(정복)하는 C

2022년 9월 29일
·
0개의 댓글
·