Jgrapht: ๋ชจ๋“  ์ง๋ ฌํ™” ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

์— ๋งŒ๋“  2018๋…„ 07์›” 14์ผ  ยท  12์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: jgrapht/jgrapht

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

  • ๊ธฐ๋ณธ ๊ทธ๋ž˜ํ”„ ๊ตฌํ˜„์„ ์œ„ํ•œ org.jgrapht.graph.SerializationTest
  • org.jgrapht.graph.guava(SerializationTestUtils๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ๊ด„์ )

์ด๋ฅผ ์œ„ํ•œ ๊ณตํ†ต ํ…Œ์ŠคํŠธ ์ธํ”„๋ผ๋ฅผ ์ œ์™ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋ช‡ ์ค„์˜ ์ฝ”๋“œ์— ๋ถˆ๊ณผํ•จ). ๊ทธ๋Ÿฐ ๋‹ค์Œ

  • ๋ชจ๋“  ๊ธฐ์กด ์ง๋ ฌํ™” ๊ฐ€๋Šฅ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ง๋ ฌํ™”+์—ญ์ง๋ ฌํ™” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
  • ์ƒˆ๋กœ์šด pull ์š”์ฒญ์„ ๊ฒ€ํ† ํ•  ๋•Œ ์ด๊ฒƒ์„ ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ๋งŒ๋“œ์‹ญ์‹œ์˜ค.
cleanup gsoc

๋ชจ๋“  12 ๋Œ“๊ธ€

์˜ˆ๋ฅผ ๋“ค์–ด, WeightCombiner์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๊ธฐ๋ณธ ๋žŒ๋‹ค๊ฐ€ ์ง๋ ฌํ™” ๊ฐ€๋Šฅ์œผ๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— AsGraphUnion์ด (๊ธฐ๋ณธ์ ์œผ๋กœ) ์ง๋ ฌํ™” ๊ฐ€๋Šฅํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฉ๊ธˆ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. (์ง๋ ฌํ™” ๊ฐ€๋Šฅํ•œ WeightCombiner ๊ตฌํ˜„์„ ์ œ๊ณตํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.)

์ด ์ž‘์—…์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๊ฒ€ํ† ๊ฐ€ ์‰ฝ๋„๋ก ์„œ๋กœ ๋‹ค๋ฅธ ๋…ผ๋ฆฌ ๋ชจ๋“ˆ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ PR์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋„ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•˜๋‚˜์˜ PR๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

  • SerializationTestUtils๋ฅผ jgrapht-guava์—์„œ jgrapht-core๋กœ ์ด๋™
  • SerializationTestUtils๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ธฐ์กด SerializationTest ๋ณ€๊ฒฝ
  • SerializationTestUtils๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ธฐ์กด ๊ตฌ์•„๋ฐ” ํ…Œ์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค(jgrapht-core์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ->ํ…Œ์ŠคํŠธ ์ข…์†์„ฑ์„ ํ†ตํ•ด).

๋ณ‘ํ•ฉ๋˜๋ฉด ์ œ์•ˆํ•œ ๋Œ€๋กœ ๊ฐ ๋…ผ๋ฆฌ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ PR๋กœ ํ›„์† ์กฐ์น˜๋ฅผ ์ทจํ•˜์‹ญ์‹œ์˜ค.

@jsichi ์ถœ๋ฐœ์ ์„ ์ œ์•ˆ
PR#779๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ณ‘ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค... ์ด์ œ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ฒ„๊ทธ๋ฅผ ์ฐพ์•˜๋Š”์ง€ ๋ด…์‹œ๋‹ค :)

@jsichi ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ง๋ ฌํ™” ํ…Œ์ŠคํŠธ ์ž‘์„ฑ์„ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@jsichi ์ƒˆ PR#780์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ž˜ ๊ฒ€ํ† ํ•ด ์ฃผ์„ธ์š”. ๊ฐ์‚ฌ ํ•ด์š”.

@jsichi ์ƒˆ PR#781์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€ํ† ํ•ด ์ฃผ์‹ญ์‹œ์˜ค.
๊ฐ์‚ฌ ํ•ด์š”.

์•ˆ๋…•ํ•˜์„ธ์š” @LavishKothari

