Today I Learned

[ TIL - 220912 ]

grace.codepoet 2022. 9. 13. 03:16

โœจ ๋ฐฐ์šด์ 

๐ŸŽˆJAVA ๋ฌธ๋ฒ•
# ์ž๋ฐ”์˜ ํƒ€์ž…
- ๊ธฐ๋ณธํƒ€์ž… primitive type
- ์ฐธ์กฐ ํƒ€์ž… reference type : ๊ฐ์ฒด์˜ ๋ฒˆ์ง€๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํƒ€์ž… ( ๋ฐฐ์—ด, ์—ด๊ฑฐ ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค )

# ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์˜์—ญ Runtime Data Area
- ๋ฉ”์†Œ๋“œ ์˜์—ญ Method Area = data
: JVM์ด ์‹œ์ž‘ํ•  ๋•Œ ์ƒ์„ฑ๋˜๊ณ  ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ ํ•˜๋Š” ์˜์—ญ
ํด๋ž˜์Šค ๋กœ๋” -> ํด๋ž˜์Šค๋ณ„ ์ •์  ํ•„๋“œ์™€ ์ƒ์ˆ˜, ๋ฉ”์†Œ๋“œ ์ฝ”๋“œ, ์ƒ์„ฑ์ž ์ฝ”๋“œ ๋“ฑ์„ ๋ถ„๋ฅ˜ํ•ด ์ €์žฅ
- ํž™ ์˜์—ญ Heap Area
: ๊ฐ์ฒด์™€ ๋ฐฐ์—ด์ด ์ƒ์„ฑ๋˜๋Š” ์˜์—ญ ( JVM ์Šคํƒ ์˜์—ญ์˜ ๋ณ€์ˆ˜์™€ ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ํ•„๋“œ์—์„œ ์ฐธ์กฐ ) ๋™์  ํ• ๋‹น
-> ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜๋‚˜ ํ•„๋“œ๊ฐ€ ์—†์œผ๋ฉด ์˜๋ฏธ ์—†๋Š” ๊ฐ์ฒด๊ฐ€ ๋˜์–ด grabage collector ์‹คํ–‰์‹œ์ผœ ์ž๋™ ์ œ๊ฑฐ , ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜
- JVM ์Šคํƒ Stack
: ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ํ”„๋ ˆ์ž„ ์ถ”๊ฐ€push , ๋ฉ”์†Œ๋“œ ์ข…๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„ ์ œ๊ฑฐ pop
-> ํ”„๋ ˆ์ž„ ๋‚ด๋ถ€ ๋กœ์ปฌ ๋ณ€์ˆ˜ ์Šคํƒ์ด ์žˆ๋Š”๋ฐ, ๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜์™€ ์ฐจ๋ชพ ํƒ€์ž… ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€push ๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ pop
-> ์Šคํƒ ์˜์—ญ์— ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์‹œ์  ( ์ดˆ๊ธฐํ™” : ์ตœ์ดˆ๋กœ ๋ณ€์ˆ˜์— ๊ฐ’์ด ์ €์žฅ๋  ๋•Œ )
๋ณ€์ˆ˜๋Š” ์„ ์–ธ๋œ ๋ธ”๋ก ์•ˆ์—์„œ๋งŒ ์Šคํƒ ์กด์žฌ, ๋ธ”๋ก ๋ฒ—์–ด๋‚˜๋ฉด ์Šคํƒ์—์„œ ์ œ๊ฑฐ ( if ๋ธ”๋ก )


scores ๋ฐฐ์—ด ๋ณ€์ˆ˜๋Š” stack์˜์—ญ์— ์ƒ์„ฑ๋˜์ง€๋งŒ ( ํž™ ์˜์—ญ์˜ ์ฃผ์†Œ ์ €์žฅ ) , ์‹ค์ œ 10,20,30โ€Ž์€ ํž™ ์˜์—ญ์— ์ƒ์„ฑ
์ž๋ฐ”๋Š” ๋ฐฐ์—ด์„ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰



int [ ] scores = { 10,20,30 }

