μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

πŸ“ 우리 FISA ν΄λΌμš°λ“œμ—”μ§€λ‹ˆμ–΄λ§ 4μ£Όμ°¨ 기둝

ν΄λ‘œμ΄πŸ“ 2023. 12. 17. 11:45

눈 λ”± λœ¨λ‹ˆκΉŒ

4μ£Όκ°€ μ§€λ‚˜κ°”λ‹€....

 

띠용...

λˆ„λ ‡μ§€ μ•Šμ§€λ§Œ μ˜€λŠ˜λ„ λˆ„λ ‡κ²Œ λ‚˜μ˜¨ κ°•μ˜μ‹€

πŸ“‹ μˆ˜μ—… 기둝

βœ”οΈ enum

λ³΄ν†΅μ˜ μƒμˆ˜ μ •μ˜λŠ” final static String κ³Ό 같은 λ°©μ‹μœΌλ‘œ 함 but, 이 λ°©λ²•μ—λŠ” λ‹€μ–‘ν•œ λ¬Έμ œκ°€ λ°œμƒν•¨
-> μžλ°” 1.5 버전뢀터 μΆ”κ°€λœ Enum μ‚¬μš©

 

πŸ‘ μž₯점

  1. μ½”λ“œκ°€ λ‹¨μˆœν•΄μ§€κ³  가독성이 쒋아짐
  2. μΈμŠ€ν„΄μŠ€ 생성과 상속을 방지해 μƒμˆ˜κ°’μ˜ νƒ€μž… μ•ˆμ •μ„±μ΄ 보μž₯됨
  3. enum classλ₯Ό μ‚¬μš©ν•΄ μƒˆλ‘œμš΄ μƒμˆ˜λ“€μ˜ νƒ€μž…μ„ μ •μ˜ν•¨μœΌλ‘œ μ •μ˜ν•œ νƒ€μž… μ΄μ™Έμ˜ νƒ€μž…μ„ 가진 데이터 값을 μ»΄νŒŒμΌμ‹œ 체크
  4. ν‚€μ›Œλ“œ enum을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— κ΅¬ν˜„μ˜ μ˜λ„κ°€ μ—΄κ±°μž„μ„ λΆ„λͺ…ν•˜κ²Œ μ•Œ 수 있음
// κ³„μ ˆ μ—΄κ±° νƒ€μž…
enum Season {
    Spring,
    Summer,
    Autumn,
    Winter
}

 

// μ°Έμ‘° 방식
// μ—΄κ±°νƒ€μž… λ³€μˆ˜ = μ—΄κ±°νƒ€μž….μ—΄κ±°μƒμˆ˜;
Season spring = Season.Spring

 

  • enum은 primitive νƒ€μž…μ΄ μ•„λ‹Œ reference νƒ€μž…μœΌλ‘œ λΆ„λ₯˜λ¨
  • enum의 μƒμˆ˜κ°’μ€ heap μ˜μ—­μ— μ €μž₯됨

 

βœ”οΈ λžŒλ‹€μ‹

ν”„λ‘œκ·Έλž˜λ° μ•ˆμ—μ„œ 읡λͺ…ν•¨μˆ˜λ₯Ό μ§€μΉ­ν•˜λŠ” μš©μ–΄
읡λͺ… ν•¨μˆ˜? -> 이름을 κ°€μ§ˆ ν•„μš”κ°€ μ—†μŒ

 

πŸ‘ μž₯점

  1. μ½”λ“œμ˜ κ°„κ²°μ„± : λΆˆν•„μš”ν•œ 반볡문 μ‚­μ œ, λ³΅μž‘ν•œ 식 λ‹¨μˆœν•˜κ²Œ ν‘œν˜„ κ°€λŠ₯
  2. 지연연산 μˆ˜ν–‰ : λΆˆν•„μš”ν•œ μ—°μ‚° μ΅œμ†Œν™”
  3. 병렬 처리 κ°€λŠ₯ : λ©€ν‹°μ“°λ ˆλ“œλ₯Ό ν™œμš©ν•΄ λ³‘λ ¬μ²˜λ¦¬ μ‚¬μš© κ°€λŠ₯

 

πŸ‘Ž 단점

  1. 호좜이 κΉŒλ‹€λ‘œμ›€
  2. λžŒλ‹€ stream μ‚¬μš© μ‹œ λ‹¨μˆœ forλ¬Έ, whileλ¬Έ μ‚¬μš© μ‹œ μ„±λŠ₯ μ €ν•˜
  3. λΆˆν•„μš”ν•˜κ²Œ λ‚¨μš©ν•˜λ©΄ 가독성 μ €ν•˜
interface MyFunction{ // ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€
	int calc(int x, int y); // λžŒλ‹€μ‹μœΌλ‘œ κ΅¬ν˜„ν•  좔상 λ©”μ†Œλ“œ
}

public class LambdaFuc{
	public static void main(String[] args){
    	MyFunction add = (x, y) -> {return x + y};
        MyFunction minus = (x, y) -> x - y;
        
        System.out.println(add.calc(1, 2));
        System.out.println(minus.calc(1, 2));
    }
}

βœ”οΈ Stream

