TIL icon indicating copy to clipboard operation
TIL copied to clipboard

:pencil2: Today I Learned

👩🏻‍💻 Today I Learned

We constantly learn new things. This is a repo to share those learnings.



Table of Contents


Algorithm

  • Algorithm Basics

    • Algorithm101
    • Brute-Force
    • Greedy Algorithm
    • Divide and Conquer
    • Backtracking
    • Graph
    • Minimum Spanning Tree
    • Dijkstra Algorithm
  • Sorting Methods

    • Insertion Sort
    • Selection Sort
    • Merge Sort
    • Quick Sort
  • Data Structure & Algorithms in Python

    • List Based Collections
    • Searching and Sorting

Java

  • Java Environment Setup

    • Multiple Java Versions in MacOS
  • Java 101

    • Java Basics
    • OOP
    • Data Types
    • Variables
    • Loops & Conditional Statements
    • Array
    • Access Modifiers
    • Inheritance
    • JVM
    • GC
    • Java Memory Area
    • Collection
    • TreeSet, TreeMap vs HashSet, HashMap
    • Annotation
    • Generic
    • Static Keyword
    • Final Keyword
    • Overriding vs Overloading
    • Wrapper Class
    • Checked & Unchecked Exception
    • ==, equals(), hashCode
    • Interface vs Abstract Class, Abstract method
    • Initialization Order of Member Variables
    • Lambda Expression
    • Stream API
    • Optional Class
  • Java Advanced

    • Lombok
    • Java Thread
    • JMX and Jolokia
    • Constructor vs Factory method
    • GC Algorithm
    • Guidelines for Selecting a GC
    • CompletableFuture

Spring

  • Spring 101

    • IoC
    • DI
    • AOP
    • Spring Bean
    • Spring Container
    • Spring and SpringBoot
  • Spring Advanced

    • Spring Security
    • Register a Spring Bean in the Spring IoC Container
    • Interceptor vs AOP vs Filter
  • Spring Annotations

    • Lombok
    • @Controller and @RestController
    • @Transactional
    • @Autowired
    • @RequestParam
    • @ConditionalOnProperty
    • @ConditionalOnBean
    • @ConditionalOnClass
    • @Qualifier
    • @Valid vs @Validated
    • @EnableIntegration
    • @IntegrationComponentScan
    • @AfterReturning
    • @ConfigurationProperties
    • @AuthenticationPrincipal
  • JPA Annotations

    • @Entity
    • @Column
    • @Immutable

OS

  • OS 101

    • What is an OS
    • System Structure & Program Execution
    • Process
    • CPU Scheduling
  • OS Basics

    • What is an Operating System
    • What is Hyper-Threading
    • Process vs Thread
    • Multithread and Multiprocess
    • Scheduler
    • Synchronous vs Asynchronous
    • Blocking vs Non-blocking
    • Process Synchronization
    • Deadlock
    • Locality of Reference

Linux

  • Linux 101

    • Linux 명령어 정리
    • Linux Kernel
    • Linux Directory Structure
    • Use SCP Command to Securely Transfer Files
    • Linux Performance Analysis in 60 seconds
    • Ways to Check Linux OS Version in Command Line
    • tmux cheatsheet
    • Logrotate
  • Arch Linux

    • What is Arch Linux
    • SLUG Meetup - Arch Linux
  • Ubuntu

    • Using apt-get Commands in Ubuntu
    • Free Up Space on Ubuntu
    • Customize Your Ununtu Terminal
    • Create Desktop Shortcut on Ubuntu
    • Settings for XDG user dirs
    • Fix AirPods not Working on Ubuntu
    • Setting a JAVA HOME Path in Ubuntu
  • RedHat

    • RPM Options for RedHat Fedora Centos Installs

