Skip to content

Commit

Permalink
docs: translate code smells documentation pages into korean (#767)
Browse files Browse the repository at this point in the history
* docs: code smells cross-imports  page translated into Korean

* docs: code smells desegmented page translated into Korean

* docs: code smells routes  page translated into Korean

* docs: code small page feedback
  • Loading branch information
Gaic4o authored Feb 1, 2025
1 parent 806a777 commit a9024ff
Show file tree
Hide file tree
Showing 4 changed files with 166 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
label: Code smells & Issues
position: 4
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
sidebar_position: 4
sidebar_class_name: sidebar-item--wip
pagination_next: reference/index
---

import WIP from '@site/src/shared/ui/wip/tmpl.mdx'

# ํฌ๋กœ์Šค ์ž„ํฌํŠธ

<WIP ticket="220" />

> Cross-import๋Š” Layer๋‚˜ ์ถ”์ƒํ™”๊ฐ€ ์›๋ž˜์˜ ์ฑ…์ž„ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด์„ค ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ•๋ก ์—์„œ๋Š” ์ด๋Ÿฌํ•œ Cross-import๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ณ„๋„์˜ Layer๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
## ์ฐธ๊ณ  ์ž๋ฃŒ

- [(์Šค๋ ˆ๋“œ) Cross-import๊ฐ€ ๋ถˆ๊ฐ€ํ”ผํ•œ ์ƒํ™ฉ ๋…ผ์˜](https://t.me/feature_sliced/4515)
- [(์Šค๋ ˆ๋“œ) Entity์—์„œ Cross-import ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•](https://t.me/feature_sliced/3678)
- [(์Šค๋ ˆ๋“œ) Cross-import์™€ ์ฑ…์ž„ ๋ฒ”์œ„ ๊ด€๊ณ„](https://t.me/feature_sliced/3287)
- [(์Šค๋ ˆ๋“œ) Segment ๊ฐ„ import ์ด์Šˆ ํ•ด๊ฒฐ](https://t.me/feature_sliced/4021)
- [(์Šค๋ ˆ๋“œ) Shared ๋‚ด๋ถ€ ๊ตฌ์กฐ์˜ Cross-import ํ•ด๊ฒฐ](https://t.me/feature_sliced/3618)
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
---
sidebar_position: 2
sidebar_class_name: sidebar-item--wip
---

import WIP from '@site/src/shared/ui/wip/tmpl.mdx'

# Desegmentation

<WIP ticket="148" />

## ์ƒํ™ฉ

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

```sh
โ”œโ”€โ”€ components/
| โ”œโ”€โ”€ DeliveryCard
| โ”œโ”€โ”€ DeliveryChoice
| โ”œโ”€โ”€ RegionSelect
| โ”œโ”€โ”€ UserAvatar
โ”œโ”€โ”€ actions/
| โ”œโ”€โ”€ delivery.js
| โ”œโ”€โ”€ region.js
| โ”œโ”€โ”€ user.js
โ”œโ”€โ”€ epics/
| โ”œโ”€โ”€ delivery.js
| โ”œโ”€โ”€ region.js
| โ”œโ”€โ”€ user.js
โ”œโ”€โ”€ constants/
| โ”œโ”€โ”€ delivery.js
| โ”œโ”€โ”€ region.js
| โ”œโ”€โ”€ user.js
โ”œโ”€โ”€ helpers/
| โ”œโ”€โ”€ delivery.js
| โ”œโ”€โ”€ region.js
| โ”œโ”€โ”€ user.js
โ”œโ”€โ”€ entities/
| โ”œโ”€โ”€ delivery/
| | โ”œโ”€โ”€ getters.js
| | โ”œโ”€โ”€ selectors.js
| โ”œโ”€โ”€ region/
| โ”œโ”€โ”€ user/
```

## ๋ฌธ์ œ์ 

์ด๋Š” ๋†’์€ ์‘์ง‘๋„ ์›์น™์„ ์œ„๋ฐ˜ํ•˜๋ฉฐ, **Changes Axis์˜ ๊ณผ๋„ํ•œ ํ™•์žฅ**์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค.

## ๋ฌด์‹œํ–ˆ์„ ๋•Œ์˜ ๊ฒฐ๊ณผ

- delivery ๊ด€๋ จ ๋กœ์ง ์ˆ˜์ • ์‹œ ์—ฌ๋Ÿฌ ์œ„์น˜์˜ ์ฝ”๋“œ๋ฅผ ์ฐพ์•„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” **Changes Axis๋ฅผ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ํ™•์žฅ**ํ•ฉ๋‹ˆ๋‹ค
- user ๊ด€๋ จ ๋กœ์ง์„ ์ดํ•ดํ•˜๋ ค๋ฉด ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์˜ **actions, epics, constants, entities, components**๋ฅผ ๋ชจ๋‘ ์ฐพ์•„๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
- ์•”๋ฌต์  ์—ฐ๊ฒฐ๋กœ ์ธํ•ด ๋„๋ฉ”์ธ ์˜์—ญ์ด ๋น„๋Œ€ํ•ด์ง€๊ณ  ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค
- ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ๋“ค์ด ์Œ“์—ฌ ๋ฌธ์ œ ์ธ์‹์ด ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค

## ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

๋„๋ฉ”์ธ์ด๋‚˜ use case์™€ ๊ด€๋ จ๋œ ๋ชจ๋“ˆ๋“ค์„ ํ•œ ๊ณณ์— ๋ชจ์•„ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ๋ชจ๋“ˆ ํ•™์Šต์ด๋‚˜ ์ˆ˜์ • ์‹œ ํ•„์š”ํ•œ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

> ์ด ์ ‘๊ทผ์€ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ํƒ์ƒ‰์„ฑ๊ณผ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ , ๋ชจ๋“ˆ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
```diff
- โ”œโ”€โ”€ components/
- | โ”œโ”€โ”€ DeliveryCard
- | โ”œโ”€โ”€ DeliveryChoice
- | โ”œโ”€โ”€ RegionSelect
- | โ”œโ”€โ”€ UserAvatar
- โ”œโ”€โ”€ actions/
- | โ”œโ”€โ”€ delivery.js
- | โ”œโ”€โ”€ region.js
- | โ”œโ”€โ”€ user.js
- โ”œโ”€โ”€ epics/{...}
- โ”œโ”€โ”€ constants/{...}
- โ”œโ”€โ”€ helpers/{...}
โ”œโ”€โ”€ entities/
| โ”œโ”€โ”€ delivery/
+ | | โ”œโ”€โ”€ ui/ # ~ components/
+ | | | โ”œโ”€โ”€ card.js
+ | | | โ”œโ”€โ”€ choice.js
+ | | โ”œโ”€โ”€ model/
+ | | | โ”œโ”€โ”€ actions.js
+ | | | โ”œโ”€โ”€ constants.js
+ | | | โ”œโ”€โ”€ epics.js
+ | | | โ”œโ”€โ”€ getters.js
+ | | | โ”œโ”€โ”€ selectors.js
+ | | โ”œโ”€โ”€ lib/ # ~ helpers
| โ”œโ”€โ”€ region/
| โ”œโ”€โ”€ user/
```

## ์ฐธ๊ณ  ์ž๋ฃŒ

* [(์•„ํ‹ฐํด) Coupling๊ณผ Cohesion์˜ ๋ช…ํ™•ํ•œ ์ดํ•ด](https://enterprisecraftsmanship.com/posts/cohesion-coupling-difference/)
* [(์•„ํ‹ฐํด) Coupling, Cohesion๊ณผ Law of Demeter](https://medium.com/german-gorelkin/low-coupling-high-cohesion-d36369fb1be9)
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
sidebar_position: 3
sidebar_class_name: sidebar-item--wip
sidebar_label: Routing
---

import WIP from '@site/src/shared/ui/wip/tmpl.mdx'

# Routing

<WIP ticket="169" />

## ์ƒํ™ฉ

Page์˜ URL์ด ํ•˜์œ„ Layer์— ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

```tsx title="entities/post/card"
<Card>
<Card.Title
href={`/post/${data.id}`}
title={data.name}
/>
...
</Card>
```

## ๋ฌธ์ œ์ 

URL์ด Page Layer์— ์ง‘์ค‘๋˜์ง€ ์•Š๊ณ , ํ•˜์œ„ Layer์— ๋ถ„์‚ฐ๋˜์–ด ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

## ๋ฌด์‹œํ–ˆ์„ ๋•Œ์˜ ๊ฒฐ๊ณผ

URL ๋ณ€๊ฒฝ ์‹œ Page Layer ์™ธ์˜ ์—ฌ๋Ÿฌ ํ•˜์œ„ Layer์— ์žˆ๋Š” URL๊ณผ redirect ๋กœ์ง์„ ๋ชจ๋‘ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‹จ์ˆœํ•œ Product Card ๊ฐ™์€ Component๋„ Page์˜ ์ฑ…์ž„์„ ๊ฐ€์ง€๊ฒŒ ๋˜์–ด, ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๊ฐ€ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค.

## ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

URL๊ณผ redirect ๋กœ์ง์€ Page Layer์™€ ๊ทธ ์ƒ์œ„ Layer์—์„œ๋งŒ ๋‹ค๋ฃจ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด composition, props ์ „๋‹ฌ, Factory ํŒจํ„ด ๋“ฑ์„ ํ™œ์šฉํ•ด URL ์ •๋ณด๋ฅผ ํ•˜์œ„ Layer์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

## ์ฐธ๊ณ  ์ž๋ฃŒ

- [(์Šค๋ ˆ๋“œ) Entity/Feature/Widget์—์„œ Routing ์ฒ˜๋ฆฌ์˜ ์˜ํ–ฅ](https://t.me/feature_sliced/4389)
- [(์Šค๋ ˆ๋“œ) Page์—์„œ๋งŒ Route ๋กœ์ง์„ ๋‹ค๋ค„์•ผ ํ•˜๋Š” ์ด์œ ](https://t.me/feature_sliced/3756)

0 comments on commit a9024ff

Please sign in to comment.