* ์ฐธ์กฐ ๋ณ€์ˆ˜์˜ == , != ์—ฐ์‚ฐ
- ๋™์ผํ•œ ๋ฒˆ์ง€ = ๋™์ผํ•œ ๊ฐ์ฒด ์ฐธ์กฐ

* null / NullPointerException

* String
String ๋ณ€์ˆ˜ = โ€œ ๋ฌธ์ž์—ด โ€œ ;

String name;
name = โ€œ์‹ ์šฉ๊ถŒโ€;
String hobby = โ€œ์ž๋ฐ”โ€;
>> ์‚ฌ์‹ค ๋ฌธ์ž์—ด์„ String ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค๋Š” ๋งโ€Ž์€ ์—„๋ฐ€ํžˆ ๋งํ•ด ํ‹€๋ฆฐ ํ‘œํ˜„

String name1= โ€œ๋ฐ•์ค€โ€;
String name2= โ€œ๋ฐ•์ค€โ€;

name1๊ณผ name2๋Š” ๋™์ผํ•œ String ๊ฐ์ฒด ์ฐธ์กฐ
์ผ๋ฐ˜์ ์œผ๋กœ ๋ณ€์ˆ˜์— ๋ฌธ์ž์—ด ์ €์žฅ : ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ์‚ฌ์šฉ

String name1= new String(โ€œ๋ฐ•์ค€โ€);
String name2= new String(โ€œ๋ฐ•์ค€โ€);

ํด๋ž˜์Šค (๊ฐ์ฒด) ์ƒ์„ฑ : ํด๋ž˜์Šค ์‹ค์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฉ”๋ชจ๋ฆฌ๊ณต๊ฐ„(ํž™๋ฉ”๋ชจ๋ฆฌ) ํ• ๋‹น
ํด๋ž˜์Šคํ˜• ๋ณ€์ˆ˜์ด๋ฆ„ = new ์ƒ์„ฑ์ž ; String(); ์ด ์ƒ์„ฑ์ž ์ธ ๊ฒƒ
new ์—ฐ์‚ฐ์ž : ํž™ ์˜์—ญ์— ์ƒˆ๋กœ์šด ๊ฐ์ฒด ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž ( ๊ฐ์ฒด ์ƒ์„ฑ ์—ฐ์‚ฐ์ž )
์ด ๊ฒฝ์šฐ name1๊ณผ name2๋Š” ๋‹ค๋ฅธ string ๊ฐ์ฒด ์ฐธ์กฐ

* ์ƒ์„ฑ์ž : ํด๋ž˜์Šค ์ฒ˜์Œ ๋งŒ๋“ค ๋•Œ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜ ์ดˆ๊ธฐํ™” ( Person() ๊ฐ™์€ ํ•จ์ˆ˜ )
** ์ƒ์„ฑ์ž ์ด๋ฆ„ = class ์ด๋ฆ„
** ์ƒ์„ฑ์ž๋Š” ๋ฐ˜ํ™˜๊ฐ’ ์—†์Œ

** ๊ฐ™์€ String๊ฐ์ฒด์ธ์ง€ ์ƒ๊ด€์—†์ด ๋‚ด๋ถ€ ๋ฌธ์ž์—ด ๋น„๊ตํ•˜๊ณ  ์‹ถ์„ ใ„ธใ…
-> equals () ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ : boolean result = str1.equals(str2); //str1 ๊ณผ str2๋Š” ์ฐจ๋ก€๋กœ ์›๋ณธ ๋ฌธ์ž์—ด๊ณผ ๋น„๊ต ๋ฌธ์ž์—ด

๋ฐฐ์—ด
: ๊ฐ™์€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†๋œ ๊ณต๊ฐ„์— ๋‚˜์—ดํ•˜๊ณ  ๊ฐ ๋ฐ์ดํ„ฐ์— ์ธ๋ฑ์Šค ๋ถ€์—ฌํ•ด๋†“์€ ์ž๋ฃŒ๊ตฌ์กฐ
์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘
- ๊ฐ™์€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋งŒ ์ €์žฅ ( Type mismatch . error )
- ํ•œ ๋ฒˆ ์ƒ์„ฑ๋œ ๋ฐฐ์—ด์€ ๊ธธ์ด ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ์ˆ˜ ์—†์Œ
๋ฐฐ์—ด ์„ ์–ธ
ํ˜•์‹ 1.
ํƒ€์ž… [ ] = ๋ณ€์ˆ˜ ;
ex ) int [ ] = intArray ;
ํ˜•์‹ 2.
ํƒ€์ž… ๋ณ€์ˆ˜ [ ] ;
ex ) int intArray [ ] ;