Server

  • Server 101

    • HTTPS and SSL
    • What is NGINX
    • Scale Up and Scale Out
    • What is Cache?
  • ServerLess Computing

    • What is ServerLess Computing
    • AWS Serverless Meetup - AppSync
    • Getting Started with AWS Lambda
    • Serverless Framework Setup for AWS Lambda
  • Deployment

    • Deploying a Django project on PythonAnywhere
    • Deploying a Django project on Microsoft Azure
    • Deploying a Django project on Heroku
    • Using AWS S3 to Store Static Assets on Heroku
    • Deploying a Vue project on Netlify
    • Deploying a Django-Vue application on AWS EC2 using NGINX
    • Deploying a SpringBoot-React project on AWS EC2

Network

  • Network 101

    • 네트워크 용어 사전
    • Protocol
    • OSI 7 Layers
    • TCP/IP
    • Encapsulation and Decapsulation
    • Types of Computer Network
    • Network Lines
    • Network Components
    • Network Address Types
    • MAC Address
    • IP Address
    • TCP / UDP
    • ARP
    • Subnet and Gateway
    • Switch
    • VLAN
    • STP
    • Router
    • Session and Cookies
  • Http

    • Http Stateless
    • Http Methods
    • Cookie, Session, and Token
    • HTTP/2
    • RESTful API
    • Keep-Alive Header
    • HTTP vs HTTPS

DB

  • DB 101

    • DB Basics
    • SQL and Django ORM
    • One to Many Relationship
    • Many to Many Relationship
    • Dump and Load Data
    • MySQL with Django
    • Create MySQL Users Accounts and Grant Privileges
    • How to Avoid N+1 Queries
    • Configure PostgreSQL on your Mac
    • INNER JOIN & OUTER_JOIN
    • Primary key vs Unique key
    • Stored Procedure
  • DB Advanced

    • SQL Order of Operations

Git

  • Git Basics
  • Git Tips and Tricks
  • Git Branch
  • Create a gitignore
  • Caching your GitHub credentials in Git

Infra

  • DevOps 101

    • IT Infrastructure Basics
    • What is DevOps
    • DevOps Engineer Roles and Responsibilities
  • CI/CD

    • Configuring GitLab CI-CD with AWS EC2
  • Jenkins

    • Jenkins Build and ECR Push
  • ELK

    • Search System Basics
    • Filebeat Basics
    • Logstash Basics
    • How Logstash Works
    • Index and Shards
  • Terraform

    • Terraform 101
  • Ansible

    • Ansible 101
  • Redis

    • Install and config Redis on macOS
    • Redis 101
    • Redis Commands

AWS

  • AWS 101

    • What is Cloud Computing
    • Getting Started with AWS
    • AWS Main Services
    • AWS Main Products
    • AWS Servers
    • AWS Storages
    • AWS Database Server
    • AWS HA Load Balancing
    • AWS Analytics
    • AWS Blockchain
    • AWS IoT
    • AWS Machine Learning
  • AWS Services

    • Amazon EC2-Creating an AWS EC2 Instance
    • Amazon S3 - Creating a Bucket
    • Amazon RDS for MySQL
    • AWS CLI
    • Amazon ECR (Elastic Container Registry)
    • Amazon ElastiCache
    • Amazon Route 53
    • Amazon Athena
    • Amazon VPC
  • AWS Tips

    • AWS Online Cloud Clinic #01
    • AWS Online Cloud Clinic #03
    • AWS Data Science Meetup - Amazon Personalize (03/05/2020)
    • AWS Security Meetup (07/23/2020)
    • DevAx Connect-CDK로 EKS Cluster Fullstack 관리하기 (09/01/2020)
    • AWS CDK Workshop
    • AWS Builders - Cloud Economics
    • Amazon VPC Basics
    • Amazon Security Group
    • AWS Well-architected Framework - Security Pillar
    • Find EC2 Instance by Domain Name
    • Resizing an Amazon EBS Volume
    • What Are AWS Elasitc Network Interfaces
    • Estimate AWS Resource Costs
  • AWS Certifications

    • Solutions Architect
    • SAA Prep Workshop
    • AWS 10,000 Foot Overview
  • AWS Builders Series

    • AWS Cloud기반 나의 첫 web application 만들기
    • DevOps 문화 모범 사례와 구현 도구 살펴보기
  • Practical AWS

    • VPC
    • Subnet
    • Route 53
    • Route Table
    • Elastic IP
    • Security Group
    • Network ACLS
    • VPC Peering
    • VPC Endpoints
    • AMI
    • Load Balancer

