Skip to content

Commit

Permalink
GITBOOK-195: No subject
Browse files Browse the repository at this point in the history
  • Loading branch information
GoldenPearls authored and gitbook-bot committed Nov 14, 2024
1 parent 1cf1faf commit ddf8036
Show file tree
Hide file tree
Showing 33 changed files with 76 additions and 18 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified developLog/.gitbook/assets/image (1) (1) (1) (1) (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified developLog/.gitbook/assets/image (1) (1) (1) (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified developLog/.gitbook/assets/image (1) (1) (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified developLog/.gitbook/assets/image (1) (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified developLog/.gitbook/assets/image (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified developLog/.gitbook/assets/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@

## 2. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ž€?

<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

### 1) ๊ฐœ๋…

Expand Down
2 changes: 1 addition & 1 deletion developLog/book/learn-errors/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ description: ์—๋Ÿฌ๊ฐ€ ๋ฌด์„œ์›Œ์ง€์ง€ ์•Š๋Š” ์ฑ…

# ์—๋Ÿฌ๊ฐ€ ๋ฌด์„œ์›Œ์ง€์ง€ ์•Š๋Š” ์ฑ…

<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
4 changes: 2 additions & 2 deletions developLog/ci-cd/github-action/oauth-gitbook-github.io-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,10 +157,10 @@
`Github action` ํŒŒ์ผ์— ๊ฐœ์ธ ๋ ˆํฌ๋กœ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ `push`ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋ฉด\
์œ„์—์„œ ๋ฐœ๊ธ‰ ๋ฐ›์€ ๊ฐœ์ธ ํ† ํฐ์„ ํ•จ๊ป˜ ๋ณด๋‚ด ๋‚ด ๋ ˆํฌ์— `push`ํ•  ๊ถŒํ•œ์„ ๋ฐ›์€ ์‚ฌ๋žŒ์ž„์„ ์ฆ๋ช… ํ•˜๊ธฐ ์œ„ํ•จ

<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

* GITBOOK , Github.io๋ ˆํฌ์˜ `โš™๏ธ Settings` ํด๋ฆญ
* `โŠž Secrets and variables`๋ฅผ ํŽผ์ณ `Actions` ํด๋ฆญ
* `New repository secret` ํด๋ฆญ
Expand Down
2 changes: 1 addition & 1 deletion developLog/cs/etc/cs.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@
* **8080 ํฌํŠธ**
* ์ด๋Ÿฐ ์—๋Ÿฌ ๋ฐœ์ƒ ์›์ธ

<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

* ์™ธ๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” ํ†ฐ์บฃ ์„œ๋ฒ„ ์กด์žฌ
* ์„œ๋ฒ„ ์—ฐ๊ฒฐ ์ •๋ณด๊ฐ€ ์ œ๋Œ€๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์„ ๋•Œ
Expand Down
2 changes: 1 addition & 1 deletion developLog/ex/knowledge/undefined.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

## 2. Linux์— rust ๋„์ž… ์ƒํ™ฉ

<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ int sum(Collection c) {

์œ„์˜ ๋ฉ”์„œ๋“œ๋Š” `Collection`์— ์žˆ๋Š” ์š”์†Œ๋“ค์ด `Integer` ํƒ€์ž…์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ž‘์„ฑ๋œ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ `String`๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ์ปฌ๋ ‰์…˜์„ ์ „๋‹ฌํ•˜๋ฉด, ์ปดํŒŒ์ผ ์‹œ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์ง€๋งŒ **๋Ÿฐํƒ€์ž„์—** `ClassCastException`์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

<figure><img src="../../../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

> ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Java ๊ฐœ๋ฐœ์ž๋“ค์€ **ํƒ€์ž…์„ ์ง€์ •ํ•˜์—ฌ ์ปดํŒŒ์ผ ์‹œ์ ์— ํƒ€์ž… ์•ˆ์ „์„ฑ์„ ๋ณด์žฅ**ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ์•ˆํ•˜์˜€๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์ œ๋„ค๋ฆญ์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

๋ฐฐ์—ด์„ ๊ผญ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์•„๋‹ˆ๋ผ๋ฉด ์ปฌ๋ ‰์…˜[^1]์„ ์‚ฌ์šฉํ•˜์ž..!

<figure><img src="../../../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

๊ทธ ์ด์œ ๊ฐ€ ๋ญ˜๊นŒ?

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public void pushAll(Iterable<E> src) {

integer์€ Number์˜ ํ•˜์œ„ ํƒ€์ž…์ด๋‹ˆ ์ž˜ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค ํ•˜์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ์—์„œ ์‹ค์ œ๋กœ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€๊ฐ€ ๋œฌ๋‹ค.

<figure><img src="../../../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>

```java
import java.util.Arrays;
Expand Down Expand Up @@ -432,7 +432,7 @@ private static <E> void swapHelper(List<E> list, int i, int j) {

์˜ˆ๋ฅผ ๋“ค์–ด์„œ `Java 5` ๋ถ€ํ„ฐ ์ง€์›ํ•œ `ScheduledFuture` ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. `Delayed`์˜ ํ•˜์œ„ ์ธํ„ฐํŽ˜์ด์Šค์ด๋ฉฐ `Delayed`์ธํ„ฐํŽ˜์ด์Šค๋Š” `Comparable<Delayed>`๋ฅผ ํ™•์žฅํ–ˆ๋‹ค. ๋ฐ˜๋ฉด์— `ScheduledFuture` ์ธํ„ฐํŽ˜์ด์Šค๋Š” `Comparable<ScheduledFuture>`๋ฅผ ํ™•์žฅ(extends)ํ•˜์ง€ ์•Š๋Š”๋‹ค.

<figure><img src="../../../../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>

```java
// ScheduledFuture interface
Expand Down
64 changes: 61 additions & 3 deletions developLog/programming-lanuage/java/effective-java/7/item-45.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,17 @@

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ํšจ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด, ์˜คํ† ๋ฐ•์‹ฑ/์–ธ๋ฐ•์‹ฑ ๊ณผ์ •์ด ํ•„์š” ์—†๋Š” `Intstream` ๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธํ˜• ์ŠคํŠธ๋ฆผ๋„ ์ œ๊ณตํ•œ๋‹ค.

`์ŠคํŠธ๋ฆผ์˜ ์›์†Œ`๋“ค์€ ์–ด๋””๋กœ๋ถ€ํ„ฐ๋“  ์˜ฌ ์ˆ˜ ์žˆ ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” **์ปฌ๋ ‰์…˜, ๋ฐฐ์—ด, ํŒŒ์ผ, ์ •๊ทœํ‘œํ˜„์‹ ํŒจํ„ด ๋งค์ฒ˜(matcher), ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ, ํ˜น์€ ๋‹ค๋ฅธ ์ŠคํŠธ๋ฆผ**์ด ์žˆ๋‹ค.

{% hint style="info" %}
์ŠคํŠธ๋ฆผ ์•ˆ์˜ ๋ฐ์ดํ„ฐ ์›์†Œ๋“ค์€ ๊ฐ์ฒด ์ฐธ์กฐ๋‚˜ ๊ธฐ๋ณธ ํƒ€์ž…๊ฐ’์ด๋‹ค. ๊ธฐ๋ณธ ํƒ€์ž… ๊ฐ’์œผ๋กœ๋Š” int, long, double์„ ์ง€์›ํ•˜๋Š”๋ฐ **๊ธฐ๋ณธ ํƒ€์ž…์˜ ๊ฒฝ์šฐ IntStream, LongStream, DoubleStream๊ณผ ๊ฐ™์€ Stream์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์„ฑ๋Šฅ์ƒ ์ข‹๋‹ค.**
{% endhint %}

* Stream - ๊ฐ์ฒด ์ฐธ์กฐ์— ๋Œ€ํ•œ Stream
* IntStream - int ํƒ€์ž…์— ๋Œ€ํ•œ Stream
* LongStream - long ํƒ€์ž…์— ๋Œ€ํ•œ Stream
* DoubleStream - double ํƒ€์ž…์— ๋Œ€ํ•œ Stream

> ๐Ÿ”– **์ŠคํŠธ๋ฆผ์˜ ์ถ”์ƒ ๊ฐœ๋…**\
> 1\. ์ŠคํŠธ๋ฆผ(stream) : ๋ฐ์ดํ„ฐ ์›์†Œ์˜ ์œ ํ•œ ํ˜น์€ ๋ฌดํ•œ ์‹œํ€€์Šค\
> 2\. ์ŠคํŠธ๋ฆผ ํŒŒ์ดํ”„๋ผ์ธ(stream pipeline) : ์ด ์›์†Œ๋“ค๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” **์—ฐ์‚ฐ ๋‹จ๊ณ„๋ฅผ ํ‘œํ˜„**
Expand All @@ -14,22 +25,59 @@

![](https://velog.velcdn.com/images/semi-cloud/post/8f2e7dd2-405b-4653-bc32-9269a0f7cc59/image.png)

์ด๋ฏธ์ง€ ๋ถ„์„

1. **Stream Source**: ๋ฐฐ์—ด, ์ปฌ๋ ‰์…˜, I/O ์ฑ„๋„ ๋“ฑ ๋‹ค์–‘ํ•œ ์†Œ์Šค์—์„œ ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
2. **Intermediate Operations**: ํ•„ํ„ฐ๋ง, ์ •๋ ฌ, ํƒ€์ž… ๋ณ€ํ™˜, ๋งคํ•‘ ๋“ฑ์˜ ์ค‘๊ฐ„ ์—ฐ์‚ฐ์ด ํฌํ•จ๋œ๋‹ค. ์ด ์—ฐ์‚ฐ๋“ค์€ ์ŠคํŠธ๋ฆผ์„ ๊ณ„์† ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ๋ฉ”์„œ๋“œ ์ฒด์ด๋‹ ์Šคํƒ€์ผ๋กœ ์—ฐ๋‹ฌ์•„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
3. **Terminal Operation**: ์ŠคํŠธ๋ฆผ์„ ์†Œ๋น„ํ•˜์—ฌ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด `collect`, `sum`, `count`์™€ ๊ฐ™์€ ์—ฐ์‚ฐ๋“ค์ด ์žˆ๋‹ค.
4. **Operation Result**: ์ตœ์ข… ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ถ€๋ถ„



<figure><img src="../../../../.gitbook/assets/image.png" alt=""><figcaption><p>https://sas-study.tistory.com/239 ์ด๋ฏธ์ง€ ์ฐธ๊ณ </p></figcaption></figure>

## ๐ŸŒฑ **์ŠคํŠธ๋ฆผ ํŒŒ์ดํ”„๋ผ์ธ ์—ฐ์‚ฐ**

์ŠคํŠธ๋ฆผ ํŒŒ์ดํ”„๋ผ์ธ์€ ์†Œ์Šค ์ŠคํŠธ๋ฆผ์—์„œ ์‹œ์ž‘ํ•ด ์ข…๋‹จ ์—ฐ์‚ฐ์œผ๋กœ ๋๋‚˜๋ฉฐ, ๊ทธ ์‚ฌ์ด์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์ค‘๊ฐ„ ์—ฐ์‚ฐ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

> ๊ธฐ๋ณธ์ ์œผ๋กœ ์ŠคํŠธ๋ฆผ ํŒŒ์ดํ”„๋ผ์ธ์€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š”๋ฐ, **ํŒŒ์ดํ”„๋ผ์ธ์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰**ํ•˜๋ ค๋ฉด ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ŠคํŠธ๋ฆผ ์ค‘ ํ•˜๋‚˜์— `parallel ๋ฉ”์„œ๋“œ`๋ฅผ ํ˜ธ์ถœํ•ด ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ธดํ•˜๋‚˜, ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์€ ๋งŽ์ง€ ์•Š๋‹ค.
### **1. ์ค‘๊ฐ„ ์—ฐ์‚ฐ(Intermediate Operation)**

๊ฐ ์ค‘๊ฐ„ ์—ฐ์‚ฐ์€ **์ŠคํŠธ๋ฆผ์„ ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ณ€ํ™˜**ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๋ชจ๋‘ ํ•œ ์ŠคํŠธ๋ฆผ์„ ๋‹ค๋ฅธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ฒŒ ํ•˜์—ฌ ๋ฉ”์„œ๋“œ ์ฒด์ด๋‹์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค. ๋ณ€ํ™˜ ๋œ ์ŠคํŠธ๋ฆผ์˜ ์›์†Œ ํƒ€์ž…์€ ๋ณ€ํ™˜ ์ „ ์ŠคํŠธ๋ฆผ์˜ ์›์†Œ ํƒ€์ž…๊ณผ ๊ฐ™์„ ์ˆ˜๋„ ์žˆ๊ณ  ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ ์›์†Œ์— ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑ ๋ชปํ•˜๋Š” ์›์†Œ๋ฅผ ๊ฑธ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.&#x20;

* `filter()`, `map()`, `sorted()`

| ๋ฉ”์„œ๋“œ | ์„ค๋ช… |
| ---------------------------------------------------------------------- | --------------------------------------------- |
| `filter(Predicate<? super T> predicate)` | ์ง€์ •๋œ `predicate` ํ•จ์ˆ˜์— ๋งž๋Š” ์š”์†Œ๋งŒ ์ŠคํŠธ๋ฆผ์— ํฌํ•จํ•˜๋„๋ก ํ•„ํ„ฐ๋ง |
| `map(Function<? super T, ? extends R> function)` | ์ŠคํŠธ๋ฆผ์˜ ๊ฐ ์š”์†Œ์— `function`์„ ์ ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์š”์†Œ๋กœ ๋ณ€ํ™˜ |
| `flatMap(Function<? super T, ? extends Stream<? extends R>> function)` | ๊ฐ ์š”์†Œ์— `function`์„ ์ ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ ์ŠคํŠธ๋ฆผ์„ ํ•˜๋‚˜์˜ ์ŠคํŠธ๋ฆผ์œผ๋กœ ํ‰ํƒ„ํ™” |
| `distinct()` | ์ŠคํŠธ๋ฆผ์˜ ์ค‘๋ณต ์š”์†Œ๋ฅผ ์ œ๊ฑฐ |
| `sorted()` | ์š”์†Œ๋ฅผ ๊ธฐ๋ณธ ์ •๋ ฌ(์˜ค๋ฆ„์ฐจ์ˆœ) |
| `sorted(Comparator<? super T> comparator)` | ์ง€์ •๋œ `comparator` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ์ •๋ ฌ |
| `skip(long n)` | ์ŠคํŠธ๋ฆผ์˜ ์ฒซ `n`๊ฐœ์˜ ์š”์†Œ๋ฅผ ๊ฑด๋„ˆ๋œ€ |
| `limit(long maxSize)` | ์ŠคํŠธ๋ฆผ์˜ ์š”์†Œ ์ค‘ ์ตœ๋Œ€ `maxSize` ๊ฐœ์ˆ˜๋งŒํผ๋งŒ ๋ฐ˜ํ™˜๋‹ค. |

### **2. ์ข…๋‹จ ์—ฐ์‚ฐ(Terminal Operation)**

์ข…๋‹จ ์—ฐ์‚ฐ์€ ๋งˆ์ง€๋ง‰ ์ค‘๊ฐ„ ์—ฐ์‚ฐ์ด ๋‚ด๋†“์€ **์ŠคํŠธ๋ฆผ์— ์ตœํ›„์˜ ์—ฐ์‚ฐ์„ ๊ฐ€ํ•˜๋Š”** ์—ญํ• ์„ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์›์†Œ๋ฅผ ์ •๋ ฌํ•ด ์ปฌ๋ ‰์…˜์— ๋‹ด๊ฑฐ๋‚˜ ํŠน์ • ์›์†Œ๋ฅผ ํ•˜๋‚˜ ์„ ํƒํ•˜๋Š” ์‹์ด๋‹ค.
์ข…๋‹จ ์—ฐ์‚ฐ์€ ๋งˆ์ง€๋ง‰ ์ค‘๊ฐ„ ์—ฐ์‚ฐ์ด ๋‚ด๋†“์€ **์ŠคํŠธ๋ฆผ์— ์ตœํ›„์˜ ์—ฐ์‚ฐ์„ ๊ฐ€ํ•˜๋Š”** ์—ญํ• ์„ ํ•œ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ์›์†Œ๋ฅผ ์ •๋ ฌํ•ด ์ปฌ๋ ‰์…˜์— ๋‹ด๊ฑฐ๋‚˜ ํŠน์ • ์›์†Œ๋ฅผ ํ•˜๋‚˜ ์„ ํƒํ•˜๋Š” ์‹์ด๋‹ค.

* `forEach()`, `collect()`, `match()`, `count()`, `reduce()`

Java Stream API์˜ ์ถ”๊ฐ€ ๋ฉ”์„œ๋“œ์™€ ์„ค๋ช…์„ ํ‘œ๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

| ๋ฉ”์„œ๋“œ | ์„ค๋ช… |
| ------------------------------------------ | ------------------------------------------------------------------- |
| `forEach(Consumer<? super T> consumer)` | ์ŠคํŠธ๋ฆผ์˜ ๊ฐ ์š”์†Œ๋ฅผ `consumer`์— ์ „๋‹ฌํ•˜์—ฌ ์ˆœํšŒํ•˜๋ฉฐ ์†Œ๋น„ํ•œ๋‹ค. |
| `count()` | ์ŠคํŠธ๋ฆผ ๋‚ด์˜ ์š”์†Œ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. |
| `max(Comparator<? super T> comparator)` | `comparator`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ŠคํŠธ๋ฆผ ๋‚ด์˜ ์ตœ๋Œ€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. |
| `min(Comparator<? super T> comparator)` | `comparator`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ŠคํŠธ๋ฆผ ๋‚ด์˜ ์ตœ์†Œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. |
| `allMatch(Predicate<? super T> predicate)` | ์ŠคํŠธ๋ฆผ์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ `predicate`์— ๋งŒ์กฑํ•˜๋ฉด `true`๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. |
| `anyMatch(Predicate<? super T> predicate)` | ์ŠคํŠธ๋ฆผ์˜ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋ผ๋„ `predicate`์— ๋งŒ์กฑํ•˜๋ฉด `true`๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. |
| `sum()` | ์ŠคํŠธ๋ฆผ์˜ ์š”์†Œ ํ•ฉ๊ณ„๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (`IntStream`, `LongStream`, `DoubleStream`์— ์‚ฌ์šฉ) |
| `average()` | ์ŠคํŠธ๋ฆผ์˜ ์š”์†Œ ํ‰๊ท  ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (`IntStream`, `LongStream`, `DoubleStream`์— ์‚ฌ์šฉ) |

```java
List<Integer> transactionsIds =
transactions.stream()
Expand All @@ -43,10 +91,20 @@ List<Integer> transactionsIds =

> [https://www.geeksforgeeks.org/java-8-stream-tutorial/](https://www.geeksforgeeks.org/java-8-stream-tutorial/)
1. **Stream\<Transaction> ์ƒ์„ฑ**: ๋‹ค์–‘ํ•œ `Transaction` ๊ฐ์ฒด๋“ค์ด ์ŠคํŠธ๋ฆผ์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
2. **`filter` ๋‹จ๊ณ„**: `t -> t.getType() == Transaction.GROCERY` ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” `Transaction` ๊ฐ์ฒด๋“ค๋งŒ ํ•„ํ„ฐ๋งํ•˜์—ฌ `Stream<Transaction>`์„ ์ƒ์„ฑํ•œ๋‹ค.
3. **`sorted` ๋‹จ๊ณ„**: `Transaction` ๊ฐ์ฒด๋“ค์„ ๊ฐ’ (`getValue()`) ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•œ๋‹ค.
4. **`map` ๋‹จ๊ณ„**: ๊ฐ `Transaction` ๊ฐ์ฒด์˜ `id`๋งŒ ์ถ”์ถœํ•˜์—ฌ `Stream<Integer>`๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
5. **`collect` ๋‹จ๊ณ„**: ์ตœ์ข…์ ์œผ๋กœ `collect(toList())`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ `List<Integer>`๋กœ ๊ฒฐ๊ณผ๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค.

> ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด ์ŠคํŠธ๋ฆผ ์ž‘์—…์€ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์„ ํ•„ํ„ฐ๋งํ•˜๊ณ , ์ •๋ ฌํ•œ ํ›„, ID๋งŒ ์ˆ˜์ง‘ํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.
## &#x20;๐ŸŒฑ ์ŠคํŠธ๋ฆผ ํŒŒ์ดํ”„๋ผ์ธ ํŠน์ง• <a href="#undefined" id="undefined"></a>

### **1. ์ง€์—ฐ ํ‰๊ฐ€(lazy evaluation)** <a href="#undefined" id="undefined"></a>

์ง€์—ฐํ‰๊ฐ€๋Š” ์ข…๋‹จ ์—ฐ์‚ฐ์ด ํ˜ธ์ถœ๋  ๋•Œ ์ด๋ค„์ง€๋ฉฐ, ์ข…๋‹จ ์—ฐ์‚ฐ์— ์“ฐ์ด์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ ์›์†Œ๋Š” ๊ณ„์‚ฐ์— ์“ฐ์ด์ง€ ์•Š๋Š”๋‹ค. ์ด ํ•œ ์ง€์—ฐ ํ‰๊ฐ€๊ฐ€ **๋ฌดํ•œ ์ŠคํŠธ๋ฆผ์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์—ด์‡ **๋‹ค. <mark style="color:red;">์ข…๋‹จ ์—ฐ์‚ฐ์ด ์—†๋Š” ์ŠคํŠธ๋ฆผ ํŒŒ์ดํ”„๋ผ์ธ์€ ์•„๋ฌด ์ผ๋„ ํ•˜์ง€ ์•Š๋Š” ๋ช…๋ น์–ด์ธ no-op๊ณผ ๊ฐ™์œผ๋‹ˆ, ์ข…๋‹จ ์—ฐ์‚ฐ์„ ๋นผ๋จน๋Š” ์ผ์ด ์ ˆ๋Œ€ ์—†๋„๋ก ํ•˜์ž.</mark>

๋จผ์ € ์ง€์—ฐ์ด๋ž€ **๊ฒฐ๊ณผ๊ฐ’์ด ํ•„์š”ํ• ๋•Œ๊นŒ์ง€ ๊ณ„์‚ฐ์„ ๋Šฆ์ถ”๋Š”** ๊ธฐ๋ฒ•์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ์–ด๋Š ๋ถ€๋ถ„์—์„œ ๊ฐ€์žฅ ํฐ ์ด์ต์„ ์–ป์„ ์ˆ˜ ์žˆ์„๊นŒ?

> ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ์—์„œ, **์‹ค์ œ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋“ค์„ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€**ํ•ด ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์ข…๋‹จ ์—ฐ์‚ฐ์— ์“ฐ์ด์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ ์›์†Œ๋Š” ๊ณ„์‚ฐ ์ž์ฒด์— ์“ฐ์ด์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์„ `Short-Circuit` ๋ฐฉ์‹์ด๋ผ ๋ถ€๋ฅธ๋‹ค.
Expand Down Expand Up @@ -78,11 +136,11 @@ List<Integer> transactionsIds =
* **Finding an element**: `findFirst()`์™€ `findAny()`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์š”์†Œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์š”์†Œ๋ฅผ ์ฐพ์œผ๋ฉด ์—ฐ์‚ฐ์ด ์ข…๋ฃŒ
* **Testing a match**: `anyMatch()`, `allMatch()`, `noneMatch()` ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด์— ๋งž๋Š” ์š”์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ŠคํŠธ๋ฆผ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด, `JVM` ์€ ๊ณง๋ฐ”๋กœ ์ŠคํŠธ๋ฆผ ์—ฐ์‚ฐ์„ ์‹คํ–‰์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค. **์ตœ์†Œํ•œ์œผ๋กœ ํ•„์ˆ˜์ ์ธ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ ์ž ๊ฒ€์‚ฌ๋ฅผ ๋จผ์ € ํ•˜๊ณ , ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋‚ด ๊ณ„ํšํ•œ๋‹ค.** ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ณ„ํš์— ๋”ฐ๋ผ ๊ฐœ๋ณ„ ์š”์†Œ์— ๋Œ€ํ•œ ์ŠคํŠธ๋ฆผ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
์ŠคํŠธ๋ฆผ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด, `JVM` ์€ ๊ณง๋ฐ”๋กœ ์ŠคํŠธ๋ฆผ ์—ฐ์‚ฐ์„ ์‹คํ–‰์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค. <mark style="color:red;">์ตœ์†Œํ•œ์œผ๋กœ ํ•„์ˆ˜์ ์ธ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ ์ž ๊ฒ€์‚ฌ๋ฅผ ๋จผ์ € ํ•˜๊ณ , ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋‚ด ๊ณ„ํšํ•œ๋‹ค.</mark> ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ณ„ํš์— ๋”ฐ๋ผ ๊ฐœ๋ณ„ ์š”์†Œ์— ๋Œ€ํ•œ ์ŠคํŠธ๋ฆผ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, `10000` ๊ฐœ์˜ ๋ฐ์ดํ„ฐ์ค‘์— ๊ธธ์ด๊ฐ€ 5๊ฐ€ ๋„˜๋Š” ๋ฌธ์ž์—ด์—์„œ ๊ฐ€์žฅ ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ์•ž์— ์žˆ๋Š” 2๊ฐœ์˜ ๋ฌธ์ž์—ด๋งŒ ๊ฐ€์ง€๊ณ  ์˜ค๊ณ  ์‹ถ๋‹ค๊ณ  ํ•˜์ž. ์ง€์—ฐ ํ‰๊ฐ€๊ฐ€ ์—†์ด ์ˆœ์„œ๋Œ€๋กœ ๋ฐ”๋กœ ๋™์ž‘ํ–ˆ๋‹ค๋ฉด, `10000` ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ˆœํšŒํ•ด์•ผ ํ–ˆ์„ ๊ฒƒ์ด๋‹ค.

> ํ•˜์ง€๋งŒ ์–ด์งœํ”ผ ์ตœ์ข…์ ์œผ๋กœ 2๊ฐœ๋งŒ ํƒ์ƒ‰ํ•˜๋ฉด ๋˜๋Š”๋ฐ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค ๋ณผ ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ?
> ํ•˜์ง€๋งŒ ์–ด์งœํ”ผ ์ตœ์ข…์ ์œผ๋กœ 2๊ฐœ๋งŒ ํƒ์ƒ‰ํ•˜๋ฉด ๋˜๋Š”๋ฐ <mark style="color:red;">์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค ๋ณผ ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ?</mark>
1. `limit` ์‚ฌ์šฉ O\

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ layout:

# ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”

<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2 changes: 1 addition & 1 deletion developLog/programming-lanuage/java/grammar/2.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ Person(String name, int age){ //ํ•„๋“œ๋ฅผ ์ „๋‹ฌ๋ฐ›์•„ ๋งŒ๋“œ๋Š” ์˜ค๋ฒ„๋กœ๋“œ
**์ „**
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**ํ›„**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

### ์ž๋ฐ” ํ‘œ์ค€ ์ŠคํŽ™

<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

#### ์ž๋ฐ” ํ‘œ์ค€ ์ŠคํŽ™๊ณผ ๊ตฌํ˜„

Expand All @@ -16,7 +16,7 @@

### ์ปดํŒŒ์ผ๊ณผ ์‹คํ–‰

<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์€ ์ปดํŒŒ์ผ๊ณผ ์‹คํ–‰ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ๋‹ค.

Expand Down
2 changes: 1 addition & 1 deletion developLog/spring/basic/undefined.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ object๋ฅผ ์˜์ž s = new ์˜์ž();๋กœ **heap**์— ์˜ฌ๋ฆฌ๋ฉด ์ด s๋Š” ๋งŒ๋“  ๋ฉ”

<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

#### โญ IoC(์—ญ์ „์˜ ์ œ์–ด) โ‡’ ์ฃผ๋กœ ์ฃผ๋„๊ถŒ ์Šคํ”„๋ง

Expand Down

0 comments on commit ddf8036

Please sign in to comment.