๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ธฐํƒ€/์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค > ํ”„๋ฆฌ์ฝ”์Šค

[ํ”„๋ฆฌ์ฝ”์Šค 1์ฃผ์ฐจ] ์ž๋ฐ” ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜(ํ•ด์„ค)

[โ“์ž๋ฐ” ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜ ์™œ ์ง€์ผœ์•ผ ํ•˜๋Š”๊ฐ€? ]

์˜ˆ๋ฅผ ๋“ค์–ด, ๋Œ€ํ•™์ƒ ์‹œ์ ˆ์— ์กฐ๋ณ„๊ณผ์ œ ppt๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด 5๋ช…์ด ๋ชจ์˜€๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•ฉ๋‹ˆ๋‹ค.

ppt๋ฅผ 5๋ถ„ํ•  ํ•ด์„œ ๊ฐ์ž ๋งก์„ ํŒŒํŠธ๋ฅผ ์ •ํ•˜๊ณ , 3์ผ ๋’ค์— ๊ฐ์ž ppt๋ฅผ ์™„์„ฑํ•˜์—ฌ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ppt์˜ ๋ฐฐ๊ฒฝ ์ƒ‰, ๊ธ€์ž ํฌ๊ธฐ์™€ ์ƒ‰๋“ฑ์„ ํ†ต์ผํ•˜์ง€ ์•Š๊ณ  ๊ฐ์ž ์ทจํ–ฅ๊ป ๋งŒ๋“ค์–ด์™”์Šต๋‹ˆ๋‹ค. ์ด ์ƒํƒœ๋กœ ppt๋ฅผ ํ•ฉ์นœ๋‹ค๋ฉด ์ข‹์€ ์ ์ˆ˜๋ฅผ ๋ชป ๋ฐ›์„ ๊ฒƒ์€ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

 

์ฝ”๋”ฉ๋„ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ˜‘์—…ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์—…ํ•˜๊ฑฐ๋‚˜, ๋ฐ˜๋Œ€๋กœ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์—…ํ•œ ์ฝ”๋“œ๋ฅผ ๋‚ด๊ฐ€ ์ž‘์—…ํ•  ๋•Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋•Œ, ์ž๋ฐ” ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜์„ ํ†ต์ผํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค๋ฉด ์–ด๋ ค์›€ ์—†์ด ์ƒ๋Œ€๋ฐฉ์˜ ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ , ์ถ”๊ฐ€ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

์ฆ‰, ์ž๋ฐ” ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜๋Š” ๊ฐœ๋ฐœ์ž๋“ค์˜ ํ˜‘์—…์„ ์›ํ• ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

 

1์ฃผ์ฐจ ํ”„๋ฆฌ์ฝ”์Šค ์š”๊ตฌ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜์ธ ์ž๋ฐ” ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•  ๊ฒธ ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ๋งํฌ๋œ ๊ธ€๊ณผ ๊ฐ™์ด ๋ณด์‹œ๊ธธ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

[โ—์ด ๋‚ด์šฉ์€ ๊ตฌ๊ธ€ ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธ€ ์ค‘ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„๋งŒ์„ ๊ธฐ์ค€์œผ๋กœ ํ•ด์„ค(ํ‘œ์‹œ : )ํ•จ์„ ๋ฏธ๋ฆฌ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.]

2. ์†Œ์Šค ํŒŒ์ผ ๊ธฐ๋ณธ ์‚ฌํ•ญ

2.3.2 ํŠน์ˆ˜ ์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค

