Java

์Šคํ„ฐ๋”” ํ• ๋ž˜ 12์ฃผ์ฐจ ๊ณผ์ œ: ์• ๋…ธํ…Œ์ด์…˜(ํ”ผ๋“œ๋ฐฑ, feedback)

2021. 2. 14. 23:31

๐Ÿ“– ์ฑ… ์ถ”์ฒœ

์•„์›ƒ๋ผ์ด์–ด

 

๋ถ€์˜ ์ถ”์›”์ฐจ์„ 

 

์• ๋…ธํ…Œ์ด์…˜์€ ์ฃผ์„์ด๋‹ค. ์™„์ „ ์ฃผ์„๊ณผ ๊ฐ™์ง€ ์•Š์ง€๋งŒ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

์• ๋…ธํ…Œ์ด์…˜์€ ์ •์ ์ธ ๊ฐ’์œผ๋กœ ๋ฐ–์— ๋ชป์“ด๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋Š” ๋™์ ์ด๋ฏ€๋กœ ์—๋Ÿฌ ๋ฐœ์ƒ

 

์ •์ ์œผ๋กœ ๋ฐ”๋€Œ๋‹ˆ ์—๋Ÿฌ ํ•ด์†Œ

 

RetentionPolicy์˜ 3๊ฐ€์ง€

SOURCE -> CLASS -> RUNTIME

SOURCE : ์†Œ์Šค์ฝ”๋“œ์—๋งŒ ์œ ์ง€, ์ปดํŒŒ์ผํ•˜๊ณ  ๋‚˜๋ฉด ์• ๋…ธํ…Œ์ด์…˜์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์—†์–ด์ง„๋‹ค. (๋ฐ”์ดํŠธ์ฝ”๋“œ์— ๋‚จ์•„์žˆ์ง€ ์•Š๋Š”๋‹ค)

 

CLASS : ์• ๋…ธํ…Œ์ด์…˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ”์ดํŠธ์ฝ”๋“œ์—๋„ ๋‚จ๊ฒจ ๋†“๊ฒ ๋‹ค. (.classํŒŒ์ผ์—๋„ ๋‚จ๊ฒจ ๋†“๊ฒ ๋‹ค.)

๋ฐ”์ดํŠธ ๋ฒ„๋””๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด classํŒŒ์ผ์˜ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์ถ”์ถœํ•ด์„œ ๋ฆฌํ”Œ๋ ‰์…˜์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค

 

RUNTIME : RUNTIME๊นŒ์ง€ ์œ ์ง€ํ•˜๊ฒ ๋‹ค. (๋ฆฌํ”Œ๋ ‰์…˜์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. -> RUNTIME ์ค‘์— ํด๋ž˜์Šค ์ •๋ณด๋ฅผ ๊บผ๋‚ด์„œ ๋ณด๊ฒ ๋‹ค.)

๋ฆฌํ”Œ๋ ‰์…˜ ์ฝ”๋“œ

public class HelloMain {
    public static void main(String[] args) {
        Annotation[] annotations =
                HelloController.class.getAnnotations();

        for (Annotation annotation : annotations) {
            System.out.println(annotation);
        }
    }
}

 

HelloController.java

@Hello
@RestController
public class HelloController {

    private static final String hello= "hello";

    @GetMapping(hello)
    public String hello() {
        return "hello";
    }

}

 

Hello.java

@Retention(RetentionPolicy.RUNTIME)
public @interface Hello {
}

 

getAnnotations() vs getDeclaredAnnotations()

getAnnotations() : @Inherited ๋ถ™์€ ๊ฒƒ๊นŒ์ง€ ๊ฐ€์ ธ์˜จ๋‹ค

getDeclaredAnnotations() : ๊ทธ ํด๋ž˜์Šค์— ์ •์˜๋œ ๊ฒƒ๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค.

getFields() vs getDeclaredFields()

 

๊ฒฐ๊ณผ

 

Mockito๊ฐ€ javadoc์„ ํ™œ์šฉํ•ด์„œ ๋ฌธ์„œํ™”ํ–ˆ๋‹ค.

 

ServiceLoader

ํŠน์ • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ์—ฌ๋Ÿฌ jarํŒŒ์ผ ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ, ServiceLoader๋ฅผ ์ด์šฉํ•˜๋ฉด jarํŒŒ์ผ๋งŒ ๋ฐ”๊พธ๋ฉด์„œ ๊ฐ๊ฐ์˜ ๊ตฌํ˜„์ฒด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค

 

@FunctionalInterface

ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์ž„์„ ๋งˆํ‚นํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜

 

'Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์Šคํ„ฐ๋”” ํ• ๋ž˜ 14์ฃผ์ฐจ ๊ณผ์ œ: ์ œ๋„ค๋ฆญ(feedback, ํ”ผ๋“œ๋ฐฑ)  (0) 2021.02.28
์Šคํ„ฐ๋””ํ• ๋ž˜ 12์ฃผ์ฐจ ๊ณผ์ œ: ์• ๋…ธํ…Œ์ด์…˜  (0) 2021.02.28
์Šคํ„ฐ๋””ํ• ๋ž˜ 11์ฃผ์ฐจ ๊ณผ์ œ: Enum(feedback, ํ”ผ๋“œ๋ฐฑ)  (0) 2021.02.13
11์ฃผ์ฐจ ๊ณผ์ œ: Enum  (0) 2021.02.13
์Šคํ„ฐ๋””ํ• ๋ž˜ 10์ฃผ์ฐจ ๊ณผ์ œ: ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (feeback, ํ”ผ๋“œ๋ฐฑ)  (0) 2021.02.12
'Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ์Šคํ„ฐ๋”” ํ• ๋ž˜ 14์ฃผ์ฐจ ๊ณผ์ œ: ์ œ๋„ค๋ฆญ(feedback, ํ”ผ๋“œ๋ฐฑ)
  • ์Šคํ„ฐ๋””ํ• ๋ž˜ 12์ฃผ์ฐจ ๊ณผ์ œ: ์• ๋…ธํ…Œ์ด์…˜
  • ์Šคํ„ฐ๋””ํ• ๋ž˜ 11์ฃผ์ฐจ ๊ณผ์ œ: Enum(feedback, ํ”ผ๋“œ๋ฐฑ)
  • 11์ฃผ์ฐจ ๊ณผ์ œ: Enum
ํ–ฅ์ฐก
ํ–ฅ์ฐก
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž
Dev Story๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž
ํ–ฅ์ฐก
Dev Story
ํ–ฅ์ฐก
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
    • Java (42)
      • design pattern (7)
      • JavaCafe Study (4)
    • Kotlin (2)
    • Spring (4)
    • TypeScript (1)
    • DevOps (2)
      • AWS (1)
    • DB (4)
      • Real Mysql (2)
      • Redis (1)
    • OS (3)
      • Linux (3)
    • Algorithm (7)
    • Clean Code (1)
    • Git (5)
    • ํ™˜๊ฒฝ ์„ค์ • (2)
    • ๊ทธ๋ƒฅ ์ƒ๊ฐ (1)
    • ์„œํ‰ (12)
      • ํ•œ๋น›๋ฏธ๋””์–ด, ๋‚˜๋Š”๋ฆฌ๋ทฐ์–ด๋‹ค 2022 (4)
    • ์„ธ๋ฏธ๋‚˜ (11)
    • ๊ธฐํƒ€ (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • java #study
  • ์ธํ”„๋Ÿฐ
  • ์Šคํ„ฐ๋””
  • Kotlin
  • LeetCode
  • ์Šคํ„ฐ๋””ํ• ๋ž˜
  • ์ œ์ดํŽ
  • ์Šคํ„ฐ๋””์˜ฌ๋ž˜
  • ํŒŒ์ด์ฌ
  • Real MySQL
  • ์ฝ”๋”ฉ์ž๊ฒฉ์ฆ
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • ์ž๋ฐ”์Šคํ„ฐ๋””
  • ์ž๋ฐ”
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
  • ๋ฐฑ๊ธฐ์„ 
  • java
  • ์ž๋ฐ”์นดํŽ˜
  • ๋ฐฑ์ค€
  • ์ฝ”๋”ฉ๊ต์œก
  • ํŒจ์ŠคํŠธ์บ ํผ์Šคํ›„๊ธฐ
  • ๊นƒ #๊นƒํ—ˆ๋ธŒ
  • ํŒจ์ŠคํŠธ์บ ํผ์Šค
  • ํŒจ์บ 
  • git #github #doit #ํ˜•์ƒ๊ด€๋ฆฌ
  • ์œ ์Šค์ฝ˜
  • fastcampus
  • OKKY
  • ํ•œ๋น›๋ฏธ๋””์–ด

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
ํ–ฅ์ฐก
์Šคํ„ฐ๋”” ํ• ๋ž˜ 12์ฃผ์ฐจ ๊ณผ์ œ: ์• ๋…ธํ…Œ์ด์…˜(ํ”ผ๋“œ๋ฐฑ, feedback)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.