Posts by Tag

Java

Logging

3 ๋ถ„ ์†Œ์š”

System.out.println("*********์ œ๋ฐœ ๋‚˜์™€๋ผ*********");

JPA ์˜์†์„ฑ ๊ด€๋ฆฌ

1 ๋ถ„ ์†Œ์š”

JPA-์‹œ์ž‘ํ•˜๊ธฐ ์—์„œ ์–ด๋Š ์ •๋„ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์™€ ์—”ํ‹ฐํ‹ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ดค๋‹ค. ์ด ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์˜ ํŠน์ง•์„ ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

JPA ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘

6 ๋ถ„ ์†Œ์š”

์—”ํ‹ฐํ‹ฐ๋“ค์€ ๋Œ€๋ถ€๋ถ„ ๋‹ค๋ฅธ ์—”ํ‹ฐํ‹ฐ์™€ ์—ฐ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ORM vs SQL Mapper vs JDBC์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ๊ฐ์ฒด์™€ ํ…Œ์ด๋ธ”์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ๋งบ๋Š”๋‹ค. ๊ฐ์ฒด์˜ ๊ฒฝ์šฐ ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ๊ด€๊ฒŒ๋ฅผ ๋งบ๊ณ  ํ…Œ์ด๋ธ”์€ ์™ธ๋ž˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ด€๊ณ„๋ฅผ ๋งบ๋Š”๋‹ค. ORM์—์„œ๋Š” ๊ฐ์ฒด ์—ฐ๊ด€...

JPA ์‹œ์ž‘ํ•˜๊ธฐ

5 ๋ถ„ ์†Œ์š”

ORM vs SQL Mapper vs JDBC๋ฅผ ํ†ตํ•ด JPA๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ์ด๊ฒŒ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž. ํ•ด๋‹น ๊ธ€์€ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” Hibernate๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•  ๊ฒƒ์ด๋‹ค.

Servlet๊ณผ Spring

1 ๋ถ„ ์†Œ์š”

Spring Framework์˜ ๋ฌธ์„œ๋ฅผ ์ •๋ฆฌํ•ด๋ณด๋ฉด์„œ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์ด ์ƒ๋‹นํžˆ ๋งŽ๋‹ค. ๊ทธ ์ค‘์—์„œ ์„œ๋ธ”๋ฆฟ๊ณผ ๊ด€๋ จ๋œ ๋งŽ์€ ๋ถ€๋ถ„์ด ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์•˜๋‹ค. ์Šฌ์Šฌ Spring๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Servlet์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์„๊นŒํ•˜์—ฌ, ์ด๋ฒˆ ๊ธฐํšŒ์— ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

Spring Core

3 ๋ถ„ ์†Œ์š”

Components(์ปดํฌ๋„ŒํŠธ)

Spring JDBC

4 ๋ถ„ ์†Œ์š”

Spring JDBC ๋Š” JDBC๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ๋˜๋Š” ๊ฒƒ์˜ ์ผ๋ถ€๋ฅผ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.

Spring Web MVC

4 ๋ถ„ ์†Œ์š”

Spring Web MVC๋Š” Servlet API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค. ์•„๋ž˜๋Š” Java ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ–ˆ๋‹ค.

Java์˜ Exception ์ „๋žต

2 ๋ถ„ ์†Œ์š”

์ตœ๊ทผ์— Java๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ง€๊ธˆ๊นŒ์ง€ ์˜ˆ์™ธ๋ฅผ ์ž˜๋ชป๋œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ง€ํ–ˆ๋‹ค. Effective Java๋ฅผ ์ฝ์€ ํ›„ ์ง€ํ–ฅํ•ด์•ผ ๋  Exception ์ „๋žต์„ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

JDBC

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

JDBC๋ž€?

JUnit 5

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

JUnit ์ด๋ž€

Java ๋ฐฐ์—ด๊ณผ ๋ฆฌ์ŠคํŠธ์˜ ๊ณต๋ณ€์„ฑ๊ณผ ๋ฐ˜๊ณต๋ณ€์„ฑ, ๋ฌด๊ณต๋ณ€์„ฑ

1 ๋ถ„ ์†Œ์š”

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ์ƒ๊ธด ์˜๋ฌธ์„ ๊ธ€๋กœ ์จ๋ณด๋Š” ๊ฒƒ์€ ์ฒ˜์Œ์ด๋ผ ์–ด์ƒ‰ํ•˜์ง€๋งŒ ์ผ๋‹จ ๊ธฐ๋กํ•ด๋ณธ๋‹ค. ์ž๋ฐ”์—๋Š” ๋ฐฐ์—ด๊ณผ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค. ๋ฆฌ์ŠคํŠธ์— ์ง€์›ํ•˜๋Š” API๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ์ŠคํŠธ๋ฅผ ์“ฐ๋ผ๊ณ  ๋งŽ์ด ๊ถŒ์žฅํ•˜์ง€๋งŒ ๋˜ ๋‹ค๋ฅธ ์ฐจ์ด์ ์ด์žˆ๋‹ค.