ํŠน์ˆ˜ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๋“ค( \b, \t, \n, \f, \r, ", '๊ณผ \)์€ ํ•ด๋‹น ์ง„์ˆ˜(\012) ๋˜๋Š” ์œ ๋‹ˆ ์ฝ”๋“œ(\u000a)์ด์Šค์ผ€์ดํ”„ ๋Œ€์‹  ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์•„๋Š” ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž์ธ \n์€ ํŠน์ˆ˜ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž์ด๋‹ค. ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž๋ฅผ ์ง„์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด \012์ด๊ณ , ์œ ๋‹ˆ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด \u000a์ด๋‹ค. ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž๋ฅผ ์ง„์ˆ˜๋‚˜ ์œ ๋‹ˆ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ด์ง€ ๋ง๊ณ ,  ํŠน์ˆ˜ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๋ฅผ ์“ฐ์ž.

 

โœ…์ด์Šค์ผ€์ดํ”„ (escape) ๋ฌธ์ž ํ‘œ

์ด์Šค์ผ€์ดํ”„๋Š” ์—ญ์Šฌ๋ž˜์‹œ(' \ ')๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŠน์ˆ˜ํ•œ ๋ฌธ์ž๋กœ ์ฝ”๋“œ์—์„œ ํŠน์ • ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

ํŠน์ˆ˜ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž ์˜ˆ์‹œ ์ถœ๋ ฅ ๊ฒฐ๊ณผ
\b ๋ฐฑ์ŠคํŽ˜์ด์Šค System.out.print ( "Hello, World! ")  → Hello, World! ๋ฅผ ์ถœ๋ ฅ
System.out.print ( "\b\b\b\b\b\b\b" ) → 7๋ฒˆ ๋ฐฑ์ŠคํŽ˜์ด์Šค๋กœ ์ปค์„œ๋ฅผ ์•ž์œผ๋กœ ์˜ฎ๊น€
System.out.print ( "Java!" ) → Java! ๋ฅผ ์ถœ๋ ฅ
Hello, Java!
\t ํƒญ System.out.print ( "์ด๊ฒƒ์€\tํƒญ ์ž…๋‹ˆ๋‹ค" )  ์ด๊ฒƒ์€    ํƒญ ์ž…๋‹ˆ๋‹ค
\n ์ค„ ๋ฐ”๊ฟˆ System.out.print ( "์ด๊ฒƒ์€\n์ƒˆ๋กœ์šด ์ค„์ž…๋‹ˆ๋‹ค." ) ์ด๊ฒƒ์€
์ƒˆ๋กœ์šด ์ค„์ž…๋‹ˆ๋‹ค.
\r ์บ๋ฆฌ์ง€ ๋ฆฌํ„ด System.out.print ( "์•ˆ๋…•ํ•˜์„ธ์š”\r๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค." )
→ ์•ˆ๋…•ํ•˜์„ธ์š” ์œ„์— ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค๋ฅผ ์“ด๋‹ค
๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค.
\' ์ž‘์€ ๋”ฐ์˜ดํ‘œ System.out.print ("์ž‘์€๋”ฐ์˜ดํ‘œ \'์ด๋‹ค." ) ์ž‘์€๋”ฐ์˜ดํ‘œ '์ด๋‹ค.
\" ํฐ ๋”ฐ์˜ดํ‘œ System.out.print ("ํฐ๋”ฐ์˜ดํ‘œ \"์ด๋‹ค." ) ํฐ๋”ฐ์˜ดํ‘œ "์ด๋‹ค.
\\ ์—ญ์Šฌ๋ž˜์‹œ System.out.print ("์—ญ์Šฌ๋ž˜์‹œ \\์ด๋‹ค." ) ์—ญ์Šฌ๋ž˜์‹œ \์ด๋‹ค.

2.3.3 Non-ASCII ๋ฌธ์ž

Non-ASCII ๋ฌธ์ž์˜ ๊ฒฝ์šฐ ์‹ค์ œ ์œ ๋‹ˆ ์ฝ”๋“œ ๋ฌธ์ž (์˜ˆ : ∞)๋˜๋Š” ๋™๋“ฑํ•œ ์œ ๋‹ˆ ์ฝ”๋“œ ์ด์Šค์ผ€์ดํ”„ (์˜ˆ : \u221e) ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์œ ๋‹ˆ ์ฝ”๋“œ๊ฐ€ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ๋ฐ ์ฃผ์„ ์™ธ๋ถ€์—์„œ ์ด์Šค์ผ€์ดํ”„ํ•˜๋Š” ๊ฒƒ์€ ๊ถŒ์žฅ๋˜์ง€ ์•Š์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ฝ๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

