Today I Learned
์ค๋ ์๋กญ๊ฒ ๋ฐฐ์ด ํน์ ์ฝ์งํ ๊ฒฝํ์ ๊ฐ๋จํ ๊ธ๋ค์ ๋งํฌ๋ค์ด ๋ฌธ์๋ก ์ ๋ฆฌ ํด ๋ณด์! start - Dec 12 2020
GIT
- .Ds_store ๋ชจ๋ .gitignore
- ์ปค๋ฐ๋์ง ์๊ฑฐ๋ ์ ์ฅ๋์ง ์์ ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ ์ทจ์ ๋ฐ ์ญ์
- Cache ์ญ์
Operating System
1. Linux
- ํน์ port๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ํ๋ก์ธ์ค ์ข ๋ฃํ๋ ๋ช ๋ น์ด
- ๋ฐ๋ชฌ ํ๋ก์ธ์ค - Daemon Processe
2. Virtualization
Computer Science
- ์ํํธ์จ์ด ์๋ช ์ฃผ๊ธฐ(software life cycle)
- ์ํํธ์จ์ด ํ ์คํธ
- ์ง๋ ฌํ(serialization)
- ๋์์ฑ & ๋ณ๋ ฌ์ฑ - Concurrency & Parallelism
- IPC - Inter process Comunication
1. Memory
์๋ฃ๊ตฌ์กฐ
2.2-1. ์ ํ ๊ตฌ์กฐ
- list
- ์์ฐจ ๋ฆฌ์คํธ
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ
Singly Linked List, Circular Linked List, Doubly Linked List
2-2. ๋น ์ ํ ๊ตฌ์กฐ
3. ๋คํธ์ํฌ
4. ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
Programming
JAVA
1.JVM - Java Virtual Machine
1-1.1-2. ๋ฌธ๋ฒ ๋ฐ ๊ธฐ๋ฅ
- annotation
- String
- Enumeration ์ Iterator
- Exception
- Wrapper Class
- try-with-resources
- ํฅ์๋ for ๋ฃจํ - enhanced for loop
- ์ง๋ ฌํ - Serialization
- ๊ฐ๋ณ์ธ์ - varargs
1-3. Java 8
JAVA ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ
1-4.1-5. JAVA ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ์ด์๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ
- volatile - ๊ฐ์์ฑ ์ด์๋ฅผ ํด๊ฒฐํ๋ ํค์๋
- ๊ฒฝ์์ํ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ
- synchronized ํค์๋
- Atomic API
- Mutex, Semaphore
- Thread Local - ์ค๋ ๋ ๋ก์ปฌ
1-6. ๋ฐ์ดํธ ์ฝ๋๋ฅผ ์กฐ์ํ๋ ๋ค์ํ ๋ฐฉ๋ฒ
JCF - Java Collection Framework
1-7Java EE
1-8.1-9. JAVA Design Pattern
- ๋์์ธํจํด?
- ์ ๋ตํจํด(Strategy Pattern)
- ์ด๋ํฐํจํด(Adepter Pattern)
- ์ฑ๊ธํคํจํด(Singleton Pattern)
- ํ๋ก์ํจํด(Proxy Pattern)
- ๋ฐ์ฝ๋ ์ดํฐ ํจํด(Decorator Pattern)
- ์ต์ ๋ฒ ํจํด(Observer Pattern)
1-10. Reference
etc...
- POJO - ์ค๋๋ ๋ฐฉ์์ ๊ฐ๋จํ ์๋ฐ๊ฐ์ฒด
- Java Beans
- Guava ์๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์ธ์คํด์คํ๋ฅผ ๋ง๋ ๋ฐฉ๋ฒ
1-10. junit
Kotlin
2.- Kotlin ํค์๋
- ์๋น์ค ์ฐ์ฐ์ - Elvis Operation
- Java์ try-with-resource์ Kotlin์ use function
- ์(expression)๊ณผ ๋ฌธ(statement)
์๊ณ ๋ฆฌ์ฆ
DevOps
1. Prometheus
2. AWS
3. Docker
- Docker
- Docker install - ubuntu
- container, image ์ญ์
- container root๋ก ์ ์ํ๊ธฐ
List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)
ํด๊ฒฐ
4. Jenkins
- Jenkins install - ubuntu
BackEnd
Spring Framework
1.1-1. Spring Triangle(IoC, AOP, PSA) - ์คํ๋ง 3๋ ์์
SpringBoot
2.2-1. charset ๋ฌธ์
- ๋ชจ๋ ์์ฒญ์ ๋ํด UTF-8 charset ์ ์ฉ
- S3 ๋ฒํท์ ์์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ URL์ด character set์ด UTF-8์ด ์๋์ฌ์ ์๊ธด ๋ฌธ์
3. Spring MVC
- Command Object - ์ปค๋งจ๋ ๊ฐ์ฒด
- HTTP POST ๋ฉ์๋์ Content-Type
feat. Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported
- SpringMVC๋ XML, JSON๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ฐํํ ๊น? (์์ฑ์ค)
๋ถ์ : ViewResolver์ MessageConverter
- Bean Validator์์ ๊ฒ์ฆ์ ์คํจํ ํ๋๋ฅผ @RestControllerAdvice๋ฅผ ํตํด ์๋ ค์ฃผ์!
4. SpringSecurity
5. Build Tool
6. Transaction
5-1. Gradle
- Gradle
- (SpringBoot Project) Maven์์ Gradle๋ก Build Tool migration!
- build.gradle plugins{...}๋ฐฉ์ ์๋ฌํด๊ฒฐ
only buildscript {} and other plugins {} script blocks are
allowed before plugins {} blocks, no other statements are allowed
์ ๋ฌํด๊ฒฐ - (SpringBoot Project) ๋น๋ํ ์๊ธฐ๋ Jarํ์ผ์ ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ
5-2. Maven
6. JPA
- Entity
- JPA Auditing์ผ๋ก ์์ฑ์ผ/์์ ์ผ ์๋ํ
- ๋น๊ด์ /๋๊ด์ ๋ฝ
- QueryDSL?
- 01 JPA?
- 02 ์์์ฑ ์ปจํ ์คํธ?
- 03 ํ๋ฌ์(flush)
- 04 ์ค ์์ ์ํ
- 05 DB schema ์๋ ์์ฑ
- 06 ๊ฐ์ฒด์ ํ ์ด๋ธ ๋งคํ
- 07 ๊ธฐ๋ณธํค ๋งคํ
- 08 ์ฐ๊ด๊ด๊ณ ๋งตํ(๊ธฐ์ด)
- 09 ๋ค์ํ ์ฐ๊ด๊ด๊ณ
- 10 ์ฐ๊ด๊ด๊ณ ๋งตํ(๊ณ ๊ธ) - ์์๊ด๊ณ ๋งคํ
- 11 @MappedSuperclass
- 12 Proxy
- 13 Eager/LAZY loading
- 14 ์์์ฑ ์ ์ด(cascade)
- 15 ๊ณ ์ ๊ฐ์ฒด(ORPAN)
- 16 JPA ๋ฐ์ดํฐ ํ์
- ๋ฒํฌ ์ฐ์ฐ
6-1. JPQL ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด
Querydsl
6-2.6-3. Spring DATA JPA
7. Node.js
- node.js ์ค์น ๋ฐ ๊ฐ๋ฐํ๊ฒฝ ์ธํ
- MySQL ์ฐ๊ฒฐ
- ORM๋ชจ๋ Sequelize ์ฌ์ฉํ๊ธฐ(๋ชจ๋ธ๋ง๋ค๊ธฐ)
SSH
8.Database
- ํธ๋์ญ์ ๊ฒฉ๋ฆฌ์์ค
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค - Relational Database?
- ์กฐ์ธ ์๊ณ ๋ฆฌ์ฆ
- ์ตํฐ๋ง์ด์ - Optimizer
1. SQL ์ ๋ฌธ๊ฐ ๊ฐ์ด๋ - SQLD ์ค๋น
SQL - Structured Query Language
2.3. MySQL
4. Oracle
5. MongoDB
6. Redis
- AWS ec2 + Amazon Linux2ํ๊ฒฝ์ redis ์ค์นํ๊ธฐ
- ECS์ ๋ฐฐํฌํ ๋จ์ผ ๋ ธ๋ Redis์ Read only replica ์๋ฌ ํด๊ฒฐ๊ธฐ
Network
1. ํ๋กํ ์ฝ
HTTP
2.3. WEB
- ์๋ฒ๊ธฐ๋ฐ ์ธ์ฆ & ํ ํฐ๊ธฐ๋ฐ ์ธ์ฆ
- Cookie, Session
- Web Socket
- WAS
- ์น ๋ธ๋ผ์ฐ์ ์ ์์ฒญ ํ๋ฆ