Java Exception

1 ๋ถ„ ์†Œ์š”

Exception์˜ ์ƒ์† ๊ตฌ์กฐ

Java Generics

1 ๋ถ„ ์†Œ์š”

Java Generics(์ œ๋„ค๋ฆญ)์ด๋ž€?

Java StringBuilder, StringBuffer

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

Java ์ฝ”๋”ฉ ์‹œ ์ถœ๋ ฅ๊ณผ ๊ด€๋ จ๋œ ๋ถ€๋ถ„์—์„œ ๋ฌธ์ž์—ด์„ ํ•ฉ์ณ์„œ ์ถœ๋ ฅํ•ด์•ผ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋•Œ ๋ฌธ์ž์—ด ๋ง์…ˆ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ํ•ด์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Java Stream API

2 ๋ถ„ ์†Œ์š”

Stream(์ŠคํŠธ๋ฆผ)์ด๋ž€?

Java Enum

1 ๋ถ„ ์†Œ์š”

์ผ์ • ๊ฐœ์ˆ˜์˜ ์ƒ์ˆ˜ ๊ฐ’์„ ์ •์˜ํ•œ ๋‹ค์Œ, ๊ทธ ์™ธ์˜ ๊ฐ’์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ํƒ€์ž…์„ ์—ด๊ฑฐ ํƒ€์ž…์ด๋ผ๊ณ ํ•œ๋‹ค. ์ด๋Ÿฐ ์ƒ์ˆ˜๋“ค์„ int๋‚˜ String์œผ๋กœ ์—ด๊ฑฐํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๋‹จ์ ์ด ์žˆ๋‹ค.

์ผ๊ธ‰ ์ปฌ๋ ‰์…˜(First Class Collection)

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

โ€œ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ์ปฌ๋ ‰์…˜์ด ์žˆ๊ณ , ์ด์™ธ์˜ ๋‹ค๋ฅธ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” ์—†๋Š” ํด๋ž˜์Šคโ€œ๋ฅผ ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฐ ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜์ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ์— ์™œ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

Utility Class

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

Utility Class๋ž€?

๋งจ ์œ„๋กœ ์ด๋™ ↑

Spring

Logging

3 ๋ถ„ ์†Œ์š”

System.out.println("*********์ œ๋ฐœ ๋‚˜์™€๋ผ*********");

WebSocket ์‹œ์ž‘ํ•˜๊ธฐ

4 ๋ถ„ ์†Œ์š”

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๊ฐฑ์‹ ๋œ ์ •๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ ๋น ๋ฅด๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์„๊นŒ?

JPA ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘

6 ๋ถ„ ์†Œ์š”

์—”ํ‹ฐํ‹ฐ๋“ค์€ ๋Œ€๋ถ€๋ถ„ ๋‹ค๋ฅธ ์—”ํ‹ฐํ‹ฐ์™€ ์—ฐ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ORM vs SQL Mapper vs JDBC์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ๊ฐ์ฒด์™€ ํ…Œ์ด๋ธ”์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ๋งบ๋Š”๋‹ค. ๊ฐ์ฒด์˜ ๊ฒฝ์šฐ ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ๊ด€๊ฒŒ๋ฅผ ๋งบ๊ณ  ํ…Œ์ด๋ธ”์€ ์™ธ๋ž˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ด€๊ณ„๋ฅผ ๋งบ๋Š”๋‹ค. ORM์—์„œ๋Š” ๊ฐ์ฒด ์—ฐ๊ด€...

JPA ์‹œ์ž‘ํ•˜๊ธฐ

5 ๋ถ„ ์†Œ์š”

ORM vs SQL Mapper vs JDBC๋ฅผ ํ†ตํ•ด JPA๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ์ด๊ฒŒ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž. ํ•ด๋‹น ๊ธ€์€ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” Hibernate๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•  ๊ฒƒ์ด๋‹ค.

Servlet๊ณผ Spring

1 ๋ถ„ ์†Œ์š”

Spring Framework์˜ ๋ฌธ์„œ๋ฅผ ์ •๋ฆฌํ•ด๋ณด๋ฉด์„œ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์ด ์ƒ๋‹นํžˆ ๋งŽ๋‹ค. ๊ทธ ์ค‘์—์„œ ์„œ๋ธ”๋ฆฟ๊ณผ ๊ด€๋ จ๋œ ๋งŽ์€ ๋ถ€๋ถ„์ด ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์•˜๋‹ค. ์Šฌ์Šฌ Spring๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Servlet์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์„๊นŒํ•˜์—ฌ, ์ด๋ฒˆ ๊ธฐํšŒ์— ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

