TIL
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