์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ] ์‹ค๊ธฐ _ ์ถœ์ œ ์˜ˆ์ƒ ๊ฐœ๋… ์ „์ฒด ์š”์  ์ •๋ฆฌ 1

๊ฐœ๋ฐœ์ž์—ด๋ฌด 2023. 4. 13. 12:50
๋ฐ˜์‘ํ˜•

* 2020๋…„ 1~4ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ ๋ฐ ํ•„๊ธฐ ๋ฌธ์ œ ๊ธฐ๋ฐ˜์œผ๋กœ ์ถœ์ œ ์˜ˆ์ƒ ๊ฐœ๋… ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

โœ‹ 1. ๋ฐ˜๋ณต๋ฌธ (for / while - ๋ฒ”์œ„ ๋ฐ˜๋ณต)

# ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.
# include <stdio.h>

void main()
{
	int i = 0, c = 0;
	while (i < 10) {
		i++;
		c *= i;
	}
	printf("%d", c);
}

๐Ÿ’ก i ๊ฐ€ 0๋ถ€ํ„ฐ i < 10 ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋™์•ˆ, while ๋ฌธ ์•ˆ์˜ ๋ฌธ์žฅ์„ ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰

    i++      →   i = i + 1 

    c *= i  →  c = c * i    (๊ฒฐ๊ณผ์ ์œผ๋กœ, 0 * 1 ์˜ ๊ฒฐ๊ณผ์ธ 0์ด ๋‹ค์‹œ c๊ฐ€ ๋œ๋‹ค.)

   while ๋ฌธ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€์„œ i ๋Š” ํ˜„์žฌ 1 ์ด๋ฏ€๋กœ while(i < 10) ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๊ณ  ๊ณ„์† ์‹คํ–‰๋œ๋‹ค.

   i++ ์‹คํ–‰ ์‹œ, i =2  / c *= i ์‹คํ–‰ ์‹œ, c = 0 * 2 = 0

   ์ด๋ ‡๊ฒŒ while ๋ฌธ์—์„œ i ๊ฐ€ 9๊นŒ์ง€๋งŒ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๊ณ  ์•„๋ฌด๋ฆฌ ๊ณฑํ•ด์„œ c๋Š” 0์ด ๋œ๋‹ค.

 

โœ‹ 2. ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž

# ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.
public class Exam{
	public static void main(String[] args) {
    	int i = 3, k = 1;
        switch(i) {
			case 1: k++;
			case 2: k += 3;	
			case 3: k = 0;
			case 4: k += 3;
			case 5: k -= 10;
			default: k--;
		}
	System.out.print(k);
	}
}

๐Ÿ’ก switch case ๋ฌธ์€ switch(๊ฐ’) ์ด ์žˆ์„ ๋•Œ, ๊ทธ ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” case ๋ฌธ์„ ์‹คํ–‰

   But, case ๋ฌธ ๋ฐ”๋กœ ๋‹ค์Œ break; ๋ฅผ ๋„ฃ์–ด์ฃผ์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋๊นŒ์ง€ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

   ์œ„์˜ ๋ฌธ์ œ์—์„œ ์ดˆ๊ธฐ๊ฐ’ i ๋Š” 3์ด์—ฌ์„œ,  case 3 ๋ถ€ํ„ฐ default ๊นŒ์ง€ ํ•œ๋ฒˆ์— ์ˆ˜ํ–‰ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—,

   k ๊ฐ€ 0์ด ๋˜์—ˆ๋‹ค๊ฐ€ +3์„ ํ–ˆ๋‹ค๊ฐ€ -1์„ ํ–ˆ์œผ๋ฏ€๋กœ ๋‹ต์€ -8

 

โœ‹ 3. ๋ฐฐ์—ด - ์ด์ฐจ์› ๋ฐฐ์—ด

# ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ธฐ ์œ„ํ•œ (1) (2) ์˜ ๊ฐ’์„ ์“ฐ์‹œ์˜ค.
public class Exam{
	public static void main(String[] args) {
    	int [][] array = new int[(1)][(2)];
        int n = 1;
        for (int i = 0; i < 3; i++) {
        	for (int j = 0; j < 5; j++) {
            	array[i][j] = j*3 + (i+1);
                System.out.print(array[i][j] + "");
            }
            System.out.println();
        }
    }
}