Spring Authentication

1 ๋ถ„ ์†Œ์š”

์ด ๊ธ€์—์„œ๋Š” Spring Framework๋กœ HTTP ์„ธ์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•œ๋‹ค.

Spring Core(2)

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

Spring Test ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ฉด์„œ ์•„์ง Spring์— ๊ด€๋ จ๋œ ๊ฐœ๋…์ด ์ •๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ๊บ ๋‹ฌ์•˜๋‹ค. ์ด๋ฅผ ํ•œ๋ฒˆ ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Spring Core(2)๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

Spring Configuration

9 ๋ถ„ ์†Œ์š”

Spring์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ์–ด๋…ธํ…Œ์ด์…˜๊ณผ XML ์ค‘ ์–ด๋Š ๊ฒƒ์ด ์ข‹์„๊นŒ?

Spring Test

9 ๋ถ„ ์†Œ์š”

Spring์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฐ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณธ๋‹ค.

Spring Core

3 ๋ถ„ ์†Œ์š”

Components(์ปดํฌ๋„ŒํŠธ)

Spring JDBC

4 ๋ถ„ ์†Œ์š”

Spring JDBC ๋Š” JDBC๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ๋˜๋Š” ๊ฒƒ์˜ ์ผ๋ถ€๋ฅผ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.

Spring Web MVC

4 ๋ถ„ ์†Œ์š”

Spring Web MVC๋Š” Servlet API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค. ์•„๋ž˜๋Š” Java ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

OOP

MVC ํŒจํ„ด

1 ๋ถ„ ์†Œ์š”

ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์‹œ์Šคํ…œ์„ ๋””์ž์ธํ•  ๋•Œ ๊ณตํ†ต์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•ด ํ˜•์‹ํ™” ์‹œํ‚จ ์„ค๊ณ„ ๋ฐฉ๋ฒ•์„ ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๊ทธ ์ค‘ ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” MVC(Model-View-Controller)ํŒจํ„ด์„ ์•Œ์•„๋ณธ๋‹ค.

์ผ๊ธ‰ ์ปฌ๋ ‰์…˜(First Class Collection)

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

โ€œ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ์ปฌ๋ ‰์…˜์ด ์žˆ๊ณ , ์ด์™ธ์˜ ๋‹ค๋ฅธ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” ์—†๋Š” ํด๋ž˜์Šคโ€œ๋ฅผ ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฐ ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜์ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ์— ์™œ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

Utility Class

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

Utility Class๋ž€?

๋งจ ์œ„๋กœ ์ด๋™ ↑

CS

๋ฌด์„  ๊ณต์œ ๊ธฐ ์„ค์ •์œผ๋กœ ๊ณต๋ถ€ํ•ด๋ณด๋Š” ๋„คํŠธ์›Œํฌ

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๋„คํŠธ์›Œํฌ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ์ง€๊ธˆ ์ง์ ‘ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ ์žฅ๋น„๊ฐ€ ๋ฐ”๋กœ ์˜†์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ๋ฌด์„  ๊ณต์œ ๊ธฐ(ipTIME) ์„ค์ • ์ฐฝ์„ ๋ณด๋ฉด์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ ์ง€์‹๋“ค์„ ๊ณต๋ถ€ํ•ด๋ณด์ž.

HTTP/3์™€ QUIC

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

์ด๋ฒˆ์—๋Š” ํ˜„์žฌ IETF์˜ ์ธํ„ฐ๋„ท ์ดˆ์•ˆ ์ƒํƒœ์ธ HTTP/3์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณธ๋‹ค. HTTP/3๋Š” ๊ธฐ์กด์˜ HTTP ๋ฒ„์ „๋“ค๊ณผ ๋‹ค๋ฅด๊ฒŒ TCP๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. Transport layer์—์„œ TCP๊ฐ€ ์•„๋‹Œ QUIC์„ ์‚ฌ์šฉํ•œ๋‹ค. QUIC์€ Quick UDP Internet Connection...

HTTP1.1 vs HTTP2.0

4 ๋ถ„ ์†Œ์š”

ํƒ„์ƒ ๋ฐฐ๊ฒฝ

Java ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง„๋‹จํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด

2 ๋ถ„ ์†Œ์š”

ํ†ต์‹  ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด, ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด์— ์ด์–ด์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง„๋‹จ์„ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ์•Œ์•„๋ณธ๋‹ค. Java ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋น„์ •์ƒ์ ์œผ๋กœ ๋Š๋ฆฌ๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ, ์Šค๋ ˆ๋“œ ๋คํ”„๋ฅผ ๋ถ„์„ํ•ด ๋ด์•ผ ๋œ๋‹ค.

์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด

2 ๋ถ„ ์†Œ์š”

