์ต๊ทผ์ Python์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด๋ฅผ ํ๋ค๊ฐ, Java๋ก ์ฝ๋ฉ ํ ์คํธ๋ฅผ ์ค๋นํ ์ผ์ด ์์๋ค.
์ค๋น๋ฅผ ์ํด Java์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ๋ฌธ๋ฒ์ ์ ๋ฆฌํ๋ค๊ฐ ์๋ฌธ์ ์ด ์๊ฒผ๋ค.
์ ์๋ฐ๋ ์ ๋ ฌ์ array.sort()๊ฐ ์๋ Array.sort(array)๋ก ์ง์ํ๋ ๊ฑธ๊น?
์ด์ ๋ํด ์กฐ์ฌํด๋ณด์๋ค.
๋ณดํต Python ๋ฑ์ ์ธ์ด์์๋ ์ ๋ ฌ ๋ฑ์ ๋์์ด ๊ฐ์ฒด ๋ด๋ถ ํจ์๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ค.
list = [3, 1, 4, 5, 2]
list.sort()
print(list) # [1, 2, 3, 4, 5]
๊ทธ๋ฌ๋ Java์์๋ ๋ฐฐ์ด/๋ฆฌ์คํธ๋ฅผ ๋ค๋ฃจ๋ ํด๋์ค์์ static ํจ์๋ก ์ ๋ ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
import java.util.Arrays;
public class Example
{
public static void main(String[] args)
{
int[] numArray = {3, 1, 4, 5, 2};
Arrays.sort(numArray);
System.out.println(Arrays.toString(numArray)); // [1, 2, 3, 4, 5]
}
}
์ฌ์ง์ด ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๋ toString์กฐ์ฐจ Arrays ํด๋์ค์์ ์ ๊ณตํ๋ static ํจ์๋ฅผ ์ด์ฉํ๊ณ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ์ ๊ฐ ๊ฐ์ฒด์์ ์ง์ ๋ด์ฅ๋ sort๋ฅผ ์ ์ํ๊ณ ํธ์ถํ๋ ๋์ ์์ ๊ฐ์ ๋ฐฉ๋ฒ์ ํํ ๊ฒ์ผ๊น?
ํด๋น ์ง๋ฌธ๊ณผ ๊ฐ์ด ๋์ ๊ฐ์ ์๋ฌธ์ ์ ๊ธฐํ ์ฌ๋์ด ์์๊ณ , ๊ทธ์ ๋ฌ๋ฆฐ ๋ต๋ณ์ ๋ค์๊ณผ ๊ฐ์๋ค.
One possible reason for the Java designers is that sort() isn't always necessary for arrays so they didn't want to force developers to always make sure that it is accurately implemented.
์ฆ, ๋ชจ๋ array์ ์ ๋ ฌ ๊ธฐ๋ฅ์ด ํ์ํ์ง ์์ ์ ์๊ธฐ ๋๋ฌธ์, ์ ๋ ฌ์ ๊ตฌํํ๋๋ก ๊ฐ์ ํ์ง ์๊ณ ์ ํจ์ด ํ๋์ ์ด์ ์ผ ์ ์๋ค๋ ๊ฒ์ด๋ค.
๋ฐฐ์ด์ ์ ๋ ฌํ ์ฑ ์์ Arrys ํด๋์ค๋ก ๋๊น์ผ๋ก์จ, ๋ฐฐ์ด๊ณผ ๊ด๋ จ๋ ์๋ก์ด ํด๋์ค๋ฅผ ์ ์ธํ๊ณ ๊ธฐ์กด์ ํด๋์ค๋ฅผ ์์ํ ๋์๋ sort๋ฅผ ๋ฐ๋์ ๊ตฌํํ ํ์๊ฐ ์๊ฒ ๋์๋ค. ๋ง์ฝ sort๊ฐ ๋ด์ฅ ํจ์์ด๊ณ ์ด๊ฒ์ด ์์/๊ตฌํ์ ํตํด ๊ฐ์ ๋๋ค๋ฉด, ์ ๋ ฌ์ด ํ์ํ์ง ์์ ์๋ก์ด ๋ฐฐ์ด์ ์ ์ธํ ๋์๋ ๋ฐ๋์ sort๋ฅผ ๊ตฌํํ ์๋ฌด๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
์ด๋ Java์์ ์ค์์ ์ฌ๊ธฐ๋ SOLID ์์น์์ โS(SRP, ๋จ์ผ ์ฑ ์ ์์น)โ์๋ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ๋ค. ๋ฐฐ์ด ๊ฐ์ฒด์๋ ๋จ์ํ ์๋ฃ๋ฅผ ์ ์ฅํ ์ฑ ์๋ง์ ๋ถ์ฌํ๊ณ , ์ด๋ฌํ ์๋ฃ๋ฅผ ์ ์ดํ ์ฑ ์์ ๋ณ๋๋ก ๋ถ๋ฆฌํจ์ผ๋ก์จ ๋จ์ํ ์๋ฃ๋ฅผ ์ ์ฅ๋ง ํ๋ฉด ๋๋ ์๋ก์ด ๊ฐ์ฒด๊ฐ ์ถ๊ฐ๋ ๋์ ๋ถํ์ํ๊ฒ ์๋ฃ๋ฅผ ์ ์ดํ ์ฑ ์์ด ํจ๊ป ๋ถ์ฌ๋์ง ์๋๋ก ํ์๋ค.
์์ผ๋ก ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๊ตฌํํ ๋์๋ ์ด๋ฌํ ์์๋ฅผ ์ ๊ณ ๋ คํด์ ๊ธฐ์กด์ ์ค๊ณ ์๋๋ฅผ ํด์น์ง ์๋๋ก ํด์ผ ํ ๊ฒ ๊ฐ๋ค.