๋ฐฐ์—ด์€ ๊ฐ์ฒด์ด๋ฏ€๋กœ ํž™ ์˜์—ญ์— ์ƒ์„ฑ, ๋ฐฐ์—ด ๋ณ€์ˆ˜๋Š” ํž™ ์˜์—ญ์˜ ๋ฐฐ์—ด ๊ฐ์ฒด ์ฐธ์กฐ, ์ฐธ์กฐํ•  ๋ฐฐ์—ด ๊ฐ์ฒด ์—†๋‹ค๋ฉด ๋ฐฐ์—ด๋ณ€์ˆ˜๋Š” null๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”๋  ์ˆ˜ ์žˆ์Œ
ํƒ€์ž… [ ] = ๋ณ€์ˆ˜ null;
๋ฐฐ์—ด ๊ฐ์ฒด ์ƒ์„ฑ
-> ๊ฐ’ ๋ชฉ๋ก ์ด์šฉ
ํƒ€์ž… [ ] ๋ณ€์ˆ˜ = { 1, 2, 3, 4, 5 }; // ์ค‘๊ด„ํ˜ธ { } ๋Š” ์ฃผ์–ด์ง„ ๊ฐ’๋“ค์„ ํ•ญ๋ชฉ์œผ๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด ๊ฐ์ฒด๋ฅผ ํž™์— ์ƒ์„ฑํ•˜๊ณ , ๋ฐฐ์—ด ๊ฐ์ฒด์˜ ๋ฒˆ์ง€๋ฅผ ๋ฆฌํ„ด!
-> new ์—ฐ์‚ฐ์ž ์ด์šฉ

package sec02.exam01;

public class ArrayCreateByValueListExample {
  public static void main ( String [ ] args ) {
      int[] scores = {83, 90, 87};
      
      System.out.println("scores[0] : " + scores[0]);
      System.out.println("scroes[1] : " + scores[1]);
      System.out.println("scores[2] : " + scores[2]);
      
      int sum= 0;
      for(int i=0; i<3; i++) {
        sum += scores[i];
      }
      
      System.out.println("์ดํ•ฉ" + sum);
      double avg = (double) sum / 3;
      System.out.println("ํ‰๊ท :"+avg);
      }
    }

- > ์ฃผ์˜ํ•  ์  : ๊ฐ’์˜ ๋ชฉ๋ก์œผ๋กœ ๋ฐฐ์—ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ฐฐ์—ด ๋ณ€์ˆ˜๋ฅผ ์ด๋ฏธ ์„ ์–ธํ•œ ํ›„์—๋Š” ๋‹ค๋ฅธ ์‹คํ–‰๋ฌธ์—์„œ ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐฐ์—ด ์ƒ์„ฑ์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์Œ, ์ด๋ฏธ ์„ ์–ธ๋œ ๋ฐฐ์—ด ๋ณ€์ˆ˜์— ์ค‘๊ด„ํ˜ธ ์ด์šฉํ•œ ๋ฐฐ์—ด ์ƒ์„ฑํ•˜๋ ค๋ฉด new ์—ฐ์‚ฐ์ž ์ด์šฉ
๋ฐฐ์—ด ๋ณ€์ˆ˜ ๋ฏธ๋ฆฌ ์„ ์–ธํ•œ ํ›„ ๊ฐ’ ๋ชฉ๋ก๋“ค์ด ๋‚˜์ค‘์— ๊ฒฐ์ •๋˜๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด new ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•ด ๊ฐ’ ๋ชฉ๋ก ์ง€์ •ํ•ด์ฃผ๋ฉด ๋จ
๋ณ€์ˆ˜ = new ํƒ€์ž… [ ] { 1, 2, 3, 4, 5 };
ex) String [ ] names = null ;
names = new String [ ] { " ์‹ ์šฉ๊ถŒ ", " ํ™๊ธธ๋™ " , " ๊น€์ž๋ฐ” " };
๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๊ฐ’์ด ๋ฐฐ์—ด์ผ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€
์˜ˆ์‹œ

