/TIL

Primary LanguagePython

algorithm

algorithm_part1

  • 목차

  • 선형 탐색과 이진 탐색

  • 정렬

  • 시간복잡도

  • 재귀함수

  • 알고리즘 패러다임



algorithm_part2

  • 알고리즘

  • 복잡도

  • 진수

  • 실수의 표현

  • 비트

  • 문자표현

  • 그래프

  • Stack과 Queue



algorithm_part3

  • Linked list

  • Tree

  • 반복과 재귀

  • 순열과 조합, 부분집합

  • 탐욕 알고리즘

  • 다이나믹 프로그래밍

  • Divide and Conquer

  • Backtracking

  • 문제 풀면서 알게 된 것들

  • 편집 거리 알고리즘



algorithm_part4

  • Two Pointer

  • Deque와 우선순위 큐

  • Hash

  • 해시 충돌 발생시 회피 기법

  • 그래프

  • 최단 경로 문제



algorithm_part5

  • Tree

  • Heap

  • 에라스토테네스의 체

  • 연결리스트

  • Trie

  • 정렬



algorithm_part6

  • 그리디 알고리즘

  • Raft Consensus Algorithm



HNSW





C

C

  • Pointer




clean_code

clean_code_part1

  • 깨끗한 코드

  • 의미있는 이름

  • 함수

  • 주석

  • 형식 맞추기



clean_code_part2

  • 객체와 자료 구조


code_readability

  • 코드 가독성




CS

discrete_mathematics_part1

  • 수의 체계

  • 수의 연산

  • 컴퓨터에서의 수의 연산 표현과 연산

  • 명제와 논리



HTTP_part1

  • HTTP를 왜 학습해야 하는가

  • 인터넷 네트워크

  • URI와 웹 브라우저 요청 흐름

  • HTTP 기본

  • Shorts



IT_Essential_part1

  • 프레임워크와 라이브러리

  • 아키텍처 그리기(설계하기)

  • Server & Client Architecture

  • 개발자는 항상 의심해야 한다

  • 개발자의 나쁜 습관

  • 프로젝트 DB 설계

  • 데이터 크롤링

  • 클라우드

  • Linux

  • 캐싱

  • 소프트웨어 테스팅

  • 쿠키, 세션, 웹 스토리지, IndexedDB

  • SSL과 TLS

  • 프로세스와 스레드

  • 동시성 병렬성



IT_Essential_part2

  • RPC

  • Session과 JWT

  • Text Encoding

  • REST

  • Memory



IT_Essential_part3

  • CORS

  • 왜 숫자는 0부터 세는가?

  • Data processing

  • Monorepo Vs Polyrepo

  • 보안

  • Data의 단위

  • IP

  • 진수

  • Shorts



IT_Essential_part4

  • Semantic Versioning Specification

  • CNCF(Cloud Native Computing Foundation)

  • Stream Backpressure

  • Standard Stream, Standard Input, Output

  • 2진수 음수 표현

  • DI

  • CI/CD

  • API Gateway

  • Load balancing

  • API Gateway vs. Load Balancer vs. Reverse proxy



IT_Essential_part5

  • API Throttling

  • Circuit Breaker

  • Data Flow Diagram(DFD)

  • MSA와 Event Driven

  • 암호화

  • Shorts



IT_Essential_part6

  • 프로그래밍 언어

  • UI

  • 소프트웨어의 이해

  • 소프트웨어 개발 생명 주기(SDLC, System Development Life Cycle)

  • Agile

  • 소프트웨어 개발 단계

  • 소프트웨어 품질

  • 프로젝트 관리



naming

  • boolean


Operating_System_part1

  • 운영체제 개요

  • 컴퓨터의 구조



Operating_System_part2

  • 프로세스와 스레드

  • 유니온 마운트

  • CPU 스케줄링



Operating_System_part3

  • 프로세스 동기화

  • 교착 상태

  • 물리 메모리 관리



web_application_architecture

  • Web application Architecture

  • Proxy

  • Python으로 웹 개발하기

  • 참고



최신 IT 기술 정리

  • 목차

  • Big Data

  • Clustering

  • Recommendation Systems

  • 블록체인

  • 인공지능





Database

Database_part1

  • 데이터 베이스의 기본 개념

  • 데이터 모델링

  • 데이터베이스의 언어, SQL

  • 정규화



Database_part2

  • 트랜잭션

  • 보안과 권한 관리

  • 데이터 베이스 응용 기술



install

  • Tibero 설치 및 Python 연동


MongoDB

