분류 전체보기74 Spring MVC에서 model.addAttribute로 뷰에 데이터 전달하기 model.addAttribute()는 스프링 MVC에서 컨트롤러가 뷰(예: Thymeleaf 템플릿)에 데이터를 전달할 때 사용하는 메서드야. 간단히 말해서, 컨트롤러에서 계산하거나 조회한 값을 뷰에서 참조할 수 있도록 “키–값 쌍”으로 저장해 주는 역할을 해.예를 들어:@GetMapping("/hello")public String hello(Model model) { String name = "철수"; model.addAttribute("userName", name); return "greeting"; // src/main/resources/templates/greeting.html}위 코드에서 model.addAttribute("userName", name)는 모델에 "userNam.. 2025. 6. 4. 래핑, 박싱 하는 이유 + 제네릭에 기본형을 못 쓰는 이유 1. 제네릭에 primitive를 못 쓰는 이유타입 소거(Type Erasure)자바의 제네릭은 런타임에 타입 정보를 지우고(Object로 치환) 컴파일 시점에만 타입 안전성을 체크해.예를 들어 List → 실제 바이트코드상에는 List 로만 남고, 내부에는 Object 타입 요소를 저장primitive는 Object에 담을 수 없기 때문에, 제네릭 파라미터로 primitive를 허용할 수 없어하위 호환성(Backward Compatibility)제네릭은 자바 5에서 도입됐는데, 이전 버전과의 호환성을 위해 타입 소거 방식을 선택만약 List 처럼 primitive 전용 바이트코드를 만들면, 기존 자바 라이브러리와 충돌이 나기 쉬워참조형만 타입 파라미터로 허용자바 문법상 타입 파라미터 는 “참조형(ref.. 2025. 5. 27. 함수형 인터페이스와 SAM의 차이 함수형 인터페이스와 SAM 차이함수형 인터페이스: 하나의 추상 메소드만 가진 인터페이스. Java 8부터 @FunctionalInterface로 표시.SAM (Single 이Abstract Method): 하나의 추상 메소드를 가진 인터페이스의 개념.차이점: 함수형 인터페이스는 default와 static 메소드를 가질 수 있지만, 추상 메소드는 하나만 있어야 함.관계: SAM 개념은 함수형 인터페이스의 핵심이며, 함수형 인터페이스는 SAM을 기반으로 정의됨.함수형 인터페이스(functional interface)와 SAM(single abstract method)은 거의 같은 개념을 가리키지만, 미묘한 차이가 있:SAM 인터페이스“단 하나의 추상 메서드”만 갖는 인터페이스를 말해.Java 8 이전부터 .. 2025. 5. 26. static에 관하여 Static vs Instance: Java에서 static과 인스턴스 멤버의 차이Java에서 static 키워드를 사용하면 클래스 레벨 멤버를, 그렇지 않으면 인스턴스(객체) 레벨 멤버를 정의합니다. 두 가지를 비교해 보겠습니다.1. static 멤버 (클래스 레벨)공유: 모든 객체가 하나의 멤버를 공유합니다.접근 방법: 클래스이름.멤버 형태로 객체 생성 없이 바로 접근할 수 있습니다.주요 용도:공통 상태 유지 (예: 전체 인스턴스 개수 카운터)유틸리티 메서드 (예: Math.max(), Collections.sort())상수 선언 (예: public static final double PI = 3.14;)class Counter { static int totalCount = 0; // 클래스마.. 2025. 5. 17. final에 관하여 좋은 질문이야! 결론부터 말하자면 sessions를 final로 선언해도 add, remove 함수는 전혀 문제없이 작동해.🔍 왜 그런가?private final List sessions = new ArrayList();여기서 final은 참조(Reference) 자체가 바뀌지 않는다는 의미야.즉, sessions = new ArrayList(); 이런 식으로 다른 리스트를 다시 할당하는 것만 금지되는 거고,그 안에 있는 요소들을 추가하거나 제거하는 것은 가능해.📌 예시로 쉽게 설명하면:final List list = new ArrayList();list.add("a"); // ✅ 가능list.remove("a"); // ✅ 가능list = new ArrayList(); // ❌ 컴파일 .. 2025. 5. 17. JAVA-네트워크 자원 정리 🧽 개념 정리 먼저: AutoCloseable, try-with-resources, finally1. AutoCloseable이란?자원 정리 자동화를 위한 인터페이스close()라는 메서드 하나만 강제함public interface AutoCloseable { void close() throws Exception;}자바의 InputStream, OutputStream, Socket, BufferedReader, Connection, 전부 구현하고 있음.목적은 단 하나:"이 객체가 끝날 때 알아서 정리되게 만들어줘요~"2. try-with-resources란?AutoCloseable을 구현한 객체를 try 블록 안에서 선언하면try 블록이 끝나면 자동으로 close()가 호출됨→ 예외가 나든 말든 .. 2025. 5. 16. 이전 1 2 3 4 ··· 13 다음