์ง€๊ธˆ๊นŒ์ง€ ํ›Œ๋ฅญํ•œ ์ž‘์—…! ์ง๋ ฌํ™” ๊ฐ€๋Šฅํ•œ ๋‹ค๋ฅธ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ํด๋ž˜์Šค๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ๊ณ„ํš์ž…๋‹ˆ๊นŒ?

์˜ˆ @jsichi ์ €๋Š” ์ด ์ž‘์—…์„ ๊ณ„์†ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๋ฐ”๋น ์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.
์ง๋ ฌํ™” ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์Œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ธํŠธ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ด์ง€๋งŒ, ์—ผ๋‘์— ๋‘๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ๋งŽ์€ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ฐ์‚ฌ ํ•ด์š”.

"Serializable"์„ ๊ฒ€์ƒ‰ํ•œ ๋‹ค์Œ ๊ธฐ์กด ํ…Œ์ŠคํŠธ์—์„œ ์ด๋ฏธ ๋‹ค๋ฃจ๊ณ  ์žˆ๋Š” ํ•ญ๋ชฉ์„ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

jgrapht-core/src/main/java/org/jgrapht/alg/interfaces/CapacitatedSpanningTreeAlgorithm.java:    class CapacitatedSpanningTreeImpl<V, E> implements CapacitatedSpanningTree<V, E>, Serializable {
jgrapht-core/src/main/java/org/jgrapht/alg/interfaces/CycleBasisAlgorithm.java:        Serializable
jgrapht-core/src/main/java/org/jgrapht/alg/interfaces/MatchingAlgorithm.java:        Serializable
jgrapht-core/src/main/java/org/jgrapht/alg/interfaces/PartitioningAlgorithm.java:        Serializable
jgrapht-core/src/main/java/org/jgrapht/alg/interfaces/SpannerAlgorithm.java:        Serializable
jgrapht-core/src/main/java/org/jgrapht/alg/interfaces/SpanningTreeAlgorithm.java:        Serializable
jgrapht-core/src/main/java/org/jgrapht/alg/interfaces/TreeToPathDecompositionAlgorithm.java:        Serializable
jgrapht-core/src/main/java/org/jgrapht/alg/interfaces/VertexColoringAlgorithm.java:        Serializable
jgrapht-core/src/main/java/org/jgrapht/alg/shortestpath/ListMultiObjectiveSingleSourcePathsImpl.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/alg/shortestpath/ListSingleSourcePathsImpl.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/alg/shortestpath/TreeSingleSourcePathsImpl.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/graph/AsGraphUnion.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/graph/AsSubgraph.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/graph/AsUndirectedGraph.java:    Serializable,
jgrapht-core/src/main/java/org/jgrapht/graph/AsUnmodifiableGraph.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/graph/AsUnweightedGraph.java:    Serializable,
jgrapht-core/src/main/java/org/jgrapht/graph/AsWeightedGraph.java:    Serializable,
jgrapht-core/src/main/java/org/jgrapht/graph/DefaultGraphType.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/graph/DirectedAcyclicGraph.java:        Serializable
jgrapht-core/src/main/java/org/jgrapht/graph/GraphWalk.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/graph/MaskEdgeSet.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/graph/MaskSubgraph.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/graph/MaskVertexSet.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/graph/concurrent/AsSynchronizedGraph.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/util/SupplierUtil.java:        Serializable
jgrapht-core/src/main/java/org/jgrapht/util/UnmodifiableUnionSet.java:    Serializable
jgrapht-core/src/main/java/org/jgrapht/util/WeightedUnmodifiableSet.java:    Serializable
jgrapht-io/src/main/java/org/jgrapht/io/DefaultAttribute.java:    Serializable
jgrapht-opt/src/main/java/org/jgrapht/opt/graph/fastutil/FastutilGSS.java:            Specifics<V, E>> & Serializable) (graph, type) -> {

์ƒˆ๋กœ์šด PR #789๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด PR์—๋Š” AsGraphUnion ๋Œ€ํ•œ ์ง๋ ฌํ™” ํ…Œ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ…Œ์ŠคํŠธ๋Š” ์ฒ˜์Œ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. WeightCombiner ์ง๋ ฌํ™” ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด AsGraphUnion WeightCombiner ์ง๋ ฌํ™” ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

@jsichi ์ž˜ ๊ฒ€ํ† 

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