mongodb

  • MongoDB 소개

  • MongoDB 설치하기

  • Mongo Shell

  • Mongostat

  • MongoDB Connection Pool

  • PyMongo





MySQL

mysql_part1

  • DBMS 개요

  • 데이터베이스 모델링

  • SQL

  • MySQL의 자료형

  • MySQL 프로그래밍



mysql_part2

  • DB 복사


tips

  • Workbench 사용 방법




PostgreSQL

postgresql

  • 실행하기

  • Replication

  • View





python_oracle

  • Python에서 Oracle 사용하기

  • 참고



sql

  • SQL

  • Query

  • TO DO





design_pattern

design_pattern

  • Design Pattern


design_pattern_part1

  • Strategy Pattern

  • Observer Pattern

  • Decorator Pattern

  • 디자인 원칙 모아보기



design_pattern_part2

  • Factory Pattern

  • Singleton Pattern

  • Command Pattern

  • 디자인 원칙 모아보기



design_pattern_part3

  • Adapter Pattern

  • Facade Pattern

  • Iterator Pattern

  • Composite Pattern

  • 디자인 원칙 모아보기



design_pattern_part4

  • State Pattern

  • Proxy Pattern

  • Template Method Pattern

  • 디자인 패턴 모아보기



design_pattern_part5

  • Compound pattern

  • 다양한 디자인 패턴들





devops

AWS

  • EC2

  • VPC



github_actions

  • 개요

  • Action 사용하기

  • 참고



Jenkins

  • Jenkins tutorial

  • Jenkins Pipeline

  • Blue Ocean

  • Jenkins로 application 관리하기

  • Jenkins + Docker swarm + Docker registry로 Continuous Deploy pipeline 구성



MinIO

  • MinIO 개요

  • MinIO 구성

  • Kafka와 함께 사용하기

  • MinIO Client

  • AWS CLI 사용하기



nginx

  • Nginx

  • 참고



postman

  • Postman으로 API 테스트하기


virtual_machine

  • 가상머신 소개와 설치

  • 가상 머신 생성

  • VMware 사용 방법

  • 운영체제 설치하기





django

django_part1

  • Django

  • MTV기초

  • DTL

  • MTV 확장

  • form태그와 input태그

  • Model

  • django_crud/articles/admin.py

  • Register your models here.

  • HTTP

  • 정적 파일 관리

  • form



django_part2

  • 사용자 인증 관리

  • 데이터베이스

  • SQL 기본

  • ORM

  • 일대다 관계

  • 다대다 관계



django_part3

  • 미디어 파일 관리

  • Query 최적화

  • REST API

  • django additional

  • 기타

  • red와 blue라는 2개의 선택지가 될 charfield를 넘겨주고



django_part4

  • DB와 Django 연동하기

  • Django allauth





docker

docker_part1

  • 컨테이너와 Docker

  • Docker image

  • Docker 설치하기

  • 도커 명령어



docker_part2

  • Dockerfile

  • Docker Compose

  • Manage application data

  • Docker network

  • Docker health check



docker_part3

  • Logging

  • DinD DooD

  • Docker registry

  • Docker swarm

  • Docker service

  • Docker image build시 anti-pattern

  • Build context



docker_part4

  • Docker Stack

  • Docker volume과 권한, 소유자, 소유 그룹

  • .bashrc에 umask 0002 명령어를 추가한다.

  • etc

  • alpine image





elasticsearch

Elasticsearch_debugging

  • Debug Elasticsearch


Elasticsearch_error



elasticsearch_heap

  • JVM

  • heap memory

  • 참고



Elasticsearch_part1

  • 검색 엔진 개요

  • 엘라스틱 서치 개요

  • 엘라스틱서치 기본 개념

  • Elaistcsearch 설치하고 실행하기

  • 기본적인 데이터 처리

  • 참고



Elasticsearch_part10

  • Node의 역할

  • ILM(Index Lifecycle Management)

  • Sniffing

  • Snapshot

  • Bootstrap check



Elasticsearch_part11

  • Elasticsearch 최적화


Elasticsearch_part12

  • 구현

  • Shard routing

  • Suggester



Elasticsearch_part13

  • Ingest Pipeline

  • alias

  • Security



Elasticsearch_part14

  • Shorts


Elasticsearch_part2

  • 클러스터 구축하기

  • 클러스터 운영하기



Elasticsearch_part3

  • Elasticsearch의 자료 구조

  • Elasticsearch의 score 계산 방식

  • 클러스터 성능 모니터링과 최적화

  • 분석 엔진으로 활용하기



Elasticsearch_part4

  • 인덱스 생성하기

  • Mapping explosion

  • 데이터 색인

  • 데이터 삭제