์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์„œ๋น„์Šค๋ฅผ ์ œ๋Œ€๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„์˜ ํ™˜๊ฒฝ์„ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ๋น ๋ฅด๊ฒŒ ์›์ธ์„ ํŒŒ์•…ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค.

๋ฆฌ๋ˆ…์Šค ํŒŒ์ผ ์‹œ์Šคํ…œ

5 ๋ถ„ ์†Œ์š”

ํ…Œ์ฝ”ํ†ก์„ ์ค€๋น„ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ์ž๋ฃŒ๋ฅผ ๊ธ€๋กœ ๋‚จ๊ฒจ๋ณธ๋‹ค. ๋ฐœํ‘œ ์‹œ๊ฐ„์ด ์งง์€ ๊ด€๊ณ„๋กœ ์ƒ๋žต๋œ ๋ถ€๋ถ„์ด ๋งŽ๋‹ค.

ํ†ต์‹  ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด

2 ๋ถ„ ์†Œ์š”

๊ฐ‘์ž๊ธฐ ์„œ๋ฒ„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ†ต์‹ ์ด ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์„œ๋น„์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ œ๊ณต๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์›์ธ์„ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ์•Œ์•„๋ณด์ž. ๋ชจ๋“  ๋ช…๋ น์–ด๋Š” LINUX ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•œ๋‹ค.

OSI 7๊ณ„์ธต

2 ๋ถ„ ์†Œ์š”

์ปดํ“จํ„ฐ ์ „๊ณต์ด๋ฉด ๋‹น์—ฐํžˆ ์•Œ๊ณ  ์žˆ์–ด์•ผ ๋  OSI 7๊ณ„์ธต. ๋†€๋ž๊ฒŒ๋„ ๋‚˜๋Š” ์ปดํ“จํ„ฐ ์ „๊ณต์ด ์•„๋‹Œ๊ฑฐ ๊ฐ™๋‹ค(โ€ฆ) ์ˆ˜์—…์‹œ๊ฐ„์— ๋ฐฐ์šด์ง€ 6๋…„์ด ์ง€๋‚˜๊ธฐ๋„ํ–ˆ๊ณ , ๊ทธ ๋™์•ˆ ์‚ฌ์šฉํ•  ์ผ๋„ ์—†๋‹ค ๋ณด๋‹ˆ ์–ด์ฉŒ๋ฉด ๋‹น์—ฐํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด๋ฉด์„œ 6๋…„์ „์— ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋‹ค์‹œ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž€๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

๋„คํŠธ์›Œํฌ

๋ฌด์„  ๊ณต์œ ๊ธฐ ์„ค์ •์œผ๋กœ ๊ณต๋ถ€ํ•ด๋ณด๋Š” ๋„คํŠธ์›Œํฌ

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๋„คํŠธ์›Œํฌ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ์ง€๊ธˆ ์ง์ ‘ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ ์žฅ๋น„๊ฐ€ ๋ฐ”๋กœ ์˜†์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ๋ฌด์„  ๊ณต์œ ๊ธฐ(ipTIME) ์„ค์ • ์ฐฝ์„ ๋ณด๋ฉด์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ ์ง€์‹๋“ค์„ ๊ณต๋ถ€ํ•ด๋ณด์ž.

HTTP/3์™€ QUIC

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

์ด๋ฒˆ์—๋Š” ํ˜„์žฌ IETF์˜ ์ธํ„ฐ๋„ท ์ดˆ์•ˆ ์ƒํƒœ์ธ HTTP/3์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณธ๋‹ค. HTTP/3๋Š” ๊ธฐ์กด์˜ HTTP ๋ฒ„์ „๋“ค๊ณผ ๋‹ค๋ฅด๊ฒŒ TCP๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. Transport layer์—์„œ TCP๊ฐ€ ์•„๋‹Œ QUIC์„ ์‚ฌ์šฉํ•œ๋‹ค. QUIC์€ Quick UDP Internet Connection...

HTTP1.1 vs HTTP2.0

4 ๋ถ„ ์†Œ์š”

ํƒ„์ƒ ๋ฐฐ๊ฒฝ

ํ†ต์‹  ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด

2 ๋ถ„ ์†Œ์š”

๊ฐ‘์ž๊ธฐ ์„œ๋ฒ„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ†ต์‹ ์ด ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์„œ๋น„์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ œ๊ณต๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์›์ธ์„ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ์•Œ์•„๋ณด์ž. ๋ชจ๋“  ๋ช…๋ น์–ด๋Š” LINUX ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•œ๋‹ค.

OSI 7๊ณ„์ธต

2 ๋ถ„ ์†Œ์š”