int add(int[] scores) {...}

int result = add ( new int[] {95, 85, 90} ); // ๊ผญ ์ด๋ ‡๊ฒŒ new์—ฐ์‚ฐ์ž ์จ์ฃผ์–ด์•ผํ•จ

-> new ์—ฐ์‚ฐ์ž ์ด์šฉ
: ๊ฐ’์˜ ๋ชฉ๋ก์„ ๊ฐ€์ง€๊ณ ์žˆ์ง€ ์•Š์ง€๋งŒ, ํ–ฅํ›„ ๊ฐ’๋“ค์„ ์ €์žฅํ•  ๋ฐฐ์—ด์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด new์—ฐ์‚ฐ์ž๋กœ ๋ฐฐ์—ด ๊ฐ์ฒด ์ƒ์„ฑ
ํƒ€์ž… [ ] ๋ณ€์ˆ˜ = new ํƒ€์ž… [ ๊ธธ์ด ] ;
์ด๋ฏธ ๋ฐฐ์—ด ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ๊ฒฝ์šฐ์—๋„ new ์—ฐ์‚ฐ์ž๋กœ ๋ฐฐ์—ด ์ƒ์„ฑ ๊ฐ€๋Šฅ

//์˜ˆ์‹œ 
int[] intArray = new int[5];

