보면 볼수록 매력적인 깽깽이풀입니다!! :-)깽깽이풀은 바람이 잘 통하는 반그늘에 심으세요.양지바른곳에 심으면 여름 햇빛에 잎이 마르는 현상이 올 수 있습니다.반그늘에 심어야 가을까지 푸른잎이 유지되고,씨앗도 채취할 수 있고, 포기도 커진답니다^^깽깽이풀은, 추위에 강해 전국 노지월동 가능합니다.4월에 개화하고 꽃이 진 다음에하트 모양의 잎이 나오는데 관상가치가 아주 좋습니다. 너무너무 아름답고 예쁜 꽃을 보실 수 있답니다!!번식은 씨앗과 포기 나누기로 할 수 있습니다.지금 올라오는 빠알간 싹은 잎이 아니고 꽃대로 잎보다 꽃이 먼저 핍니다.어렵게 구해왔어요!!수량이 적어 한정판매합니다!!노랑 꽃술은 아닙니다~~! <왜 하필 깽깽이?>전해지는 이야기에 따르면 이 ..
봄에 심으면 너무나 아름다운 칸나입니다!! :-)구근 하나를 심으면 계속 번식하여 한아름으로 성장하고여름부터 서리내리는 가을까지 계속적으로피고 지고를 반복하여 화려한 꽃을 즐기실 수 있습니다.키가 2m까지 자라고 꽃이 작은 재래종이 아니고,개량된 원예종 칸나라 키가 1m 내외로 아담하고,꽃송이가 크고 아름답습니다.클레오파트라는 꽃 한송이에 빨강과 노랑꽃이 함께 피고잎에 무늬가 들어가 관상용으로 좋습니다.서리가 내리기 전에 수확하여겨울에 얼지않고 마르지 않게 보관했다가봄에 심는 춘식구근입니다.넓은 정원이나 진입로에 심기 적합하답니다. ^^ ..

고수준 모듈(High-level Module)은 저수준 모듈(Low-level Module)에 의존해서는 안 된다. 둘 다 추상화(인터페이스 또는 추상 클래스)에 의존해야 한다. DIP를 위반한 코드 (Bad Code)class EmailNotification { void sendEmail(String message) { System.out.println("이메일 전송: " + message); }}class NotificationService { private EmailNotification emailNotification = new EmailNotification(); void notifyUser(String message) { emailNotificat..
Bounded Wildcard (? extends T, ? super T)제네릭의 타입 파라미터를 특정 범위로 제한하는 기능와일드카드(?)를 사용하면 다양한 타입을 허용할 수 있지만, 어떤 타입까지 허용할지를 제어하기 위해 extends 또는 super를 사용? extends T (상한 제한, Upper Bounded Wildcard)import java.util.List;import java.util.ArrayList;class Animal { void sound() { System.out.println("동물이 소리를 냅니다."); }}class Dog extends Animal { void sound() { System.out.println("멍멍!"); ..
Java에서 데이터 타입을 일반화하여 다양한 타입을 하나의 코드로 처리할 수 있도록 해주는 기능컴파일 시 타입을 체크하면서도, 다양한 데이터 타입을 유연하게 사용할 수 있도록도와줍니다.제네릭 사용 방법import java.util.ArrayList;public class WithGeneric { public static void main(String[] args) { ArrayList list = new ArrayList(); // 타입 지정 list.add("Hello"); // list.add(123); // 컴파일 오류 발생 (잘못된 타입) String str = list.get(0); // 형 변환 필요 없음 System.out...
try-with-resourcesJava 7에서 도입된 기능으로, AutoCloseable 인터페이스를 구현한 리소스를 사용한 후 자동으로 닫아주는 기능을 제공합니다. 주로 파일, 소켓, 데이터베이스 연결 등과 같은 외부 리소스를 사용할 때 유용합니다.import java.io.BufferedReader;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class MultiResourceExample { public static void main(String[] args) { try ( BufferedReader br = new BufferedReader(new F..
@JsonProperty를 사용한 객체 매핑 (지원되지 않음)OpenFeign은 Jackson을 활용한 JSON 변환(Body 처리)을 지원하지만, 쿼리스트링(Query String) 변환에서는 @JsonProperty를 인식하지 않습니다.public class UserRequest { @JsonProperty("user_name") private String name; @JsonProperty("user_age") private int age; // 기본 생성자, Getter, Setter 생략}@FeignClient(name = "userClient", url = "http://example.com")public interface UserClient { @GetMapp..
@JsonPropertyJSON 데이터의 필드 이름과 Java 객체의 필드 이름이 다를 때 매핑을 도와줍니다.주로 직렬화(Serialization, Java 객체 → JSON) 및 역직렬화(Deserialization, JSON → Java 객체) 시 사용됩니다.import com.fasterxml.jackson.annotation.JsonProperty;public class User { @JsonProperty("user_name") // JSON에서 "user_name"을 Java 객체에서 name 필드에 매핑 private String name; @JsonProperty("user_age") // JSON에서 "user_age"를 Java 객체에서 age 필드에 매핑 ..
Spring MVC에서 HTTP 요청의 데이터를 객체로 바인딩할 때 사용하는 어노테이션입니다.주로 폼 데이터를 DTO(또는 VO) 객체로 매핑할 때 사용됩니다.컨트롤러 메서드의 매개변수나 모델에 추가할 객체에 적용할 수 있습니다.HTTP 요청의 parameter(쿼리 스트링, 폼 데이터)를 자동으로 객체에 바인딩함.GET/POST 요청 모두 지원.내부적으로 setName(), setAge() 같은 setter 메서드를 사용하여 값을 할당함.import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.ann..