์ปดํ“จํ„ฐ ์ „๊ณต์ด๋ฉด ๋‹น์—ฐํžˆ ์•Œ๊ณ  ์žˆ์–ด์•ผ ๋  OSI 7๊ณ„์ธต. ๋†€๋ž๊ฒŒ๋„ ๋‚˜๋Š” ์ปดํ“จํ„ฐ ์ „๊ณต์ด ์•„๋‹Œ๊ฑฐ ๊ฐ™๋‹ค(โ€ฆ) ์ˆ˜์—…์‹œ๊ฐ„์— ๋ฐฐ์šด์ง€ 6๋…„์ด ์ง€๋‚˜๊ธฐ๋„ํ–ˆ๊ณ , ๊ทธ ๋™์•ˆ ์‚ฌ์šฉํ•  ์ผ๋„ ์—†๋‹ค ๋ณด๋‹ˆ ์–ด์ฉŒ๋ฉด ๋‹น์—ฐํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด๋ฉด์„œ 6๋…„์ „์— ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋‹ค์‹œ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž€๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

Coding

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ vs ํ”„๋ ˆ์ž„์›Œํฌ vs API

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๋ฉด์ ‘ ๋‹จ๊ณจ ์งˆ๋ฌธ์œผ๋กœ ๋‚˜์˜ค๋Š” ์ฃผ์ œ โ€œ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ vs ํ”„๋ ˆ์ž„์›Œํฌ vs APIโ€๋ฅผ ์‹์ƒํ•˜์ง€๋งŒ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

์ถ”์ƒ ํด๋ž˜์Šค๋ณด๋‹ค๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์šฐ์„ ํ•˜๋ผ

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

์ž๋ฐ”๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋‹ค์ค‘ ๊ตฌํ˜„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ถ”์ƒ ํด๋ž˜์Šค 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋‘˜ ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ ๋  ์ง€ ๊ณ ๋ฏผ์ด ๋œ๋‹ค๋ฉด ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

TDD(Test-driven development)

1 ๋ถ„ ์†Œ์š”

ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ(Test-driven development TDD)๋Š” ๋งค์šฐ ์งง์€ ๊ฐœ๋ฐœ ์‚ฌ์ดํด์„ ๋ฐ˜๋ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์™€ ํ”„๋กœ๋•ํŠธ ์ฝ”๋“œ๋ฅผ ๋…๋ฆฝ์ ์ด์ง€ ์•Š๊ณ  ํ•จ๊ป˜ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ณ€์ˆ˜๋ช… ์ •ํ•˜๊ธฐ

2 ๋ถ„ ์†Œ์š”

์‚ฌ์†Œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€์žฅ ํž˜๋“ค์–ด ํ•˜๋Š” ๊ฒƒ, ๊ฐ€์žฅ ์‹ ๊ฒฝ ์“ฐ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์ด๋ฆ„ ์ง“๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฆ„ ์ง“๋Š” ๊ฒƒ ํ•˜๋‚˜๋กœ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๊ฒฐ์ • ์ง€์„ ์ˆ˜๋„ ์žˆ๋‹ค. Clean Code์— ๋‚˜์™€ ์žˆ๋Š” ์ด๋ฆ„ ์ง“๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

๋…์„œ

๋งจ ์œ„๋กœ ์ด๋™ ↑

HTTP

HTTP/3์™€ QUIC

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

์ด๋ฒˆ์—๋Š” ํ˜„์žฌ IETF์˜ ์ธํ„ฐ๋„ท ์ดˆ์•ˆ ์ƒํƒœ์ธ HTTP/3์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณธ๋‹ค. HTTP/3๋Š” ๊ธฐ์กด์˜ HTTP ๋ฒ„์ „๋“ค๊ณผ ๋‹ค๋ฅด๊ฒŒ TCP๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. Transport layer์—์„œ TCP๊ฐ€ ์•„๋‹Œ QUIC์„ ์‚ฌ์šฉํ•œ๋‹ค. QUIC์€ Quick UDP Internet Connection...

HTTP1.1 vs HTTP2.0

4 ๋ถ„ ์†Œ์š”

ํƒ„์ƒ ๋ฐฐ๊ฒฝ

WebSocket ์‹œ์ž‘ํ•˜๊ธฐ

4 ๋ถ„ ์†Œ์š”

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๊ฐฑ์‹ ๋œ ์ •๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ ๋น ๋ฅด๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์„๊นŒ?

REST

2 ๋ถ„ ์†Œ์š”

์ฒ˜์Œ ํ•ด๋ณด๋Š” Spring Framework ๋ฏธ์…˜. ๋‚˜๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๋งŒ์กฑ์‹œํ‚ค๊ณ  ๋ฆฌ๋ทฐ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์•˜๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

์†Œํ”„ํŠธ์›จ์–ด๊ณตํ•™

ํ…Œ์ŠคํŠธ ์ข…๋ฅ˜

