1️⃣ 환경설정 포맷과 윈도우를 설치해 보는 건(backup/restore) 정말 중요하다. 환경설정은 반드시 반복해보자. 2️⃣
ls: 현재 경로에 존재하는 파일/폴더 확인하기list(조회하기)윈도우 command prompt의 dir과 동일cd: 디렉토리 이동하기change directory의 약자로, 경로를 이동할 때 사용하는 명령어폴더 밖으로 이동하고 싶다면 cd 뒤애 .. 을 입력하면 된
모든 프로그램은 위에서 아래로 실행된다. 하지만 프로그램 제어를 통해 흐름을 변화시킬 수 있다.조건에 의한 분기조건에 의한 반복기타 제어 사용자의 선택에 따라 진행하는 일의 형태를 분기시킬 수 있다. ifìf ~ else중첩 ifìf ~ else if ~ else i
동일한 자료형을 그룹(묶음)으로 저장하는 것으로 생성 시점에 크기를 지정해야 하며 크기가 지정 되면 변경될 수 없다.✔️ 선언배열을 선언하는 것은 배열을 다루기 위한 참조변수를 위한 공간만 만들어지는 것이고정말 값이 저장되는 공간이 만들어주기 위해서는 선언한 배열을 생
🧺 다차원 배열 ‣ 2차원 배열 ✔️ 선언 // 3행 2열의 2차원 배열 arr1 = new int3; // arr10 = 10; arr10 = 20; arr11 = 30;
String\[] args는 자바의 메인 메서드에서 사용되는 배열로, 프로그램 실행 시 명령행 인수(명령어 옵션)를 저장하는 역할을 한다. 여기서 args는 문자열(String) 배열이며, 프로그램을 실행할 때 전달된 명령어 옵션들이 자동으로 이 배열에 담기게 된다.
객체는 설계도(클래스)를 바탕으로 만들어진다. 자동차를 만들기 위해 설계도를 참고하듯, 메모리에서 사용하고 싶은 객체가 있다면 우선 해당 객체의 설계도를 만들어야 한다. 자바에서 이 설계도는 바로 클래스(Class)이다.클래스에는 객체를 생성하기 위한 필드와 메서드가
메서드는 클래스 내부에서 정의된 함수를 말한다. 클래스 내에서 특정 기능을 수행하는 코드의 모음이며, 중복되는 코드를 줄이고 유지보수를 쉽게 하기 위한 도구이다.이 기능이란, 데이터를 입력받고 처리한 후 결과값을 반환하는 것을 의미한다.메서드의 이름을 정하고 중괄호 {
자바에서 this 키워드는 인스턴스의 자기자신을 의미한다. 인스턴스화 되었을 때 자기자신의 메모리 주소를 담고있는 키워드이다.객체 자신을 가리키는 참조this는 현재 객체를 가리키는 참조 변수이다. 클래스 내부에서 자신이 속한 객체를 참조할 수 있다. 실행 클래스에서
📌 메서드 오버로딩 (Method Overloading) 오버로딩(Overloading)은 하나의 클래스 내에서 같은 이름의 메서드를 여러 개 정의할 수 있는 기능이다. 자바에서는 매개변수의 개수 또는 타입이 다르면, 같은 이름의 메서드를 사용할 수 있다. 즉, 메서드 이름은 같지만, 매개변수 목록이 다르면 자바는 이를 다른 메서드로 구분한다. 이처럼 ...
클래스는 객체(인스턴스)를 만들기 위한 '설계도' 역할을 하고, 인스턴스는 실제로 메모리에 할당된 객체를 의미한다.인스턴스 필드는 각 객체(인스턴스)마다 독립적으로 저장된다. 즉, 새로운 객체가 생성될 때마다 각각의 인스턴스가 고유한 값을 가질 수 있다.인스턴스 메서드
scope 멤버 필드는 객체 변수를 통해서만 접근 가능 지역 변수는 메서드를 통해 접근 가능하기 때문에 메서드를 실행해야 지역 변수는 밖에서 사용 불가능 (메서드 내에서만 존재함) 메서드의 아규먼트도 지역변수이다. 영역이 가장 넓은 건 class >
자동 초기화: 값을 명시적으로 넣지 않으면 자동으로 초기화 된다.클래스 멤버 필드도 동일하게 자동으로 초기화 된다.모든 객체에 동일한 값을 주어야 할 때는 선언 시 초기화가 간편하지만, 외부 입력에 따라 다르게 초기화할 필요가 있는 경우 생성자를 사용하여 초기화하는 것
생성자는 객체가 생성될 때 자동으로 호출되는 특별한 메서드로, 객체의 인스턴스 변수 초기화를 위해 사용된다. 생성자는 인스턴스 생성 시에 필요한 초기 작업을 수행하며, 일반 메서드와는 몇 가지 중요한 차이점이 있다.클래스 이름과 동일해야 한다.리턴 타입이 없다. (vo
참조 자료형 배열은 객체를 배열로 저장하는 방법으로, 배열의 각 요소가 객체를 참조한다. 기본 자료형 배열과 달리 참조 자료형 배열은 객체에 대한 참조를 저장하며, 배열을 통해 객체의 필드와 메서드에 접근할 수 있다. 즉, 배열이 가리키는 대상은 객체의 메모리 위치이고
상속은 여러 클래스에서 공통적인 속성(필드)과 기능(메서드)을 부모 클래스에 정의하고, 이를 자식 클래스가 물려받아 사용하는 개념이다. 이를 통해 코드의 중복을 제거하고, 유지보수를 쉽게 하며, 재사용성을 높일 수 있다.상속은 상위 클래스(부모 클래스)의 멤버(필드,
오버라이딩은 부모 클래스에서 상속받은 메서드를 자식 클래스에서 재정의하는 것을 의미한다. 상속받은 메서드를 그대로 사용하지 않고, 자식 클래스에 맞게 내용을 변경하는 것이 필요할 때 오버라이딩을 사용한다. 부모 클래스에서 상속받은 메서드를 자식 클래스에서 이름, 매개
super는 자식 클래스에서 부모 클래스의 멤버(필드나 메서드)에 접근할 때 사용한다. 자식 클래스에서 부모 클래스의 필드나 메서드가 자식 클래스에서 같은 이름으로 오버라이딩되었을 때, super를 사용하여 부모 클래스의 원본 멤버에 접근할 수 있다.부모 클래스의 필드
final 키워드 final 키워드는 자바에서 변경 불가능성을 의미합니다. 변수, 메서드, 클래스에 사용되어 그 요소가 변경될 수 없도록 제한합니다. final은 코드의 안정성, 가독성, 성능 최적화에 기여할 수 있습니다. 각 용도별로 final을 정리해 보겠습니다.
📌 접근 제어자(Access Modifiers) 접근 제어자는 자바에서 클래스, 필드(멤버 변수), 메서드에 대한 접근 범위를 제한하기 위한 키워드이다. 접근 제어자는 캡슐화(Encapsulation)를 구현하는 중요한 요소로, 클래스의 내부 구현을 숨기고 외부로부
Getter / Setter와 캡슐화 자바에서 캡슐화(Encapsulation)는 데이터(멤버 필드)와 메서드를 하나의 단위(클래스)로 묶고, 외부에서의 직접 접근을 제한하는 객체 지향 프로그래밍(OOP)의 핵심 개념입니다. 이를 통해 클래스의 내부 구현을 감추고,
“형태가 여러 개” - 단, 상속 관계에서 (상속이 안 되면 다형이 의미가 없음) 부모 클래스의 참조 변수를 통해서 자식 클래스의 메서드를 호출 (부모가 자식 거를 호츨?) → 개념 다시 정의 상속 관계 오버라이딩 된 참조 자료형의 형변환 업캐스팅 - 항상
자바에서 자식 클래스가 부모 클래스의 메서드를 오버라이딩하면, 컴파일 타임에는 메서드 호출이 참조 변수의 타입에 따라 결정되지만, 실행 시(런타임)에는 실제 객체의 타입에 따라 메서드가 호출된다. 이 과정은 자바의 중요한 기능인 다형성(polymorphism)과 동적
추상 클래스는 불완전한 클래스로, 일부 메서드가 구현되지 않고 이름만 선언된 상태로 존재한다. 이 클래스는 상속을 통해 자식 클래스에서 구현을 강제한다.추상 메서드는 구체적인 구현이 없는 메서드로, 메서드의 선언부만 있고 실행 코드가 없다. 자식 클래스에서 이 추상 메
인터페이스는 자바에서 추상 메서드(구현이 없는 메서드)와 상수만을 가지는 특별한 클래스이다. 인터페이스는 객체 지향 프로그래밍에서 다형성을 극대화하고, 구현 클래스들이 동일한 동작을 수행하도록 강제하는 역할을 한다. 모든 메서드는 기본적으로 public과 abstrac
static 메서드는 인터페이스 자체와 연관된 동작을 제공하기 위해 사용되며, 객체 생성 없이 호출할 수 있다.인터페이스 이름으로 호출: 클래스의 static 메서드처럼, 인터페이스의 static 메서드는 인터페이스 이름을 통해서만 호출할 수 있다. 객체를 통해 호출하
클래스 이름 충돌 방지: 자바에서 많은 클래스가 존재할 수 있기 때문에, 패키지를 사용해 고유한 네임스페이스를 제공하여 클래스 이름 충돌을 방지할 수 있다. 동일한 이름의 클래스도 서로 다른 패키지에 존재할 수 있다.코드의 구조적 관리: 패키지는 코드를 논리적이고 계층
라이브러리는 프로그램 개발 시 재사용 가능한 클래스와 인터페이스들을 모아놓은 것을 의미한다. 자바에서 라이브러리는 JAR(Java Archive) 파일 형태로 제공되며, 클래스와 인터페이스의 바이트코드 파일들이 압축되어 있다.JAR 파일 형태: JAR 파일은 .jar
Object 클래스 Object 클래스는 모든 클래스의 최고 조상 (모든 클래스는 Object 클래스에서 상속 받음) Object 클래스의 멤버들은 모든 클래스에서 바로 사용 가능 (모든 클래스는 Object 클래스의 메서드를 사용할 수 있음) 모든 클래스는 Objec
System 클래스는 객체를 생성할 필요 없이 바로 사용할 수 있는 static메서드들로 구성되어 있습니다.System.out은 표준 출력 스트림을 가리킵니다. 주로 콘솔에 출력할 때 사용됩니다.가장 자주 사용하는 메서드: System.out.println()Syste
자바에서 날짜와 시간을 다루기 위한 클래스입니다. 이 클래스는 자바의 초기 버전부터 존재해 왔으며, 날짜와 시간을 표현하고 조작하는 기본적인 기능을 제공합니다. Date 클래스는 날짜와 시간을 표현하는 클래스로, 날짜와 시간을 밀리초 단위로 저장합니다.1970년 1월
StringTokenizer는 경량화된 문자열 분리 도구로 간단한 문자열 분리 작업에 적합하지만, 자바 1.4 이후로는 split() 메서드나 정규 표현식을 활용하는 방법이 더 권장됩니다.여전히 구분자를 기준으로 문자열을 간단히 분리할 때는 유용하며, 성능이 중요할 때
Random 클래스는 정수, 실수, 불리언 등 다양한 난수를 생성할 수 있습니다. 난수 생성의 기본은 내부적으로 시드 값에 따라 의사난수를 생성한다는 점입니다. 시드를 지정하지 않으면 현재 시간에 기반한 시드 값이 사용됩니다.기본 생성자로, 현재 시간을 바탕으로 시드
java.util.Arrays 클래스는 배열을 다루기 위한 유틸리티 메서드들을 제공하는 클래스입니다. Arrays.toString() 메서드는 배열의 내용을 문자열로 변환하여 출력하는 데 사용됩니다. 배열을 직접 출력하면 배열의 참조값이 출력되기 때문에, 배열의 내용을
<수업코드>자바에서 데이터를 효율적으로 저장하고 관리하기 위한 다양한 자료구조 클래스를 제공하는 라이브러리입니다. 이를 통해 데이터의 \` 등의 작업을 쉽게 처리할 수 있습니다.주요 인터페이스로는 List(리스트), Set(집합), Map(맵)이 있으며, 각 인터
컬렉션을 사용할 때 타입 안정성의 문제가 발생할 수 있습니다. 제네릭(Generic)은 이러한 문제를 해결하기 위한 기법으로, 컴파일 시점에 타입을 지정하여 타입 안정성을 높이고 형변환을 줄여줍니다.타입 안정성: 제네릭을 사용하면 컬렉션에 저장할 수 있는 데이터 타입을
HashSet은 자바 컬렉션 프레임워크에서 제공하는 Set 인터페이스를 구현한 클래스 중 하나로, 중복된 요소를 허용하지 않고 순서가 없는 데이터 집합을 관리하는 자료구조입니다. 중복을 허용하지 않음: 동일한 값이 두 번 이상 저장되지 않습니다. 즉, 중복 요소는 자동
Map 인터페이스는 자바 컬렉션 프레임워크에서 키(key)와 값(value)의 쌍으로 데이터를 저장하는 자료구조를 정의하는 인터페이스입니다. HashMap은 Map 인터페이스를 구현한 대표적인 클래스 중 하나로, 데이터를 해시 테이블 방식으로 관리합니다. 순서가 없음:
Properties 클래스는 키와 값을 문자열(String) 형태로 저장하는 특수한 HashMap 클래스입니다. 자바에서 설정 파일(예: .properties 파일)을 읽고 쓰는 데 자주 사용되며, 시스템 설정이나 애플리케이션의 구성 정보를 관리할 때 유용합니다. 기본
Stack: 마지막에 삽입된 요소가 먼저 삭제되는 후입선출(LIFO) 구조입니다.Queue: 가장 먼저 삽입된 요소가 먼저 삭제되는 선입선출(FIFO) 구조입니다.ㅍ함수 호출 스택: 함수가 호출될 때마다 스택에 쌓이고, 함수가 끝날 때마다 스택에서 제거됩니다.브라우저
예외는 프로그램 실행 중 발생하는 비정상적인 상황을 의미합니다. 예를 들어, 배열 인덱스 초과, 파일을 찾을 수 없음, null 값을 참조하려고 할 때 발생하는 오류 등이 예외입니다.예외가 발생하면 프로그램의 정상적인 흐름이 깨질 수 있으므로, 예외를 처리해야 프로그램
throw는 자바에서 예외를 명시적으로 발생시키는 데 사용하는 키워드입니다. 특정 조건에서 개발자가 직접 예외를 발생시키고, 그 예외를 처리할 수 있도록 하는 기능을 제공합니다. 주로 사용자 정의 예외를 던지거나, 특정 로직에서 의도적으로 예외를 발생시킬 때 사용됩니다
throws는 자바에서 메서드 선언부에 사용되어, 해당 메서드가 예외를 던질 가능성이 있음을 호출하는 쪽에 알리는 키워드입니다. 즉, 메서드 내부에서 발생할 수 있는 예외를 처리하지 않고 호출한 곳으로 던질 때 사용합니다. 이를 통해 호출한 메서드에서 예외를 직접 처리
자바의 java.io 패키지는 입출력(IO)을 처리하는데 필수적인 클래스들을 제공합니다. 이 패키지는 데이터의 입출력 처리와 관련된 다양한 스트림 클래스를 포함하고 있어, 프로그램이 파일, 네트워크, 메모리 등에서 데이터를 읽고 쓰는 작업을 간단하게 처리할 수 있게 도
File 클래스는 자바에서 파일이나 디렉토리(폴더)를 조작하기 위해 사용하는 클래스입니다. 파일의 생성, 삭제, 정보 조회와 같은 파일 시스템 관련 작업을 처리할 때 많이 사용됩니다. 하지만, 파일의 내용을 직접 읽거나 쓰는 작업은 하지 않고, 주로 파일이나 디렉토리
스트림은 데이터의 흐름을 의미하며, 데이터를 읽고 쓰는 과정을 추상화한 개념입니다. 자바의 입출력 시스템은 스트림을 통해 데이터를 주고받습니다. 자바에서는 크게 두 가지 스트림을 사용합니다:입력 스트림 (Input Stream): 외부로부터 데이터를 읽어오는 스트림입니
FileWriter는 Writer 클래스의 하위 클래스이며, 문자 데이터를 파일에 쓰기 위한 목적으로 사용됩니다.주로 텍스트 파일을 생성하거나, 기존 파일에 덮어쓰기 또는 이어쓰기를 할 때 사용됩니다.기본적으로 문자 스트림을 처리하며, 바이트 데이터를 처리하는 바이트
보조 스트림(Secondary Stream)은 주 스트림을 감싸서 추가적인 기능을 제공하는 스트림입니다. 예를 들어, ObjectOutputStream은 바이트 스트림 위에 적용되어 객체를 직렬화하고 이를 바이트 스트림으로 처리하는 기능을 제공합니다. 주 스트림: 파일
ObjectInputStream과 ObjectOutputStream은 자바에서 객체를 직렬화(serialize)하거나 역직렬화(deserialize)하여 파일, 네크워크 스트림 등으로 입출력할 수 있게 도와주는 보조 스트림(secondary stream)입니다. 이 스
Properties 클래스는 자바에서 프로그램 설정이나 구성 정보를 관리할 때 매우 유용하게 사용됩니다. 이 클래스는 Map 인터페이스를 구현한 특수한 형태로, 키-값 쌍을 문자열(String)로 저장하며, 설정 정보를 파일로 저장하거나 파일에서 읽어오는 기능을 제공합
자바에서 표준 입력(키보드 입력)을 받기 위해 보통 Scanner 클래스를 많이 사용하지만, InputStream과 보조 스트림을 통해 동일한 기능을 구현할 수 있습니다. 이를 통해 다양한 방식으로 사용자 입력 처리 및 다국어 지원을 할 수 있습니다. 여기서는 Inpu
JXL(Java Excel API) 라이브러리는 자바에서 Microsoft Excel 파일(.xls)을 읽고 쓸 수 있는 라이브러리입니다. JSL은 Excel 97-2003 형식의 .xls 파일을 지원하며, 엑셀 파일에서 데이터를 읽어오거나 새로운 엑셀 파일을 생성하고
1. 데이터베이스(Database) 데이터의 집합으로, 체계적으로 데이터를 저장하고 관리하는 시스템입니다. 데이터를 테이블 형식으로 저장하며, 각 테이블은 행과 열로 구성됩니다. 이는 엑셀의 확장판으로 비유할 수 있습니다. 2. DBMS(Database Managem
~ % mysql -u root -pMariaDB를 관리하기 위해 root 계정으로 접속해준다. MariaDB설치 시 설정했던 비밀번호로 로그인해준다.u는 user, p는 password의 약자로, user가 root인 DBMS로 접속하겠다는 의미이다. password
데이터베이스 클라이언트는 서버와 분리된 시스템에서 데이터베이스에 접속합니다.원격 접속 명령어:mysql -u root -p: 로컬에서 root 사용자로 접속mysql -h \[아이피] -u \[사용자 아이디] -p: 특정 IP를 통해 원격 접속예: mysql -h 12
기본 문법: SELECT 열이름 FROM 테이블명;\*: 테이블의 모든 열을 선택하여 출력할 때 사용예제 코드:부서 정보를 모두 출력: SELECT \* FROM dept;부서 정보 중 부서 이름만 출력: SELECT dname FROM dept;데이터 변경 불가: S
WHERE 절은 특정 행에 조건을 부여하여 필요한 데이터만 필터링하는 데 사용됩니다. WHERE 절에서는 비교, 논리, 패턴 매칭 등의 다양한 조건을 활용할 수 있습니다.=: 값이 특정 값과 일치하는 행을 찾음!= 또는 <>: 값이 특정 값과 일치하지 않는 행을
SQL에서는 조회 시 중복 제거, 출력 범위 제한, 정렬 등을 통해 데이터를 효율적으로 확인할 수 있습니다. 이를 통해 데이터는 변하지 않으면서도 원하는 조건으로 데이터를 필터링하고 정렬하여 출력할 수 있습니다.DISTINCT 키워드는 특정 열의 중복값을 제거하여 고유
NULL은 SQL에서 값이 없음을 나타내는 특별한 마커입니다. NULL은 0이나 빈 문자열과는 다릅니다. 그 자체가 "아무런 값도 없다"는 것을 의미합니다. 이를 사용하여 데이터가 존재하지 않거나 아직 입력되지 않은 상태를 나타낼 수 있습니다.NULL은 어떤 값과도 비
데이터베이스와 서버에 대한 메타데이터를 제공하여 현재 데이터베이스 이름, 사용자, 서버 버전, 세션 정보 등을 조회할 수 있는 함수들입니다. 숫자 계산 및 통계 자료 분석에 자주 사용되는 함수들로, 숫자 처리와 통계 계산을 용이하게 합니다.이러한 정보 함수와
문자열 함수는 데이터베이스 내의 문자열을 다루는 함수들로, 문자열의 길이 확인, 조합, 치환, 특정 위치의 문자 추출 등 다양한 처리를 제공합니다. 아래는 자주 사용되는 함수와 예제 코드입니다.ASCII 코드 값 확인: 특정 문자에 대한 ASCII 값을 반환합니다.문자
SQL 날짜 및 시간 함수 (Date & Time Functions) 날짜 및 시간 함수는 MariaDB에서 날짜와 시간 데이터를 처리하고 형식을 지정하며, 시간 간격을 계산하는 데 사용됩니다. 1. 현재 날짜와 시간 조회 | 함수 | 설명
SQL에서 제어 흐름 함수는 조건에 따라 다르게 결과를 반환하거나 처리할 수 있도록 하는 기능을 제공합니다. 이는 조건부 연산과 값 대체에 유용하게 사용됩니다.DECODE_ORACLE() 함수는 조건에 따라 값을 반환하는 함수로, Oracle의 DECODE와 유사합니다
정의: 암호화된 데이터를 다시 원래의 형태로 복원할 수 있는 암호화 방식입니다.목적: 데이터의 기밀성을 보호하면서도, 필요할 때 복호화하여 원본 데이터를 확인할 수 있도록 합니다.정의: 암호화된 데이터를 원래의 형태로 복원할 수 없는 방식입니다. 보통 해싱(Hashin
기능: GROUP BY는 쿼리 결과를 특정 열을 기준으로 그룹화하여, 각 그룹에 대해 집계 연산을 수행할 수 있게 합니다.주로 사용되는 함수: COUNT(), SUM(), AVG(), MAX(), MIN() 등의 집계 함수와 함께 사용됩니다.예를 들어, 부서별 직원 수
서브쿼리(Subquery)는 하나의 SQL 문 안에서 다른 SQL 문을 중첩하여 사용하는 쿼리입니다. 보통 특정 조건을 만족하는 데이터를 조회하거나, 메인 쿼리에서 사용할 값을 미리 계산하기 위해 사용됩니다. 예 : 'SCOTT' 사원의 급여보다 큰 급여를 받는 사원
카테시안 프로덕트(Cartesian Product)란 두 개의 테이블의 모든 행을 조합하여 반환하는 연산입니다. SQL에서 CROSS JOIN 또는 JOIN 조건 없이 단순히 테이블 두 개를 함께 조회할 때 발생합니다. 이 결과는 두 테이블의 행 수를 곱한 만큼의 행을
OUTER JOIN은 SQL에서 두 테이블 간의 관계를 설정할 때, 한쪽 테이블에만 데이터가 있는 경우에도 모든 행을 포함할 수 있도록 도와주는 조인 방식입니다. INNER JOIN과 달리, 일치하지 않는 데이터도 함께 조회할 수 있는 것이 큰 특징입니다. LEFT O
DDL (Data Definition Language): 데이터베이스 내의 구조를 정의하고 변경할 때 사용되는 언어입니다. 주로 테이블, 인덱스, 뷰, 스키마 등을 생성하고 관리하는 명령어로 구성되어 있습니다.데이터베이스와 테이블, 뷰, 인덱스 등의 데이터 구조를 설계
자료형https://mariadb.com/kb/ko/data-types/ 은 데이터베이스에서 다양한 유형의 데이터를 효율적으로 저장할 수 있도록 설계된 데이터 형식입니다. 문자열 자료형은 텍스트 데이터를 저장할 때 사용하며, 가변 길이와 고정 길이의 두 가지
DDL (2) : CREATE TABLE, 테이블 복제 DDL (2) : CREATE TABLE, 테이블 복제 새 캔버스를 직접 만드는 기능은 유료 기능이며, 11월 10일까지 무료 평가판을 통해 사용할 수 있습니다. 자세히 알아보기 DDL (2) : CREATE T
1\. 열 추가: 테이블에 새로운 열을 추가합니다.2\. 열 삭제: 기존의 열을 삭제합니다.3\. 열 수정: 기존 열의 데이터 타입이나 제약조건을 변경합니다.4\. 제약조건 추가 및 삭제: PRIMARY KEY, FOREIGN KEY 등의 제약조건을 추가하거나 제거합니
INSERT 문은 MariaDB에서 테이블에 새로운 데이터를 추가하는 명령어입니다. 이 명령어는 주로 단일 행 또는 여러 행의 데이터를 삽입할 때 사용하며, 필요한 경우 특정 열에만 데이터를 추가하거나 다른 테이블에서 데이터를 복사해 삽입하는 등 다양한 방식으로 사용할
제약 조건은 데이터베이스에서 데이터의 무결성을 보장하기 위해 설정하는 규칙입니다. 제약 조건을 통해 테이블에 삽입되는 데이터의 형식과 일관성을 유지할 수 있으며, 잘못된 데이터 입력을 방지합니다. 테이블에 설정된 제약조건을 확인하는 방법은 information_sche
NOT NULL 제약조건은 특정 열이 반드시 값을 가져야 함을 의미합니다. dept_n1 테이블에서 deptno 열에 NOT NULL 제약조건이 설정되어 있습니다. UNIQUE 제약조건은 열에 중복된 값이 입력되는 것을 방지합니다. 첫 번째 삽입은 성공하지만, 두 번째
테이블의 제약조건을 수정할 때는 ALTER TABLE 명령어를 사용합니다. ALTER TABLE을 사용하면 기존 테이블에 제약조건을 추가하거나 제거할 수 있습니다. 하지만 이미 존재하는 제약조건을 직접 수정하는 기능은 없기 때문에, 제거한 후에 새로 추가해야 합니다.
뷰(View)는 데이터베이스에서 특정 쿼리의 결과를 마치 하나의 테이블처럼 사용할 수 있도록 만들어진 가상의 테이블입니다. 뷰는 실제 데이터를 저장하지 않고, 기존 테이블의 데이터에서 추출된 결과를 저장하는 쿼리로 구성됩니다. 뷰를 통해 테이블의 복잡한 데이터를 쉽게
정의: 데이터베이스 사용자란, 데이터베이스에 접근하고 쿼리를 수행할 수 있는 권한을 가진 계정을 의미합니다. 각 사용자는 고유한 사용자명과 비밀번호를 가지며, 권한 설정에 따라 데이터에 접근할 수 있습니다.역할: 여러 사용자가 데이터베이스를 사용하면서 권한에 따라 읽기
데이터베이스의 접근 권한을 제어하기 위한 명령어입니다. DCL은 데이터베이스의 보안을 유지하고, 특정 사용자에게 데이터에 접근하거나 조작할 수 있는 권한을 부여하거나 취소하는 데 사용됩니다.DCL의 주요 명령어는 GRANT와 REVOKE입니다.정의: 권한이란 데이터베이
mysqldump는 MySQL과 MariaDB에서 제공하는 데이터베이스 백업 도구로, 데이터를 SQL 덤프 파일로 저장할 수 있습니다. 백업은 주로 데이터베이스 단위와 테이블 단위로 나눌 수 있습니다.명령어 설명:\-u 사용자이름: 데이터베이스에 접속할 사용자 이름을
데이터베이스 집합 연산은 SQL에서 두 개 이상의 쿼리 결과 집합을 결합하여 하나의 결과로 출력하는 연산입니다. 이를 통해 여러 쿼리 결과를 합치거나 중복을 제거할 수 있습니다. 두 쿼리의 결과 집합을 합집합으로 결합하여 반환합니다.기본적으로 중복된 행은 제거합니다.구
JDBC는 자바 응용 프로그램과 여러 종류의 데이터베이스(DBMS) 사이를 연결하는 표준 인터페이스입니다. Java 프로그램이 데이터베이스와 상호작용하려면 데이터베이스 종류에 상관없이 일관된 방식으로 접근해야 하며, 이때 JDBC가 그 역할을 합니다.JDBC는 데이터베
JDBC는 Java 프로그램이 데이터베이스와 상호작용할 수 있도록 돕는 API입니다. 데이터베이스 Class.forName("org.mariadb.jdbc.Driver");이 줄은 MariaDB 드라이버를 동적으로 로드하는 역할을 합니다.JDBC는 데이터베이스에 접근하
Statement는 SQL 쿼리를 데이터베이스에 전달하고, 그 결과를 반환받는 객체입니다.데이터베이스와 연결된 Conneciton 객체를 사용하여 Statement 객체를 생성할 수 있습니다.Statement는 데이터 조작(SQL 실행)과 데이터 정의(테이블 생성 등)
JDBC - ResultSet 객체 (SELECT문)JDBC - Statement 객체와 쿼리 실행 데이터를 삽입하거나 수정하는 것과 달리, SELECT 쿼리는 조회한 데이터를 반환받아 처리해야 합니다. 이때 ResultSet 객체를 사용하여 쿼리 결과를 관리합니다.
ClassPath 클래스패스 ClassPath 클래스패스 새 캔버스를 직접 만드는 기능은 유료 기능이며, 11월 10일까지 무료 평가판을 통해 사용할 수 있습니다. 자세히 알아보기 ClassPath 클래스패스 클래스패스(Classpath)는 자바 애플리케이션이 실행될
PreparedStatement는 자바의 JDBC에서 SQL 쿼리를 사전에 컴파일하여 파라미터를 동적으로 설정할 수 있도록 하는 객체입니다. 이 객체는 보안성과 성능을 높이는 데 유용하며, 특히 SQL 인젝션 공격을 방지하는 데 중요한 역할을 합니다. SQL 쿼리 작성
JDBC 드라이버는 자바 애플리케이션과 데이터베이스를 연결하는 중요한 역할을 합니다. 드라이버 로딩은 JDBC를 사용하기 위한 첫 번째 단계입니다.사용 클래스: java.lang.Class메서드: Class.forName(), System.setProperty()설명:
특정 단어 중심 조회란 사용자가 입력한 특정 단어나 키워드를 중심으로 데이터를 검색하는 것을 의미합니다. 예를 들어, 고객 이름이 "홍길동"인 레코드를 검색하거나 상품 이름에 "노트북"이 포함된 데이터를 조회하는 것입니다.대규모 데이터베이스에서 틀정 단어를 검색할 때는
DatabaseMetaData는 JDBC API에서 제공하는 인터페이스로, 데이터베이스의 구조 및 속성에 관한 메타데이터를 가져올 수 있도록 도와줍니다. 이를 통해 테이블, 컬럼, 사용자 권한, 데이터베이스 버전 등과 같은 정보를 조회할 수 있습니다. DatabaseM
ResultSetMetaData는 JDBC에서 ResultSet 객체의 메타데이터를 제공하는 인터페이스로, SQL 쿼리 결과에 포함된 열(column)에 대한 정보를 동적으로 조회할 수 있도록 합니다. 이는 특히 열 이름, 열 타입, 열 크기 등을 알아야 하거나, 쿼리
커넥션 풀이란
중첩 클래스(Nested Class)는 다른 클래스 내부에 정의된 클래스입니다. 자바에서는 중첩 클래스를 통해 외부 클래스와 연관된 내부 클래스를 쉽게 정의하고, 클래스 간 관계를 보다 명확히 표현할 수 있습니다. 중첩 클래스는 크게 정적(static) 중첩 클래스와
Enum(열거형)은 자바에서 서로 연관된 상수들을 하나의 집합으로 정의하는 특별한 데이터 타입입니다. 열거형은 일반적으로 일정한 값들 중 하나를 선택해야 할 때 유용하며, 코드의 가독성과 안전성을 높여줍니다. Enum (Java SE 17 & JDK 17)정의: 열거형
제네릭(Generic)은 자바에서 데이터 타입을 일반화하여 다양한 데이터 타입을 하나의 클래스나 메서드에서 사용할 수 있도록 하는 기능입니다. 제네릭을 사용하면 타입 안정성을 보장하고, 코드 재사용성을 높일 수 있어 자바 컬렉션 프레임워크와 같은 라이브러리에서 특히 유
람다식(Lambda Expression)은 자바 8부터 도입된 기능으로, 익명 함수(anonymous function)처럼 사용할 수 있는 간단한 문법입니다. 람다식은 주로 함수형 프로그래밍을 지원하기 위해 제공되었으며, 코드의 가독성을 높이고 간결하게 표현하는 데 유
함수형 인터페이스는 단일 추상 메서드(Single Abstract Method, SAM)만을 가진 인터페이스로, 주로 람다식과 함께 사용됩니다. 자바 8부터 제공되는 표준 함수형 인터페이스는 java.util.function 패키지에 포함되어 있으며, 일반적인 데이터
java.util.stream (Java SE 17 & JDK 17)자바 스트림 API는 자바 8부터 도입된 기능으로, 컬렉션이나 배열의 데이터를 선언형 방식으로 처리하고 함수형 프로그래밍 스타일로 다룰 수 있도록 설계되었습니다. 스트림은 데이터 소스를 변경하지 않고
프로세스는 실행 중인 프로그램을 의미하며, 운영 체제는 각 프로세스가 독립적으로 실행될 수 있도록 CPU, 메모리, 디스크와 같은 자원을 할당합니다. 각 프로세스는 독립된 메모리 공간을 가지므로 다른 프로세스와 메모리를 공유하지 않으며, 이러한 분리는 보안성과 안정성을
Java에서 스레드의 실행 순서, 상태, 우선순위를 제어하는 다양한 방법이 있습니다. 아래는 스레드의 우선순위와 상태 확인, 그리고 sleep() 메서드를 이용한 제어 방법들입니다.스레드의 우선순위는 실행될 가능성에 영향을 주지만, 절대적인 실행 순서를 보장하지는 않습
Java에서는 스레드를 크게 두 종류로 나눌 수 있습니다: 일반 스레드와 데몬 스레드. 이 두 스레드의 가장 큰 차이점은 메인 스레드가 종료되었을 때의 동작 방식입니다.특징:일반 스레드는 프로그램이 종료되기 전에 반드시 완료되어야 합니다.메인 스레드가 종료되더라도 모든
여러 스레드가 동시에 접근하거나 사용하는 자원으로, 메모리, 변수, 파일, 데이터베이스 연결 등이 포함됩니다.공유 자원은 여러 사람이 함께 사용하는 공용 공간과 같습니다. 예를 들어, 회사 내 프린터가 여러 사람이 동시에 사용하려고 할 때, 누군가가 인쇄 작업을 완료하
네트워크는 컴퓨터, 프로그램, 하드웨어 등이 원격 자원에 접근하고 데이터를 주고받을 수 있게 해줍니다.컴퓨터(프로그램) ↔ 네트워크 ↔ 컴퓨터(프로그램): 일반적인 네트워크 통신 형태입니다. 예를 들어, 두 컴퓨터가 파일을 전송하거나, 서버와 클라이언트가 데이터를 교환
java.net패키지 - InetAddress 클래스InetAddress (Java SE 17 & JDK 17)InetAddress 클래스는 자바의 java.net 패키지에서 IP 주소와 관련된 정보를 다루는 클래스입니다. InetAddress는 네트워크에서 호스트의
URL (Java SE 17 & JDK 17)URL은 인터넷 주소의 구성 요소를 정의하여, 자바 프로그램이 웹의 다양한 자원에 접근할 수 있도록 돕는 역할을 합니다.URL 클래스는 자원의 위치와 접속 방법을 이해할 수 있게 하는 네트워크의 주소 지도 역할을 합니다.UR
(Java 17): Oracle Java 17 URLConnectionDocumentationURLConnection은 우체국에서 발송되는 편지의 봉투와 같은 역할을 합니다. URL이 주소를 정의한다면, URLConnection은 실제로 해당 주소로 연결하고 데이터를
텍스트 파일 아이콘패키지 - URLConnection 클래스Oracle Java 17 ServerSocketDocumentationOracle Java 17 Socket DocumentationServerSocket은 전화 교환원처럼, 외부의 연결 요청을 기다리다가 연
웹 환경에서 클라이언트와 서버의 상호작용은 웹의 근본적인 작동 원리입니다. 클라이언트는 사용자가 웹 브라우저(예: Chrome, Firefox, Safari)를 통해 요청(request)을 보내는 주체이며, 서버는 이 적절한 응답(response)을 반환하는 역할을
HTML은 웹 페이지의 구조를 만드는 마크업 언어입니다. 요소(element)로 웹 컨텐츠를 브라우저가 어떻게 보여줄지 정의하며, 제목, 문단, 이미지, 링크 등 다양한 구성 요소를 포함합니다.기본 문법: HTML은 <태그>내용</태그> 형태로 사용하며, &
Tomcat 실행 파일 위치 이동커맨드 프롬프트를 열고 Tomcat의 bin 디렉토리로 이동합니다.cd ~/java/apache-tomcat-10.1.31/bin서버 시작Tomcat 서버를 시작하려면 startup.bat 파일을 실행합니다../catalina.sh s
HTML5에서는 문서의 첫 줄에 HTML5 문서임을 선언하는 코드가 들어가야 합니다. 이 선언은 브라우저에게 HTML5 표준을 사용해 문서를 해석하라고 지시합니다.모바일 환경에서도 웹 페이지가 잘 표시되도록 해주는 태그입니다. viewport 메타 태그를 사용해 화면
HTML 폼 가이드 - Web 개발 학습하기 | MDN<form> 태그는 HTML 문서 내에서 폼을 정의하는 기본 태그입니다. <form> 태그는 웹 서버와 데이터를 주고받기 위한 틀을 제공하며, action 속성으로 데이터를 전송할 URL을, method
HTTP (HyperText Transfer Protocol)는 웹 브라우저와 웹 서버 간에 데이터를 주고받기 위해 사용하는 프로토콜로, HTML, 이미지, 동영상 등 웹 페이지 요소들을 전송합니다. 1\. 비연결성(Connectionless) HTTP는 요청과
MDN CSS - 한국어CSS (Cascading Style Sheets)는 웹 페이지의 스타일과 레이아웃을 정의하는 언어로, HTML의 구조에 디자인을 입혀서 웹 페이지를 시각적으로 꾸밀 수 있게 합니다. HTML이 페이지의 구조를 결정한다면, CSS는 그 구조를 어
JavaScript | MDNhttps://www.w3.org/TR/wasm-js-api-2/JavaScript는 웹 페이지에 동적인 기능을 추가할 수 있는 프로그래밍 언어입니다. 웹 브라우저에서 실행되며, 주로 웹 페이지의 동작을 제어하거나 사용자와 상호작용
자바스크립트 - 데이터타입제목 없음 데이터 타입 JavaScript의 타입과 자료구조 - JavaScript | MDN JavaScript의 데이터 타입은 크게 기본 자료형(Primitive Types)과 참조 자료형(Reference Types)으로 나눌 수 있
자바스크립트 - 기본문법 JavaScript 기초 - MDN 변수 선언 JavaScript에서는 데이터를 저장하기 위해 변수를 사용합니다. 변수를 선언할 때는 let, const, var를 사용합니다. let: 블록 스코프를 가지며, 값이 변경 가능한 변수
JavaScript에서는 반복문을 사용하여 HTML 구조를 동적으로 생성할 수 있습니다. 특히, for문을 사용하여 테이블 형태의 데이터를 출력하거나, 구구단 및 별찍기와 같은 패턴을 손쉽게 구현할 수 있습니다.설명: 위 예제에서는 for문을 사용하여 1부터 9까지 열
함수 선언문을 사용하여 함수를 정의할 수 있습니다. 함수 선언문은 function 키워드로 시작하며, 함수 이름, 매개변수, 함수 본문으로 구성됩니다.함수 표현식은 함수 자체를 변수에 할당하는 방식입니다. 이 경우 함수에 이름을 붙이지 않으면 익명 함수가 됩니다.ES6
이벤트 입문 - Web 개발 학습하기 | MDNJavaScript에서 이벤트(Event)는 웹 페이지에서 사용자의 행동이나 특정 상황을 감지하여, 이에 반응하는 방식으로 동작합니다. 예를 들어, 버튼을 클릭하거나, 입력 필드에 텍스트를 입력하거나, 페이지가 로드될 때
배열(Arrays) - Web 개발 학습하기 | MDN배열은 대괄호 \[]를 사용하여 선언할 수 있으며, 각 요소는 쉼표로 구분합니다. JavaScript에서 배열은 길이의 제한이 없고, 다양한 타입의 데이터를 동시에 포함할 수 있습니다.배열은 new Array() 구
일반적으로 함수는 정의된 매개변수의 개수에 맞춰 호출되어야 하지만, 가변 인자를 사용하면 동적으로 개수가 달라지는 여러 개의 인자를 함수에서 처리할 수 있습니다. 즉, 함수는 호출될 때 전달된 인자의 개수와 관계없이 이를 모두 받아서 처리할 수 있습니다. 이를 통해 함
JavaScript 객체 기본 - Web 개발 학습하기 | MDNJavaScript에서 객체는 {}를 사용해 정의하며, 여러 속성(프로퍼티)과 메서드(함수)를 포함할 수 있습니다. 객체는 프로퍼티(Property)와 메서드(Method)라는 두 가지 주요 구성 요소로
MDN Web Docs - JavaScript 내장 객체JavaScript 내장 객체 - MDN모든 JavaScript 객체의 부모 객체입니다.객체의 기본 구조를 정의하며, 다른 객체의 속성과 메서드를 상속합니다.주요 메서드:Object.keys(): 객체의 모든 키를
자바스크립트 - DOM(Document Object Model)자바스크립트 - 내장클래스DOM 소개 - Web API | MDNDOM 트리DOM (Document Object Model)은 웹 페이지를 조작하고 제어할 수 있는 JavaScript의 강력한 기능입니다.
c
Servlet은 Java 클래스의 일종으로, 웹 서버에서 실행되는 서블릿 컨테이너(Servlet Container) 내에서 동작하며, 클라이언트(주로 웹 브라우저)의 요청을 처리하고 응답을 생성합니다. Servlet은 HTTP 요청 및 응답을 처리하기 위해 HTTP 프
JSP는 HTML 코드 내에 Java 코드를 삽입할 수 있도록 여러 가지 특별한 태그를 제공합니다. 이 태그들을 통해 Java 코드를 작성하고, 동적인 콘텐츠를 HTML에 삽입할 수 있습니다.스크립트릿은 JSP에서 Java 코드를 작성할 때 사용되는 기본 문법입니다.
JSP는 개발자가 자주 사용하는 객체들을 기본적으로 제공하여 편리하게 사용할 수 있게 합니다. 이러한 객체들은 내장 객체라고 하며, JSP 페이지에서 직접 사용할 수 있습니다.클라이언트의 요청 정보를 담고 있는 객체로, 폼 데이터와 쿼리 파라미터 등을 가져올 수 있습니
HTML 폼 작성: 클라이언트 측에서 데이터를 입력할 수 있는 HTML 폼을 만듭니다.폼 데이터 전송: 사용자가 폼을 제출하면 서버로 데이터가 전송됩니다.JSP에서 데이터 받기: JSP 페이지에서 request.getParameter()를 사용하여 데이터를 가져와 처리
META-INF 디렉토리는 Java 애플리케이션의 구성 정보와 메타데이터를 관리하여, 런타임 환경이 해당 애플리케이션을 올바르게 실행하도록 돕습니다. Java 런타임은 META-INF 디렉토리의 정보를 참조하여 클래스 경로를 설정하거나, 애플리케이션의 엔트리 포인트를
데이터베이스 커넥션 풀(Database Connection Pool) 은 애플리케이션과 데이터베이스 간의 연결을 효율적으로 관리하기 위해 사용하는 기술입니다. 문제점: 애플리케이션이 데이터베이스와 연결하기 위해 Connection 객체를 생성하는 과정은 다음과 같은 단
배포는 개발 환경에서 작성된 애플리케이션을 서비스 환경으로 올리는 작업입니다.일반적으로 CI/CD 도구인 Git Action이나 Jenkins를 사용해 자동화된 배포 과정을 구성합니다.URL 경로 수정:Tomcat → Edit Configuration → Deploym
데이터베이스를 직접 연결에서 풀링을 통한 연결로 바꾸기 (zipcode.jsp)
위 코드는 기본적인 게시판 기능을 구현한 예제입니다. 사용자 입력: 사용자가 작성한 글 정보를 서버로 전송.데이터 처리: 서버는 데이터를 데이터베이스에 저장.결과 처리: 정상적으로 처리되었는지 사용자에게 알림.게시판 데이터를 저장하기 위한 테이블 board1 생성.
1\. HTML → JSPHTML에서 JSP로 변환 작업HTML은 정적 웹 페이지를 구성하는 기본적인 언어입니다. 이와 달리 JSP는 동적인 웹 페이지를 구성할 때 사용합니다.JSP는 HTML 내부에 자바 코드를 삽입할 수 있으므로, 데이터베이스와의 상호작용을 통해 동
게시판의 총 데이터 갯수를 확인하는 방법은 다음과 같습니다.SQL 쿼리 사용:데이터베이스에서 board1 테이블의 모든 레코드 개수를 계산합니다.결과값으로 게시판에 저장된 총 데이터 갯수를 반환합니다.Java에서 ResultSet 활용:getRow() 메서드를 사용하여
<jsp:include /> 액션 태그는 JSP 페이지에서 다른 JSP 파일을 실행 시점에 동적으로 포함하는 방법입니다. 이 태그는 정적인 내용을 포함하는 <%@ include %> 지시자와 달리, 요청할 때마다 포함된 JSP 파일을 로드하므로 변경된 내용을
클라이언트에게 응답을 보내지 않고 다른 JSP 페이지로 요청을 전달합니다. 예를 들어, 로그인 성공 후 다른 페이지로 이동하는 경우 사용할 수 있습니다. page 속성으로 전달할 JSP 파일을 지정하며, <jsp:param />을 통해 파라미터를 전달할 수 있습니
DTO는 Data Transfer Object의 약자로, 데이터를 운반하는 역할을 하는 객체입니다. DTO는 주로 여러 계층(예: 데이터베이스, 서비스, 웹 등) 간에 데이터를 전달할 때 사용됩니다.순수한 데이터만 저장: DTO에는 오직 데이터와 그에 해당하는 gett
image.pngModel 1은 JSP 페이지가 모델(Model), 뷰(View), 컨트롤러(Controller)의 역할을 모두 수행하는 단일화된 구조로 이루어져 있습니다. 즉, 사용자 요청을 받아서 비즈니스 로직을 수행하고, 결과를 사용자에게 반환하는 작업을 모두 J
Lombok은 자바 애노테이션 기반 라이브러리로, 코드 양을 줄여주는 유용한 도구입니다.IntelliJ IDEA를 열고, File > Settings(Mac: IntelliJ IDEA > Preferences)로 이동합니다.왼쪽 메뉴에서 Plugins를 선택하고 Mar
17.11 Uploading Files with Java Servlet Technology - Java Platform, Enterprise Edition: The Java EE Tutorial (Release 7)(https://docs.oracle.com/
web.xml: 배포 설명자(Deployment Descriptor)로서, 서블릿을 설정하고 웹 애플리케이션의 동작을 정의하는 파일입니다. 서블릿의 매핑, 초기화 매개변수, 필터, 리스너 등을 설정할 수 있습니다.서블릿 매핑: 서블릿 클래스와 URL 경로를 연결하여 특
Servlet 애너테이션(@WebServlet)을 사용하면, web.xml 파일에 서블릿 설정을 작성하지 않고도 서블릿의 URL 매핑을 쉽게 지정할 수 있습니다. 애너테이션 방식은 코드 내에서 직접 서블릿을 설정할 수 있어 직관적이고, 설정이 간단하다는 장점이 있습니다
MVC Model 2는 JSP와 서블릿을 기반으로 하는 웹 애플리케이션 아키텍처 패턴으로, Model-View-Controller(MVC) 구조를 사용하여 서버 측에서 요청과 응답을 처리하는 방식입니다. MVC Model 2는 비즈니스 로직, 데이터, 프레젠테이션(화면
HttpServletRequest와 HttpServletResponse는 서블릿 API에서 클라이언트의 요청과 서버의 응답을 처리하는 데 사용되는 주요 인터페이스입니다. 이 두 객체는 서블릿이 요청을 처리하고, 결과를 클라이언트에게 전달하는 데 필요한 데이터를 제공합니
Framework와 라이브러리는 모두 소프트웨어 개발을 돕기 위한 코드의 모음이지만, 구조적 차이와 제어 흐름의 주도권에 따라 큰 차이가 있습니다. Java 개발 환경에서도 이 두 개념은 중요한 의미를 가지며, 특히 Spring Framework와 같은 대규모 프레임워
Spring Framework는 Java 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로, 개발자가 대규모 엔터프라이즈 애플리케이션을 효율적으로 개발할 수 있도록 다양한 기능을 제공합니다. IoC(Inversion of Control)와 DI(Dependency In
Spring IoC 컨테이너 및 Beans 소개 :: Spring FrameworkSpring DI(Dependency Injection, 의존성 주입)는 스프링 프레임워크의 핵심 기능 중 하나로, 객체 간의 의존성을 프레임워크가 자동으로 관리해 주는 개념입니다. DI
스프링 컨테이너(ApplicationContext)는 객체를 생성하고, 의존성을 주입하며, 생명 주기를 관리합니다.XML 설정 파일을 사용해 객체를 정의하고 의존성을 설정할 수 있습니다.XML의 <bean> 태그를 통해 객체를 생성하고 의존성을 설정합니다.sing
제어의 역전(IoC)은 객체의 생성과 생명 주기를 개발자가 아닌 프레임워크가 관리하도록 제어를 넘겨주는 개념입니다. 이는 객체가 자신이 사용할 의존 객체를 직접 생성하거나 관리하지 않고, 외부에서 주입받도록 하여 객체 간 결합도를 낮추는 방식입니다. IoC를 통해 코드
스프링 IoC 컨테이너:객체의 생성, 관리, 소멸의 생명주기를 책임진다.개발자가 객체의 생성과 주입에 신경 쓰지 않아도, 컨테이너가 이를 관리한다.XML Configuration:<bean> 태그를 이용해 객체의 생성 및 의존성을 설정.<constructor
스프링에서는 XML 설정과 Java 파일 기반의 설정을 통해 빈을 설정하고 의존성을 주입할 수 있습니다. 두 방법은 각기 장단점이 있으며, 스프링 3 이후로는 Java Config가 더 많이 사용되고 있습니다. 각 방법의 개념과 예제를 통해 비교해 보겠습니다.XML 기
POJO(Plain Old Java Object)는 특정 프레임워크나 환경에 종속되지 않고 순수한 자바 언어로 작성된 객체를 의미합니다. 스프링을 비롯한 다양한 프레임워크에서 POJO는 프레임워크에 의존하지 않고 독립적인 비즈니스 로직을 작성할 수 있도록 하는 객체로,
Bean Scope는 스프링 컨테이너에서 빈 객체의 생명 주기와 접근 범위를 결정하는 설정입니다. 스프링에서는 다양한 범위(Scope)를 제공하여 빈을 관리할 수 있으며, 각 스코프는 빈이 생성되고 활용되는 방식을 다르게 정의합니다. 이를 통해 필요한 용도에 따라 빈의
스프링 빈의 라이프사이클은 크게 다음과 같은 단계로 나뉩니다.객체 생성의존성 주입초기화(Initialization)사용소멸(Destruction)스프링 IoC 컨테이너는 빈의 라이프사이클을 전적으로 관리하며, 필요한 메서드를 실행하거나 콜백을 호출하여 초기화 및 소멸
BeanPostProcessor는 스프링 빈의 생명주기 동안 빈 초기화 전후에 커스텀 로직을 추가할 수 있는 인터페이스입니다.postProcessBeforeInitialization: 빈이 초기화되기 전에 실행됩니다.postProcessAfterInitializatio
스프링에서 Java Config를 사용해 빈을 생성하고 설정할 수 있습니다.빈은 @Bean 어노테이션으로 정의되며, 설정 클래스에서 관리됩니다.코드 예시:Setter Injection: 객체의 setter 메서드를 통해 의존성을 주입합니다.코드 예시:빈 생성 메서드를
Using @AutowiredAutowiring Collaborators자동 주입은 @Autowired 어노테이션을 통해 수행됩니다. 스프링은 이 어노테이션이 붙은 필드나 생성자, Setter 메서드에 자동으로 의존성을 주입합니다.자동 주입(Autowired)은 스프링
전체 데이터를 기준으로 필요한 페이지 수를 계산합니다. (totalRecord - 1)로 계산하면 전체 데이터가 recordPerPage로 나누어떨어질 때도 올바른 페이지 수를 얻을 수 있습니다.skip 변수는 현재 페이지에서 몇 개의 데이터를 건너뛸지를 계산합니다.
모글:seq: 자동 증가.grp: seq와 동일.grps: 0.grpl: 0.자식글(답글):seq: 자동 증가.grp: 부모 글의 grp와 동일.grps:부모 글의 grps보다 큰 값을 가진 모든 글의 grps를 +1 증가.자신의 grps는 부모 글의 grps + 1.