/* ์ถœ๋ ฅ ๊ฒฐ๊ณผ */
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15

๐Ÿ’ก '์ถœ๋ ฅ ๊ฒฐ๊ณผ' ๊ฐ€ 3ํ–‰ 5์—ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ,

    ๋‹ต์€  (1)  3, (2)  5

 

โœ‹ 4. ํฌ์ธํ„ฐ - C์–ธ์–ด

# ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.
int main() {
    char *p = "KOREA";
    printf("%s \n ", p);
    printf("%s \n ", p+3);
    printf("%c \n ", *p);
    printf("%c \n ", *(p+3));
    printf("%c ", *p+2);
}

๐Ÿ’ก %s - ๋ฌธ์ž์—ด ์ถœ๋ ฅ format (๋ฌธ์ž์—ด ๋งจ ๋๊นŒ์ง€ ์ถœ๋ ฅ)    ๐Ÿ‘‰ pointer ์ง€์ • ํ•„์š” (pointer์— *์„ ๋ถ™์—ฌ์„œ ๊ทธ ๊ฐ’์„ ๊บผ๋ƒ„)

    %c - ๋ฌธ์ž ์ถœ๋ ฅ (ํ•œ ๊ธ€์ž๋งŒ ์ถœ๋ ฅ)                               ๐Ÿ‘‰ pointer ๊ฐ€ ์•„๋‹Œ ๊ฐ’ ์ง€์ • ํ•„์š”

 

    ๋ฌธ์ž์—ด์ด๋‚˜ ๋ฐฐ์—ด์„ pointer๋กœ ์ทจ๊ธ‰ ์‹œ, ๊ทธ ์œ„์น˜๋Š” ํ•ญ์ƒ ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋œ๋‹ค.

   (๋ฌธ์ž์—ด - ๋งจ ์•ž ๊ธ€์ž  /  ๋ฐฐ์—ด - 0๋ฒˆ์งธ ์ธ๋ฑ์Šค)

 

   printf("%s \n", p);                 ๐Ÿ‘‰  ๋งจ ์ฒซ ๋ฌธ์ž๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋‹ค ์ถœ๋ ฅ   # KOREA

   printf("%s \n", p+3);             ๐Ÿ‘‰  ๋งจ ์ฒซ ๋ฌธ์ž๋ถ€ํ„ฐ 3์นธ ๋’ค๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋‹ค ์ถœ๋ ฅ   # EA

   printf("%c \n", *p);                ๐Ÿ‘‰  ๋งจ ์ฒซ ๋ฌธ์ž ์ถœ๋ ฅ   # K

   printf("%c \n", *(p+3));         ๐Ÿ‘‰  ๋งจ ์ฒซ ๋ฌธ์ž๋ถ€ํ„ฐ 3์นธ ๋’ค๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋‹ค ์ถœ๋ ฅ   # E

   printf("%c ", *p+2);              ๐Ÿ‘‰  ๋งจ ์ฒซ ๋ฌธ์ž(K, ASCII CODE = 107) + 2, ์•ŒํŒŒ๋ฒณ K์—์„œ 2์นธ ๋” ๋’ค๋กœ  # 

 

โœ‹ 5. JAVA ์ƒ์† - ํด๋ž˜์Šค / ๋ฉ”์†Œ๋“œ

# ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.
abstract class Vehicle {
    String name;
    abstract public String getName(String val);
    public Vehicle(String val) {
        this.name = val;
    }
    public String getName() {
        return “Vehicle name : “ + name;
    }
}

class Car extends Vehicle {
    public Car(String val) {
        super(val); // name = super.name = val;
    }
    public String getName(String val) { // ์˜ค๋ฒ„๋ผ์ด๋”ฉ
        return “Car name :  “ + val;
    }
    public String getName(byte val[]) { // ์˜ค๋ฒ„๋กœ๋”ฉ (์ด๋ฆ„ ๊ฐ™๊ณ  ํƒ€์ž… ๋‹ค๋ฆ„)
        return “Car name : ” + val;
    }
}

public class Exam {
    public static void main(String[] args) {
        Vehicle obj = new Car(“Spark”);
        System.out.println(obj.getName());
}

๐Ÿ’ก main ํ•จ์ˆ˜์—์„œ new๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์„ฑํ•  ๋•Œ,