1 ๋ถ„ ์†Œ์š”

์ตœ๊ทผ ์ˆ˜์—… ์‹œ๊ฐ„์„ ํ†ตํ•ด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋‚˜ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ๊ฐ™์€ ์ฝ”๋“œ ๋™์ž‘ ํ…Œ์ŠคํŠธ๋งŒ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ, ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋„ ํ•„์š”ํ•˜๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ์ด์™ธ์—๋„ ์–ด๋–ค ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๊ณ  ์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์— ์–ด๋–ค ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•œ์ง€ ์•Œ์•„๋ณด๋„๋กํ•œ๋‹ค.

์ถ”์ƒ ํด๋ž˜์Šค๋ณด๋‹ค๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์šฐ์„ ํ•˜๋ผ

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

์ž๋ฐ”๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋‹ค์ค‘ ๊ตฌํ˜„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ถ”์ƒ ํด๋ž˜์Šค 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋‘˜ ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ ๋  ์ง€ ๊ณ ๋ฏผ์ด ๋œ๋‹ค๋ฉด ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

TDD(Test-driven development)

1 ๋ถ„ ์†Œ์š”

ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ(Test-driven development TDD)๋Š” ๋งค์šฐ ์งง์€ ๊ฐœ๋ฐœ ์‚ฌ์ดํด์„ ๋ฐ˜๋ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์™€ ํ”„๋กœ๋•ํŠธ ์ฝ”๋“œ๋ฅผ ๋…๋ฆฝ์ ์ด์ง€ ์•Š๊ณ  ํ•จ๊ป˜ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

๋””์ž์ธํŒจํ„ด

๋งจ ์œ„๋กœ ์ด๋™ ↑

JUnit

AssertJ ์‹œ์ž‘ํ•˜๊ธฐ(2)

1 ๋ถ„ ์†Œ์š”

์ด๋ฒˆ์—๋Š” ๊ฐ ์ž๋ฃŒํ˜• ๋ณ„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Assertion๋“ค์„ ์†Œ๊ฐœํ•œ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

Git

Git ๋ธŒ๋žœ์น˜ ์ „๋žต

1 ๋ถ„ ์†Œ์š”

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ธ‰ํ•˜๊ฒŒ ์ˆ˜์ • ํ›„ ๋ฐฐํฌํ•  ์ผ์ด ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ, ์–ด๋–ค ๋ธŒ๋žœ์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผ๋ ์ง€ ๊ณ ๋ฏผ๋˜๋Š” ์ƒํ™ฉ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „์˜ ๋ธŒ๋žœ์น˜๋ฅผ ์ฐพ๊ณ  ์‹ถ์€๋ฐ ์ฐพ๊ธฐ ํž˜๋“  ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ธŒ๋žœ์น˜ ์ „๋žต์ด ๋งŒ๋“ค์–ด์กŒ๋‹ค. ๊ทธ ์ค‘ ๋Œ€ํ‘œ์ ์ธ Gi...

DTO vs VO

1 ๋ถ„ ์†Œ์š”

DTO์™€ VO๊ฐ€ ๋งŽ์€ ๊ฐœ๋ฐœ์ž ์‚ฌ์ด์—์„œ ํ˜ผ์šฉ๋˜๊ณ  ์žˆ๋‹ค. ์ด ๋‘˜์€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์–ด๋–ค ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๋„๋กํ•œ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

DB

JDBC

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

JDBC๋ž€?

๋งจ ์œ„๋กœ ์ด๋™ ↑

Infrastructure

Docker ์ดํ•ดํ•˜๊ธฐ

5 ๋ถ„ ์†Œ์š”

์ง€๊ธˆ๊นŒ์ง€ ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด์™”์ง€๋งŒ ์‚ฌ์‹ค ๋„์ปค์—๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๋„์ปค๋ฅผ ๊ฑด๋“œ๋ฆด ์ผ์ด ๋งŽ์•„์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธฐํšŒ์— ๋„์ปค์—๋Œ€ํ•ด์„œ ํ•™์Šตํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ

2 ๋ถ„ ์†Œ์š”

ํŒ€ ํ”„๋กœ์ ํŠธ์— ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๊ธฐ ์•ž์„œ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ์˜ ๊ธฐ๋ณธ ์ง€์‹์„ ํ•™์Šตํ•  ํ•„์š”๊ฐ€ ์žˆ์–ด์„œ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

Cloud Computing

1 ๋ถ„ ์†Œ์š”

