데이터베이스 트랜잭션 및 테이블 관리
·
🗄️ Backend/SQL
데이터베이스의 트랜잭션과 테이블 관리는 데이터의 무결성을 유지하고 효율적인 데이터 관리를 가능하게 합니다. 이 포스팅에서는 트랜잭션의 개념, COMMIT과 ROLLBACK, SAVEPOINT, 자동 커밋 및 롤백, ALTER TABLE 구문, CREATE / DROP TABLE 등의 내용을 상세히 설명하겠습니다.1. 트랜잭션 시작과 종료트랜잭션 시작트랜잭션은 실행 가능한 첫 번째 SQL 문장이 실행될 때 시작됩니다. 이 시점부터 이후의 모든 SQL 문장은 하나의 논리적인 작업 단위로 묶입니다. 이를 통해 여러 작업을 함께 처리하거나 실패 시 롤백할 수 있습니다.트랜잭션 종료트랜잭션은 명시적으로 COMMIT 또는 ROLLBACK 명령어로 종료됩니다. 또한, 자동 커밋이 발생할 때도 종료됩니다. 자동 커밋은..
SQL 서브쿼리 (Subquery)와 데이터 조작 명령어 (DML) 정리
·
🗄️ Backend/SQL
SQL에서 서브쿼리와 데이터 조작 명령어는 데이터베이스를 효율적으로 관리하고, 복잡한 데이터를 처리하는 데 중요한 역할을 합니다. 이번 글에서는 각 요소의 정의, 기능, 구문 및 예제를 통해 자세히 설명하겠습니다.1. 서브쿼리 (Subquery)서브쿼리란?서브쿼리는 하나의 SQL 문장 내에 포함된 다른 SQL 문장으로, 주로 메인 쿼리의 조건이나 데이터를 제공하는 데 사용됩니다. 서브쿼리는 데이터의 유연한 검색 및 필터링을 가능하게 해줍니다.서브쿼리의 주요 기능복잡한 쿼리 단순화: 서브쿼리를 사용하면 복잡한 조건을 간단히 처리할 수 있습니다.재사용성 향상: 동일한 로직을 여러 번 사용해야 할 때 서브쿼리를 활용하여 코드 중복을 줄일 수 있습니다.서브쿼리 구문 예시SELECT column1, column2..
그룹 함수 및 조인 함수 구문
·
🗄️ Backend/SQL
데이터베이스를 다룰 때 자주 사용하는 그룹 함수(Group Functions)와 조인(JOIN)은 데이터를 효율적으로 조회하고 분석하는 데 필수적인 도구입니다. 이번 포스팅에서는 그룹 함수와 조인에 대해 자세히 알아보고, 각 기능이 어떻게 사용되는지 실제 SQL 예시를 통해 설명하겠습니다.Chapter 4: 그룹 함수 (Group Functions)1. 그룹 함수란?그룹 함수는 여러 행의 값을 집계하여 하나의 결과를 반환하는 함수입니다. 이러한 함수는 테이블에 있는 데이터를 분석하고 요약하는 데 유용합니다. SQL에서는 SUM, AVG, MIN, MAX, COUNT와 같은 기본적인 그룹 함수가 제공됩니다. 그룹 함수는 주로 GROUP BY 절과 함께 사용되며, 여러 행을 하나의 그룹으로 묶어 처리합니다...
숫자 함수 및 SQL 함수 정리
·
🗄️ Backend/SQL
ROUND 함수ROUND 함수는 숫자를 소수점 N자리로 반올림할 때 사용됩니다.사용 구문SELECT ROUND(number, n) FROM DUAL;number: 반올림할 숫자.n: 반올림할 소수점 자리수 (생략되면 0).예시SELECT ROUND(45.923), -- 46 (소수점 첫째 자리에서 반올림) ROUND(45.923, 0), -- 46 (소수점 첫째 자리에서 반올림) ROUND(45.923, 2), -- 45.92 (소수점 셋째 자리에서 반올림) ROUND(45.923, -1) -- 50 (정수 자리에서 반올림)FROM DUAL;TRUNC 함수TRUNC 함수는 소수점 이하를 절삭할 때 사용됩니다.사용 구문SELECT TRU..
SQL SELECT 구문 및 DCL 권한 관리
·
🗄️ Backend/SQL
SQL SELECT 구문 정리 및 예시SELECT 구문은 SQL에서 데이터베이스로부터 데이터를 조회하는 가장 기본적인 구문입니다. 데이터베이스에서 원하는 데이터를 다양한 조건으로 조회할 수 있으며, 필요한 데이터를 선택해 가공할 수도 있습니다.기본 구문 형식SELECT [DISTINCT] { * | column [[AS] alias], ... }FROM table[WHERE condition][ORDER BY column [ASC | DESC]];구성 요소 설명SELECT: 하나 이상의 열을 선택합니다.DISTINCT: 중복되는 행을 제거합니다.*: 테이블의 모든 열을 선택합니다.column: 특정 열을 지정하여 조회합니다.AS: 선택된 열의 별칭(alias)을 지정합니다.alias: 출력 시 열의 이름..
RDBMS (관계형 데이터베이스 관리 시스템)의 이해: 개념과 SQL 기본 구문
·
🗄️ Backend/SQL
관계형 데이터베이스 관리 시스템(RDBMS)은 현대 데이터 관리의 핵심 요소로 자리 잡고 있습니다. 본 포스팅에서는 RDBMS의 기본 개념부터 다양한 SQL 구문에 이르기까지, 관계형 데이터베이스를 쉽게 이해하고 실무에 적용할 수 있는 기본 사항들을 설명합니다.1. RDBMS란 무엇인가?RDBMS는 Relational Database Management System의 약자로, 데이터를 테이블(Table) 형태로 관리하는 데이터베이스 시스템입니다. 각 테이블은 서로 연관된 데이터를 포함하며, 이를 통해 데이터를 효율적으로 저장, 관리, 검색할 수 있습니다. 주요 특징으로는 데이터 무결성, 중복성 제거, 데이터 공유 등이 있습니다.2. 파일 시스템과 데이터베이스 시스템의 차이점파일 시스템과 데이터베이스 시스..
JDBC를 이용한 Oracle 데이터베이스 연동 및 회원 정보 관리
·
🗄️ Backend/SQL
JDBC(Java Database Connectivity)란?JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 연결하고 데이터를 처리하기 위한 API입니다. 이를 사용하여 다양한 데이터베이스 시스템과 연동할 수 있으며, 데이터 조회, 삽입, 수정, 삭제와 같은 작업을 손쉽게 처리할 수 있습니다.이번 포스트에서는 JDBC를 사용하여 Oracle 데이터베이스와 연동하여 회원 정보를 관리하는 방법을 살펴보겠습니다. 아래 예제는 회원 정보를 등록, 수정, 삭제하는 기본적인 기능을 구현합니다.  프로젝트 준비Oracle 데이터베이스 설정먼저, 데이터베이스에 접속하기 위한 Oracle DB를 설치하고, 접속할 수 있는 HR 계정을 활성화합니다. 아래는 데이터베이스 접속 정보를 예시..
익명 객체와 람다식: 자바에서의 활용
·
🗄️ Backend/Java
자바는 객체 지향 프로그래밍 언어로, 다양한 객체를 생성하고 활용하는 데 강력한 기능을 제공합니다. 그중에서도 익명 객체와 람다식은 매우 유용한 개념입니다. 이 글에서는 익명 객체와 람다식의 정의, 사용법, 그리고 각각의 특징에 대해 알아보겠습니다.1. 익명 객체 (Anonymous Object)1.1 익명 객체란?익명 객체는 이름이 없는 클래스 인스턴스를 의미합니다. 일반적으로 클래스의 인스턴스를 생성할 때는 해당 클래스의 이름을 사용하여 명시적으로 객체를 생성합니다. 그러나 구현 클래스가 매번 달라지거나, 특정 기능을 한 번만 사용하고자 할 때는 익명 객체를 사용할 수 있습니다.1.2 익명 객체의 사용 예익명 객체는 인터페이스 타입으로 변수를 선언하고, 해당 변수를 사용하여 구현 객체를 초기화할 때 ..
Java API : 주요 클래스 및 I/O 스트림 사용법
·
🗄️ Backend/Java
Java API: 주요 클래스 및 메서드Java API(Application Programming Interface)는 Java 프로그래밍에서 매우 중요한 구성 요소입니다. 이 글에서는 Java API의 주요 클래스와 메서드에 대해 상세히 알아보겠습니다.1. Object 클래스개요Java에서 모든 클래스는 기본적으로 Object 클래스를 상속받습니다. 만약 다른 클래스를 상속하지 않으면, 자동으로 Object 클래스의 자식이 됩니다. 따라서 모든 Java 클래스는 Object 클래스의 메서드를 사용할 수 있습니다.주요 메서드equals(): 두 객체가 동일한지 비교합니다.toString(): 객체의 주소를 문자열로 반환하며, 주로 오버라이딩하여 사용합니다.hashCode(): 객체의 고유한 숫자 값을 반..
JAVA 예외 처리(Exception Handling)와 가비지 컬렉션 (Garbage Collection)
·
🗄️ Backend/Java
자바 예외 처리 (Exception Handling)예외(Exception)란 프로그램 실행 중 예상치 못한 오류가 발생하는 상황을 의미합니다. 자바는 이러한 오류를 관리하고 처리하기 위한 예외 처리 메커니즘을 제공합니다. 예외 처리는 프로그램에서 문제가 발생할 가능성이 있는 부분을 미리 예측하여, "문제가 발생하면 이렇게 처리하라"라고 명시하는 프로그래밍 방식입니다.예외의 종류자바에서 예외는 크게 두 가지로 나뉩니다:컴파일러 체크 예외(Checked Exception):컴파일 과정에서 발생할 수 있는 예외로, 예외 처리 코드를 반드시 포함해야 합니다.예외 처리 코드가 없다면 컴파일 오류가 발생합니다.예: IOException, SQLException 등.실행 예외(Unchecked Exception):..
JAVA 패키지와 객체지향 개념 정리
·
🗄️ Backend/Java
이번 글에서는 Java 패키지와 자바에서 자주 사용하는 객체지향 프로그래밍의 핵심 개념들에 대해 알아보겠습니다.패키지 (Package)패키지는 자바에서 클래스들을 체계적으로 관리하기 위한 폴더 개념입니다. 패키지를 사용하면 클래스들이 이름이 충돌하는 것을 방지하고, 코드의 가독성을 높여줍니다. 패키지는 소문자로 작성해야 하며, 최상위 패키지의 이름은 java로 시작할 수 없습니다.패키지를 불러오는 방법은 import 키워드를 사용하는 것이며, 특정 패키지의 모든 클래스를 사용하고 싶다면 *를 붙여 사용합니다.import java.util.*; // java.util 패키지의 모든 클래스 사용패키지는 서로 다른 패키지의 클래스들을 효율적으로 관리할 수 있게 해줍니다.기본타입(Primitive Type) ..
JAVA 메서드와 객체지향 프로그래밍
·
🗄️ Backend/Java
1. 탈출문 (break, continue, return)탈출문은 프로그램의 실행 흐름을 제어하여 반복문이나 블록 구조에서 빠져나오게 하는 문장입니다. 자바에서 주로 사용하는 탈출문으로는 break, continue, return이 있습니다. 각각의 역할과 사용 방법을 알아보겠습니다.1.1. break 문반복문 내에서 어떤 조건을 만족할 때 즉시 반복문을 종료하고 빠져나오도록 합니다.중첩 반복문에서는 내부 반복문에서 break를 사용하면 해당 내부 반복문만 종료됩니다.외부 반복문까지 종료하려면 외부 반복문에 라벨(label)을 붙이고 break label; 형태로 사용해야 합니다.예시for (int i = 0; i 중첩 반복문에서 break 라벨 사용outer: // 외부 반복문에 라벨 지정for (in..
JAVA 배열과 제어문(반복문) 정리
·
🗄️ Backend/Java
1. 배열(Array)이란?배열은 같은 데이터 타입의 여러 값을 한 번에 저장하고 관리할 수 있는 자료 구조입니다. 배열을 사용하면 여러 변수를 따로 선언하지 않아도 하나의 변수로 여러 데이터를 처리할 수 있어 코드가 간결해집니다.배열의 특징동일한 데이터 타입만 저장 가능 (Homogeneous Collection)배열의 크기는 고정적이며, 한 번 생성되면 변경할 수 없습니다.배열은 0번 인덱스부터 시작합니다.배열의 길이는 배열명.length로 확인할 수 있습니다.배열의 구조배열 선언:위 코드는 정수형(int) 데이터를 담을 배열 a를 선언합니다.int[] a; // 또는 int a[];배열 생성:배열 a를 크기 4로 생성하여, 4개의 정수를 저장할 수 있습니다.a = new int[4];배열 초기화:..
JAVA 연산자 총정리: 개념부터 예제까지!
·
🗄️ Backend/Java
자바에서 연산자는 변수의 값을 조작하거나 연산을 수행할 때 사용됩니다. 연산자의 종류는 다양하며, 피연산자(operand)의 개수에 따라 단항 연산자, 이항 연산자, 삼항 연산자로 나눌 수 있습니다. 또한 각 연산자는 특정 데이터 타입에 맞추어 동작하며, 범위를 벗어나는 연산에서는 오버플로(overflow)나 언더플로(underflow) 현상이 발생할 수 있습니다. 이번 포스팅에서는 자바의 다양한 연산자와 그 사용법을 알아보겠습니다.1. 단항 연산자 (Unary Operator)단항 연산자는 하나의 피연산자를 가지고 동작하는 연산자입니다. 대표적으로 증감 연산자(++/--), 부호 연산자(+,-), 논리 반전 연산자(!), 비트 반전 연산자(~) 등이 있습니다.1.1 증감 연산자 (++, --)변수의 값..
AWS Lambda와 API Gateway를 활용한 서버리스 아키텍처 구축
·
🗄️ Backend/AWS
AWS Lambda와 API Gateway를 활용한 서버리스 아키텍처 구축AWS Lambda는 서버리스(Serverless) 아키텍처를 지원하는 AWS의 컴퓨팅 서비스로, 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있게 해줍니다. 이 글에서는 AWS Lambda의 개념부터 실제로 함수를 생성하고 API Gateway를 통해 RESTful API를 구축하는 방법까지 자세히 알아보겠습니다.목차AWS Lambda란?AWS Lambda의 특징Lambda 함수 생성하기API Gateway로 RESTful API 구축하기Lambda 함수에 API Gateway 연결 및 배포API Gateway의 보안 설정실습 예제Java AWS SDK로 Lambda 호출하기마치며AWS Lambda란?AWS Lamb..