Elasticsearch_part5

  • 데이터 검색

  • Exist query

  • function_score

  • Nested query

  • 검색 관련 옵션



Elasticsearch_part6

  • More Like This Query

  • minimum_should_match

  • Profile API

  • kNN search

  • Highlight

  • Collapse

  • 여러 index 대상 검색

  • 엘라스틱서치 모니터링



Elasticsearch_part7

  • Runtime field

  • Scripting

  • Aggregations



Elasticsearch_part8

  • Loggin Configuration

  • Metricbeat

  • Data streams

  • Index template

  • Search template

  • API



Elasticsearch_part9

  • Analyzer와 inverted index

  • Analyzer 수정



Elasticsearch_plugin

  • configsync plugin

  • Elasticsearch plugin 개발



Elasticsearch_python

  • Elasticsearch 8

  • elasticsearch-dsl

  • ETC



Elasticsearch_senario

  • ES 클러스터 구축 시나리오


Elasticsearch_with_docker

  • Cluster 구성 시 discovery가 발생하는 과정

  • Docker로 ES, Kibana 설치하기

  • elasticsearch single node

  • Docker-compose로 설치하기

  • Docker stack으로 설치하기

  • Security 활성화 한 상태로 생성하기

  • Error



faiss

  • 사전지식

  • faiss Tutorial

  • 기초

  • Faiss indexes

  • 참고



fluentd

  • 개요

  • Python과 연동하기



logstash

  • Logstash

  • Command Line으로 실행하기

  • Docker로 실행하기

  • Logstash와 DB 연결하기

  • Logstash와 Kafka 연동

  • Output Plugin

  • Dead letter queues(DLQ)



Lucene

  • Index File Formats


Python_Elasticsearch



Rally

  • Rally


related_search

  • 연관검색어




etc

2022_aws_summit

  • 아키텍처 현대화

  • 당근마켓의 사례



Airbyte

  • Airbyte

  • Airbyte 실행하기

  • Destination



crawling

beautifulsoup

  • 목차

  • 크롤링의 위법성

  • Beautiful Soup

  • 기초

  • 웹 크롤러 만들기

  • get: 웹 페이지를 여는 함수

  • 인자로 크롤링 하려는 사이트의 주소를 입력

  • query_txt = input("크롤링할 키워드: ")

  • f_name = input("검색 결과를 저장할 파일경로와 이름을 지정하세요: ")

  • 위에서 표준 출력 내용을 터미널 창이 아닌 f_name에 하도록 지정했기 때문에 아래 내용은 터미널 창이 아닌 txt 파일에 저장되게 된다.



scrapy

  • scrapy




ETL

  • 사전지식

  • CDC

  • Airbyte



Iceberg



Pycon_2023

  • 짠내나는 데이터 다루기

  • Django 봄은 다시 온다

  • Jupyter book을 활용해 손쉽게 콘텐츠를 생성하고 공유하자

  • Django 컨트리뷰터가 되기까지의 여정

  • ETC



redis

  • Redis

  • Data Persistence

  • HA

  • Redis 사용해보기

  • Redis 사용 전략

  • 참조



tips

  • 유용한 사이트

  • Jupyter Notebook

  • 초기화시 해야 할 것들

  • 단축키





fastapi

fastapi_part1

  • FastAPI 튜토리얼

  • 매개변수

  • Request

  • Response



fastapi_part2

  • Response model

  • Lifespan Events

  • Testing

  • Dependencies

  • SQLAlchemy와 함께 사용하기

  • Backround Tasks

  • Async



fastapi_part3

  • FastAPI security

  • Nginx + FastAPI



guincorn



open_api

  • Open API

  • 참고





front

javascript

JavaScript_part1

  • 브라우저 & JS의 역사

  • 소개

  • 기초

  • 변수의 선언

  • 타입

  • 연산자

  • 제어문

  • 자료구조



JavaScript_part2

  • 함수

  • 프로토타입



JavaScript_part3

  • this

  • 스코프

  • 실행 컨텍스트와 JavaScript 동작 원리

  • 클로저



JavaScript_part4

  • JavaScript 객체 지향 프로그래밍

  • 빌트인 객체

  • 전역 객체

  • 각종 객체



JavaScript_part5

  • 정규표현식

  • 배열

  • DOM



JavaScript_part6

  • 이벤트

  • 비동기식 처리 모델과 ajax



JavaScript_part7

  • 프로미스

  • async&await

  • 예외처리

  • 클래스

  • 모듈



JavaScript_part8

  • strict mode

  • ECAMAScript6