์ง€๊ธˆ๊นŒ์ง€ ๋‚˜๋Š” ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ํ•  ๋•Œ 1. ๋ฌด๋ฃŒ์—ฌ์„œ 2. ์ง‘์— ์ปดํ“จํ„ฐ๋ฅผ ๊ณ„์† ์ผœ๋†“์„ ์ˆ˜ ์—†์–ด์„œ AWS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , โ€˜ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…โ€™์„ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ํ‘œํ˜„ํ–ˆ๋‹ค. ์ตœ๊ทผ์— ์ด ํ‘œํ˜„์ด ๋งž๋Š”์ง€, ์‹ค์ œ ์—…๋ฌด์—์„œ๋Š” ์–ด๋–ค ์ด์œ ๋ฃŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ์•„๋ณผ ํ•„์š”์„ฑ์„ ๋Š๊ปด ์ •๋ฆฌํ•ด๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

Linux

Java ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง„๋‹จํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด

2 ๋ถ„ ์†Œ์š”

ํ†ต์‹  ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด, ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด์— ์ด์–ด์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง„๋‹จ์„ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ์•Œ์•„๋ณธ๋‹ค. Java ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋น„์ •์ƒ์ ์œผ๋กœ ๋Š๋ฆฌ๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ, ์Šค๋ ˆ๋“œ ๋คํ”„๋ฅผ ๋ถ„์„ํ•ด ๋ด์•ผ ๋œ๋‹ค.

์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด

2 ๋ถ„ ์†Œ์š”

์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์„œ๋น„์Šค๋ฅผ ์ œ๋Œ€๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„์˜ ํ™˜๊ฒฝ์„ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ๋น ๋ฅด๊ฒŒ ์›์ธ์„ ํŒŒ์•…ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค.

ํ†ต์‹  ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด

2 ๋ถ„ ์†Œ์š”

๊ฐ‘์ž๊ธฐ ์„œ๋ฒ„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ†ต์‹ ์ด ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์„œ๋น„์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ œ๊ณต๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์›์ธ์„ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ์•Œ์•„๋ณด์ž. ๋ชจ๋“  ๋ช…๋ น์–ด๋Š” LINUX ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•œ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

JPA

JPA ์˜์†์„ฑ ๊ด€๋ฆฌ

1 ๋ถ„ ์†Œ์š”

JPA-์‹œ์ž‘ํ•˜๊ธฐ ์—์„œ ์–ด๋Š ์ •๋„ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์™€ ์—”ํ‹ฐํ‹ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ดค๋‹ค. ์ด ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์˜ ํŠน์ง•์„ ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

๋งจ ์œ„๋กœ ์ด๋™ ↑

AssertJ

AssertJ ์‹œ์ž‘ํ•˜๊ธฐ(2)

1 ๋ถ„ ์†Œ์š”

์ด๋ฒˆ์—๋Š” ๊ฐ ์ž๋ฃŒํ˜• ๋ณ„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Assertion๋“ค์„ ์†Œ๊ฐœํ•œ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

macOS

์„œ๋“œ ํŒŒํ‹ฐ ์•ฑ ์—†์ด macOS ํ‚ค ๋งคํ•‘ํ•˜๊ธฐ

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

macOS์—์„œ ํ•œ์˜ํ‚ค ์ „ํ™˜ ์†๋„ ๋ฌธ์ œ๋‚˜ ํ•œ์˜ํ‚ค ์œ„์น˜๋ฅผ ์˜ฎ๊ธฐ๊ธฐ ์œ„ํ•ด์„œ Karabiner๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” macOS๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ ์ข…์ข… ํ˜ธํ™˜์„ฑ์ด ๋งž์ง€ ์•Š์•„ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์€ ์„œ๋“œ ํŒŒํ‹ฐ ์•ฑ ์—†์ด ํ‚ค๋ณด๋“œ ๋งคํ•‘์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค....

Windows ํ‚ค ๋งคํ•‘

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

์œˆ๋„์šฐ๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ๊ฐ„ํ˜น ํ‚ค๋ณด๋“œ ๋งคํ•‘์„ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค. macOS ์œ ์ €๋ผ๋ฉด ์˜ค๋ฅธ์ชฝ โŒ˜๊ฐ€ ์œˆ๋„์šฐ ํ‚ค๋กœ, ์˜ค๋ฅธ์ชฝ โŒฅํ‚ค๊ฐ€ ํ•œ์˜ํ‚ค๋กœ ๋˜์–ด ์žˆ์–ด์„œ ์‹ค์ œ ์œˆ๋„์šฐ ํ‚ค๋ณด๋“œ์™€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํ‚ค ๋งคํ•‘ ์—†์ด๋Š” ๋ถˆํŽธํ•จ์„ ๊ฒช์„ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋˜ ์„œ๋“œ ํŒŒํ‹ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋Š” ๊ดœํžˆ ์ฐ์ฐํ•˜๋‹ค...

๋งจ ์œ„๋กœ ์ด๋™ ↑

์šด์˜์ฒด์ œ

Java ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง„๋‹จํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด

2 ๋ถ„ ์†Œ์š”