๊ทธ๋ฆฌ๊ณ  ๋ฐฐ์—ด ์ƒ์„ฑ ์‹œ์˜ ๊ธฐ๋ณธ๊ฐ’
int, short, byte : 0
char : \u0000
long : 0L
float : 0.0F
double : 0.0
boolean : false
class interface String : null
๋ฐฐ์—ด ๊ธธ์ด : ๋ฐฐ์—ด์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ „์ฒด ํ•ญ๋ชฉ์˜ ๊ฐœ์ˆ˜ , ๋ฐฐ์—ด ๊ฐ์ฒด์˜ length ํ•„๋“œ๋ฅผ ์ฝ์–ด ๊ธธ์ด ์–ป์„ ์ˆ˜ ์žˆ์Œ
** ํ•„๋“œ๋Š” ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ
lengthํ•„๋“œ : ๋ฐฐ์—ด ๋ณ€์ˆ˜์— ๋„ํŠธ ์—ฐ์‚ฐ์ž ๋ถ™์ด๊ณ  length
length ํ•„๋“œ๋Š” ์ฝ๊ธฐ ์ „์šฉ ํ•„๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’ ๋ณ€๊ฒฝ X
* ๋ฐฐ์—ด์˜ length ํ•„๋“œ๋Š” for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด ์ „์ฒด๋ฅผ ๋ฃจํ•‘ํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ
ex ) for ( int i=o; i<scores.length; i++ ) { }

ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์œ„ํ•ด์„  main () ๋ฉ”์†Œ๋“œ๊ฐ€ ํ•„์š”, main ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๊ฐ’ String[ ] args๋ž€?
public static void main ( String [ ] args ) { ... }
๋ช…๋ น ๋ผ์ธ ( ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ) ์—์„œ ์œ„ ์ฝ”๋“œ๋ฅผ java ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•˜๋ฉด JVM ์€ ๊ธธ์ด๊ฐ€ String ๋ฐฐ์—ด์„ ๋จผ์ € ์ƒ์„ฑํ•˜๊ณ  main () ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋งค๊ฐœ๊ฐ’์œผ๋กœ ์ „๋‹ฌ
๐ŸŽˆ < ์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค > ๋ถ€๋ก Python ๋ฌธ๋ฒ•
๐ŸŽˆcs ๊ฐœ๋…
# ์„ธ์…˜ : ํ†ต์‹ ์„ ์‹œ์ž‘ํ•ด์„œ ๋๋‚ผ ๋•Œ๊นŒ์ง€์˜ ํ•œ ๋ฌถ์Œ
- ํ†ต์‹ ์—๋Š” ์‹œ์ž‘๊ณผ ๋์ด ์žˆ๋Š”๋ฐ, ๊ทธ๊ฒƒ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋‹จ์œ„
- ๋‹ค์–‘ํ•œ ํ†ต์‹ ์ ˆ์ฐจ(ํ”„๋กœํ† ์ฝœ)๋ณ„ ์„ธ์…˜์ด ์žˆ์Œ
- ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ ๋ฐฉ๋ฌธํ•ด ๋‚˜๊ฐ€๋Š” ๊ฒƒ๊นŒ์ง€๋„ ์„ธ์…˜
ex ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฒ€์ƒ‰ํ•  ๋•Œ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ํ‘œ์‹œ๋˜๊ธฐ๊นŒ์ง€ PPPoE์„ธ์…˜, HTTP ์„ธ์…˜ ๋“ฑ ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์„ธ์…˜์ด ๋ฐœ์ƒํ•˜๋ฉฐ, ๊ฐ๊ฐ์˜ ๋‹จ์œ„๋กœ ํ†ต์‹  ๊ด€๋ฆฌํ•จ. SEO ์šฉ์–ด์—์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ ๋ฐฉ๋ฌธํ•ด์„œ ๋‚˜๊ฐ€๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ • ์˜๋ฏธ, ๋ฐฉ๋ฌธ ํšŸ์ˆ˜๋กœ ์‚ฌ์šฉ
> ๋ธŒ๋ผ์šฐ์ €์˜ http ์„ธ์…˜๊ด€๋ฆฌ : ์ฟ ํ‚ค ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž์˜ ์›น ์‚ฌ์ดํŠธ ์ ‘์† ์ƒํ™ฉ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ
์‚ฌ์šฉ์ž์˜ ๋กœ๊ทธ์ธ ์ƒํƒœ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ƒํ’ˆ๋„ฃ์—ˆ๋Š”์ง€ ๋“ฑ์˜ ์ •๋ณด ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ
> ์ปค๋„ฅ์…˜ : ํ†ต์‹ ํ•˜๋Š” ๋‘ ์ ์˜ ์—ฐ๊ฒฐ ( ์„ธ์…˜๊ณผ ๋น„์Šทํ•œ ์šฉ์–ด, ์œ ์˜ )
๐ŸŽˆ ํ•˜๋“œ์ฝ”๋”ฉ ํ•™์Šต

๋”๋ณด๊ธฐ

ํ•˜๋“œ ์ฝ”๋”ฉ : ์ƒ์ˆ˜๋‚˜ ๋ณ€์ˆ˜์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’์„ ์†Œ์Šค์ฝ”๋“œ์— ์ง์ ‘ ์“ฐ๋Š” ๋ฐฉ์‹

๋ชจ๋ฐ”์ผ ์•ฑ ์‹คํ–‰ ์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž…๋ ฅ๋ฐ›์•„์•ผ ํ•  ์ •๋ณด๋ฅผ ์†Œ์Šค์ฝ”๋“œ์— ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋ณ€์ˆ˜, ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ, ๋Œ€์นญํ‚ค ๋“ฑ ์ค‘์š” ์ •๋ณด๋ฅผ ์ฃผ์„์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ๋„ ํ•˜๋“œ์ฝ”๋”ฉ. ์ฃผ๋กœ ํŒŒ์ผ ๊ฒฝ๋กœ, url ๋˜๋Š” ip์ฃผ์†Œ, ๋น„๋ฐ€๋ฒˆํ˜ธ, ํ™”๋ฉด์— ์ถœ๋ ฅ๋  ๋ฌธ์ž์—ด ๋“ฑ์ด ๋Œ€์ƒ์ด ๋œ๋‹ค.

<-> ๋กœ๋”ฉ : ์†Œ์Šค์ฝ”๋“œ์— ์ง์ ‘ ์“ฐ์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ถ€ ํŒŒ์ผ๋กœ ๋นผ์„œ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ

ํ•˜๋“œ์ฝ”๋”ฉ
- ์žฅ์ 
- ๊ฐ’ ๋ฐ”๋กœ ํ™•์ธ ๊ฐ€๋Šฅ
- ๋ณ„๋„์˜ ๋กœ๋”ฉ ์ ˆ์ฐจ ์—†์–ด ์†๋„ ๋น ๋ฆ„
- ๋ฐ์ดํ„ฐ ์ˆ˜์ •์‹œ ์ฝ”๋“œ ์ˆ˜์ •์ด ๋ถˆ๊ฐ€ํ”ผํ•˜๋ฉด ์žฌ์ปดํŒŒ์ผ ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๊ตณ์ด ๋กœ๋”ฉ์„ํ•  ํ•„์š”๊ฐ€ ์—†์Œ

- ๋‹จ์ 
- ์™ธ๋ถ€ ์ž…๋ ฅ์— ๋Œ€ํ•œ ์œ ์—ฐ์„ฑ ์—†๊ณ  ํ™•์žฅ์„ฑ ๋‚ฎ์Œ
- ์ฝ”๋“œ ๋ณ€๊ฒฝ์‹œ ์ž๋™ ๋ฐ˜์˜ ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„๊ทธ ๋ฐœ์ƒ ์œ„ํ—˜ ์žˆ์Œ
- DB์— ์ ‘์†ํ•ด ์ž๋ฃŒ ์กฐํšŒํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๊ฒฝ์šฐ, ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์œผ๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๊ทธ๋Œ€๋กœ ์œ ์ถœ๋  ์ˆ˜ ์žˆ์Œ
์ฆ‰ ๋ณด์•ˆ์— ์ทจ์•ฝํ•ด์งˆ ์ˆ˜ ์žˆ์Œ
- ๊ฐ’์ด ์ˆ˜์‹œ๋กœ ๋ฐ”๋€Œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋“œ์ฝ”๋”ฉํ•˜๋ฉด ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ์žฌ์ปดํŒŒ์ผ, ์žฌ๋ฐฐํฌ๋ฅผ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํฐ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์šด์šฉ์ด๋‚˜ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›€

์˜ˆ์‹œ

Number.java

 public final class Number {
   public static final String greeting = "Hello World";
 }

Hello World.java

public class Hello World{
   public static void main(String args[]) {
   System.out.println(Number.greeting);
   }
 }

ํ•˜๋“œ์ฝ”๋”ฉ๋ณด๋‹ค๋Š” ์ƒ์ˆ˜ ํ™œ์šฉ
or ์ƒ์ˆ˜๋ฅผ ENUM์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ์™ธ๋ถ€์— ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๋Š” ๋“ฑ

