๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŽฎ ํ”„๋กœ๊ทธ๋ž˜๋ฐ/2025 ํ•œ๊ฒฝxํ† ์Šค ๋ถ€์บ (Fullstack)

[ํ•œ๊ฒฝxToss] 14์ฃผ์ฐจ ์š”์•ฝ : Java

by xxilliant 2025. 4. 12.
728x90
๋ฐ˜์‘ํ˜•

 

๊ฐœ์ธ์˜ ํ•™์Šต ๋‚ด์šฉ ๊ธฐ๋ก ์ค‘, ๊ทนํžˆ ์ผ๋ถ€์˜ ๋‚ด์šฉ๋งŒ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

Java

//์ž๋ฐ”๋Š” ํด๋ž˜์Šค์—์„œ ์‹œ์ž‘ํ•ด์„œ ๋๋‚œ๋‹ค.
//public : ์ ‘๊ทผ์ œํ•œ์ž
//class : ํด๋ž˜์Šค ์ •์˜์–ด
public class ex01 {
    //static : ์ •์  ๋ณ€์ˆ˜/ํ•จ์ˆ˜๋กœ ์„ ์–ธ
    //         ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์ ์— ์ •์˜ํ•œ๋‹ค.
    //String[] : ๋ฌธ์ž์—ด ๋ฐฐ์—ด, ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์‹œ
    //                    ํŒŒ๋ผ๋ฏธํ„ฐ ex) hwp.exe a.hwp b.hwp
    public static void main(String[] args) {
        //println : ์ฝ˜์†” ์ถœ๋ ฅ
        System.out.println("Hello Java!");
    }
}


//๋ฐ์ดํ„ฐ ํƒ€์ž…(์ž๋ฃŒํ˜•)
        //๊ธฐ๋ณธ์ž๋ฃŒํ˜• 8๊ฐœ
        //์ •์ˆ˜ํ˜• : int(4) long(8) short(2) byte(1)
        //์‹ค์ˆ˜ํ˜• : float(4) double(8)
        //๋…ผ๋ฆฌํ˜• : boolean(1)
        //๋ฌธ์žํ˜•(๋‚ด๋ถ€์ ์œผ๋กœ ์ˆซ์žํ˜•) : char(2)
        
//println print printf
        //println : ๋ฌธ์ž์—ด ํ•œ์ค„ ์ถœ๋ ฅ + ์ค„๋ฐ”๊ฟˆ
        //print : ์ค„๋ฐ”๊ฟˆ ์—†์Œ
        //printf : ํ˜•์‹ํ™”๋œ ์ถœ๋ ฅ๋ฌธ

 

๐Ÿ“Œ Java ์ฃผ์š” ๊ฐœ๋…

  • static
    • ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๋•Œ ํ•จ๊ป˜ ์ƒ์„ฑ.
    • ๊ฐ์ฒด ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ (ํด๋ž˜์Šค๋ช….๋ณ€์ˆ˜, ํด๋ž˜์Šค๋ช….๋ฉ”์„œ๋“œ).
    • ๊ณตํ†ต ๋ฐ์ดํ„ฐ, ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜ ๋“ฑ์— ์‚ฌ์šฉ.
  • ์ ‘๊ทผ ์ œํ•œ์ž (Access Modifier)
    • private: ๊ฐ™์€ ํด๋ž˜์Šค ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ.
    • default(์•„๋ฌด ๊ฒƒ๋„ ์•ˆ ๋ถ™์ž„): ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด ์ ‘๊ทผ ๊ฐ€๋Šฅ.
    • protected: ๊ฐ™์€ ํŒจํ‚ค์ง€ + ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ.
    • public: ์–ด๋””์„œ๋“  ์ ‘๊ทผ ๊ฐ€๋Šฅ.
  • ์˜ค๋ฒ„๋กœ๋”ฉ vs ์˜ค๋ฒ„๋ผ์ด๋”ฉ
    • ์˜ค๋ฒ„๋กœ๋”ฉ: ๊ฐ™์€ ์ด๋ฆ„, ํŒŒ๋ผ๋ฏธํ„ฐ๋งŒ ๋‹ค๋ฅด๊ฒŒ (๊ฐ™์€ ํด๋ž˜์Šค ๋‚ด).
    • ์˜ค๋ฒ„๋ผ์ด๋”ฉ: ์ƒ์†๋ฐ›์€ ๋ฉ”์„œ๋“œ ์žฌ์ •์˜ (@Override, ๋ถ€๋ชจ-์ž์‹ ํด๋ž˜์Šค ๊ฐ„).
  • ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด
    • ๊ฐ์ฒด๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ƒ์„ฑํ•ด ์žฌ์‚ฌ์šฉ.
    • ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ, DB ์—ฐ๊ฒฐ ๋“ฑ ์ž์› ์ ˆ์•ฝ์— ์‚ฌ์šฉ.
    • ์ƒ์„ฑ์ž private, getInstance() ๋ฉ”์„œ๋“œ๋กœ ๊ฐ์ฒด ์ œ๊ณต.

๐Ÿ“Œ ์ž๋ฐ” ๊ธฐ๋ณธ API ๋ฐ ๊ฐœ๋… ์ •๋ฆฌ

โœ… ๊ธฐ๋ณธ API ํด๋ž˜์Šค

  • ํŒจํ‚ค์ง€๋ช…: java.lang.*, java.util.*
  • JDK ๊ณต์‹ ๋ฌธ์„œ (์˜๋ฌธ): Java SE 17 Documentation