ํ†ต์‹  ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด, ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด์— ์ด์–ด์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง„๋‹จ์„ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ์•Œ์•„๋ณธ๋‹ค. Java ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋น„์ •์ƒ์ ์œผ๋กœ ๋Š๋ฆฌ๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ, ์Šค๋ ˆ๋“œ ๋คํ”„๋ฅผ ๋ถ„์„ํ•ด ๋ด์•ผ ๋œ๋‹ค.

์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด

2 ๋ถ„ ์†Œ์š”

์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์„œ๋น„์Šค๋ฅผ ์ œ๋Œ€๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„์˜ ํ™˜๊ฒฝ์„ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ๋น ๋ฅด๊ฒŒ ์›์ธ์„ ํŒŒ์•…ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

Windows

Windows ํ‚ค ๋งคํ•‘

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

์œˆ๋„์šฐ๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ๊ฐ„ํ˜น ํ‚ค๋ณด๋“œ ๋งคํ•‘์„ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค. macOS ์œ ์ €๋ผ๋ฉด ์˜ค๋ฅธ์ชฝ โŒ˜๊ฐ€ ์œˆ๋„์šฐ ํ‚ค๋กœ, ์˜ค๋ฅธ์ชฝ โŒฅํ‚ค๊ฐ€ ํ•œ์˜ํ‚ค๋กœ ๋˜์–ด ์žˆ์–ด์„œ ์‹ค์ œ ์œˆ๋„์šฐ ํ‚ค๋ณด๋“œ์™€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํ‚ค ๋งคํ•‘ ์—†์ด๋Š” ๋ถˆํŽธํ•จ์„ ๊ฒช์„ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋˜ ์„œ๋“œ ํŒŒํ‹ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋Š” ๊ดœํžˆ ์ฐ์ฐํ•˜๋‹ค...

๋งจ ์œ„๋กœ ์ด๋™ ↑

Junit

JUnit 5

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

JUnit ์ด๋ž€

๋งจ ์œ„๋กœ ์ด๋™ ↑

SQL

๋งจ ์œ„๋กœ ์ด๋™ ↑

LINUX

๋ฆฌ๋ˆ…์Šค ํŒŒ์ผ ์‹œ์Šคํ…œ

5 ๋ถ„ ์†Œ์š”

ํ…Œ์ฝ”ํ†ก์„ ์ค€๋น„ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ์ž๋ฃŒ๋ฅผ ๊ธ€๋กœ ๋‚จ๊ฒจ๋ณธ๋‹ค. ๋ฐœํ‘œ ์‹œ๊ฐ„์ด ์งง์€ ๊ด€๊ณ„๋กœ ์ƒ๋žต๋œ ๋ถ€๋ถ„์ด ๋งŽ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

๋ ˆํ‹ฐ๋‚˜ ๋””์Šคํ”Œ๋ ˆ์ด

๋ ˆํ‹ฐ๋‚˜ ๋””์Šคํ”Œ๋ ˆ์ด์— ๋Œ€ํ•œ ๊ณ ์ฐฐ

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

์‰ด ๊ฒธ ์Šคํ‹ฐ๋ธŒ ์žก์Šค์˜ iPhone 4 ํ‚ค๋…ธํŠธ๋ฅผ ๋ณด๋‹ค๊ฐ€ ์˜ˆ์ „์— ๊ณ ๋ฏผํ–ˆ๋˜ ๋ ˆํ‹ฐ๋‚˜ ๋””์Šคํ”Œ๋ ˆ์ด์— ๋Œ€ํ•ด์„œ ๊ธฐ๋กํ•ด๋ณด๊ณ ์ž ๊ธ€์„ ์“ฐ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

Network

์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ

2 ๋ถ„ ์†Œ์š”

ํŒ€ ํ”„๋กœ์ ํŠธ์— ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๊ธฐ ์•ž์„œ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ์˜ ๊ธฐ๋ณธ ์ง€์‹์„ ํ•™์Šตํ•  ํ•„์š”๊ฐ€ ์žˆ์–ด์„œ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

Docker

Docker ์ดํ•ดํ•˜๊ธฐ

5 ๋ถ„ ์†Œ์š”

์ง€๊ธˆ๊นŒ์ง€ ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด์™”์ง€๋งŒ ์‚ฌ์‹ค ๋„์ปค์—๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๋„์ปค๋ฅผ ๊ฑด๋“œ๋ฆด ์ผ์ด ๋งŽ์•„์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธฐํšŒ์— ๋„์ปค์—๋Œ€ํ•ด์„œ ํ•™์Šตํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

MySQL

๋งจ ์œ„๋กœ ์ด๋™ ↑

MariabDB

๋งจ ์œ„๋กœ ์ด๋™ ↑

Kubernetes

๋งจ ์œ„๋กœ ์ด๋™ ↑