https://youtu.be/VzsXPR25pYw
๋‚ด ์ฃผ์žฅ์˜ ๋ฐ˜๋Œ€๋ฅผ ๊ณ„์† ํŽผ์ณ์ค„ ์‚ฌ๋žŒ
ํ† ๋ก ์ด ๋˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค : ๋Š” ๋ฌธ์žฅ ๋‚ด์šฉ < ํƒ€์ดํƒ„์˜ ๋„๊ตฌ๋“ค > ์ด ๋ฌธ๋“ ๋– ์˜ค๋ฆ„
- ์ข‹์€ ํšŒ์‚ฌ : ์ฝ”๋“œ๋ฅผ ๋ฆฌ๋ทฐํ•˜๊ณ , ๋ฆฌ๋ทฐ๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ ์šฉํ•ด์„œ ๋ฆฌํŒฉํ† ๋งํ•˜๊ณ  ์„œ๋น„์Šค์— ์ ์šฉํ•˜๊ณ , ๋ฆฌ๋ทฐ๋ฅผ ํ†ตํ•œ ํ•™์Šต๊ณผ ์‹ค๋ ฅ์ฆ์ง„์ด ๋ณด์žฅ๋˜๋Š” ํšŒ์‚ฌ๊ฐ€ ๊ฐ€์žฅ ์ข‹์€ ํšŒ์‚ฌ
๋‚˜์˜ ์ด์ต = ํšŒ์‚ฌ์˜ ์ด์ต best
ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด์„œ BM๋น„์ง€๋‹ˆ์Šค ๋ชจ๋ธ์ด ๋ฌด์—‡์„ ํ•จ์ถ•ํ•˜๋Š” ๊ฒƒ์ธ๊ฐ€, ๋ฌด์—‡์„ ๋ชฉ์ , ์–ด๋–ป๊ฒŒ ์ˆ˜์ต์„ ๋‚ด๋Š”์ง€ ๋“ฑ์˜ ์‚ฌ์—…๊ณผ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ˆ๋ชฉ์„ ๊ธฐ๋ฅด๋Š” ๊ฒƒ ์ค‘์š”, ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์ด๋Ÿฌํ•œ ๊ธฐํš์ด ํ˜„์‹ค์ ์œผ๋กœ ์•ˆ๋งž๋Š” ๊ฒƒ ๊ฐ™์•„์š”, ์ด ๋ชจ๋ธ๋ณด๋‹ค๋Š” ์ด๋ ‡๊ฒŒ ๊ธฐํš์„ ํ•ด๋ณด๋Š” ๊ฒŒ ์–ด๋–ค๊ฐ€์š”? ๋“ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์—…์  ๋ถ€๋ถ„์—์„œ ~๊ฐ€ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ๋“ฑ ์˜ ์˜๊ฒฌ์„ ๋‚ด๋Š” ๊ฒƒ ์ข‹์Œ
์ด๋ ‡๊ฒŒ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค๋Š” ํ™•์‹คํ•œ ๊ฐœ๋ฐœ ์ฒ ํ•™์ด ์žˆ๋Š” ๊ฒƒ์ด ์ค‘์š”!


์–ด๋А ๊ฐœ๋ฐœ์ž๋ผ๋„ ๋งˆ์Œ ํ•œ์ชฝ์— ์ฐฝ์—… ์„ ํ’ˆ๊ณ  ์‚ด์ž–์•„์š”?



โœจ ์ž˜ํ•œ์ 

- ์ƒํ™ฉ : ์นดํŽ˜์—์„œ ๊ณต๋ถ€๋ฅผ ํ•˜๊ธฐ๋กœ ํ–ˆ์œผ๋‚˜, ๋†€๊ณ  ์‹ถ์€ ์š•๊ตฌ๊ฐ€ ์ปธ์Œ
- ์•ก์…˜ : ์ฐธ๊ณ  ์นดํŽ˜์—๊ฐ€์„œ ๊ณต๋ถ€ํ•จ
- ์นญ์ฐฌ : ์ด๋ ‡๊ฒŒ ๋‚ด ์š•๊ตฌ๋Œ€๋กœ ํ•˜์ง€ ์•Š๋Š” ์Šต๊ด€์„ ๋“ค์ด๊ธฐ ์‹œ์ž‘ํ•˜์ž ์ž˜ํ–ˆ์–ด~!

โœจ ๊ฐœ์„ ์ 

- ๋ฌธ์ œ : ์ €๋… ๋Šฆ๊ฒŒ ์œ ํŠœ๋ธŒ๋ฅผ ๋ณด๋ฉด์„œ ์˜๋ฏธ์—†์ด ์‹œ๊ฐ„์„ ๋‚ ๋ฆผ
- ์›์ธ : ์• ์ดˆ์— ํฐ์„ ์žก์€ ๊ฒƒ, ์‹œ๊ฐ„ ๊ณ„ํš์„ ํ‹ˆํ‹ˆ์ด ์งœ์ง€ ์•Š์€ ๊ฒƒ, ์นจ๋Œ€์— ๋ˆ„์šด ๊ฒƒ
- ์•ก์…˜ ํ”Œ๋žœ : ํฐ์„ ์ž ๊ถˆ ๋†“๊ธฐ, ์‹œ๊ฐ„ ๊ณ„ํš ํ‹ˆํ‹ˆ์ด ์งœ๊ธฐ, ์นจ๋Œ€์— ๋ˆ„์šธ ๋• ํƒ€์ด๋จธ๋ฅผ ๋†“๊ณ  ๋ˆ•๊ธฐ ( ๊ฐ€๋Šฅํ•œ ๋ˆ•์ง€ ์•Š๊ธฐ )

