JAVA 21

MVC 패턴이 무엇일까?

MVC (Model-View-Controller) 소프트웨어 설계 패턴 중 하나로 주로 웹 애플리케이션에서 많이 사용된다.이 패턴은 애플리케이션의 구조를 세 가지 역할로 분리하여 유지보수성과 확장성을 높여준다.각 요소는 서로 독립적이지만 협력하여 사용자와의 상호작용을 처리한다.      MVC의 구성 요소Model (모델)View (뷰)Controller (컨트롤러)       Model (모델)데이터와 비즈니스 로직을 담당하는 부분이다.데이터는 데이터베이스에 있는 데이터일 수도 있고, 애플리케이션 내에서 사용되는 비즈니스 상태 정보일 수도 있다. 역할모델은 애플리케이션의 핵심 데이터를 관리하며 데이터의 저장, 수정, 삭제와 같은 작업을 처리한다.또한 데이터를 다른 컴포넌트(주로 뷰)로 전달한다. 예시쇼..

[JAVA] 제너릭 (Generics)

제너릭자바에서 클래스나 메서드가 사용할 데이터 타입을 미리 지정하지 않고, 나중에 사용할 때 타입을 지정할 수 있도록 하는 기능     제너릭을 사용하는 이유타입 안전성제너릭을 사용하면 컴파일 시점에 타입 체크가 이루어진다. 이를 통해 잘못된 타입의 데이터를 사용하는 것을 방지할 수 있으며 런타임에서 발생할 수 있는 ClassCastException 같은 오류를 예방할 수 있다.코드 재사용성제너릭을 사용하면 다양한 데이터 타입에 대해 하나의 코드로 처리할 수 있으므로 코드의 재사용성을 높일 수 있다. 예를 들어 Integer나 String 같은 다른 타입을 처리하는 로직을 따로 만들 필요 없이 제너릭을 사용하면 하나의 로직으로 처리할 수 있다.         Generic 메서드 사용 배열 출력 예제pu..

JAVA/기초공부 2024.10.14

[JAVA] 컬렉션 (Collections)

컬렉션(Collection)여러 개의 객체를 효율적으로 저장하고 처리하기 위한 객체의 그룹자바 컬렉션 프레임워크는 이러한 컬렉션들을 다루기 위한 표준화된 API를 제공한다.이를 통해 데이터의 저장, 검색, 삭제, 정렬 등의 작업을 편리하게 수행할 수 있다.인터페이스 - "이런 기능을 해야 한다" 라는 규칙만 정의한 틀구현 클래스 - 인터페이스에서 정의한 기능을 실제로 구현한 클래스유틸리티 클래스 - 공통적인 기능(정렬, 검색 등)을 모아 놓은 클래스     주요 인터페이스Collection 인터페이스모든 컬렉션의 기본이 되는 인터페이스하위 인터페이스들과 그 구현체들이 지켜야 하는 기본적인 메서드들 정의 List순서가 있는 데이터의 집합중복된 요소를 혀용하며 인덱스를 통해 요소에 접근할 수 있다.구현 클래..

JAVA/기초공부 2024.10.13

[JAVA] java.util 패키지 내의 주요 클래스

java.util 패키지자바에서 매우 중요한 클래스들을 모아놓은 패키지데이터 구조, 날짜 및 시간 관련 클래스, 랜덤 숫자 생성, 컬렉션 프레임워크 등 다양한 유틸리티 기능 제공컬렉션 프레임워크 (Collection Framework) - 리스트, 집합, 맵날짜와 시간 클래스 - Date, Calendar, TimeZone, GregorianCalendar랜덤 숫자 생성 클래스 - Random 유틸리티 클래스 - Arrays, Collections스택과 벡터 클래스 - Stack, VectorProperties 클래스Observer 패턴 관련 클래스UUID 클래스 Comparator 인터페이스Scanner 클래스Timer 클래스       Random 클래스자바에서 난수(랜덤 숫자)를 생성하기 위해 사용..

JAVA/기초공부 2024.10.13

[JAVA] java.lang 패키지 내의 주요 클래스들

java.lang 패키지란?자바 프로그래밍의 핵심이 되는 기본 클래스들을 포함하고 있으며, 별도의 import 없이 사용할 수 있는 표준 패키지이다.ex ) Object 클래스, String 클래스, Math 클래시, System 클래스, Class 클래스, Wrapper 클래스 등등     Object 클래스자바에서 모든 클래스의 최상위 클래스모든 객체는 기본적으로 Object 클래스를 상속받는다.주요 메서드 : equals(), hashCode(), toString(), clone()     Class 클래스클래스의 메타데이터에 접근하거나 동적으로 객체를 생성하는 등의 작업을 할 수 있다.주요 메서드 : getName(), newInstance(), forName()     래퍼(Wrapper) 클래..

JAVA/기초공부 2024.10.13

[JAVA] 예외처리