Non-ASCll(ASCII ์ฝ”๋“œ ์™ธ์˜ ๋‹ค๋ฅธ ๋ฌธ์ž)๋“ค์„ ์ฝ”๋“œ๋กœ ์“ธ ๋•Œ, ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์œ ๋‹ˆ์ฝ”๋“œ๋งŒ์„ ์“ฐ๊ธฐ์—๋Š” ๊ฐ€๋…์„ฑ์ด ์ข‹์ง€ ์•Š์œผ๋‹ˆ ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ์ฃผ์„์ด๋‚˜ Non_ASCII๋ฅผ ์จ๋„ ๊ดœ์ฐฎ๋‹ค. 

3. ์†Œ์Šค ํŒŒ์ผ ๊ตฌ์กฐ

3.3.4 ํด๋ž˜์Šค์—๋Š” static import๋ฅผ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

static ์ค‘์ฒฉ ํด๋ž˜์Šค์—๋Š” static import๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ผ๋ฐ˜์ ์ธ import๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์ค‘์ฒฉ ํด๋ž˜์Šค์ธ mode๋Š” static import๋ฅผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

public class Car {
	...
    static class mode {

3.4.2 ํด๋ž˜์Šค ๋‚ด์šฉ ์ˆœ์„œ

ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ฐ ์ด๋‹ˆ์…œ ๋ผ์ด์ €์— ๋Œ€ํ•ด ์„ ํƒํ•œ ์ˆœ์„œ๋Š” ์ดํ•ดํ•˜๋Š”๋ฐ ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •ํ•ด์ง„ ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค.

*์ด๋‹ˆ์…œ ๋ผ์ด์ € : ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ์œผ๋กœ, ์˜ˆ์‹œ๋กœ๋Š” ์ƒ์„ฑ์ž์˜ ์ดˆ๊ธฐํ™” ๋ธ”๋ก์ด ์žˆ๋‹ค. 

๋‹ค๋ฅธ ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋‚ด์šฉ ์ˆœ์„œ๋ฅผ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ฐ ํด๋ž˜์Šค๊ฐ€ ๋ช‡ ๊ฐ€์ง€ ๋…ผ๋ฆฌ์  ์ˆœ์„œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ˆœ์„œ๋Š” ๊ด€๋ฆฌ์ž๊ฐ€ ์š”์ฒญํ•˜๋ฉด ์„ค๋ช… ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

  ์ƒˆ๋กœ์šด ๋ฉ”์„œ๋“œ๊ฐ€ ํด๋ž˜์Šค ๋์— ์Šต๊ด€์ ์œผ๋กœ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๋ฉด ๋…ผ๋ฆฌ์  ์ˆœ์„œ๊ฐ€ ์•„๋‹Œ "์ถ”๊ฐ€ ๋œ ๋‚ ์งœ ๋ณ„ ์‹œ๊ฐ„์ˆœ" ์ˆœ์„œ๋กœ ์ •ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ์„ค๋ช… ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

4. Formatting

4.5.2 ์—ฐ์† ์ค„์„ ์ตœ์†Œ +8 ๊ณต๋ฐฑ ๋“ค์—ฌ ์“ฐ๊ธฐ (์šฐํ…Œ์ฝ” ์Šคํƒ€์ผ)

์ค„ ๋ฐ”๊ฟˆ์‹œ ์ฒซ ๋ฒˆ์งธ ์ค„ (๊ฐ ์—ฐ์† ์ค„ ) ๋’ค์˜ ๊ฐ ์ค„ ์€ ์›๋ž˜ ์ค„์—์„œ ์ ์–ด๋„ +8๋งŒํผ ๋“ค์—ฌ ์“ฐ๊ธฐ๋ฉ๋‹ˆ๋‹ค.

 