โœจ๊ณ ๋ฏผ์ 

- ๋ฐฑ์—”๋“œ๋ฅผ ์ค€๋น„ํ•  ์ง€ ํ”„๋ก ํŠธ๋ฅผ ์ค€๋น„ํ•  ์ง€ ๊ทธ ๋‹ค๋ฅธ ๋ถ„์•ผ๋ฅผ ๊ณ„์†ํ•ด์„œ ๋„์ „ํ•ด๋ด์•ผ ํ•  ์ง€ ๊ทธ ๊ธธ์„ ๋ช…ํ™•ํžˆ ์ฐพ์ง€ ๋ชปํ•˜๊ฒ ๋‹ค
์›๋ž˜๋Š” ํ”„๋ก ํŠธ๋ฅผ ์ค€๋น„ํ•˜๋ คํ–ˆ์œผ๋‚˜, ์ œ๋Œ€๋กœ ๋‹ค๋ฃฐ ์ค„ ์•„๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ•˜๋‚˜๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค๋Š” ๊ต์ˆ˜๋‹˜์˜ ๋ง์”€์— ๋”ฐ๋ผ ์‹œ์ž‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด JAVA์™€ Python. ๊ทธ๋ฆฌ๊ณ  ์–ธ์–ด ๊ณต๋ถ€๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด์„œ ๊ณต๋ถ€ํ•ด์•ผ ์ข‹๋‹ค๋Š” ์ˆ˜๋งŽ์€ ๋ง๋“ค. ํ”„๋ก ํŠธ๋ณด๋‹ค ๋” ๋†’์€ ์—ฐ๋ด‰์„ ์ž๋ž‘ํ•œ๋‹ค๋Š” ๋ฐฑ์—”๋“œ ์ด ์„ธ๊ฐœ๊ฐ€ ์„ž์—ฌ ๋ฐฑ์—”๋“œ๋กœ ๋„˜์–ด๊ฐ€๋ณผ๊นŒ? ํ•˜๋ฉฐ ์–ธ์–ด๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ฐพ๊ณ  ์žˆ๋‹ค. ํ•ด๋ณด๊ณ  ์‹ถ์€ ๊ณต๋ถ€์™€ ์ข‹์€ ๊ฐ•์˜๋Š” ๋„ˆ๋ฌด๋‚˜ ๋งŽ์€ ๊ฒƒ์ด ๋ฌธ์ œ์ด๋‹ค. ํ˜„์žฌ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฆฌ์•กํŠธ ๊ต์žฌ. ๋…ธ๋งˆ๋“œ์ฝ”๋” ๋ฆฌ์•กํŠธ. ์ œ๋กœ์ดˆ์˜ ๋ฆฌ์•กํŠธ, ์ฝ”๋”ฉ์• ํ”Œ์˜ ๋ฆฌ์•กํŠธ, ์ธํ”„๋Ÿฐ์˜ ๋ฆฌ์•กํŠธ, ๋“œ๋ฆผ์ฝ”๋”ฉ ์—˜๋ฆฌ์˜ ๋ฆฌ์•กํŠธ / ๊น€์˜ํ•œ ์Šคํ”„๋ง ์ปค๋ฆฌํ˜๋Ÿผ / ์ธํ”„๋Ÿฐ ํŒŒ์ด์ฌ ์žฅ๊ณ  ๋ฆฌ์•กํŠธ ๊ฐ•์˜ / ์ฝ”๋“œ๋ผ์ด์–ธ ํŒŒ์ด์ฌ ์‹ฌํ™”์™€ ์žฅ๊ณ  / ์ธํ”„๋Ÿฐ ์ž๋ฐ” ์Šคํ”„๋ง๋ถ€ํŠธ ํ™œ์šฉ ์›น๊ฐœ๋ฐœ ์‹ค๋ฌด์šฉ / ๋ถ€์ŠคํŠธ์ฝ”์Šค ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ (ํ’€์Šคํƒ)