to-become-a-better-programmer
to-become-a-better-programmer copied to clipboard
jwasham의 Coding Interview University에서 영감을 받아 시작함
To Become a Better Programmer
설명
Description에도 써있다시피 jwasham의 Coding Interview University에서 영감을 받아 시작하게 되었다. 물론 해당 저장소에도 한국어로 번역된 판이 존재하지만 막상 뚜껑을 열어보면 안내만 한글일 뿐이지 그가 걸어놓은 링크나 자료 모두 영어로 구성돼있단 걸 알 수 있을 것이다. 물론 영어에 능숙하면 그가 올려놓은 양질의 자료를 쉽고 빠르게 탐독할 수 있겠지만 나는 영어에 능숙하지 않은 프로그래머들이 한국에 많이 있다는 걸 안다. 나 또한 그 중 하나이다.
그런 의미로 여기에서 한국판 Coding Interview University를 작성하려 한다. 약간의 차이가 있다면 Interview University라는 이름과는 달리 코딩 면접을 위한 프로젝트는 아니라는 점이다. 그냥 스스로도 더 나은 프로그래머가 되고 싶어서, 또 한글로 된 양질의 자료도 많은데 파편화돼있는 게 아쉬워서 시작하게 됐다. 그래서 저장소의 이름 자체도 To Become a Better Programmer(더 나은 프로그래머 되기)로 정하였다.
되도록이면 한글로 된 자료 중에 쉽고 알아보기 쉬운 자료를 모을 것이지만 영어로 된 자료도 있을 것이다. 목차나 내용은 jwasham의 Coding Interview University을 참고할 것이나 완전히 같지는 않을 것이며, 정렬은 특수문자를 제외한 123->abc->가나다 순서이다. 그리고 내 블로그에 있는 글들도 이용할 예정이다.
목차
-
To Become a Better Programmer
- 설명
- 목차
- 강의
- 검색
- 기타등등
- 네트워크
- 데이터베이스
- 데이터-파이프라인
- 디자인패턴
- 생산성 향상 도구들
- 소프트웨어 공학
- 소프트웨어 아키텍쳐
- 소프트웨어 인프라
- 알고리즘
- 연구논문
- 자료구조
- 언어와 프레임워크
- 운영체제
- 인공지능
- 좋은 글들
- 컴퓨터 공학
- 컴퓨터 비전
- 프론트 엔드
- 유용한 사이트 정보 블로그 도구 등등
강의
- gRPC 와 python 을 활용한 Microservice 개발기 - 송지형 - PyCon.KR 2019
- AI
- Airflow
- Elixir
- golang
- InfluxDB
- k8s
- OpenCV
- Rust
- SE
검색
- NDCG - Normalized Discounted Cumulative Gain(평가지표)
- 단어 임베딩: 어휘의 의미(Lexical semantics)를 인코딩하기
- [데이터 색인] 역색인 구조 (역 인덱스; Inverted Index)
기타등등
- Asynchronous Engine — (1) libuv
- Asynchronous Engine — (2) uvloop
- Asynchronous Engine — (3) uvicorn
- Base64 인코딩이란?
- Base64이란 무엇일까? / Base64 사용 이유와 인코딩과 디코딩
- Jupyter notebook 서브도메인 설정 및 Nginx https 설정 방법(certbot)
- KAIST CS320 Programming Languages Course Reading Materials
- NVIDIA-SMI 확인방법 및 활용하기
- 람다 대수
- 분류 모델 성능 평가 지표(Accuracy, Precision, Recall, F1 score 등)
- [이론 및 파이썬] L1 Norm과 L2 Norm
네트워크
- AB(Apache http server Benchmarking tool)를 활용한 벤치마킹 테스트
- Apache Avro 란
- [Firebase] FCM에 대해서 알아보자. 🔔
- GET과 POST의 차이
- HTTP와 HTTPS의 차이점
- http와 tcp/ip의 이해
- HTTP Protocols
- HTTP 통신 과정
- 🌐 IP 클래스 · 서브넷 마스크 · 서브넷팅 계산법 💯 총정리
- JWT(Json Web Token)란?
- JSON이란?
- Let’s Encrypt 와일드카드로 여러개의 서브도메인 인증서 한번에 발급받기
- Let's Encrypt SSL 인증서 자동 갱신 설정 방법
- OAuth란? 그리고 OAuth1, OAuth2
- OAuth2를 이용한 SSO 환경 구축 (1/2)
- OAuth2를 이용한 SSO 환경 구축 (2/2)
- OSI 모형
- SSO(Single Sign-On)이란?
- TCP/IP의 이해
- TCP와 UDP의 특징 및 차이점 알아보기
- TLS (Transport Layer Security)
- 브라우저의 렌더링 과정
- 실시간 스트리밍 프로토콜-RTSP(Real Time Streaming Protocol)란?
- 웹 브라우저에 URL을 입력하면 어떤 일이 일어날까?
- 웹의 동작 원리
- 인증과 인가 (권한 부여) 비교 – 특징 및 차이점
- 쿠키와 세션의 차이
- 토근 기반 인증에서 bearer는 무엇일까?
- 프록시(proxy)란, forward proxy와 reverse proxy
- GraphQL
- gRPC
- nginx
- RestAPI
- 로드밸런싱(Load Balancing)
- 프록시 서버(Proxy Server)
데이터베이스
- @Transactional의 해로움
- 📋 제 1-2-3 정규화 & 역정규화 기법 💯 정리
- #1 데이터베이스의 무결성을 보장해주는 WAL(Write-Ahead Logging)
- ACID vs BASE
- ACID 데이터베이스와 BASE 데이터베이스의 차이점은 무엇인가요?
- CAP theorem
- Clustering vs Replication vs Sharding
- DB 트랜잭션 (Transaction)의 ACID 속성과 분산시스템 BASE 속성
- [DB] SQL - JOIN문, JOIN 종류 (Inner Join,Natural Join,Outer Join,Cross Join)
- Inner Join과 Outer Join 차이점
- Lock에 대해서 알아보자 - 기본편
- MongoDB의 Transaction과 session문제
- ORM이란
- WAL (Write-Ahead-Logging)
- 데이터베이스 튜닝 (DB Tuning)
- 왜 데이터베이스(DB) 튜닝을 해야할까?
- 인덱스(index)란?
- 인덱스의 원리 및 종류
- 저장 프로시저
- [Database] 5. 데이터베이스 프로그래밍
- [Database] 7. 정규화(Normalization)
- [Database] 8. 트랜잭션, 동시성 제어, 회복
- [Database] 정규화(Normalization) 쉽게 이해하기
- [DB] DB의 INDEX 개념정리
- [DB] 정규화(Normalization)란? 정규화 예시, 1NF, 2NF, 3NF, BCNF
- 클러스터링 vs 리플리케이션 vs 샤딩
- 클러스터드 인덱스 (Clustered Index), 넌 클러스터드 인덱스 (Non Clustered Index)
- 클러스터 인덱스와 넌클러스터 인덱스/ 개념 총정리
- 테이블 조인 종류(Table Join Type)
- 트랜잭션 격리 수준(Transaction Isolation Level)
- 트랜잭션이란? (Transaction)
- 트랜잭션과 격리성
- 트랜잭션(transaction)이란?(1)
- 트랜잭션(transaction)이란?(2)
- 트리거(Trigger)란?
- 효과적인 DB index 설정하기
- ElasticSearch
- CRUD - 입력, 조회, 수정, 삭제
- EFK Stack 구성
- ELK Stack 이란? 소개, 정의
- Elasticsearch-Kibana를 이용한 로그 모니터링 (1)
- [Elastic Search] 기본 개념과 특징(장단점)
- Elasticsearch에 fluentd를 얹은 EFK stack 구축하기(with kubernetes)
- ELK 스택
- Elasticsearch란? (개념 및 종류, RDBMS와 차이)
- fuzzy 알고리즘 (무엇을 찾고 있는가?)
- Using ElasticSearch, Fluentd and Kibana (for log aggregation)
- Field data types
- macOS에서 ELK stack 구성하기 (elasticsearch)
- 엘라스틱서치로 파이썬(Python) 어플의 구조화 로깅(Structured Logging) 구현하기 (1)
- 엘라스틱서치와 추천 - More Like This 쿼리
- MySQL
- MongoDB
- Telegraf
- Postgresql
데이터-파이프라인
- 데이터 파이프라인이란 무엇인가?
- [데이터 파이프라인이란, ETL과 ELT](데이터 파이프라인이란, ETL과 ELT)
- 코드 작성 없이 데이터 파이프라인 운영하기
- 하둡(hadoop)과 스파크(Spark)
- 하둡(hadoop)의 MapReduce
- Airflow
- airflow에서 각종 operator로 분기처리하기 (feat. SimpleHttpOperator)
- Airflow와 함께한 데이터 환경 구축기(feat. Airflow on Kubernetes)
- Airflow란?
- Airflow vs. Kubeflow
- Airflow Xcom 사용하기
- Apache 에어플로우(Airflow) 시작하기 - Airflow란?
- DAG가 뭔가요?
- Helm Chart for Apache Airflow
- How to run conditional task in Airflow with previous http operator requested value
- Kubeflow vs Airflow – Which is Better For Your Business: 4 Critical Differences
- Kubernetes를 이용한 효율적인 데이터 엔지니어링(Airflow on Kubernetes VS Airflow Kubernetes Executor) – 1
- Kubernetes를 이용한 효율적인 데이터 엔지니어링(Airflow on Kubernetes VS Airflow Kubernetes Executor) – 2
- SimpleHTTPOperator in Apache Airflow
- 에어플로우 시작하기: 개념 및 설치
- Kubeflow
디자인패턴
생산성 향상 도구들
- ERD CLOUD
- gitstar-ranking(깃허브 별 개수 랭킹 알려주는 사이트)
- Graphviz 소개
- JSON to YAML
- POSTMAN과 JSON Placeholder(JSON을 테스트하는 가장 좋은 방법)
- Python용 AWS SDK(Boto3)
- regex101.com(정규식 짤 때 도움되는 사이트)
- Wappalyzer(웹사이트 구성요소를 볼 수 있는 크롬 확장 프로그램)
- 무료 DB Tool (DBeaver)
소프트웨어 공학
- 10분 Actor Model 정리
- Active Record VS Data Mapper
- Actor model 에 관하여…
- Call by Value와 Call by Reference
- Coroutine과 Subroutine의 차이
- Coroutine은 어떻게 스레드 작업을 최적화 하는가?
- Coroutine 기초
- Dependency injection and inversion of control in Python
- IoC, DI, DIP 개념 잡기
- What is the difference between JMP and CALL?
- 고가용성
- 객체지향 설계 5원칙 - SOLID란 무엇일까?
- 단위 테스트 vs 통합 테스트 vs 인수 테스트
- 데몬 (컴퓨팅)
- 동시성(Concurrency) vs 병렬성(Parallelism)
- 명령형 프로그래밍 VS 선언형 프로그래밍
- 무슨 값들을 상수(constant)로 지정해야할까?
- 믹스인(Mixin)
- 장애 허용 시스템
- 클로저(Closure)
- 『프로그래밍 언어 속 타입』(가제) 책 소개
- 프로그램과 프로세스와 스레드의 차이
- 프로세스 격리란 무엇입니까?
- 함수(function)와 메소드(method)의 차이
- 리액티브 프로그래밍(Reactive Programming)
- 함수형 프로그래밍(Functional Programming)
소프트웨어 아키텍쳐
- Architectural Katas
- Architectural Katas - neal ford
- connascence.io/
- MSA 기반 환경에서의 인증과 인가 - 1. 개요
- Observability vs Monitoring 차이점은 무엇일까요?
- Patterns for Building LLM-based Systems & Products
- What Is a Modular Monolith?
- 계층구조(Hierarchy)
- 🌍 레이어드 아키텍쳐
- 분산 시스템이란?
- 헥사고날 아키텍처란
소프트웨어 인프라
- (Almost) Every infrastructure decision I endorse or regret after 4 years running infrastructure at a startup
- ArgoCD 정리 (1) - GitOps Repo 구성과 ArgoCD 설치
- [CEPH] Ceph Architecture
- datadog integrations
- devops란 - from aws
- Failover, 페일오버란 무엇인가
- Flapping in Autoscale
- GlusterFS basic
- How to do version control in Machine Learning projects
- monorepo.tools
- Nexus3를 이용한 pypi 사설 저장소 구축
- Sentry.io 에러 로깅
- TBD(Trunk Based Development) 전략이란?
- [Telegraf + influxDB + Grafana]10분만에 데브옵스를 위한 모니터링 시스템 구축하기
- TICK Stack(Telegraf + InfluxDB + Chronograf + Kapacitor)
- Trunk Based Development
- 마이크로서비스 인증/인가 패턴
- 배포 방법 정리 (고정/롤링/블루-그린/카나리 릴리즈 배포)
- 안정적인 운영을 완성하는 모니터링, 프로메테우스와 그라파나
- 엣시와 콘웨이 법칙 - 데브옵스 핸드북 읽기
- 오케스트레이션(Orchestration)이란?
- 코드형 인프라(IaC)란?
- 페일오버(Failover)란 무엇인가
- '폴리리포주의자'가 모노리포를 반대하는 3가지 이유
- 프로비저닝(Provisioning)이란? 개념, 종류, 자동화 방법
- 현기증나는 인프라, 배포 용어들(IaC, 오케스트레이션, CI/CD, DEVOPS, 프로비저닝 등등) 정리
- AWS
- CircleCI
- Docker
- Docker container가 localhost를 볼 수 있게 하는 방법
- docker, cronjob 하는 container 만들기 + supervisor, 환경변수 적용하기
- From inside of a Docker container, how do I connect to the localhost of the machine?
- Podman 소개
- RUN, CMD, ENTRYPOINT 차이점
- 도커 컨테이너는 가상머신인가요? 프로세스인가요?
- 도커(Docker)로 CentOS 이미지 systemctl 사용하기
- 초보를 위한 도커 안내서 - 도커란 무엇인가?
- Debezium
- DVC (Data Version Control)
- FluentD
- Fluentd(td-agent) 설치 및 실행 방법
- Fluentd + Elasticsearch + Kibana EFK Stack 구축하기
- Fluentd(td-agent) output plugin
- FluentD 설치 및 실행 방법
- Fluentd란?
- Fluentd란 무엇인가? 구조와 기능 살펴보기
- [Fluentd]를 이용한 로그 수집 -1.Fluentd란?
- Fluentd 와 LogStash 비교
- Fluentd 의 활용. ElasticSearch, Kibana 을 사용한 Nginx Log 수집
- Kubernetes 에서 fluentd + elasticsearch 연동하기
- 로그 수집 패턴, Fluentd 개념 정리
- Git
- django로 github actions찍먹해보기
- Git Flow란, 깃 브랜치 전략
- Github Action 사용법 정리
- github actions로 자동 1일 1커밋 봇 만들기
- Github Action을 마켓에 등록해보자
- Github Action을 이용한 CI/CD 개발 주기 자동화
- github actions의 자세한 실행환경 + 요청 IP 알아보기
- Git Rebase & Squash
- Github Action 빠르게 시작하기
- Github Action에 대한 소개와 사용법
- Github에 push시 Jenkins Webhook 연동 방법
- Github에 잘못 올라간 파일 삭제하기
- [Git] Merge 이해하기 (Merge / Squash and Merge / Rebase and Merge)
- pre-commit 도구로 Git Hook 사용하기
- 맥북에서 GitHub 계정 여러개 사용하는 방법!
- 우린 Git-flow를 사용하고 있어요
- 전역 gitignore 설정하기
- 좋은 git 커밋 메시지를 작성하기 위한 7가지 약속
- 초심자를 위한 Github 협업 튜토리얼 (with 토끼와 거북이)
- 훅으로 Git에 훅 들어가기
- Gitops
- Jenkins
- Kafka
- [Apache kafka 조금 아는 척하기] 카프카란?
- [Apache Kafka] 카프카 컨슈머(Consumer)의 파티션과 메시지 순서를 알아보자 [2]
- Apache Kafka 주요 개념 정리 (Cluster, Topic, Producer, Consumer)
- Error Handling Patterns for Apache Kafka Applications
- Introducing ksqlDB
- LINE에서 Kafka를 사용하는 방법 – 1편
- Kafka Introduction
- [Kafka 101] 컨슈머 그룹 리밸런싱 (Consumer Group Rebalance)
- [kafka] 카프카 컨슈머 그룹(consumer group) 이해하기
- Kafka Manager (CMAK)
- Kafka란?
- Kafka 스트림 처리 : ksqlDB로 양말 분류
- KSQL
- Mac에 카프카 설치하고 실행해보기!
- 카프카 커넥트 효율적으로 관리하기
- 카프카 컨슈머 그룹 리밸런싱 (Kafka Consumer Group Rebalancing)
- Kubernetes, k8s
- Amazon EKS 30분만에 구성하기 (CloudFormation)
- Affinity & NodeSelector 사용하기
- AWS에 kops로 쿠버네티스 클러스터 구축하기
- Calico CNI 동작원리 이해하기
- Calico?Weave? CNI에 관하여
- Container Runtimes 비교 표
- Custom Metric(ex. RPS)으로 HPA 설정하기
- etcd란?
- For the love of god, stop using CPU limits on Kubernetes (updated)
- HA(High Availability) 구성 - master node
- Hello Minikube
- Helm 이란?
- HPA: Horizontal Pod Autoscaling
- How To Manage Your Kubernetes Configurations with Kustomize
- Istio Sidecar Injection
- Istio 🌶️트래픽 흐름 Life of a packet
- Istio란 무엇인가?
- Istio 아키텍처와 기능 이해하기
- Job/CronJob
- [K8S] Control Plane, Data Plane이란?
- k8s fission
- k8s kind
- k8s 인증 완벽이해 #1 - X.509 Client Certs
- [k8s] 쿠버네티스 애플리케이션 접근 구성하기: NodePort, Ingress, Istio
- Kubernetes Calico Plugin
- kubernetes Pod의 진단을 담당하는 서비스 : probe
- Kubernetes 운영을 위한 etcd 기본 동작 원리의 이해
- [kubernetes] 쿠버네티스 cr과 crd란?(쿠버네티스 확장)
- Kubernetes의 HPA를 활용한 오토스케일링(Auto Scaling)
- Kubernetes Istio 설치/적용하기 (Kubernetes Istio service mesh)
- kubectl 개요
- Kubernetes : Local에 설치하기
- Kubernetes 좀 더 잘 이해하기
- Kubernetes 환경에 affinity, anti-affinity 적용하기
- Pod 스케쥴링 #2 Affinity
- Rancher
- Understanding Envoy Rate Limits
- 라즈베리 파이로 쿠버네티스 클러스터를 만들어보자.
- 워크로드 리소스
- 커스텀 리소스
- 커스텀 측정항목을 통한 쿠버네티스 오토스케일링(custom metrics kuberntes autoscaling) - presto(1/2) - 사전작업
- 쿠버네티스 #9 - HealthCheck
- 쿠버네티스 교육과 인증(공식)
- 쿠버네티스 프로비저닝 툴과의 만남부터 헤어짐까지 . . .
- 쿠버네티스 문서(공식)
- 쿠버네티스 컴포넌트
- 쿠버네티스 cordon, drain
- 쿠버네티스 Ingress 개념 및 적용방법
- 쿠버네티스 - 매니페스트, YAML파일, 파드(manifest, YAML 파일, pod)
- 파드 라이프사이클
- 프라이빗 레지스트리에서 이미지 받아오기
- Prometheus
알고리즘
- DFS와 BFS
- FizzBuzz 문제
- Levenshtein Distance (편집거리 알고리즘) - 문장 유사도 분석을 어떻게 하는가?
- Lock Free 알고리즘(Non-Blocking 알고리즘)
- Lucene ANN 분석1 - HNSW algorithm
- RAFT ALGORITHM
- 논 블로킹 알고리즘(Non-blocking Algorithms)
- 대충? 거의 정확하다! 벡터 검색 엔진에 ANN HNSW 알고리즘 도입기 (feat. SWIG Golang)
- 동적 계획법(Dynamic Programming)
- 레벤슈타인 거리를 이용해서 두 문장 비교하기
- 벡터 검색은 무엇인가요?
- 벡터 유사도 검색이 무엇인가요? (What is Vector Similarity Search?)
- 브루트 포스(Brute Force)
- 빅오 표기법(Big-O Notation), 시간 복잡도, 공간 복잡도
- 에라토스테네스의 체(Sieve of Eratosthenes)
- 이진탐색
- 정렬 알고리즘
- 정렬 알고리즘 비교
- 탐욕법(Greedy Algorithm)과 그 종류
- 퍼지 문자열 검색(Fuzzy string search)
- 피보나치 수열을 구하는 세 가지 방법. (재귀, 동적 계획법, 반복)
- 해시 함수
연구논문
자료구조
- B-Tree, B+ Tree(Gone)
- B-트리(B-Tree)란? B트리 탐색, 삽입, 삭제 과정
- Data Structure Visualizations
- Hash, Hashing, Hash Table(해시, 해싱 해시테이블) 자료구조의 이해
- Linked list (연결 리스트) 란 무엇인가?
- Rope
- Star (graph theory)
- Speed up millions of regex replacements in Python 3
- YAML
- YAML이란?
- [자료구조] 간단히 알아보는 B-Tree, B+Tree, B*Tree
- 그래프 이론 기초 & 그래프 패턴
- 배열(Array)과 리스트(List)
- 이진 트리(Binary Tree)의 종류
- 이진 트리
- 이진탐색트리(Binary Search Tree)
- 자료구조와 시간복잡도
- 퍼지 문자열 검색(Fuzzy string search)
- 해시맵 (HashMap) / 맵 (Map)
- 효율적인 긴 문자열 연산을 위한 Rope 자료구조
- 힙(heap)이란
언어와 프레임워크
- CSS
- 고(go)
- 러스트(Rust)
- 쉘 스크립트(shell script)
- 엘릭서(Elixir)
- 자바(Java)
- 자바스크립트(Javascript)
- 파이썬(Python)
- A guide to logging in Python
- containerd를 런타임으로 사용한 Kubernetes 설치
- [CS/Python]Thread(1)-GIL과 Thread 구현/실행, Event
- [CS/Python]Thread(2)-Lock과 RLock
- [CS/Python]Thread(3)-Condition, Lock, Mutex, Semaphore, Local Data
- Dependency injection and inversion of control in Python
- Garbage Collection in Python
- How Python Asyncio Works: Recreating it from Scratch
- How to Flatten a Dictionary in Python in 4 Different Ways
- How to set up HTTPHandler for python logging
- Instagram이 Python garbage collection 없앤 이유
- PEP 20 – The Zen of Python
- [pytest] python 코드를 테스트 해봅시다. (Feat. Fixture)
- Python 개발자를 위한 gevent
- python functools.partial 사용
- [Python] GIL (Global Interpreter Lock) 이해하기
- [Python] Interpreter and PVM (Python Virtual Machine)
- [python] Iterator와 Generator
- Python logging json formatter
- [Python] metaclass란
- Python multiprocessing's Pool process limit
- Python multiprocessing.Process 멀티프로세싱 1
- Python multiprocessing.Pool 멀티프로세싱 2
- python pool.map() and shared array variable
- python 동시성 관리 (1) - 프로세스(Process)와 스레드(Thread)
- python 동시성 관리 (2) - GIL(Global Interpreter Lock)
- python 동시성 관리 (3) - 코루틴(Coroutine)이란?
- [Python] 클래스의 인스턴스 변수 protected, private(접근 제어자)
- [python] 파이썬 is와 ==의 차이 (값, 참조)
- Pytorch weight 저장에 대해 우리가 알아야하는 모든 것
- Rusty Python
- Speed up millions of regex replacements in Python 3
- SQLAlchemy의 연결 풀링 이해하기
- staticmethod, classmethod, instancemethod 에 대하여
- Tool for generating SQLAlchemy queries from JSON-esque values?
- Understand 5 Scopes of Pytest Fixtures
- 고성능 ML 백엔드를 위한 10가지 Python 성능 최적화 팁
- 데코레이터(decorator)란?
- 제네레이터(generator)란?(1)
- 제네레이터(generator)란?(2)
- 조금 더 체계적인 Python Logging
- 튜플(tuple), 리스트(list), 셋(set), 딕셔너리(dict) 비교
- 파이썬 세 개의 점, ELLIPSIS 객체는 무엇인가요?
- 파이썬 Object Interning
- 파이썬의 global과 nonlocal 키워드 사용법
- 파이썬의 대표적인 네 자료형(리스트, 셋, 튜플, 딕셔너리) 특성 알아보기
- 파이썬의 유닛테스트를 한번에 파악할 수 있는 코드
- 파이썬 의존성 관리자 Poetry 사용기
- 파이썬 인터닝 (Python Interning) - 객체 재사용
- 파이썬 프로그래머를 위한 러스트 입문
- 파이썬 함수의 매개변수에 쓰이는 bare asterisk(*)의 의미
- AsyncIO
- 장고(Django)
- FastAPI
운영체제
- Deadlock 개념이란? 그에 대한 해결책/회피책
- Swap memory
- 데드락(Deadlock, 교착 상태)이란?
- 운영 체제(위키)
- 리눅스(Linux) / 유닉스(Unix)
인공지능
- Classification & Clustering 모델 평가
- Embedding이란 무엇이고, 어떻게 사용하는가?
- Extracting Features from an Intermediate Layer of a Pretrained VGG-Net in PyTorch
- Mapping the Mind of a Large Language Model
- MLOps 란 무엇일까?
- nvidia-docker GPU 할당하여 사용 하는 방법 3가지
- Scaling Monosemanticity: Extracting Interpretable Features from Claude 3 Sonnet
- Study Artificial Intelligence
- The two-pizza rule and the secret of Amazon's success
- The Ultimate Guide to Deep Learning Model Quantization and Quantization-Aware Training
- Using LLaMA with M1 Mac
- llama : Metal inference
- 규칙 기반 학습 (Rule Based Learning)
- 딥러닝이란 무엇인가
- 머신러닝 분야의 임베딩에 대한 상세한 가이드 (The Full Guide to Embeddings in Machine Learning)
- 아마존 제프 베조스의 '피자 두 판의 법칙'
- 언어모델의 원리와 만들기
- 인공지능에서 양자화 기술이 중요한 이유는?
- 저전력 인공지능(AI) 구현을 가능케 하는 알고리즘은?
- [추천시스템] Cold Start 문제는 어떻게 해결할까?
- 파이토치 한국 사용자 모임
좋은 글들
- APM (Application Performance management)
- awesome-devteam
- CRM이란 무엇인가요?
- Git 커밋 메시지는 왜 중요할까?
- Improving Distributed Caching Performance and Efficiency at Pinterest
- Inventing on Principle
- IT직군에서 많이 쓰이는 SI, SM, SE, PG 등 용어의 의미
- OKR이란?
- POC (Proof Of Concept)란?
- StackExchangePerformance
- StackOverflow는 9대의 on-prem 서버로 운영중
- Y Combinator 인터뷰 + 탈락 썰
- 가장 효과적인 창업자들을 연구해서 얻은 교훈들
- 국내 최고의 개발 문화를 가진 회사는? – 설문 조사 결과
- 네이버 메인 페이지의 트래픽 처리
- 소프트웨어, 실무형 인재의 신화
- 아마존(Amazon)에서 배운 5가지 글쓰기와 소통 방식
- 애자일 소프트웨어 개발 선언
- 웹 브라우저에 URL을 입력하면 어떤 일이 생기나요?
- 주니어, 미드레벨과 시니어 개발자의 차이점
- 컴퓨팅 사고와 개발 실력 늘리는 공부법
- 통합관제 EMS(종합관제)
컴퓨터 공학
- [CISC / RISC] 개념 및 차이
- 컴퓨터가 1+1을 하는 과정
- 컴퓨터의 '보수표현'이란?
- 컴퓨터의 음수 표현과 보수법
- 메모리의 구조 (코드, 데이터, 힙, 스택 영역)
- 행위자 모델
컴퓨터 비전
프론트 엔드
유용한 사이트 정보 블로그 도구 등등
- ATLASSIAN 소프트웨어 개발
- chatpdf
- CodebaseShow - qualified framework project examples
- codewars - codekata
- civitai - StableDiffusion Models
- DB-Engines - DBMS 랭킹
- fly.io - phoenix 포함 특정 프레임워크 최적화 클라우드 서버
- GeekNews - IT 뉴스 스크랩. (최고)
- Google Cloud Spanner - Global managing RDB
- Google 관리 콘솔 도구 상자 - DNS 세팅 확인하기 좋음
- httpstat.us - http request로 http protocol 임의로 바꿔서 response 받을 수 있는 사이트
- infisical - Open Source SecretOps
- ipaddress - IP주소 확인
- netlify로 사이트 배포하기
- ngrok - 임시로 서버띄워서 확인할때 좋음
- Postgres.app
- Programming Fonts
- Redhat Topic
- TechEmpower: Web Framework Benchmarks
- TIOBE - 언어 사용량 랭킹
- UI Avatars - 간단하게 글씨로 아바타 placeholder 만들어주는곳
- VULTR - 저렴한 클라우드 서버
- 가장 효과적인 창업자들을 연구해서 얻은 교훈들
- 아이보스 마케팅 캘린더
- 유튜브를 가마우지로 만들어보자
- 인디드(indeed)로 살펴본 프로그래밍 언어의 실력대비 연봉 테이블
- 개발자 블로그
- 교육
- 기업 테크 블로그
- 긱뉴스 스크랩(GeekNews)
- 15년 전의 나에게 해주고 싶은 프로그래밍 조언
- AI Canon - a16z가 큐레이션한 AI 필수 자료 모음
- Blink 1.0 릴리즈 - 초경량 x86-64-linux 에뮬레이터
- Brex의 프롬프트 엔지니어링 가이드
- Figma 데이터베이스 팀이 100배 규모 확장을 견뎌낸 방법
- Gandalf - 거대 언어 모델이 비밀번호를 유출하게 만드는 게임
- GitHub Copilot Chat 전체 프롬프트 유출
- Google I/O: Ubiquitous AI가 SEO에 큰 변화를 가져올 것
- GPT같은 LLM을 커스텀 데이터셋으로 파인튜닝 하는 방법
- Notion이 급격한 성장에 맞춰 데이터 레이크를 구축하고 확장한 방법
- Pinterest가 6명의 엔지니어만으로 1100만명의 사용자로 확장한 방법
- Prompt Engineering이 진짜 가치가 있는가
- Same Stop: 애플에서 프로그래머로 26년 일한 뒤의 삶
- 머신러닝 분야의 임베딩(Embedding)에 대한 상세한 가이드
- 인스타그램이 오직 3명의 엔지니어로 1400만 사용자를 확보한 방법
- 임베딩(Embeddings)은 무엇이고 왜 중요한가
- 향후 5년간 연매출 $25M 이상의 1인 기업이 더 많이 등장할 것
- 깃허브 프로젝트(GitHub)
- 해커뉴스 스크랩(HackerNews)
- 기타
- Double Irish with a Dutch Sandwich
- Elo Rating System (엘로 평점 시스템)
- FreeComputerBooks.com
- LeadDev 웨스트 코스트 2023의 에반 모리카와 - LeadDev
- Mental Models I Find Repeatedly Useful
- onsites.fyi - bigtech corp interview curation
- TECH ICONS
- Timeline of the xz open source attack
- xkcd
- Green Software Foundation
- Andy Matuschak
- Why, after 6 years, I’m over GraphQL
- Unexpected Anti-Patterns for Engineering Leaders — Lessons From Stripe, Uber & Carta
- How to Learn Anything with the Feynman Technique
- 엘로 평점 시스템
- 파이토치 한국 사용자 모임
- 뭐든 제대로 이해하는 방법
- B-Trees
- 다른 개발자들의 회고