프로그래을 실행하는 도중에 논리적인 오류나 예기치 못한 시스템 오류들을 접하게 된다. 시스템 오류  - 갑자기 수행을 멈추거나 디스크오류 등의 시스템과 관련된 오류로서 해결이 불가능하다.논리적 오류 - 구문적으로는 올바르지만 개발자가 의도한 대로 동작하지 않는 경우비정상적인 오류(Exception) - 시스템 오류나 논리적 오류가 아닌 오류비정상적인 예외인 경우 프로그램에서 오류를 미리 예측하고 대비하여 적절한 처리를 한 다음 프로그램 수행을 계속하여 정상적인 종료가 되도록 한다.(exception handling)     예외처리 종류Array Index Out Of Bounds Exception배열의 크기를 초과하여 인덱스 지정한 경우ArithmeticException나눗셈에서 0으로 나눈 경우 발생..

JAVA/기초공부 2024.10.13

[JAVA] 인터페이스 (Interfaces)

자바에서 인터페이스란?: 클래스가 구현해야 하는 메서드들의 집합을 정의하는 일종의 템플릿객체의 동작을 명시하는 역할을 한다.해당 인터페이스를 구현하는 클래스는 그 안에 선언된 모든 메서드를 반드시 구현해야 한다. 특징인터페이스 안에는 기본적으로 구현되지 않은 추상 메서드들이 정의된다. 메서드들은 선언만 되어  있고 실제 구현은 인터페이스를 구현하는 클래스에서 이루어진다.자바 클래스는 여러 인터페이스를 구현할 수 있다. 이를 통해 다형성을 높이고 클래스가 다양한 행동을 가질 수 있게 한다.인터페이스 안에 선언된 변수는 암묵적으로 public, static, final 로 간주되며 상수로 동작한다.인터페이스는 다른 인터페이스를 상속할 수 있으며 여러 인터페이스로부터 상속받아 새로운 인터페이스를 정의할 수 있..

JAVA/기초공부 2024.10.09

[JAVA] 추상 클래스

개요자바언어는 클래스들이 중심인 언어로서 문제 해결을 위한 클래스를 설계할 때 클래스의 사용과 구현을 분리하여 무엇을 해야 하는지에 중점을 두어 설계한다.슈퍼 클래스에서 행위에 해당하는 메소드를 나타내고 그 행위를 어떻게 하는지는 추상적으로 표현함으로써 무엇을 하는가를 알 수 있는 명세서를 제공한다.서브클래스에서 슈퍼 클래스의 메소드를 오버라이딩하여 실제 어떻게 해야하는지를 구현해야 한다.추상적으로 표현된 클래스는 인스턴스를 만들 수 없으며 실체가 없는 추상클래스가 된다.     추상 클래스 (Abstract  Class): 추상 메소드를 하나 이상 포함 하고 있는 클래스의 경우추상 메소드는 메소드의 선언 부분만을 가지고 있으므로 상속 받은 자식 클래스에서 반드시 구현을 필요로 하는 메소드이다.     ..

JAVA/기초공부 2024.10.09

[JAVA] 형 변환, static, final

클래스의 형 변환이란?: 객체가 다른 타입으로 변환되는 것업캐스팅과 다운캐스팅이 있다.    업캐스팅: 하위 클래스의 객체를 상위 클래스 타입으로 변환하는 것업캐스팅은 암시적으로 이루어지기 때문에 명시적으로 변환할 필요가 없음🔸 업캐스팅을 하면 상위 클래스에 정의된 메서드들만 사용할 수 있고, 하위 클래스에 추가된 메서드는 사용할 수 없다.🔸 업캐스팅을 하면 객체는 실제로는 여전히 원래의 하위 클래스의 인스턴스이지만, 상위 클래스 타입으로 참조하게 된다. => 객체의 실제 타입이 바뀌는 것이 아니라 그 객체를 가리키는 참조 변수의 타입이 바뀌는 것    다운캐스팅: 상위 클래스 타입의 객체를 하위 클래스 타입으로 변환하는 것업캐스팅과 달리 명시적으로 변환을 해주어야 한다🔸 잘못된 다운캐스팅은 Cla..

JAVA/기초공부 2024.10.09

[JAVA] 접근 제한자

자바에서 접근 제한을 두는 이유캡슐화 개념을 구현하기 위해서캡슐화 : 객체 지향 프로그래밍의 중요한 원칙 중 하나로 객체의 내부 상태를 숨기고 외부에서는 제공된 메서드를 통해서만 접근할 수 있도록 제한하는 것. 코드를 더 안전하게 만들고 유지보수를 쉽게 할 수 있다.    클래스 접근 제한자1.  public 접근 제한자어느 패키지에서나 접근이 가능프로젝트 내의 모든 코드에서 해당 클래스를 사용할 수 있다. 2. default 접근 제한자접근 제한자를 명시하지 않으면 default 접근 제한자를 갖는다.같은 패키지 내에서만 접근이 가능하다. public 이 자주 사용되어 해당 클래스가 다른 패키지에서도 사용될 수 있도록 한다.하지만 내부적인 처리를 위한 클래스는 default로 설정하여 외부에서의 접근을..

JAVA/기초공부 2024.10.03