-
Notifications
You must be signed in to change notification settings - Fork 730
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
π 2λ¨κ³ - μ¬λ€λ¦¬(μμ±) #2120
Open
sang5c
wants to merge
36
commits into
next-step:sang5c
Choose a base branch
from
sang5c:step2
base: sang5c
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
36 commits
Select commit
Hold shift + click to select a range
f851cb7
build: java 11
sang5c f887f8a
docs: step2 μꡬμ¬ν μμ±
sang5c 0c09d1e
feat: μ¬λ€λ¦¬ κ²μ κΈ°λ³Έ μΆλ ₯ νν μμ±
sang5c f6311a6
docs: μꡬμ¬ν λΆμ μΆκ°
sang5c 066ce9d
build: gradle 5.0
sang5c 1adfd82
feat: μ’, μ° λͺ¨λ μ΄λ κ°λ₯ν Pointλ μμ±ν μ μλ€
sang5c dff1072
test: Pointλ μ’, μ° μ΄λ κ°λ₯ μ¬λΆλ₯Ό κ°μ§λ€.
sang5c 85f0fcc
feat: μ¬λ μλ₯Ό λ°μ κ°λ‘ λΌμΈμ μμ±νλ€
sang5c ad63923
refactor: ν¬μΈνΈ μμ± λ©μλ ν¬μΈνΈλ‘ μ΄λ
sang5c 2368cef
refactor: λλ€ ν¬μΈνΈ μμ± λ©μλλͺ
λͺ
ννκ² λ³κ²½
sang5c 7f26af3
docs: μλ£λ μꡬμ¬ν μλ£ μ²λ¦¬
sang5c 7b8e81d
feat: λλκ²μ μμ±
sang5c fab1fe5
refactor: λ§€μ§ λ¦¬ν°λ΄ μμλ‘ μ¬μ©
sang5c 9427f15
feat: μΌκΈ 컬λ μ
μ μ©
sang5c 6929a1f
feat: μ°Έκ°μλ μ΄λ¦μ κ°λλ€
sang5c 53309ed
refactor: LadderGame λΆλ¦¬
sang5c e3bdceb
refactor: domain ν¨ν€μ§ λΆλ¦¬
sang5c 5f53b78
test: λλ©μΈ ν
μ€νΈ μμ±
sang5c 73d2e59
refactor: μ€κ° ν¬μΈνΈ μμ± λ©μλ λΆλ¦¬
sang5c 99c8db7
refactor: Line λ©μλ λΆλ¦¬
sang5c d10073d
feat: μ°Έκ°μλ 1λͺ
μ΄μμ΄λ€
sang5c e4da849
refactor: Line μμ± λ‘μ§ LineBuilderλ‘ λΆλ¦¬
sang5c a241c10
feat: μ΄λ κ°λ₯ν ν¬μΈνΈκ°μ μλ‘ μ΄λ κ°λ₯νμ§ μμΌλ©΄ μμΈκ° λ°μνλ€
sang5c 9d2ef6c
feat: λ§μ§λ§ ν¬μΈνΈλ₯Ό μ΄μ©νμ¬ λ€μ ν¬μΈνΈλ₯Ό μμ±νλλ‘ λ³κ²½
sang5c 82cb335
refactor: λ³μλͺ
, λ©μλλͺ
μΌκ΄μ±μκ³ λͺ
ννκ² λ³κ²½
sang5c 82abe22
refactor: ConsoleUtil λΆλ¦¬
sang5c 6aaabc1
refactor: λ©€λ² λ³μ final
sang5c 7e1e4ec
refactor: λ©μλλͺ
λͺ
ννκ² λ³κ²½
sang5c 1b2b225
feat: μ¬μ©μ input λ°μ κ²μ μ€ν
sang5c 30de861
refactor: λΆνμν static μ κ±°
sang5c 439d1cc
refactor: λ§€μ§ λλ² μμν
sang5c 6498f49
feat: playerλ λͺ λ²μ§Έ μ리μΈμ§ νμΈν μ μλ indexλ₯Ό κ°λλ€
sang5c a8a84a8
feat: Pointλ λͺ λ²μ§Έ μ리μΈμ§ νμΈν μ μλ indexλ₯Ό κ°λλ€
sang5c 9ad91e8
refactor: collectingAndThen μ¬μ©νμ¬ λ°λ‘ λ°ν
sang5c 9a91a2f
refactor: LineBuilderλ₯Ό Line λ΄λΆλ‘ μ΄λ
sang5c 4a9ad30
refactor: Lines μμ± μ±
μμ LinesGeneratorλ‘ λΆλ¦¬
sang5c File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,48 @@ | ||
# μ¬λ€λ¦¬ κ²μ | ||
|
||
## μ§ν λ°©λ² | ||
|
||
* μ¬λ€λ¦¬ κ²μ κ²μ μꡬμ¬νμ νμ νλ€. | ||
* μꡬμ¬νμ λν ꡬνμ μλ£ν ν μμ μ github μμ΄λμ ν΄λΉνλ λΈλμΉμ Pull Request(μ΄ν PR)λ₯Ό ν΅ν΄ μ½λ 리뷰 μμ²μ νλ€. | ||
* μ½λ 리뷰 νΌλλ°±μ λν κ°μ μμ μ νκ³ λ€μ PUSHνλ€. | ||
* λͺ¨λ νΌλλ°±μ μλ£νλ©΄ λ€μ λ¨κ³λ₯Ό λμ νκ³ μμ κ³Όμ μ λ°λ³΅νλ€. | ||
|
||
## μ¨λΌμΈ μ½λ 리뷰 κ³Όμ | ||
* [ν μ€νΈμ μ΄λ―Έμ§λ‘ μ΄ν΄λ³΄λ μ¨λΌμΈ μ½λ 리뷰 κ³Όμ ](https://github.com/nextstep-step/nextstep-docs/tree/master/codereview) | ||
|
||
* [ν μ€νΈμ μ΄λ―Έμ§λ‘ μ΄ν΄λ³΄λ μ¨λΌμΈ μ½λ 리뷰 κ³Όμ ](https://github.com/nextstep-step/nextstep-docs/tree/master/codereview) | ||
|
||
--- | ||
|
||
## Step 2. μ¬λ€λ¦¬(μμ±) | ||
|
||
### κΈ°λ₯ μꡬμ¬ν | ||
|
||
- μ¬λ€λ¦¬ κ²μμ μ°Έμ¬νλ μ¬λμ μ΄λ¦μ μ΅λ5κΈμκΉμ§ λΆμ¬ν μ μλ€. μ¬λ€λ¦¬λ₯Ό μΆλ ₯ν λ μ¬λ μ΄λ¦λ κ°μ΄ μΆλ ₯νλ€. | ||
- μ¬λ μ΄λ¦μ μΌν(,)λ₯Ό κΈ°μ€μΌλ‘ ꡬλΆνλ€. | ||
- μ¬λ μ΄λ¦μ 5μ κΈ°μ€μΌλ‘ μΆλ ₯νκΈ° λλ¬Έμ μ¬λ€λ¦¬ νλ λμ΄μ ΈμΌ νλ€. | ||
- μ¬λ€λ¦¬ νκΈ°κ° μ μμ μΌλ‘ λμνλ €λ©΄ λΌμΈμ΄ κ²ΉμΉμ§ μλλ‘ ν΄μΌ νλ€. | ||
- |-----|-----| λͺ¨μκ³Ό κ°μ΄ κ°λ‘ λΌμΈμ΄ κ²ΉμΉλ κ²½μ° μ΄λ λ°©ν₯μΌλ‘ μ΄λν μ§ κ²°μ ν μ μλ€. | ||
|
||
### νλ‘κ·Έλλ° μꡬμ¬ν | ||
|
||
- μλ° 8μ μ€νΈλ¦Όκ³Ό λλ€λ₯Ό μ μ©ν΄ νλ‘κ·Έλλ°νλ€. | ||
- κ·μΉ 6: λͺ¨λ μν°ν°λ₯Ό μκ² μ μ§νλ€. | ||
|
||
### μꡬμ¬ν λΆμ | ||
|
||
- [X] μ°Έκ°μλ μ΄λ¦μ κ°λλ€. | ||
- [X] μ΄λ¦μ μ΅λ 5μμ΄λ€. | ||
- [X] μ΄λ¦μ΄ λΉμ΄μκ±°λ 6μ μ΄μμ΄λ©΄ μμΈκ° λ°μνλ€. | ||
- [ ] μ¬λ€λ¦¬ | ||
- [X] μ¬λ€λ¦¬μ κ°λ‘ λΌμΈμ μλ₯Ό μ€μ ν μ μλ€. (λμ΄) | ||
- [X] μ¬λ€λ¦¬μ μΈλ‘ λΌμΈμ μ¬λ μ λ§νΌ μμ±λλ€. (λλΉ) | ||
- [X] μ¬λ€λ¦¬μ κ° κ°λ‘ λΌμΈμλ μ¬λ μ λ§νΌ ν¬μΈνΈ(μ )κ° μμ±λλ€. | ||
- [X] μ’, μ°μ ν¬μΈνΈκ° μ‘΄μ¬νλ κ²½μ° μ΄λν μ μλ€. | ||
- [X] κ°μ₯ μΌμͺ½ ν¬μΈνΈμμλ μ’λ‘ μ΄λ λΆκ°νλ€. | ||
- [X] κ°μ₯ μ€λ₯Έμͺ½ ν¬μΈνΈμμλ μ°λ‘ μ΄λ λΆκ°νλ€. | ||
- [X] μ°μμΌλ‘ μ΄λ κ°λ₯ν ν¬μΈνΈλ μ‘΄μ¬ν μ μλ€. -> μ’ μ° λͺ¨λ μ΄λ κ°λ₯ν ν¬μΈνΈλ μ‘΄μ¬ν μ μλ€ | ||
- [ ] ν¬μΈνΈ | ||
- [X] μ’, μ° λͺ¨λ μ΄λ κ°λ₯ν ν¬μΈνΈλ μ‘΄μ¬ν μ μλ€. μΈ κ°μ§ κ²½μ°λ§ μ‘΄μ¬νλ€. | ||
- [X] μ’ μ΄λ λΆκ°, μ° μ΄λ λΆκ° | ||
- [X] μ’ μ΄λ κ°λ₯, μ° μ΄λ λΆκ° | ||
- [X] μ’ μ΄λ λΆκ°, μ° μ΄λ κ°λ₯ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
#Sat Apr 06 16:04:18 KST 2024 | ||
distributionBase=GRADLE_USER_HOME | ||
distributionPath=wrapper/dists | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-bin.zip | ||
zipStoreBase=GRADLE_USER_HOME | ||
zipStorePath=wrapper/dists |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package nextstep.ladder; | ||
|
||
import nextstep.ladder.domain.LadderGame; | ||
import nextstep.ladder.util.ConsoleUtil; | ||
|
||
import java.util.List; | ||
|
||
public class LadderGameApplication { | ||
|
||
public static void main(String[] args) { | ||
List<String> playerNames = ConsoleUtil.inputPlayerNames(); | ||
int height = ConsoleUtil.inputHeight(); | ||
|
||
LadderGame ladderGame = LadderGame.start(playerNames, height); | ||
|
||
ConsoleUtil.printGameResults(ladderGame); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package nextstep.ladder.domain; | ||
|
||
import java.util.List; | ||
|
||
public class LadderGame { | ||
|
||
private final Players players; | ||
private final Lines lines; | ||
|
||
private LadderGame(final Players players, final Lines lines) { | ||
this.players = players; | ||
this.lines = lines; | ||
} | ||
|
||
public static LadderGame start(List<String> playerNames, int height) { | ||
Players players = Players.of(playerNames); | ||
LinesGenerator linesGenerator = new RandomLinesGenerator(players.count(), height); | ||
|
||
return new LadderGame(players, linesGenerator.generate()); | ||
} | ||
|
||
public Players getPlayers() { | ||
return players; | ||
} | ||
|
||
public Lines getLines() { | ||
return lines; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
package nextstep.ladder.domain; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
public class Line { | ||
private static final int MIN_POINT_SIZE = 2; | ||
|
||
private final List<Point> points; | ||
|
||
private Line(List<Point> points) { | ||
validate(points); | ||
this.points = points; | ||
} | ||
|
||
private void validate(List<Point> points) { | ||
validatePointsListSize(points); | ||
validatePointMovements(points); | ||
} | ||
|
||
private void validatePointsListSize(List<Point> points) { | ||
if (points == null || points.isEmpty()) { | ||
throw new IllegalArgumentException("μ μ΄ μμ΅λλ€."); | ||
} | ||
|
||
if (points.size() < MIN_POINT_SIZE) { | ||
throw new IllegalArgumentException("μ μ΄ " + MIN_POINT_SIZE + "κ° μ΄μ μμ΄μΌ ν©λλ€."); | ||
} | ||
} | ||
|
||
private void validatePointMovements(List<Point> points) { | ||
if (firstPoint(points).canMoveLeft() || lastPoint(points).canMoveRight()) { | ||
throw new IllegalArgumentException("첫 μ μμλ μΌμͺ½μΌλ‘ μ΄λν μ μκ³ , λ§μ§λ§ μ μμλ μ€λ₯Έμͺ½μΌλ‘ μ΄λν μ μμ΅λλ€."); | ||
} | ||
|
||
for (int i = 0; i < points.size() - 1; i++) { | ||
assertConsecutivePointsAreMovable(points, i); | ||
} | ||
} | ||
|
||
private void assertConsecutivePointsAreMovable(List<Point> points, int i) { | ||
if (points.get(i).canMoveRight() && !points.get(i + 1).canMoveLeft()) { | ||
throw new IllegalArgumentException("μ°μλ μ μμλ μλ‘ μ΄λ κ°λ₯ν΄μΌ ν©λλ€."); | ||
} | ||
} | ||
|
||
private Point firstPoint(List<Point> points) { | ||
return points.get(0); | ||
} | ||
|
||
private Point lastPoint(List<Point> points) { | ||
return points.get(points.size() - 1); | ||
} | ||
|
||
public int width() { | ||
return points.size(); | ||
} | ||
|
||
public Point getPoint(int index) { | ||
return points.stream() | ||
.filter(point -> point.sameIndex(index)) | ||
.findFirst() | ||
.orElseThrow(() -> new IllegalArgumentException("ν¬μΈνΈκ° μμ΅λλ€. index: " + index)); | ||
} | ||
|
||
static class LineBuilder { | ||
private final List<Point> points; | ||
|
||
public LineBuilder() { | ||
this.points = new ArrayList<>(); | ||
} | ||
|
||
public LineBuilder point(boolean canMoveRight) { | ||
if (points.isEmpty()) { | ||
points.add(Point.createLeftmost(canMoveRight)); | ||
return this; | ||
} | ||
points.add(lastPoint().createNext(canMoveRight)); | ||
return this; | ||
} | ||
|
||
public Line build() { | ||
if (points.isEmpty()) { | ||
throw new IllegalStateException("μ μ΄ μμ΅λλ€."); | ||
} | ||
|
||
points.add(lastPoint().createRightmost()); | ||
|
||
return new Line(points); | ||
} | ||
|
||
private Point lastPoint() { | ||
return points.get(points.size() - 1); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package nextstep.ladder.domain; | ||
|
||
import java.util.List; | ||
|
||
public class Lines { | ||
private final List<Line> lines; | ||
|
||
public Lines(List<Line> lines) { | ||
validate(lines); | ||
this.lines = lines; | ||
} | ||
|
||
private void validate(List<Line> lines) { | ||
if (lines == null || lines.isEmpty()) { | ||
throw new IllegalArgumentException("μ¬λ€λ¦¬ λμ΄λ 1 μ΄μμ΄μ΄μΌ ν©λλ€."); | ||
} | ||
} | ||
|
||
public int getHeight() { | ||
return lines.size(); | ||
} | ||
|
||
public Line getLine(int targetHeight) { | ||
return lines.get(targetHeight); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package nextstep.ladder.domain; | ||
|
||
public interface LinesGenerator { | ||
Lines generate(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
package nextstep.ladder.domain; | ||
|
||
public class Player { | ||
private static final int MAX_NAME_LENGTH = 5; | ||
private static final int MIN_INDEX = 0; | ||
|
||
private final int index; | ||
private final String name; | ||
|
||
public Player(int index, String name) { | ||
validate(index); | ||
validate(name); | ||
this.index = index; | ||
this.name = name; | ||
} | ||
|
||
private static void validate(int index) { | ||
if (index < MIN_INDEX) { | ||
throw new IllegalArgumentException("μΈλ±μ€λ " + MIN_INDEX + "λ³΄λ€ μμ μ μμ΅λλ€."); | ||
} | ||
} | ||
|
||
private void validate(String name) { | ||
if (name == null || name.isEmpty()) { | ||
throw new IllegalArgumentException("μ΄λ¦μ λΉμ΄μμ μ μμ΅λλ€."); | ||
} | ||
|
||
if (name.length() > MAX_NAME_LENGTH) { | ||
throw new IllegalArgumentException("μ΄λ¦μ " + MAX_NAME_LENGTH + "μ μ΄νμ¬μΌ ν©λλ€."); | ||
} | ||
} | ||
|
||
public String getName() { | ||
return name; | ||
} | ||
|
||
public boolean sameIndex(int index) { | ||
return this.index == index; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
package nextstep.ladder.domain; | ||
|
||
import java.util.List; | ||
import java.util.stream.IntStream; | ||
|
||
import static java.util.stream.Collectors.collectingAndThen; | ||
import static java.util.stream.Collectors.toList; | ||
|
||
public class Players { | ||
private final List<Player> players; | ||
|
||
private Players(List<Player> players) { | ||
validate(players); | ||
this.players = players; | ||
} | ||
|
||
private void validate(List<Player> players) { | ||
if (players == null || players.isEmpty()) { | ||
throw new IllegalArgumentException("μ°Έκ°μκ° μμ΅λλ€."); | ||
} | ||
} | ||
|
||
public static Players of(List<String> playerNames) { | ||
return IntStream.range(0, playerNames.size()) | ||
.mapToObj(index -> new Player(index, playerNames.get(index))) | ||
.collect(collectingAndThen(toList(), Players::new)); | ||
} | ||
|
||
public int count() { | ||
return players.size(); | ||
} | ||
|
||
public Player getPlayer(int index) { | ||
return players.stream() | ||
.filter(player -> player.sameIndex(index)) | ||
.findFirst() | ||
.orElseThrow(() -> new IllegalArgumentException("μ°Έκ°μκ° μμ΅λλ€. index: " + index)); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
package nextstep.ladder.domain; | ||
|
||
import java.util.Objects; | ||
|
||
public class Point { | ||
private static final int MIN_INDEX = 0; | ||
|
||
private final int index; | ||
private final boolean left; | ||
private final boolean right; | ||
|
||
public Point(int index, boolean left, boolean right) { | ||
validate(index); | ||
validate(left, right); | ||
this.index = index; | ||
this.left = left; | ||
this.right = right; | ||
} | ||
|
||
private void validate(int index) { | ||
if (index < MIN_INDEX) { | ||
throw new IllegalArgumentException("μΈλ±μ€λ " + MIN_INDEX + "λ³΄λ€ μμ μ μμ΅λλ€."); | ||
} | ||
} | ||
|
||
private void validate(boolean left, boolean right) { | ||
if (left && right) { | ||
throw new IllegalArgumentException("μ’ μ° λͺ¨λ μ΄λ κ°λ₯ν Point μμ± λΆκ°"); | ||
} | ||
} | ||
|
||
public static Point createLeftmost(boolean canMoveRight) { | ||
return new Point(MIN_INDEX, false, canMoveRight); | ||
} | ||
|
||
public Point createRightmost() { | ||
return new Point(this.index + 1, this.right, false); | ||
} | ||
|
||
public Point createNext(boolean canMoveRight) { | ||
return new Point(this.index + 1, this.right, !this.right && canMoveRight); | ||
} | ||
|
||
public boolean canMoveLeft() { | ||
return left; | ||
} | ||
|
||
public boolean canMoveRight() { | ||
return right; | ||
} | ||
|
||
public boolean sameIndex(int index) { | ||
return this.index == index; | ||
} | ||
|
||
@Override | ||
public boolean equals(Object o) { | ||
if (this == o) return true; | ||
if (o == null || getClass() != o.getClass()) return false; | ||
Point point = (Point) o; | ||
return index == point.index && left == point.left && right == point.right; | ||
} | ||
|
||
@Override | ||
public int hashCode() { | ||
return Objects.hash(index, left, right); | ||
} | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
λ―Έμ λ€μ μμν λ 리뷰μμ²μ μΌλμ λμ§ μκ³ μ§νν΄μ μλ° λ²μ μ λ°κΏ¨μλλ°μ!
νΉμ λ²μ λ€μ΄μ΄ νμνλ©΄ λ΄λ¦¬κ³ λ€μ μμ²λλ¦¬κ² μ΅λλ€!