JavaScript_part9

  • ECMAScript

  • Device Orientation

  • REST API

  • SPA





node

nodejs_part1

  • Node.js란

  • 작업 환경 준비

  • Koa 기본 사용법

  • Node.js에서 ES 모듈 import/export 문법 사용하기



nodejs_part2

  • MongoDB와 연동

  • 데이터베이스 스키마와 모델

  • 데이터 CRUD

  • 요청 검증하기

  • 페이지네이션 구현





Vue

Vuex

  • 목차

  • Vuex 기초

  • Vuex로 사용자 인증 구현

  • Vuex로 게시글 생성 및 조회 구현



Vue_js

  • 목차

  • Vue

  • Vue 라이프 사이클

  • Vue 프로젝트



Vue_js심화

  • 목차

  • Vue router

  • Youtube를 활용하여 페이지 만들기

  • 서버와 연결

  • 믹스 인

  • 이벤트 버스

  • 기타 팁



Vue_배포

  • 배포




web

babel_and_webpack

  • Babel

  • Webpack



CSS

  • CSS


Emailjs

  • EmailJs를 활용하여 메일 보내기


HCJ

  • CSS 문서 표현(상)

  • CSS 문서 표현(하)

  • 레이아웃과 고급 CSS 기능

  • CSS 기타



HTML

  • HTML이란

  • HTML 기본 구조



IndexedDB

  • IndexedDB 개요

  • 사용해보기





브라우저는 어떻게 동작하는가

  • 브라우저

  • 렌더링 엔진

  • 파싱과 DOM트리 구축

  • 배치

  • 그리기





git

git

  • 참고 사이트

  • 초기 설정

  • 기본 사용법

  • git branch

  • 기타



git_part1

  • 시작하기

  • Git의 기초



git_part2

  • Git 브랜치

  • commit message 작성하기

  • git 저장소 옮기기





ITPL

Introduction_To_Programming_Language_part1

  • Syntax and Semantic

  • Immutability

  • Pattern Matching

  • Identifiers

  • 출처



Introduction_To_Programming_Language_part2

  • Functions

  • 출처



Introduction_To_Programming_Language_part3

  • Boxes

  • Mutable Variables



Introduction_To_Programming_Language_part4

  • Garbage Collection


Introduction_To_Programming_Language_part5

  • Lazy Evaluation

  • Continuations



Introduction_To_Programming_Language_part6

  • First-Class Continuation




java

java_part1

  • JAVA 기초

  • 자료형

  • 상수와 리터럴

  • 연산자

  • 제어문



java_part2

  • 배열

  • 클래스

  • 메소드

  • 상속

  • 생성자

  • 패키지

  • 인터페이스



java_part3

  • 예외처리

  • 입출력

  • 패키지



monitoring

  • Java Application monitoring




kafka

kafka_part1

  • Kafka란

  • Streams and Tables



kafka_part2

  • Kafka 상세 개념


kafka_part3

  • 카프카 시작해보기

  • 카프카 확장



kafka_part4

  • Kafka Connect


kafka_part5

  • ksqlDB

  • Kafka를 사용한 application의 error handling



kafka_python

  • Python에서 사용하기




kotlin

kotlin_part1

  • Kotlin 개요

  • Data type

  • 연산자

  • if expression

  • when expression

  • 반복문

  • MutableList



kotlin_part2

  • 함수

  • 객체

  • Class

  • Error

  • packages





linux

linux_command

  • 리눅스 기본 명령어


linux_part1

  • 리눅스 개요

  • 가상머신 준비하기

  • 리눅스 기본 개념



linux_part2

  • 네트워크 관련 설정과 명령어

  • Shell

  • 사양

  • 페이지 캐시와 버퍼 캐시

  • -dev 패키지

  • systemd

  • umask

  • Shorts

  • etc



ubuntu_docker

  • Docker로 Ubuntu 실행하기




machine_learning

machine_learning_part1

  • 인공지능과 머신러닝, 딥러닝

  • k-최근접 이웃(k-Nearest Neighbor, kNN)





NLP

NLP_part1

  • 텍스트 전처리


NLP_part2





OOP

examples

chapter1







chapter10









chapter11









chapter12





chapter13









chapter14







chapter16









chapter2





chapter4





chapter5









chapter6







chapter8







Object_part0-1

  • 객체 지향의 사실과 오해


Object_part0-2



Object_part1

  • 객체, 설계

  • 객체지향 프로그래밍

  • 핵심



Object_part10

  • 타입 계층의 구현

  • 동적인 협력, 정적인 코드

  • 핵심



Object_part2

  • 역할, 책임, 협력

  • 설계 품질과 트레이드오프

  • 핵심