    Vehicle obj = new Car("Spark") ์ด๋ฏ€๋กœ, class Vehicle ๋กœ ๋งŒ๋“  ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

    Vehicle ํ•จ์ˆ˜์˜ return ๊ฐ’์ธ “Vehicle name : “ + name; ํ˜•ํƒœ๋กœ ์‹คํ–‰๋œ๋‹ค.

    ๋‹ต์€ Vehicle name : Spark

 

โœ‹ 6. Python ๋ฌธ๋ฒ•

# ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.
>> asia = {‘ํ•œ๊ตญ’, ‘์ค‘๊ตญ’, ‘์ผ๋ณธ’}
>> asia.add(‘๋ฒ ํŠธ๋‚จ’)
>> asia.add(‘์ค‘๊ตญ’)
>> asia.remove(‘์ผ๋ณธ’)
>> asia.update([‘ํ™์ฝฉ, ‘ํ•œ๊ตญ’, ‘ํƒœ๊ตญ])
>> print(asia)

๐Ÿ’ก {} ์•ˆ์— ๊ฐ’๋“ค์ด ์žˆ์œผ๋ฏ€๋กœ Set ์ž๋ฃŒํ˜•              ๐Ÿ‘‰ ์ค‘๋ณต ์—†์ด ๊ฐ’๋“ค์„ ๋„ฃ๋Š” ์ž๋ฃŒํ˜•

    asia.add(‘๋ฒ ํŠธ๋‚จ’)                                          ๐Ÿ‘‰ asia = {'ํ•œ๊ตญ', '์ค‘๊ตญ', '์ผ๋ณธ'} ์—์„œ ๋ฒ ํŠธ๋‚จ์ด ์ถ”๊ฐ€

    asia.add(‘์ค‘๊ตญ’)                                              ๐Ÿ‘‰ asia = {'ํ•œ๊ตญ', '์ค‘๊ตญ', '์ผ๋ณธ', '๋ฒ ํŠธ๋‚จ'} ์— ์ค‘๊ตญ์ด ์žˆ์œผ๋ฏ€๋กœ ์ค‘๋ณต

    asia.remove(‘์ผ๋ณธ’)                                        ๐Ÿ‘‰ asia = {'ํ•œ๊ตญ', '์ค‘๊ตญ', '๋ฒ ํŠธ๋‚จ'}    * ์ผ๋ณธ์ด ์‚ญ์ œ๋œ ํ˜•ํƒœ

    asia.update([‘ํ™์ฝฉ, ‘ํ•œ๊ตญ’, ‘ํƒœ๊ตญ])                  ๐Ÿ‘‰ update ๋กœ ์—ฌ๋Ÿฌ๊ฐœ ๊ฐ’์„ ์ถ”๊ฐ€  /  ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๊ฐ’์ธ ํ™์ฝฉ, ํƒœ๊ตญ์ด ์ถ”๊ฐ€

 

    ๋‹ต: {‘ํ•œ๊ตญ’, ‘ํ™์ฝฉ’, ‘๋ฒ ํŠธ๋‚จ’, ‘ํƒœ๊ตญ’, ‘์ค‘๊ตญ’}

 

โœ‹ 7. Python ๋ฌธ๋ฒ•

# ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.
lol = [[1,2,3], [4,5], [6,7,8,9]]
print(lol[0])
print([2][1])
for sub in lol:
        for item in sub:
        print(item, end=" ")
        print()

๐Ÿ’ก print() ํ•จ์ˆ˜ - ๊ธฐ๋ณธ์ ์œผ๋กœ end (๋๋ถ€๋ถ„) ์„ ์—”ํ„ฐ๋กœ ์น˜๊ฒŒ ๋˜์–ด์žˆ์Œ.

    ๋”ฐ๋ผ์„œ, end = " " ๋กœ ๋ ๋ถ€๋ถ„์„ ๋„์–ด์“ฐ๊ธฐ๋กœ ํ•˜๊ฒ ๋‹ค๊ณ  ์ง€์ •ํ•˜์—ฌ ์˜†์œผ๋กœ ์ด์–ด์„œ ์ž๋ฃŒ ์ถœ๋ ฅ๋˜๋„๋ก ๋งŒ๋“ ๋‹ค.

 

   ๋‹ต : [1, 2, 3]

          7

          1 2 3

          4 5

