Session
Part1
Java version ๋ณ ํน์ง
8
11 : lambda
Java์ ์ฅ์ ๋ฐ ํน์ง
os level์ด ์๋๋ผ JVM ์์์ ๋์๊ฐ ( php๋ os์ ์์กด์ ์ด๋ผ ๋ฐฐํฌ๋ฌธ์ ๊ฐ ์๊น )
Java ๋ฐฐํฌ ํ์ผ jar
JVM option ์ค์
arifact
JFrog
Java๋ type ๊ฒ์ฌ ์์ : (python๊ณผ js์์ ์ฐจ์ด)
Visual VM
์ฑ๋ฅ์ด๋ ํธ๋ํฝ ๊ด๋ฆฌ
์์กด์ฑ ๊ด๋ฆฌ ๋๊ตฌ
gradle (ํ์ฌ 6์ ๋)
maven
MVN repository, jcenter centrul
pip
npm
Log4j ์ด์
๊ผญ ์์์ผํ๋ Java libraries
Google Guava : circular
Apach commons
Jackson
Google gson
SLF4J
Log4j 2 : 3๊ฐ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ . core, api, log4j
Apache HTTPComponents : blocking/nonblocking = ๋น๋๊ธฐ/๋๊ธฐ ์ฒ๋ฆฌ
Lombok : getter, setter
JAXB
Mockito : unit test๋ฅผ ์ํ
AssertJ
Hibernate : ORM
Junit
GC (๊ฐ๋น์ง ์ปฌ๋ ํฐ)
g1, gc : ์ฑ๋ฅ์ ์์ด ์ค์ํ ๋ฌธ์ ์
ORM, query
ORM vs SQL Mapper vs JDBC
SQL : ๋ฐ์ดํฐ๋ฒ ์ด์ค function ์ฌ์ฉํ ๋. ๋ถ์ ๋ฐ ๋ฆฌํฌํธ ์ฉ ์ฟผ๋ฆฌ ๋ ๋ฆด๋ ์ฌ์ฉ
query plan, query ํ๋
join
database ์ฟผ๋ฆฌ๊ฐ ๋๋ ค์ง
merge join, nested join, hash join
nested : json, array๋ก ์ ๋ฌ
driving table, driven table
query explain : mysql, bigquery
work bench
Databse ์ฌ๋ฌ๊ฐ ์ฐ๊ฒฐ ๋ฐ ๋์์ฑ ๊ด๋ฆฌ
Blocking = synchonous, non-blocking = asynchonous
JDK, JRE
IntelliJ
break point ์ฐ์ผ๋ฉด์ ์ปดํ์ผ
Restful API
api/v1/${somthing}
directory๊ฐ์ ๊ฐ๋
Namespace
Query Scan
full scan, range scan
Prepared Statement
Serialization Object
Error message handling
Part2
closable
connection pool ๊ด๋ฆฌ
SLF4J
var/log/message ์ ์ ์ฅ๋จ
Interface, abstract
Interface์ abstract์ผ๋ก ๊ณตํต๋ ๋ถ๋ถ์ ๋นผ์ ์์ฑ
์ด์ -> ํ์ฅ์ฑ
ResponseEntity
response ๋ฐํ์ ๊ณตํต์ ์ธ ํฌ๋ฉง์ผ๋ก
Error handling
exception ๋ณ๋ก ์ชผ๊ฐ์ผ ๋จ
global ํด๋์ exception ํด๋๋ฅผ ์์ฑํด์ ๊ณตํต๋๋ ์์ธ๋ฅผ ์์ฑํด๋๊ณ ์ฌ์ฉ : https://docs.oracle.com/javaee/7/api/javax/ejb/DuplicateKeyException.html
enum type ์ ์ํด์ ๋ฃ์ด์ผํจ . ํ์ ์ฒดํฌ๋ฅผ ํด์ค์ผ๋ก์จ ์์ฐ์ฑ ๋์ฌ์ค
Avro
pojo ๋ : plain old java object๋ก dto๋ฅผ ์๋ฏธ
avro๋ dto ๋ง๋ค์ด์ค
kafka์ ํธํ์ฑ์ด ์ข์
์คํธ๋ฆฌ๋ฐ Avro ๋ฐ์ดํฐ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ :https://docs.microsoft.com/ko-kr/azure/databricks/spark/latest/structured-streaming/avro-dataframe
serialization, deserialization object ํด์ค : https://docs.confluent.io/platform/current/schema-registry/serdes-develop/serdes-avro.html
avro-tutorial : https://data-flair.training/blogs/avro-tutorial/
Java๋ฅผ ์ฌ์ฉํ ๋ Java์ ์ฅ์ ์ ์ต๋ํ ํ์ฉํด์ผ ํจ
Optional
get()
Pagination
web server, was
tomcat
nignx (reverse proxy, load balancing), apach web server
Try-with-resourses Statement
profiling tuning
Increase open files limit for a non root user
ulimit max ์ฌ๋ ค -> ์ฑ๋ฅ -> ๋ฉ๋ชจ๋ฆฌ
Java collections
hash map, tree map, arraylist, linkedhashmap
java - heap memory ๊ด๋ฆฌ
java๋ heap memory ๊ด๋ฆฌ๊ฐ ์ค์ํ๋ค
Online hap dump analyzer : https://heaphero.io/
Java Heap Memory Size ํ์ธ ๋ฐ ์ค์ : https://m.blog.naver.com/pcmola/221811360247
Heap setting ํ๊ธฐ -Xms, -Xmx : https://crunchify.com/how-to-change-jvm-heap-setting-xms-xmx-of-tomcat/
Heap Dump Captureํ๊ธฐ : jmap ์๋์, jcmd๋ก ํจ
Different Ways to Capture Java Heap Dumps : https://www.baeldung.com/java-heap-dump-capture
lambda in java
Java Annotations
PathVatiable ๊ฐ์ ์ด๋ ธํ ์ด์ ์ฌ์ฉ
Access modifier
final
Rest.li
linkedin-> rest.li : https://github.com/linkedin/rest.li
GC g1, gc tuning
jetty
Java Performance Tuning Tips
์ฐธ๊ณ
Last updated