Java8λΆ€ν„° μ§€μ›ν•˜λŠ” κΈ°λŠ₯, μ»¬λ ‰μ…˜μ— μ €μž₯λ˜μ–΄ μžˆλŠ” μ—˜λ¦¬λ¨ΌνŠΈλ“€μ„ ν•˜λ‚˜μ”© μˆœνšŒν•˜λ©΄μ„œ μ²˜λ¦¬ν•  수 μžˆλŠ” μ½”λ“œ νŒ¨ν„΄
λžŒλ‹€μ‹κ³Ό ν•¨κ»˜ μ‚¬μš©λ˜μ–΄ μ»¬λ ‰μ…˜μ— λ“€μ–΄μžˆλŠ” 데이터 처리λ₯Ό κ°„κ²°ν•˜κ²Œ ν•  수 있음

 

-> forEach문 이용

ArrayList<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c"));

for (String value : list) {

        if (StringUtils.equals(value, "b") {
        System.out.println("κ°’ : " + value);
    }
}

 

-> stream μ‚¬μš©

ArrayList<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c"));
list.stream().filter("b"::equals).forEach(System.out::println);

βœ”οΈ DAO (Data Access Object)

DB의 데이터에 μ ‘κ·Όν•˜κΈ° μœ„ν•œ 객체, MVC νŒ¨ν„΄μ˜ Modelμ—μ„œ μˆ˜ν–‰
DB에 μ ‘κ·Όν•˜κΈ° μœ„ν•œ λ‘œμ§μ„ λΆ„λ¦¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©, 직접 DB에 μ ‘κ·Όν•΄ dataλ₯Ό μ‚½μž…, μ‚­μ œ, 쑰회 λ“±

 

βœ”οΈ DTO (Data Transfer Object)

계측 κ°„(Controlelr, View, Business Layer) 데이터 κ΅ν™˜μ„ μœ„ν•œ Java Beanλ₯Ό μ˜λ―Έν•¨
λ‘œμ§μ„ 갖지 μ•Šμ€ 데이터 κ°μ²΄μ΄λ©΄μ„œ getter, setter λ“±μ˜ λ©”μ†Œλ“œλ§Œ 가진 클래슀

βœ”οΈ JPA

JPAλŠ” 일단 링크둜 λŒ€μ²΄ν•˜κ² μ–΄,,,,
 

[Spring JPA] JPA λž€?

이번 κΈ€μ—μ„œλŠ” JPA(Java Persistence API)κ°€ 무엇인지 μ•Œμ•„λ³΄λ €κ³ ν•œλ‹€. JPAλŠ” μžλ°” μ§„μ˜μ—μ„œ ORM(Object-Relational Mapping) 기술 ν‘œμ€€μœΌλ‘œ μ‚¬μš©λ˜λŠ” μΈν„°νŽ˜μ΄μŠ€μ˜ λͺ¨μŒμ΄λ‹€. κ·Έ 말은 즉, μ‹€μ œμ μœΌλ‘œ κ΅¬ν˜„λœκ²ƒμ΄

dbjh.tistory.com

 

🧠 회고

 

μ•„
μ΄μ œλŠ” μ§„μ§œμ§„μ§œμ§„μ§œμ§μ§œ 간식 ν•˜~~~~~~~~~~~~~~~~λ‚˜λ„ μ•ˆλ¨Ήμ–΄μ•Όμ§€
μ΄λ ‡κ²Œ κ±°ν•˜κ²Œ 맀일맀일 λ¨ΉλŠ”κ²ƒλ„ 이제 끝이닀! λ‹€μŒμ£ΌλΆ€ν„°λŠ” μ•ˆκ·ΈλŸ΄κ±°μ•Ό
μ™œμΈμ§€ λͺ¨λ₯΄μ§€λ§Œ μ •μ‹ μ—†λŠ” μΌμ£ΌμΌμ΄μ—ˆλ‹€.
일단 진도가 λ„ˆλ¬΄ 빨랐고 λ„ˆλ¬΄ μ–΄λ €μ› λ‹€γ… γ… γ…œγ… γ…œγ… γ…œ
λŒ€μ²΄ λ‹€λ₯Έ μ‚¬λžŒλ“€ μ–΄λ–»κ²Œ λ”°λΌκ°€λŠ”κ±°μ§€? λ‹€λ“€ 무슨 μžλ°” λ§ˆμŠ€ν„°μΈκ°€...? 휴;;
μ „κ³΅μž 체면 ꡬ기지 μ•Šκ²Œ 더 μ—΄μ‹¬νžˆ ν•΄μ•Όκ² λ‹€!!! 물둠기말 λλ‚˜κ³ , ν•œμž μ‹œν—˜λ„ λλ‚˜κ³ ^^

 

πŸ‘ŠπŸ» 2μ£Όμ°¨ κ³„νš

γ…Žγ……λž‘ μ‚¬μ΄μ’‹κ²Œ

 

  1. ꡐ양 기말 κ³΅λΆ€ν•˜κΈ°
  2. ν•œμž κ³΅λΆ€ν•˜κΈ°
  3. 간식 μ§„μ§œ ν•˜λ‚˜λ„ μ•ˆλ¨ΉκΈ°
  4. μ•Œκ³ λ¦¬μ¦˜ 문제 ν’€κΈ°