          6 7 8 9

 

โœ‹ 8. ์š”๊ตฌ์‚ฌํ•ญ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ์ˆœ์„œ

๐Ÿ“ข ์ˆœ์„œ ๋‚˜์—ด ๋ฌธ์ œ ๋‚˜์˜ฌ ๊ฐ€๋Šฅ์„ฑ ↑

[ ๋„๋ถ„๋ช…ํ™• ]

๋„์ถœ (Elicitation) - ๋ถ„์„ (Analysis) - ๋ช…์„ธ (Specification) - ํ™•์ธ (Validation)

 

โœ‹ 9. UML ๊ด€๊ณ„

๐Ÿ“ข ๋‹จ๋‹ตํ˜• or ์•ฝ์ˆ ํ˜•

ํ•„๊ธฐ์—์„œ ์ข…์ข… ๊ทธ๋ฆผ์„ ์ฃผ๊ณ  ์ด ๋‘˜์˜ ๊ด€๊ณ„๊ฐ€ ์–ด๋–ค ๊ด€๊ณ„์ธ์ง€ ๋งž์ถ”๋„๋ก ํ•˜๋Š” ๋ฌธ์ œ ์ถœ์ œ  →  ์‹ค๊ธฐ์—์„œ๋„ ์ถœ์ œ ๊ฐ€๋Šฅ

 

์—ฐ๊ด€ (Association) ๊ด€๊ณ„  /  ์ง‘ํ•ฉ (Aggregation) ๊ด€๊ณ„  /  ํฌํ•จ (Composition) ๊ด€๊ณ„  /  ์ผ๋ฐ˜ํ™” (Generalization) ๊ด€๊ณ„  /

์˜์กด (Dependency) ๊ด€๊ณ„  /  ์‹ค์ฒดํ™” (Realization) ๊ด€๊ณ„

 

โœ‹ 10. ๊ตฌ์กฐ์  ๋‹ค์ด์–ด๊ทธ๋žจ

[ ํด๊ฐ์ปด๋ฐฐ๋ณตํŒจ ]

ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ  /  ๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ  /  ์ปดํฌ๋„ŒํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ  /  ๋ฐฐ์น˜ ๋‹ค์ด์–ด๊ทธ๋žจ  /

๋ณตํ•ฉ์ฒด ๊ตฌ์กฐ ๋‹ค์ด์–ด๊ทธ๋žจ  / ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ

 

* ์•„๋ž˜ ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ์ด๋ฆ„์„ ์“ฐ์‹œ์˜ค

๋‹ต : ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

 

** ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ (Class Diagram)

→ ํด๋ž˜์Šค์˜ ์†์„ฑ, ํ•จ์ˆ˜, ๋ณ€์ˆ˜ํƒ€์ž…๋“ค๋กœ ๊ตฌ์„ฑ๋œ ๋‹ค์ด์–ด๊ทธ๋žจ

 

โœ‹ 10 - 1. ๊ตฌ์กฐ์  ๋‹ค์ด์–ด๊ทธ๋žจ (ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ)

* ์•„๋ž˜ ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ์ด๋ฆ„์„ ์“ฐ์‹œ์˜ค

๋‹ต : ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ

 

** ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ (Package Diagram)

→ UML์˜ ๋‹ค์–‘ํ•œ ๋ชจ๋ธ์š”์†Œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ

 

โœ‹ 10 - 2. ๊ตฌ์กฐ์  ๋‹ค์ด์–ด๊ทธ๋žจ (๋‚˜๋จธ์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ ์ •๋ฆฌ)

** ๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ (Object Diagram)

→ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค, ๊ฐ’์ด ๋งค๊ฒจ์ง„ ํ–‰๋™์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋…๋ฆฝ๋œ ๊ฐ์ฒด์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ

 

** ์ปดํฌ๋„ŒํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ (Component Diagram)

→ ์ปดํฌ๋„ŒํŠธ๋ผ๋ฆฌ์˜ ๊ตฌ์กฐ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ

 

** ๋ฐฐ์น˜ ๋‹ค์ด์–ด๊ทธ๋žจ (Deployment Diagram)

→ ์†Œํ”„ํŠธ์›จ์–ด, ํ•˜๋“œ์›จ์–ด ๋“ฑ์„ ํฌํ•จํ•œ ์‹œ์Šคํ…œ์˜ ๋ฌผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ

 

๋ฐ˜์‘ํ˜•