์šฐ๋ฆฌFISA

๐Ÿ“ ์šฐ๋ฆฌ FISA ํด๋ผ์šฐ๋“œ์—”์ง€๋‹ˆ์–ด๋ง 1์ฃผ์ฐจ ๊ธฐ๋ก

ํด๋กœ์ด๐Ÿ“ 2023. 11. 26. 21:38

 

 

 

๐Ÿ“‹ ์ˆ˜์—… ๊ธฐ๋ก

JVM (Java Virtual Machine) ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

  • Method Area (Class Area)
    • ํด๋ž˜์Šค ๋‚ด์šฉ(Byte code : JVM์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ๋ณ€ํ™˜๋œ ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ)๊ฐ€ ์ ์žฌ๋˜๋Š” ์˜์—ญ
    • static ๋ณ€์ˆ˜ ๋ฐ ์ƒ์ˆ˜๊ฐ€ ์ ์žฌ๋˜๋Š” ์˜์—ญ
  • Stack Area
    • ๋ฉ”์†Œ๋“œ ์‹คํ–‰ ๊ณต๊ฐ„์ด ์ ์žฌ๋˜๋Š” ์˜์—ญ
    • ๋กœ์ปฌ ๋ณ€์ˆ˜ ์ €์žฅ ๊ณต๊ฐ„
  • Heap Area
    • ์ƒ์„ฑ๋œ ๊ฐ์ฒด๊ฐ€ ์ ์žฌ๋œ๋Š ์˜์—ญ
    • ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํ„ฐ : ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐพ์•„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ญ์ œ

maven

  • build tool
  • ๊ฐœ๋ฐœ ๋ฐ ์‹คํ–‰ ์‹œ ํ•„์š”ํ•œ library๋“ค์„ ์›๊ฒฉ์ง€๋กœ๋ถ€ํ„ฐ ์ž๋™์œผ๋กœ local ์‹œ์Šคํ…œ์— ๋‹ค์šด๋กœ๋“œ

MVC

  • Model - View - Contorller
  • ํ™”๋ฉด๊ณผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ๋ถ„๋ฆฌํ•ด ์ฝ”๋“œ ๊ฐ„์˜ ์ข…์†์„ฑ์„ ์ค„์ด๊ณ  ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ์—ญํ• ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•จ
  • ๋‹จ์ˆœํ•˜๊ณ  ์ง๊ด€์ 
  • ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ด, ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์ด ์ฆ๊ฐ€
Model
- ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์˜์—ญ
- ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๋™, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ตฌ์„ฑ
- View์™€ Controller์— ์˜์กดํ•˜์ง€ ์•Š์•„์•ผ ํ•จ

View
- ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ํ™”๋ฉด, UI
- ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์ •๋ณด ๊ฐฑ์‹ 
- Model, Controller์™€์˜ ์ข…์†์„ฑ ์—†์ด ๊ตฌํ˜„

Controller
- MVC ํŒจํ„ด์˜ ํ•ต์‹ฌ!! ์‚ฌ์šฉ์ž ์š”์ฒญ์˜ ์ค‘์‹ฌ
- ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ต ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ชจ๋ธ๊ณผ ๋ทฐ๋ฅผ ์กฐ์ •

CRUD

  • ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ฐ€์ง€๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ
Create
- ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
- SQL์˜ ๊ด€์ ์—์„œ INSERT

Read
- ๋ฐ์ดํ„ฐ ์กฐํšŒ (๊ฒ€์ƒ‰, ์งˆ์˜)
- SELECT

Update
- ๋ฐ์ดํ„ฐ ์ˆ˜์ •

Delete
- ๋ฐ์ดํ„ฐ ์‚ญ์ œ

 


Java ์ปดํŒŒ์ผ ๊ณผ์ •

  1. ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ (.java) ์ž‘์„ฑ
  2. ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋ฐ” ์†Œ์ŠคํŒŒ์ผ(.class) ์ปดํŒŒ์ผ, ์ž๋ฐ” byte-code ํŒŒ์ผ๋กœ ์ปดํ“จํ„ฐ๊ฐ€ ์ฝ์„ ์ˆ˜ ์—†๋Š” ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์ด ์ดํ•ด๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ
  3. ์ปดํŒŒ์ผ๋œ byte-code๋ฅผ JVM์˜ class loader์— ์ „๋‹ฌ
  4. Class loader๋Š” ๋™์  ๋กœ๋”ฉ์„ ํ†ตํ•ด ํ•„์š”ํ•œ ํด๋ž˜์Šค๋“ค์„ ๋กœ๋”ฉ ๋ฐ ๋งํฌํ•ด ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ ์˜์—ญ, JVM์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆผ
  5. ์‹คํ–‰ ์—”์ง„์ด JVM์— ์˜ฌ๋ผ์˜จ byte-code๋ฅผ ๋ช…๋ น์–ด ๋‹จ์œ„๋กœ ํ•˜๋‚˜์”ฉ ์‹คํ–‰