Object_part3

  • 책임 할당하기

  • 핵심



Object_part4

  • 메시지와 인터페이스

  • 객체 분해

  • 핵심



Object_part5

  • 의존성 관리하기

  • 유연한 설계

  • 핵심



Object_part6

  • 상속과 코드 재사용

  • 합성과 유연한 설계

  • 핵심



Object_part7

  • 다형성

  • 서브클래싱과 서브타이핑

  • 핵심



Object_part8

  • 일관성 있는 협력

  • 디자인 패턴과 프레임워크

  • 핵심



Object_part9

  • 계약에 의한 설계

  • 핵심



OOP

  • 프로그래밍 패러다임

  • Object Oriented Programming 개요

  • Dependency





python

install_python

  • 오프라인 환경에서 linux에 Python 설치하기

  • Docker로 설치하기



packages_part1

  • argparse

  • click

  • Python gRPC

  • Pydantic

  • pyinstaller

  • 문장 분리

  • Streamlit



packages_part2

  • Pandas

  • .reset_index()

  • Matplotlib

  • APScheduler

  • Linter & formmater



packages_part3

  • Poetry

  • Dependency Injector



packages_part4

  • Locust

  • Environment의 instance 생성 후 runner 생성

  • web ui 호스트와 포트 설정

  • 테스트 상태가 print되도록 설정

  • 과거 테스트 이력을 저장하도록 설정(chart 등에 사용)

  • 테스트 시작

  • 테스트 기간 설정

  • wait for the greenlets

  • stop the web server for good measures

  • aggs 결과 확인

  • 각 task별 결과 확인

  • Shorts



PEP8

  • google 스타일 가이드 추가할것

  • 소개

  • 코드 레이아웃

  • 공백

  • 주석

  • 명명 규칙

  • SQL Formatting



python_part1

  • 기초

  • 변수 및 자료형

  • Python의 동작 방식

  • EAFP와 LBYL

  • Easter Egg



python_part10

  • Logging

  • Interface

  • Python Bytecode



python_part2

  • Immutable


python_part3

  • 연산자

  • 제어문

  • 함수

  • 입출력

  • 모듈

  • 패키지

  • import



python_part4

  • 클래스

  • 참고



python_part5

  • Python 내장 함수

  • 패키지

  • excel

  • Python type hint

  • with



python_part6

  • Context Manager

  • Namespace

  • 클로저

  • 데코레이터

  • 가상환경

  • 동시성, 병렬성 프로그래밍



python_part7

  • 이터레이터와 제너레이터

  • 코루틴

  • async / await

  • 예외처리



python_part8

  • Testing


python_part9

  • Python의 memory 관리 방식

  • Python의 Garbage Collection

  • Python은 왜 느린가?

  • GIL

  • Multi processing



SQLAlchemy

  • 개요

  • CRUD 실행하기





React

React_part1

  • React란

  • 작업 환경 설정

  • 프로젝트 생성하기

  • JSX



React_part10

  • 리덕스 미들웨어를 통한 비동기 작업 관리


React_part11

  • 코드 스플리팅

  • 서버 사이드 렌더링 Part 1



React_part12

  • 서버 사이드 렌더링 Part 2


React_part2

  • 컴포넌트


React_part3

  • 이벤트 핸들링

  • ref



React_part4

  • 컴포넌트의 라이프사이클

  • Hooks



React_part5

  • 컴포넌트 내부의 반복

  • 컴포넌트 스타일링



React_part6

  • 컴포넌트 성능 최적화

  • immer



React_part7

  • react-router로 SPA 개발하기

  • React에서 axios 사용



React_part8

  • Context API

  • Redux 이해하기



React_part9

  • Redux 활용하기


React_tutorial

  • 목차

  • React란

  • JSX 소개

  • 엘리먼트 렌더링

  • Components와 Props

  • State와 Lifecycle





README





spring

spring_boot_part1

  • 스프링 부트

  • 스프링 부트 기초

  • 스프링 웹 개발 기초

  • 회원 관리 예제

  • 데이터 베이스

  • AOP



spring_boot_tip

  • Lombok

  • JPA

  • 기타



spring_part1

  • 스프링 기초 개념


spring_part2

  • 순수 자바로만 개발하기

  • IoC와 DI와 컨테이너

  • 스프링으로 개발하기

  • 스프링 컨테이너와 스프링 빈



spring_part3

  • 싱글톤 컨테이너

  • 컴포넌트 스캔



spring_part4

  • 의존 관계 자동 주입

  • 빈 생명주기 콜백

  • 빈 스코프