  ๋žŒ๋‹ค์‹์˜ ๋ฉ”์„œ๋“œ์ฒด์ด๋‹์„ ํ•  ๋•Œ๊ฐ€ ์—ฐ์† ์ค„์ด๋‹ค. ์—ฐ์† ์ค„์€ ์ปค์„œ๋กœ ๋ถ€ํ„ฐ ์ŠคํŽ˜์ด์Šค ๋ฐ”๋ฅผ 8๋ฒˆ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค. 

์ปค์„œ๋ฅผ 8๋ฒˆ ์ŠคํŽ˜์ด์Šค ํ•˜๋ฉด ๋จ

4.7 ๊ทธ๋ฃนํ™” ๊ด„ํ˜ธ : ๊ถŒ์žฅ

์„ ํƒ์  ๊ทธ๋ฃนํ™” ๊ด„ํ˜ธ๋Š” ์ž‘์„ฑ์ž์™€ ๊ฒ€ํ† ์ž๊ฐ€ ์ฝ”๋“œ๊ฐ€ ์—†์œผ๋ฉด ์ฝ”๋“œ๊ฐ€ ์ž˜๋ชป ํ•ด์„ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์—†์œผ๋ฉฐ ์ฝ”๋“œ๋ฅผ ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์ง€ ์•Š์•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ƒ๋žต๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋…์ž๊ฐ€ ์ž๋ฐ” ์—ฐ์‚ฐ์ž ์šฐ์„  ์ˆœ์œ„ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ์€ ์˜ณ์ง€ ์•Š๋‹ค. ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋ช…ํ™•ํ•ด๋„ ๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ๋ผโ—๏ธ

 

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์™€ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์œผ๋ฉด ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๊ฐ€ ๋‹น์—ฐํžˆ ๋จผ์ € ์‹คํ–‰๋˜๋Š” ๊ฒƒ์€ ๋ช…๋ฐฑํ•˜์ง€๋งŒ, ๋ชจ๋‘๊ฐ€ ์ด๋ฅผ ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•˜์ง€ ๋ง๊ณ  ๋จผ์ € ์‹คํ–‰๋˜๋Š” ๊ฒƒ๋“ค๋ผ๋ฆฌ ( )๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌถ์–ด์ฃผ๊ธฐ

4.8.3.1 ๋ฐฐ์—ด ์ด๋‹ˆ์…œ ๋ผ์ด์ € : "block-like"

๋ชจ๋“  ๋ฐฐ์—ด ์ด๋‹ˆ์…œ ๋ผ์ด์ €๋Š” ์„ ํƒ์  ์œผ๋กœ "block-like construct"์ธ ๊ฒƒ์ฒ˜๋Ÿผ ํ˜•์‹ํ™” ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์˜ ๊ฒฝ์šฐ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์•„๋ž˜ ์˜ˆ์‹œ ๋‹ค ๊ฐ€๋Šฅ

new int[] {           new int[] {
  0, 1, 2, 3            0,
}                       1,
                        2,
new int[] {             3,
  0, 1,               }
  2, 3
}                     new int[]
                          {0, 1, 2, 3}

4.8.4.2 Fall-through : ์ฃผ์„

Switch ๋ธ”๋ก ๋‚ด์—์„œ ๊ฐ ๋ฌธ ๊ทธ๋ฃน ์ค‘ ํ•˜๋‚˜ (break, continue, return๋˜๋Š” ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ)๊ฐ€ ๋Œ์—ฐ ์ค‘๋ฃŒ๋˜์„œ๋‚˜, ๋‹ค์Œ ๊ตฌ๋ฌธ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ์ ์„ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ฃผ์„์„ ๋‹ฌ ์ˆ˜ ์žˆ๋‹ค. (์ผ๋ฐ˜์ ์œผ๋กœ // fall through). ์ด ํŠน์ˆ˜ ์ฃผ์„์€ ์Šค์œ„์น˜ ๋ธ”๋ก์˜ ๋งˆ์ง€๋ง‰ ๋ช…๋ น๋ฌธ ๊ทธ๋ฃน์—๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์›๋ž˜๋Š” input์— ๋งž๋Š” case๋งŒ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ, fall through ์ฃผ์„์ด ์žˆ๋Š” ์ผ€์ด์Šค๋Š” ๋‹ค์Œ ์ผ€์ด์Šค๊นŒ์ง€ ์‹คํ–‰ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ์˜ˆ์‹œ์—์„œ๋Š” case2๊ฐ€ ์‹คํ–‰๋˜๋ฉด case 3๋„ ์‹คํ–‰๋œ๋‹ค๋Š” ์˜๋ฏธ.

๊ทธ๋Ÿฌ๋‚˜, break์™€ ๊ฐ™์ด switch๋ฅผ ๋น ์ ธ๋‚˜๊ฐ€๋Š” ๊ตฌ๋ฌธ์ด ์žˆ๋Š” case์—๋Š” ๋‹ค์Œ์— ์‹คํ–‰ํ•  case๊ฐ€ ์—†์–ด์„œ fall through๊ฐ€ ํ•„์š”๊ฐ€ ์—†๋‹ค.

  switch (input) {
  case 1:
  case 2:
    prepareOneOrTwo();
    // fall through
  case 3:
    handleOneTwoOrThree();
    break;
  default:
    handleLargeNumber(input);
}

4.8.7 Modifiers (์ ‘๊ทผ ์ œํ•œ์ž)

ํด๋ž˜์Šค์™€ ๋ฉค๋ฒ„์˜ ์ ‘๊ทผ ์ œํ•œ์ž ๋ชฉ๋ก

public protected private abstract default static final transient volatile synchronized native strictfp

5. Naming

5.3 ์นด๋ฉœ ์ผ€์ด์Šค : ์ •์˜ ๋œ ๋‹จ์–ด๋“ค์— ๋Œ€ํ•˜์—ฌ

๋‘๋ฌธ์ž์–ด ๋˜๋Š” "IPv6"๋˜๋Š” "iOS"์™€ ๊ฐ™์€ ๋น„์ •์ƒ์ ์ธ ๊ตฌ์กฐ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ์˜์–ด ๊ตฌ๋ฅผ ๋‚™ํƒ€ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•ฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด Google ์Šคํƒ€์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ (๊ฑฐ์˜) ๊ฒฐ์ •๋ก ์  ์ฒด๊ณ„๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฐ๋ฌธ ํ˜•ํƒœ์˜ ์ด๋ฆ„์œผ๋กœ ์‹œ์ž‘:    1~4๋ฒˆ์€ Google ์ด ์ •ํ•œ ๊ทœ์น™์„ ๋งํ•œ๋‹ค

  1. ๊ตฌ๋ฅผ ์ผ๋ฐ˜์ ์ธ ASCII๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์–ดํฌ์ŠคํŠธ๋กœํ”ผ๋ฅผ ์—†์•ค๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด Müller's algorithm์€ Muellers algorithm๋กœ ๋ณ€ํ™˜.
  2. ๊ฒฐ๊ณผ๋ฅผ ๋‹จ์–ด๋กœ ๋‚˜๋ˆ„๊ณ  ๋‚จ์€ ๊ณต๋ฐฑ๊ณผ ๊ตฌ๋‘์  (์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜์ดํ”ˆ)์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.
    • ์ถ”์ฒœ: ์–ด๋–ค ๋‹จ์–ด๊ฐ€ ์ด๋ฏธ ์ „ํ†ต์ ์ธ ์บ๋ฉ€ ์ผ€์ด์Šค๋ฐฉ์‹์ด ์“ฐ์ธ๋‹ค๋ฉด ์ด๊ฒƒ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ถ€๋ถ„๋“ค๋กœ ๋‚˜๋ˆˆ๋‹ค. (์˜ˆ๋ฅผ๋“ค์–ด "AdWords"๋ฅผ "ad words"๋กœ). "IOS"๋Š” ์บ๋ฉ€์ผ€์ด์Šค๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ์–ด๋– ํ•œ ์•ฝ์†์—๋„ ์œ„๋ฐฐ๋˜๋ฏ€๋กœ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.
    • ์บ๋ฉ€์ผ€์ด์Šค๋Š” ๋‚™ํƒ€์˜ ๋“ฑ์ฒ˜๋Ÿผ ๋ถ™์ผ ๋‹จ์–ด์˜ ์ฒซ ์•ž ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ. ex) use number ๋Š” useNumber๋กœ make coffee๋Š” makeCoffee 
  3. ์ด์ œ ๋ชจ๋‘ lowercase๋กœ ๋ฐ”๊พธ๊ณ  (์‹ฌ์ง€์–ด ๋‘์Œ๋ฌธ์ž๋„) ๊ทธ๋ฆฌ๊ณ  ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊พธ๋Š”๋ฐ ๊ทธ ๋ฐ”๊พธ๋Š” ๋ฌธ์ž๋“ค์€:
    • ๊ฐ ๋‹จ์–ด
    • ๊ฐ ๋‹จ์–ด์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ๋ฅผ ์ œ์™ธ, ์ฒซ ๋ฒˆ์งธ๋Š” lowercase
  4. ์ด์ œ ํ•˜๋‚˜๋กœ ์กฐํ•ฉํ•œ๋‹ค.

๊ณ ์œ ๋ช…์‚ฌ๋‚˜ ์‹ ๋ฌธ ๊ฐ™์€๊ฑฐ ๋ณด๋ฉด ๋Œ€๋ฌธ์ž๋กœ ํ• ์ง€ ์†Œ๋ฌธ์ž๋กœ ํ• ์ง€ ์• ๋งคํ•œ ๊ฒƒ๋“ค์„ ๋„์–ด์“ฐ๊ธฐ๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ์ฝ”๋”ฉ์— ์–ด๋–ป๊ฒŒ ์ ์šฉํ• ์ง€๋ฅผ ์ •ํ•œ ๊ทœ์น™์ด๋ผ ์ƒ๊ฐํ•˜์ž.

์‚ฐ๋ฌธ ํ˜•ํƒœ ์˜ณ์€ ์˜ˆ์‹œ ํ‹€๋ฆฐ ์˜ˆ์‹œ
"XML HTTP request" XmlHttpRequst XMLHTTPRequest
"new customer ID" newCustomerId newCustomerID
"inner stopwatch" innerStopwatch innerStopWatch
"support IPv6 on iOS?" supportsIpv6OnIos supportsIPv6OnIOS
"YouTube importer" YouTubeImporter
YoutubeImporter  → ๊ถŒ์žฅํ•˜์ง€๋Š” ์•Š์Œ
 

*๋ชจํ˜ธํ•˜๊ฒŒ ํ•˜์ดํ”ˆ์ด ์žˆ๋Š” ๋‹จ์–ด๊ฐ€ ๋ช‡๊ฐœ ์žˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, "nonempty" ๋‚˜ "non-empty"๋Š” ๋‘˜ ๋‹ค ๋งž๋‹ค. ๊ทธ๋ž˜์„œ ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์ด checkNonempty๋‚˜ checkNonEmpty ๋‘˜๋‹ค ๋งž๋‹ค.

6. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค์Šต

6.1 @Override: ํ•ญ์ƒ ์‚ฌ์šฉ

@Override๊ฐ€ ํ—ˆ๋ฝ ๋  ๋•Œ๋งˆ๋‹ค ์ฃผ์„ ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค .
์—ฌ๊ธฐ์—๋Š” ์Šˆํผ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ, ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ, ์Šˆํผ ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ ์ง€์ •ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์†Œ๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์™ธ : ๋ถ€๋ชจ ๋ฉ”์„œ๋“œ๊ฐ€ @Deprecated์ธ ๊ฒฝ์šฐ @Override ์ƒ๋žต ํ•  ์ˆ˜ ์žˆ๋‹ค.

6.2 ์˜ˆ์™ธ ์žก๊ธฐ : ์ƒ๋žตํ•˜์ง€ ๋ง ๊ฒƒ

์•„๋ž˜ ๋ช…์‹œ๋˜์žˆ๋Š” ๊ฒƒ๋ง๊ณ  ์˜ˆ์™ธ๋ฅผ ์žก๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ์žˆ์„ ์ˆ˜ ์—†๋‹ค. (์ „ํ˜•์ ์ธ ๋ฐ˜์‘์€ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๋Š” ๊ฒƒ ํ˜น์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๊ฐ„์ฃผ๋˜๋ฉด AssertionError๋กœ ๋‹ค์‹œ ๋˜์ ธ์ค€๋‹ค)

์ •๋ง๋กœ ์บ์น˜๋ธ”๋Ÿญ์—์„œ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๋Š”๊ฒƒ์ด ์ •๋‹นํ•˜๋‹ค๋ฉด ์ฃผ์„์„ ๋‚จ๊ธฐ๋Š”๊ฒƒ์œผ๋กœ ์ •๋‹นํ™”ํ•œ๋‹ค.

try {
  int i = Integer.parseInt(response);
  return handleNumericResponse(i);
} catch (NumberFormatException ok) {
  // ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋‹ค; ๊ดœ์ฐฎ์œผ๋‹ˆ ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ„๋‹ค
}
return handleTextResponse(response);

์˜ˆ์™ธ: ํ…Œ์ŠคํŠธ์—์„œ ์˜ˆ์™ธ๋ฅผ ์žก๋Š” ๋ถ€๋ถ„์€ expected, ํ˜น์€ expected๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ด๋ฆ„์„ ์ง€์œผ๋ฉด์„œ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋Š” ํ…Œ์ŠคํŠธ์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋‚˜์˜ค๋Š”๊ฒŒ ํ™•์‹คํ•œ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€์ค‘์ ์ธ ํ˜•์‹์œผ๋กœ ์ฃผ์„์ด ํ•„์š”๊ฐ€ ์—†๋‹ค.

try {
  emptyStack.pop();
  fail();
} catch (NoSuchElementException expected) {
}

7 Javadoc

7.1.3 ๋ธ”๋ก ํƒœ๊ทธ

๋ธ”๋ก ํƒœ๊ทธ๋Š” @param, @return, @throws, @deprecated ๋กœ ๋„ค ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ๋‹ค. ๋ธ”๋ก ํƒœ๊ทธ๊ฐ€ ํ•œ ์ค„์— ๋“ค์–ด๊ฐ€์ง€ ์•Š์œผ๋ฉด ์—ฐ์† ์ค„์€ @ ์œ„์น˜์—์„œ 4๋ฒˆ ๋“ค์—ฌ์“ฐ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

 

๋„ค ๊ฐ€์ง€ ์œ ํ˜• ์ค‘ ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ์“ฐ์ธ๋‹ค. ์•„๋ž˜ ์‚ฌ์ง„์—์„œ๋Š” @param ๊ณผ @return๋งŒ ์“ฐ์ธ ๋ชจ์Šต

7.2 The summary fragment (์š”์•ฝ ์กฐ๊ฐ)

๊ฐ Javadoc ๋ธ”๋ก์€ ๊ฐ„๋‹จํ•œ ์š”์•ฝ ์กฐ๊ฐ์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค .
์ด ์กฐ๊ฐ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
ํด๋ž˜์Šค ๋ฐ ๋ฉ”์„œ๋“œ ์ธ๋ฑ์Šค์™€ ๊ฐ™์€ ํŠน์ • ์ปจํ…์ŠคํŠธ์— ๋‚˜ํƒ€๋‚˜๋Š” ํ…์ŠคํŠธ์˜ ์œ ์ผํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์™„์ „ํ•œ ๋ฌธ์žฅ์ด ์•„๋‹ˆ๋ผ ๋ช…์‚ฌ๊ตฌ ๋˜๋Š” ๋™์‚ฌ ๊ตฌ์ธ ๋‹จํŽธ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ A {@code Foo} is a... ๋˜๋Š” This method returns...๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Save the record. ์ฒ˜๋Ÿผ ์™„์ „ํ•œ ํ•„์ˆ˜ ๋ฌธ์žฅ์„ ํ˜•์„ฑ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์กฐ๊ฐ์€ ์™„์ „ํ•œ ๋ฌธ์žฅ ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ์‹œ๋˜๊ณ  ๊ตฌ๋‘์ ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

*์ฃผ๋กœ ํ•˜๋Š” ์‹ค์ˆ˜: /** @return the customer ID ์€ ์ž˜๋ชป ๋จ,  /** Returns the customer ID ์ด ์˜ณ์Œ

 

thenThrow์— ๋Œ€ํ•œ JavaDoc์˜ ์ฒซ ๋ฌธ์žฅ(๋นจ๊ฐ„์ƒ‰ ๋™๊ทธ๋ผ๋ฏธ ํ‘œ์‹œ)์ด ์š”์•ฝ ์กฐ๊ฐ์ด๋‹ค.

7.1.3๊ณผ 7.2์— ๋Œ€ํ•œ ์˜ˆ์‹œ