JAVA ๋ฌธ๋ฒ•

์ƒ์„ฑ์ž(Constructor)

  • ํŠน์ • ๋ฐ์ดํ„ฐ๋กœ ๊ฐ์ฒด ์ƒ์„ฑ, class ๊ธฐ๋ฐ˜ ๊ฐ์ฒด ์ƒ์„ฑ์‹œ ํ˜ธ์ถœ๋˜๋Š” ํ•„์ˆ˜ ์š”์†Œ
class Customer{ // ํด๋ž˜์Šค

	// ๊ธฐ๋ณธ ์ƒ์„ฑ์ž
    Customer(){ //๊ตฌํ˜„
    }
    
}

// ํ˜ธ์ถœ
new Customer();

 


for๋ฌธ

for๋ฌธ์€ ๋ชจ๋“  ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์ด ํก์‚ฌ

public void test(){
	for(int i = 0; i<5; i++){
    	System.out.println(i);
    }
}

for each๋ฌธ

for(type ๋ณ€์ˆ˜๋ช…:iterate){
	// ์‹คํ–‰ํ•  ๋ถ€๋ถ„
}

String[] nums = {"one", "two", "three"};
for(String number: nums){
	System.out.println(number);
}

// one
// two
// three

๋ฐฐ์—ด

  • ๋ฌด์กฐ๊ฑด ๊ฐ์ฒด ํƒ€์ž…, ๊ธฐ๋ณธ ํƒ€์ž…, ์ฐธ์กฐ ํƒ€์ž… ๋‘˜ ๋‹ค ์ƒ์„ฑ ๊ฐ€๋Šฅ
    • ๊ธฐ๋ณธ ํƒ€์ž… : char, boolean, float, double, byte, short, int, long
  • ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋ช…์œผ๋กœ ๊ด€๋ฆฌ, ๊ฐ๊ฐ€์˜ ๋ฐ์ดํ„ฐ ๊ตฌ๋ถ„์€ index๋กœ
  • ๋ฐฐ์—ด ๊ธธ์ด์˜ ๊ฐ’์„ ๋ณด์œ ํ•œ length ์ž๋™ ์ƒ์„ฑ
Customer [] custs = { // ์ฐธ์กฐ ํƒ€์ž…์œผ๋กœ Customer ๊ฐ์ฒด๋“ค์„ ์›์†Œ๋กœ ๊ฐ€์ง„ ๋ฐฐ์—ด
	new Customer("์—ฐ์•„", 20);
	new Customer("๋™์—ฝ", 20);
	new Customer("์žฌ์„", 20);
};

์ถœ์ฒ˜.&nbsp;https://yaboong.github.io/java/2018/05/26/java-memory-management/#:~:text=Stack%20%EC%97%90%EB%8A%94%20heap%20%EC%98%81%EC%97%AD%EC%97%90,%EC%9D%98%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%93%A4%EC%9D%B4%20%ED%95%A0%EB%8B%B9%EB%90%9C%EB%8B%A4

 

Stack

  • heap ์˜์—ญ์— ์ƒ์„ฑ๋œ Object ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ์˜ ์ฐธ์กฐ๊ฐ’ ํ• ๋‹น
  • ์›์‹œ ํƒ€์ž…(byte, short, int, long, double, float, boolean, char) ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ’๊ณผ ํ•จ๊ป˜ ํ• ๋‹น
  • ์ง€์—ญ ๋ณ€์ˆ˜๋“ค์€ scope์— ๋”ฐ๋ฅธ visibility๋ฅผ ๊ฐ€์ง
  • ๊ฐ Thread๋Š” ์ž์‹ ๋งŒ์˜ stack์„ ๊ฐ€์ง

 