์šฉ์–ด ์„ค๋ช…

API (Application Programming Interface) ํ•จ์ˆ˜, ํด๋ž˜์Šค, ํ†ต์‹  ํ˜ธ์ถœ์˜ ์ธํ„ฐํŽ˜์ด์Šค
SDK (Software Development Kit) ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋„๊ตฌ ๋ชจ์Œ
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (Library) ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค์˜ ์ง‘ํ•ฉ
ํ”„๋ ˆ์ž„์›Œํฌ (Framework) ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋ผˆ๋Œ€(๊ธฐ๋ฐ˜ ๊ตฌ์กฐ)
์ฝœ๋ ‰์…˜ (Collection) ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ชจ์Œ
JDK (Java Development Kit) Java + SDK ํฌํ•จ
DLL (Dynamic-Link Library) ๋™์  ๋งํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ•จ์ˆ˜ ๋ฐ ํด๋ž˜์Šค์˜ ๋ชจ์Œ
JAR (Java Archive) .class ํŒŒ์ผ๊ณผ ๋ฆฌ์†Œ์Šค(์ด๋ฏธ์ง€, ํ…์ŠคํŠธ, ๋ฉ”ํƒ€์ •๋ณด)๋ฅผ ํฌํ•จํ•œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์••์ถ• ํŒŒ์ผ (์˜ˆ: ํƒ€์ž„๋ฆฌํ”„, ์Šคํ”„๋ง ๋ถ€ํŠธ)
WAR (Web Application Archive) JAR๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์›น ํ™˜๊ฒฝ ์„ค์ •์ด ์ถ”๊ฐ€๋œ ์••์ถ• ํŒŒ์ผ (์˜ˆ: JSP, ์Šคํ”„๋ง ๋ ˆ๊ฑฐ์‹œ)

โœ” ํ”„๋ ˆ์ž„์›Œํฌ > ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ > ์ฝœ๋ ‰์…˜ > SDK > API (ํฌ๊ด„์ ์ธ ๊ฐœ๋… ์ˆœ์„œ)


โœ… ์ธํ„ฐํŽ˜์ด์Šค (Interface)๋ž€?

  • ๊ฐ€์ƒํ•จ์ˆ˜(์ถ”์ƒ ๋ฉ”์„œ๋“œ)๋งŒ ๋ชจ์•„๋‘” ํ‹€
  • ์„ค๊ณ„ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋จ

โœ… ์ถ”์ƒ ํด๋ž˜์Šค (abstract class)๋ž€?

  • **์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ + ์ถ”์ƒ ๋ฉ”์„œ๋“œ(๊ฐ€์ƒ ํ•จ์ˆ˜)**๋ฅผ ํฌํ•จํ•˜๋Š” ํด๋ž˜์Šค
  • ์ถ”์ƒ ๋ฉ”์„œ๋“œ: ์„ ์–ธ๋งŒ ์žˆ๊ณ  ๊ตฌํ˜„์€ ์—†์Œ → ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•„์š”

 

๐Ÿ”น ์ž๋ฐ”์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค

  • Object ํด๋ž˜์Šค
    • ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์Œ
    • ๋‹คํ˜•์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๋ชจ๋“  ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Œ
    //ํ•ด์‰ฌ์ฝ”๋“œ : ๊ฐ์ฒด์ƒ์„ฑ์‹œ ์ž๋™๋ถ€์—ฌ๋˜๋Š” ID๊ฐ’
	System.out.println(object1.hashCode());
	System.out.println(object2.hashCode());
    
    //equals()
    System.out.println( object1.equals( object2 ) );

    //toString()
    System.out.println( object1.toString() );

โœ… ์ œ๋„ค๋ฆญ (Generic) <T>

  • ๋ชฉ์ : ํ˜•(Type)์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ ์ „์†ก(ํƒ€์ž… ์„ ์–ธ)์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ํŠน์ง•:
    • ๊ฐ€๋ณ€์ ์ธ ํƒ€์ž… ์„ ์–ธ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ (์ƒ์†๊ณผ ๊ด€๊ณ„์—†์Œ)
    • JDK 1.5๋ถ€ํ„ฐ ์ง€์›

โœ… ๋žŒ๋‹ค์‹(Lambda Expression)

  • ๋ชฉ์ :
    • ์ž๋ฐ”์—์„œ ์ฝ”๋“œ๋ฅผ ๋ณ€์ˆ˜ ํ˜•ํƒœ๋กœ ๋‹ด์•„ ์ „๋‹ฌ(๋งค๊ฐœ๋ณ€์ˆ˜)ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋จ
    • ์ฝ”๋“œ ์ „๋‹ฌ์„ ์œ„ํ•ด ์ธํ„ฐํŽ˜์ด์Šค ๋ฌธ๋ฒ•์„ ์ฐจ์šฉ
  • ์‚ฌ์šฉ๋ฒ•:
    • ๋žŒ๋‹ค์‹ ์„ ์–ธ: ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค(@FunctionalInterface) ์‚ฌ์šฉ
    • ๊ตฌํ˜„: ‘->’ (ํ™”์‚ดํ‘œ ์—ฐ์‚ฐ์ž) ์‚ฌ์šฉ

 

728x90
๋ฐ˜์‘ํ˜•