목록java (36)
YTCW
서블릿(Servlet)과 JSP(JavaServer Pages)는 모두 Java를 기반으로 한 웹 애플리케이션 개발에 사용되지만, 그 목적과 사용 방식에서 차이가 있습니다.서블릿(Servlet)정의: 서블릿은 Java 클래스로, HTTP 요청을 처리하고 응답을 생성하는 서버 측 컴포넌트입니다.역할: 동적으로 웹 페이지를 생성하기 위한 로직을 작성하는 데 사용됩니다. 데이터베이스와의 상호작용, 비즈니스 로직 처리 등이 주된 역할입니다.구조: 순수한 Java 코드로 작성되며, HTML과 같은 응답 콘텐츠는 Java 코드 안에서 문자열로 생성됩니다.예시: 장점: 강력한 제어가 가능하며, 모든 처리가 Java 코드로 이루어져 있어 유연성이 높습니다.단점: HTML이나 다른 출력 데이터를 Java 코드 안에 직..
Java 람다 표현식(Lambda Expression)은 Java 8에서 도입된 기능으로, 함수형 프로그래밍의 개념을 Java에 도입한 방식입니다. 주로 간결하게 코드를 작성하고, 익명 함수(anonymous function)를 생성하기 위해 사용됩니다. 람다 표현식은 불필요한 보일러플레이트(코드의 반복)를 줄이고 가독성을 높이는 데 매우 유용합니다. 매개변수: 람다 표현식이 입력받는 값입니다. 메서드의 매개변수와 유사합니다. 화살표(->): 람다 표현식에서 입력을 처리하는 본체(코드 블록)와 결과를 나누는 구분자입니다. 코드 블록: 메서드처럼 실행할 코드입니다. 한 줄일 경우 중괄호를 생략할 수 있습니다. (int a, int b) -> { return a + b; }(a, b) -> { retu..
정적 중첩 클래스와 내부 클래스의 차이는정적 중첩 클래스는 static이 붙는다.바깥 클래스의 인스턴스에 소속되지 않는다. 내부 클래스static이 붙지 않는다.바깥 클래스의 인스턴스에 소속된다. 내부 클래스의 종류 3가지내부 클래스 (inner class) 바깥 클래스의 인스턴스의 맴버에 접근가능지역 클래스 (local class) 내부 클래스의 특징 + 지역 변수에 접근가능익명 클래스 ( anonymous class) 지역 클래스의 특징 + 클래스의 이름이 없는 특별한 클래스이다. 용어를 정리하자면중첩 클래스는 정적 중첩 클래스 + 내부 클래스 종류 모두를 포함하는것이고정적 중첩 클래스는 정적 중첩 클래스는 그자체이고내부 클래스는 내부 클래스, 지역 클래스, 익명 클래스를 포함해서 말한다. pack..
싱글톤 패턴소프트웨어 설계 패턴 중하나이고클래스의 인스턴스가 하나만 생성되도록 보장해준다해당 클래스의 인스턴스에 전역적인 접근을 제공하지만 일관된 상태를 유지해줌static 필드:private static Singleton instance;는 Singleton 클래스의 인스턴스를 보관하는 정적 필드입니다. static으로 선언되었기 때문에 클래스 로딩 시점에 하나의 인스턴스만 존재하게 됩니다.private 생성자:private Singleton()는 외부에서 클래스의 인스턴스를 직접 생성하지 못하도록 막습니다. 이를 통해 다른 곳에서 new Singleton()을 호출하지 못하게 합니다.static 메서드 getInstance():public static Singleton getInstance() 메서드..
코드의 간결성:Lombok을 사용하지 않으면 코드 길이가 매우 길어집니다. 게터, 세터, toString(), 생성자 등 기본적으로 반복적인 코드를 많이 작성해야 합니다.Lombok을 사용하면 2줄의 어노테이션으로 대부분의 반복적인 코드가 자동으로 생성됩니다.메서드 자동 생성:Lombok을 사용하지 않으면 직접 작성해야 하는 여러 메서드 (getName(), setName(), toString(), equals(), hashCode(), 생성자 등)가 자동으로 생성되어 코드에서 제거됩니다.성능 측면:Lombok은 컴파일 타임에 코드에 추가되므로 런타임 성능에는 영향을 미치지 않습니다. 즉, Lombok을 사용했을 때 컴파일된 바이트코드에는 Lombok이 자동으로 생성한 메서드가 포함되며, 성능은 동일합니..
MVC 패턴 : 사용자 인터페이스를 설계하는 소프트웨어 디자인 패턴 중 하나 : 세 가지 구성 요소로 나누어(역할을 분담하여) 개발을 진행 Model(모델), Controller(컨트롤러), View(뷰) 1. Model(모델) : 애플리케이션의 데이터와 비즈니스 로직을 담당 : 데이터베이스, 파일 시스템, 외부 서비스와 통신을 통해 데이터를 저장하고 검색 - 상태 변경에 대해 뷰와 컨트롤러에게 알릴 수 있는 매커니즘 제공 - 뷰와 컨트롤러의 구현 세부사항으로부터 독립적 2. View(뷰) : 사용자에게 데이터를 표시하는 방법을 정의 : Model의 정보를 표시, 사용자의 액션을 Controller에게 전달 - 모델이 가진 정보를 사용자가 이해할 수 있는 형태로 변환 3. Controller(컨트롤러) ..
Map 인터페이스 : 키(Key)와 값(Value)의 쌍으로 요소를 저장하는 데이터 구조 : 키(Key)는 고유한 데이터, 하나의 값을 가리킴 Map의 주요 특징 - 키의 유일성 : 모든 키는 고유해야 함 / 각 키는 하나의 값에만 매핑됨 - 값의 중복 허용 : 값은 중복 가능 - 순서 : 대부분의 Map 구현체는 순서 보장하지 않음 / LinkedHashMap은 예외 Map 인터페이스 구현체 1. HashMap : 해시 테이블을 사용하여 키-값 쌍을 저장 : 순서를 유지하지 않음 (삽입 순서나 요소의 정렬 상태를 보장하지 않음) >> 작업 시간 빠름 : null 허용(키와 값 모두 null 허용) 2. LinkedHashMap : 삽입 순서를 유지 : 요소의 삽입 순서가 중요하고 빠른 검색이 필요할 때..
Set 인터페이스 : 중복된 요소를 포함하지 않는 객체의 집합 : 객체의 저장 순서를 저장하지 않음 (삽입 순서를 유지하지 않음) : null 요소 포함 가능 Set 컬렉션 종류 1. HashSet : 가장 많이 사용되는 Set 구현체 : 가장 빠른 성능을 제공 : 삽입 순서나 요소의 정렬 상태를 보장하지 않음 2. LinkedHashSet : HashSet에서 순서를 추가한 형태 : 요소를 삽입 순서대로 유지 3. TreeSet : 정렬된 순서대로 요소를 유지 : 요소의 순서가 중요하거나 요소를 정렬된 상태로 유지해야 할 때 사용 : 자동 정렬 add(Element element) : 요소 추가 remove(Object object) : 요소 제거 contains(Object object) : 요소 ..
List 인터페이스 : 데이터를 순차적으로 저장하고 접근하는 데 사용하는 메서드를 정의 : 데이터의 중복 저장을 허용, 저장된 순서에 따라 데이터를 관리 List 특징 - 요소의 인덱스를 통한 정확한 위치 지정 - 요소의 중복 허용 - 다양한 구현체를 통해 사용 가능 List 인터페이스 구현 클래스 ArrayList : 내부적으로 배열을 사용하여 데이터를 관리 1. 동적 크기를 조절 - 요소가 추가되거나 제거될 때 자동으로 크기를 조절 2. 인덱스 기반 접근 - 특정 위치의 데이터를 빠르게 읽거나 수정 가능 - 중간에 데이터를 삽입하거나 삭제하는 작업은 비교적 느림 3. 순차적인 데이터 저장, 중복 데이터 허용 4. 널(Null) 값을 허용 >> 데이터를 빠르게 조회할 때 사용 (데이터의 삽입, 삭제 x..
자바 컬렉션 프로임워크란데이터를 저장하고 처리하는 자료구조의 표준화 된 설계 컬렉션 프레임워크의 주요 인터페이스1. Collection자바 컬렉션 프레임워크의 상위 인터페이스, 데이터의 집합을 다룸 2. List데이터의 순서를 유지시켜줌중복 허용하는 집합체(ArrayList, LinkedList 등) 3. Set데이터의 순서를 유지시키지 않음중복허용 안됨(HashSet , TreeSet 등) 4. Map키-값 쌍으로 이루어진 데이터를 다룸키는 중복 허용하지 않는다값은 중복허용을 합니다.(HashMap, TreeMap 등) 효과적인 컬렉션 프레임워크 사용방법1. 데이터의 특성에 맞는 적절한 컬렉션 클래스 선택2. 각 데이터의 중복에 대한 필요서으 순서 유지에 대한 필요성을 점검3. 키 - 값 쌍의 데이터가..