Heap

  • ๊ธด ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ์ €์žฅ
  • ์• ํ”Œ๋ฆฌ์ผ€๋‹ˆ์…˜์˜ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ์ค‘ stack์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•œ ๋ถ€๋ถ„
  • ๋ชจ๋“  Object ํƒ€์ž…(Integer, String, ArrayList, ..)์€ heap ์˜์—ญ์— ์ƒ์„ฑ
  • ๋ช‡ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์กด์žฌํ•˜๋“  ์ƒ๊ด€์—†์ด ๋‹จ ํ•˜๋‚˜์˜ heap ์˜์—ญ๋งŒ ์กด์žฌ
  • Heap ์˜์—ญ์— ์žˆ๋Š” Object๋“ค์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜๊ฐ€ stack์— ์˜ฌ๋ผ๊ฐ

์ƒ์†

  • ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์†
  • ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ private ์ ‘๊ทผ ์ œํ•œ์„ ๊ฐ–๋Š” ํ•„๋“œ ๋ฐ ๋ฉ”์†Œ๋“œ๋Š” ์ž์‹์ด ๋ฌผ๋ ค๋ฐ›์„ ์ˆ˜ ์—†์Œ
  • ๋ถ€๋ชจ์™€ ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์žˆ๋‹ค๋ฉด ๋ถ€๋ชจ์˜ default ์ ‘๊ทผ ์ œํ•œ์„ ๊ฐ–๋Š” ํ•„๋“œ ๋ฐ ๋ฉ”์†Œ๋“œ๋„ ์ž์‹์ด ๋ฌผ๋ ค๋ฐ›์„ ์ˆ˜ ์—†์Œ
class Person{ // ๋ถ€๋ชจ ํด๋ž˜์Šค
    String name;
    
    public void printName(String name){
    	this.name = name;
    	System.out.println("name : " + this;name);
    }
}

class Student extends People{ // ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” ์ž์‹ ํด๋ž˜์Šค
    int score;
    
    // ์ƒ์„ฑ์ž(Contructor)
    Student(String name, int scort){
    	this.name = name;
        this.score = score;
    }
    
    void printName(){
    	System.out.println("my name is " + this.name)
    }
    
    public void printScore(){
    	System.out.println("score : " + score);
    }
}

public class Main{

    public static void main(String[] arge){
        Student student = new Student("์ฑ„์ฑ„", 90);
        student.printName(); // ๋ถ€๋ชจ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ
        student.printScore(); // ์ž์‹ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ
    }
}
  • ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด๋ฅผ ์ž์‹ ํด๋ž˜์Šค์˜ ์ž๋ฃŒํ˜•์œผ๋กœ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
People people = new Student(); // Student is People (O)

Student student = new People(); // People is Student (X), ์ปดํŒŒ์ผ ์˜ค๋ฅ˜

ArrayList

  • ์ž๋ฐ”์˜ List ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜
  • ์ผ๋ฐ˜ ๋ฐฐ์—ด๊ณผ ๋™์ผํ•˜๊ฒŒ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๊ณ  index 0๋ถ€ํ„ฐ ์‹œ์ž‘
  • ๋ฐฐ์—ด์€ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •์ด์ง€๋งŒ ArratList๋Š” ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋ณ€์ ์œผ๋กœ ๋ณ€ํ•จ
import java.util.ArrayList // importํ•ด์„œ ์‚ฌ์šฉ

// ArrayList ์ƒ์„ฑ
ArrayList<Integer> i1 = new ArrayList<Integer>(); // ํƒ€์ž… ์ง€์ •
ArrayList<Integer> i2 = new ArrayList<>(); // ํƒ€์ž… ์ƒ๋žต ๊ฐ€๋Šฅ
ArrayList<Integer> i3 = new ArrayList<>(10); // ์ดˆ๊ธฐ ์šฉ๋Ÿ‰(Capacity) ์„ค์ •
ArrayList<Integer> i4 = new ArrayList<>(integers1); // ๋‹ค๋ฅธ Collection๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”
ArrayList<Integer> i5 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5)); // Arrays.asList()

 

