๊ฐ์ฒด ์ค๊ณ, toString ์ค๋ฒ๋ผ์ด๋
Comparable, Comparator
Java - ๊ฐ์ฒด ๋ชจ๋ธ๋ง ๋ฐฉ๋ฒ, Validation(์ ํจ์ฑ๊ฒ์ฌ), ํ ์คํธ ์ฝ๋
๋ฐฉ์ด์ฝ๋ฉ, ๋ก๊น
ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด
Why Using Enum?
HashMap .. Value๊ฐ 2 ์ด์์ธ key๋ค List๋ก return
Comparator
Buffer(NIO)
Integer.bitCount()
StringUtils.defaultString(), StringJoiner
Stream - int array to Integer HashSet
์ ๋ค๋ฆญ ํ์ ์ Primitive ํ์ ์ด ๋ชป์ค๋ ์ด์
Java POI workbook OOM, HSSF, XSSF, SXSSF
Java Arrays toString(), deepToString()
Java VO(Value Object)
Java Arrays.asList() ์ฃผ์์
Map getOrDefault(), ์ ๊ทํํ์
Stream ex
IllegalArgumentException, IllegalStateException
Guava Partition List
์ ๊ทํํ์
Google Drive API
JSoup 1
JSoup 2
JSoup 3
Jar ํ์ผ ์คํ ๋ฉ๋ชจ๋ฆฌ ์ค์ (-Xms, -Xmx)
int array to String array, ๋งค์ง๋๋ฒ
String ๋ฐฐ์ด์ ๊ฐ ์์๋ค์ด ํน์ ๋ฌธ์์ด์์ ์๋ ๋ฌธ์ ์ ๊ฑฐํ๊ธฐ
jps, jmap(ps -ef | grep java)
JUnit - assertThatThrownBy(), @ParameterizedTest, @ValueSource, @CsvSource example
Java System.arraycopy
Java11 String.repeat()
Collections - shuffle() ๋ฆฌ์คํธ ์๊ธฐ
(์๊ณ ๋ฆฌ์ฆ) Queue ๋์ LinkedList๋ก ์ ์ธํ์
javac flag -parameters
ํน์ ๋ฌธ์์ด์ ์กด์ฌํ๋ ๋ค๋ฅธ ๋ฌธ์์ด ๊ฐฏ์ ์ฐพ๊ธฐ
Java ๋น๋๊ธฐ์ฒ๋ฆฌ
Java ๊น์ ๋ณต์ฌ์ ์์ ๋ณต์ฌ
Two Pointer(ํฌ ํฌ์ธํฐ)
Convert String month to Integer month
Url Validation
jstat: GC ํ๋ ์ต์
Custom Valid @annotation
Kotlin ๋ฐฐ์ด ์ ์ธ
@Valid ์์ธ ํ ์คํธ
Password Validation Regex
Kotlin destructuring(๊ตฌ์กฐ ๋ถํด)
jQuery toggle(), keydown
popup, opener
String -> 2D Array, SheetJS
Strict Mode("use strict")
jqGrid ๐คฌ
splice()
location
Spring Security
Spring Security2
Swagger API, ๊ฒ์๊ธ ์ข์์
@ControllerAdvice
HandlerMethodArgumentResolver
@Order, AWS S3 File Upload
@ModelAttribute, @RequestBody, @consumes, @produces, MultipartFile(ํ์ผ์ฒ๋ฆฌ) + VO ํฌ์คํธ๋งจ ํ ์คํธ
spring.factories
@ResponseBody, jsonView
BeanUtils.copyProperties()
BeanUtils.copyProperties() ์ ๋ฆฌ
Interceptor, @PostConstruct
JPA @Embedded, @Embeddable
ํ ์คํธ, @DateTimeFormat, @JsonFormat, JPA ํ์ด์ง์ฒ๋ฆฌ
JPA ์ฐ๊ด๊ด๊ณ(๋ค๋์ผ, ์ผ๋๋ค)
MyBatis $ vs #
Assertions validation
Swagger API
JPQL
API ์์ฒญ ์ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ์๋ต?
Error creating bean with name ~ ์ค๋ฅ
Spring ์ค์ ๊ฐ์ด๋(๊น๋จ์ค๋), CORS ์ ์ฉ, JPA Entity ๊ธฐ๋ณธ ์์ฑ์(PROTECTED)
@RequestBody, @ModelAttribute
๋ก๊น ํ๋ ์์ํฌ - logback
@ParameterizedTest, @ValueSource, logback ์ฌ๋ฌ ํ์ผ๋ก ๋ถ๋ฆฌ
(ํ ์คํธ ์ฝ๋)@ParameterizedTest, @ValueSource, @CsvSource
MyBatis Cache ์ค์
CSRF
@MethodSource
Mockito
gradle ํ๋ก์ ํธ ์์กด์ฑ ํ์ธํ๊ธฐ
JPA @MappedSuperclass(BaseEntity)
JPA ์ฆ์ ๋ก๋ฉ(Eager Loading) & ์ง์ฐ ๋ก๋ฉ(Lazy Loading)
Spring Boot Maven profile(๊ฐ๋ฐ & ์ด์ ๋ถ๋ฆฌ) - prod, dev
JPA ์์์ฑ ์ ์ด(CASCADE)
JPQL @Query, countQuery
JPA - @EntityGraph
Querydsl
Spring Security @EnableGlobalMethodSecurity vs @EnableWebSecurity, @PreAuthorize, @PostAuthorize
Gradle ๋น๋ํ ๋, test ์คํต
Maven ๋น๋ํ ๋ test ์คํต
IntelliJ API ํ ์คํธ, @Valid ์ ํจ์ฑ ๊ฒ์ฌ + ์์ธ ํธ๋ค๋ง
Gradle 7+ ๋ฒ์ ์์๋ compile, runtime ๋์ implementation, runtimeOnly๋ฅผ ์ฌ์ฉ
SpringBoot + JWT
Spring AOP - (1) ํ๋ก์ ํจํด, ๋ฐ์ฝ๋ ์ดํฐ ํจํด ์ ๋ฆฌ
Spring AOP - (2) AOP ๊ฐ๋ ๋ฐ ์ค์ต
Spring @JsonProperty, @JsonNaming
๋ก๊น : Log4j, Log4j2, Slf4j, Logback
InitializingBean, Disposable
JPA N+1
Spring Swagger 3.0 ๊ธฐ๋ณธ UI์ URL ๋ณ๊ฒฝ, Swagger Basic Error Controller ์ ๊ฑฐ
Hibernate and data.sql lazy working
FactoryBean์ผ๋ก Spring Bean ๋ฑ๋กํ๊ธฐ
Spring @PostConstructor, @PreDestory
Gradle Version Catalog
MySQL Boolean Type
MySQL JDBC autoReconnect
View(๊ฐ์ ํ ์ด๋ธ)
MySQL LIKE IN ์ฌ๋ฌ๊ฐ --> REGEXT
MySQL ๋น๊ต์ฐ์ฐ์, ๋์๋ฌธ์
MySQL join, ์ตํฐ๋ง์ด์
VARCHAR vs CHAR
MySQL IN, EXISTS
MySQL charset ์ค์ ์ด ๋ค๋ฅธ ๋ ์ปฌ๋ผ ์กฐ์ธ
์ฌ์ฉ์๊ฐ ๊ฒ์๋ฌผ์ ์์ฑํ ๋์ ํธ๋์ญ์ ์ฒ๋ฆฌ
DBCP
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ์์ค
PostgreSQL ๊ธฐ์ด ์ฟผ๋ฆฌ
Oracle ์คํ๊ณํ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ํ ์ด๋ธ ์ฉ๋
MySQL Recursive Insert(Dummy Data)
WAL(Write-Ahead Log)
MySQL Explain (TRADITIONAL, TREE, JSON, ANALYZE)
GitHub ๋ฆฌ๋ชจํธ, ๋ก์ปฌ ๋ ํฌ์งํ ๋ฆฌ ์ฑํฌ ๋ง์ถ๊ธฐ
Git ์ถฉ๋
์ ํ๋ธ(ZenHub)
GitHub์ ์๋ชป ์ฌ๋ผ๊ฐ ํ์ผ ์ ๊ฑฐ(gitignore)
TCP 3-way Handshake
iframe
HTTP DELETE Body
HTTP ์กฐ๊ฑด๋ถ ์์ฒญ
SRI(Subresource Integrity)
CSS Reset(์ด๊ธฐํ)
HTML/CSS ์ฐ์ต
์คํ ๊ทธ๋ํ(Open Graph)
22 Best Practices to Take Your API Design Skills to the Next Level
Apache httpd-vhosts.conf ์ค์
IntelliJ ํ๊ธ ์ ๋ ฅ ์๋ ๋
IntelliJ ์ ์ฉํ ํ๋ฌ๊ทธ์ธ & ์ด๊ธฐ ์ค์
IntelliJ Live Template
gitignore.io ํ์ผ ์๋ ์์ฑ ์ฌ์ดํธ
IntelliJ ๋ ํ์ผ ๋น๊ตํ๊ธฐ
IntelliJ Gradle ~ cannot be applied to '(groovy.lang.Closure') ํด๊ฒฐ
์ธํ ๋ฆฌ์ ์ด(IntelliJ) - VisualVM ์ค์น ๋ฐ ์ฐ๋ํ๊ธฐ
IntelliJ ํด๋ ํ ๋ง ์์ด์ฝ ๋ณ๊ฒฝ
Apache Kafka
ํ๋ก๋น์ ๋(Provisioning)
GCP - Docker, Jenkins ๋ฐฐํฌ
Ngnix, ๋ก๋๋ฐธ๋ฐ์ฑ
Artillery Nginx ๋ก๋๋ฐธ๋ฐ์ฑ ์ฑ๋ฅ ์ธก์
AWS RDS DB ์์ฑ ํ ๋ชจ๋ IP(๋ก์ปฌ+์ธ๋ถ) ์ ์ ํ์ฉ ์ค์
AWS EC2 ์ธ์คํด์ค ์์ฑ ๋ฐ ์ค์
๊ฐ๋น์ ๋๋ฉ์ธ ๋ฑ๋ก
AWS 80 -> 8080 ํฌํธํฌ์๋ฉ(iptables)
๋งฅOS์์ AWS EC2 ์ ์ํ๊ธฐ
GitHub Action์ ํตํด AWS์ ๋ฐฐํฌ(๋น๋)ํ๊ธฐ1
AWS S3 ๋ฒํท ์์ฑ
Spring Boot + docker ๋ฐฐํฌ(MacOS M1)
AWS EC2์ Docker, Docker-Compose ์ค์นํ๊ธฐ
Bind Exception(ํ๊ฐ ๊ฑฐ๋ถ), ๋ฆฌ๋ ์ค ํ์ผ ๊ถํ(chmod)
Linux 25๋ฒ ํฌํธ SMTP(postfix) ์ ์ง
Linux - netstat, telnet stmp ๋ฉ์ผ ํ ์คํธ, Health Check
(ํ์ผ ์ฉ๋ ๊ด๋ จ)du, df, readlink
find, awk, Shell
/dev/null 2>&1
catalina.out ํฐ์บฃ ๋ก๊ทธ
ํ์ผ ์ญ์ (rm), ์ฉ๋ํ์ธ(du)
Linux Timezone ๋ณ๊ฒฝ
basename
find ์ต์
Linux - du(Memory check)
Linux - tar