Docker

  • Docker Commands
  • Getting Started with Docker
  • Docker Tags
  • Docker Run
  • ENTRYPOINT vs CMD

Kubernetes

  • Kubernetes Basics
  • EKS for Kubernetes
  • What is Ingress
  • Kubectl Commands
  • How Kubernetes works
  • Helm Package Manager
  • Pod
  • Cluster
  • Namespace
  • Node

Go

  • Go 101

    • Go Basics
    • Variables and Constants
    • Functions
    • For Loop
    • If Else
    • Switch
    • Pointers
    • Arrays and Slices
    • Maps
    • Structs
    • Go Routine
    • init() function

Python

  • Python 101

    • Python Coding Convention
    • Python Tips & Tricks
    • Python Virtual Environment
    • @property in Python
    • Generators in Python
    • Type Hints in Python
    • Unit Testing in Python
    • Working with Datetime Objects and Timezones in Python
    • itertools.cycle
  • Python Advanced

    • Handling Encoding Issues Using Redis with Python
    • Python GIL

Django

  • Django 101

    • Django Basics
    • Variable Routing & DTL
    • Templates
    • Model
    • URL name
    • Form & ModelForm
    • Authentication
    • Request and Response Objects
    • ImageField
    • Optimization
    • Django RESTful Framework
    • Class Based View
    • DRF with JWT

Flask

  • Flask Routes

GraphQL

  • GraphQL 101

    • Intro to GraphQL
  • GraphQL Korea Meet-up

    • GraphQL Korea Meetup (06/13/2020)

Web

  • HTML

    • HTML Basics
    • HTML Sections & Outlines
  • CSS

    • CSS Basics
    • CSS Layout
    • CSS Advanced
    • Grid System
  • JavaScript

    • JavaScript Basics
    • Array & Function
    • JavaScript DOM
    • JavaScript Events
    • JavaScript Functions
    • JavaScript Object
    • JavaScript Basic Syntax
    • Array Helper Methods in ES6
    • Hoisting in JavaScript
    • this keyword
    • AJAX

Vue.js

  • Intro to Vue.js
  • Vue Intermediate
  • Vue CLI
  • Vue Router
  • Props and Emit
  • Vue Loader

React.js

  • React Hooks
  • Caret vs Tilde in package.json
  • Yarn vs npm
  • Redux

Node.js

  • Node.js 101

    • Installing Node.js using NVM
    • Intro to Node.js
    • Environment Setup
    • First Application with Node.js
    • REPL Terminal
    • NPM
    • Callbacks Concept
    • Event Loop and EventEmitter
    • Buffers
    • Web Module
  • Express.js

    • Express Basics
    • EJS
    • RESTful API

Programming 101

  • 프로그래밍 용어 사전
  • 새로운 언어를 학습하는 방법
  • 배포란 무엇인가
  • Vim 명령어 정리
  • Discrete Mathematics
  • Computational Thinking
  • Technical Interview Prep
  • Getting Started with Open Source
  • Microservices Architecture Style
  • Sync vs Async and Blocking vs Non-Blocking
  • Chrome Force Dark Mode 설정하기

Troubleshooting

  • xcrun error occurred after macOS update
  • Resetting the permission in /usr/local
  • Brew error - compinit:503: no such file or directory
  • Scouter_client_JVM_error_after_macOS_Bigsur_update.md