import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        ArrayList<String> colors = new ArrayList<>();
        
        // ๊ฐ’ ์ถ”๊ฐ€ add()
        colors.add("Black");
        colors.add("White");
        colors.add(0, "Green"); // index ์ง€์ •, ํ•ด๋‹น index์— ๊ฐ’ ์ถ”๊ฐ€, ๊ทธ ๋’ค index์˜ ๊ฐ’์€ 1์นธ ๋ฐ€๋ฆผ

        // ๊ฐ’ ๋ณ€๊ฒฝ set()
        colors.set(0, "Blue");

        System.out.println(colors); // [Blue, Black, White]
        
        
        // ๊ฐ’ ์‚ญ์ œ remove()
        String removedColor = colors.remove(0); // index๋กœ ์‚ญ์ œ
        colors.remove("White"); // ๊ฐ’์œผ๋กœ ์‚ญ์ œ
        
        System.out.println(colors); // [Black]
        
        
        // for-each loop
        for (String color : colors) {
            System.out.print(color + "  ");
        }
        

        // for loop
        for (int i = 0; i < colors.size(); ++i) {
            System.out.print(colors.get(i) + "  ");
        }
        

        // iterator ์‚ฌ์šฉ
        Iterator<String> iterator = colors.iterator();
        while (iterator.hasNext()) {
            System.out.print(iterator.next() + "  ");
        }
    }
}

 

 

๐Ÿง  ํšŒ๊ณ 

์ฒซ๋‚  ๋ฐ›์€ ๊ท€์—ฌ์šด ์ฝ”์ฝ”ํ˜ธ๋„

์Œ, ์ •๋ง์ •๋ง ํ”ผ๊ณคํ•œ ํ•œ์ฃผ์˜€๋‹ค.
๋‚˜์˜ ์ฒด๋ ฅ์˜ ํ•œ๊ณ„๋ฅผ ๋Š๋‚€ ๊ธฐ๋ถ„์ด๋ž„๊นŒ?
๊ฑด๊ฐ• ๊ด€๋ฆฌ์˜ ์ค‘์š”์„ฑ, ์šด๋™์˜ ์ค‘์š”์„ฑ์„ ๋Š๊ผˆ๋‹ค. ์ทจ์—…ํ•˜๋ฉด ์šด๋™ํ•ด์•ผ๊ฒŸ์„œ,,,
์ƒˆ๋กœ์šด๊ฑฐ(?)๋ฅผ ๋ฐฐ์šฐ๋Š” ๊ธฐ๋ถ„์€ ์–ธ์ œ๋‚˜ ์กฐ๊ธˆ ์งœ๋ฆฟํ•˜๋‹ค! 2ํ•™๋…„์ด ๋งˆ์ง€๋ง‰์ด๊ณ  ๊ธฐ์–ต ํ•˜๋‚˜๋„ ์•ˆ๋‚˜๋‹ˆ๊นŒ ์ƒˆ๋กœ์šด๊ฑฐ ๋งž์ง€
์ž๋ฐ”๋Š” ์ •๋ง ๋งค๋ ฅ์ ์ธ(?) ์–ธ์–ด๋ผ๊ณ  ์ด์ œ ์กฐ๊ธˆ ๋Š๊ปด์ง„๋‹ค. ๊ฐ•์‚ฌ๋‹˜์ด ์ •๋ง ์ž˜ ๊ฐ€๋ฅด์ณ์ฃผ์‹ ๋‹ค. (๊ต์ˆ˜๋‹˜ ์ฃ„์†กํ•ด์š”)
์–ผ๋ฅธ ์ƒˆ๋กœ์šด๊ฒƒ๋„ ๋ฐฐ์šฐ๊ณ  ํ”„๋กœ์ ํŠธ ํ•ด๋ณด๊ณ ์‹ถ๋‹ค! ใ…Ž....

 

๐Ÿ‘Š๐Ÿป 2์ฃผ์ฐจ ๊ณ„ํš

  1. ๋ฉด์ ‘ ์ž˜ ๋ณด๊ธฐ
  2. ์‹ค์Šตํ•œ๊ฑฐ ๊นƒ์— ์˜ฌ๋ฆฌ๊ธฐ
  3. ๋งฅ๋ถ์— ์ž๋ฐ” ํ™˜๊ฒฝ์„ค์ • ํ•˜๊ธฐ
  4. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ๋งค์ผ๋งค์ผ ํ’€๊ธฐ
  5. ์ˆ˜์—… ๋๋‚˜๊ณ  ๊ณต๋ถ€ํ•˜๋‹ค ์ง‘ ๊ฐ€๊ธฐ
  6. ์•„์นจ ์ฑ™๊ฒจ๋จน๊ณ  ๊ฐ„์‹ ์•ˆ๋จน๊ธฐ
  7. CS ๊ณต๋ถ€ ์‹œ์ž‘ํ•˜๊ธฐ