함께 성장하는 기록장

꾸준한 기록이 모여 도서관이 될 수 있도록

전체 글 9

JDBC란?

DBMS에는 다양한 종류가 있다. 그리고 다양한 언어로 DBMS들에 접근하려면 각각에 맞는 언어가 필요하다. 자바에서는 DB에 접근하기 위한 표준화된 API로 JDBC를 이용할 수 있다. JDK 1.1 버전에 출시된 오랜 기술로써 SQL Mapper나 ORM의 기반이 되었다. 그래서 이번에는 이 기반이 되는 JDBC에 대해 정리하려고 한다.   JDBCJDBC(Java Database Connectivity)는 Java를 사용해 데이터베이스에 접근할 수 있도록 하는 자바 API 이다. 이를 통해 DB에 접속, SQL 실행하여 데이터를 다루는 작업을 할 수 있다.  JDBC 구조자바 응용프로그램에서는 JDBC 드라이버 매니저를 통해 JDBC 드라이버를 로드하여 사용하므로, DBMS가 바뀌어도 공통으로 사용..

Java 2024.09.09

Spring이란?

Spring(스프링)으로 웹 개발은 해봤지만 막상 스프링을 정의하자니 어려움이 있었다. 무언가를 사용하는 것도 좋지만, 사용 원리에 대해서 아는 것도 중요하다. 그래서 이번 시간에 스프링이 무엇인지 정리해보려고 한다. 스프링 공식 페이지  (https://spring.io/)   Spring의 정의스프링이란 무엇일까?스프링을 보통 다음처럼 정의한다.자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 정의를 하나씩 뜯어보자면, 자바 엔터프라이즈 개발을 편하게 해주는  > EJB 복잡함을 다른 방식으로 접근하여, 엔터프라이즈 개발에서 필요한 기술적 요구를 충족하면서도 개발을 복잡하지 않게 한다. EJB(Enterprise Java Bean)Java EE(Enterprise Edit..

Spring 2024.09.02

Java Collection, Generics

컬렉션(collection)과 제네릭(generics)자바에서는 자료구조 과목에서 배우는 많은 자료구조들을 컬렉션으로 만들어 제공한다. 중요한 것은 배열과 달리 가변 크기의 컨테이너로 만들어지며 이를 제네릭이라는 기법으로 구현한다. 이렇게 제공되는 도구를 잘 활용하는 것도 중요하니 잘 살펴보려고 한다!  Collection자바에서 컬렉션(Collection)이란 데이터의 집합, 그룹을 의미하며 JCF(Java Collections Framework)는 이러한 데이터, 자료구조인 컬렉션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공한다.  Collection 인터페이스는 List, Set, Queue로 크게 3가지 상위 인터페이스로 분류할 수 있다.추가로 Collection 인터페이스를 상속받진 않지..

Java 2024.08.24

데이터베이스 언어 (DDL, DML, DCL)

데이터베이스 언어데이터베이스 시스템에서의 작업을 위한 언어이다. 즉 데이터베이스 언어를 사용하여 데이터베이스에 접근할 수 있다. 흔히 접하는 SQL은 데이터베이스 언어의 표준으로 정해진 것이므로 데이터베이스 언어와 동치는 아니다. 데이터베이스 언어로는 크게 세 가지(DDL, DML, DCL)가 있다.   데이터 정의 언어(DDL, Data Definition Language)데이터베이스의 구조나 데이터 형식을 정의하는 언어이다.어떤 데이터베이스, 스키마, 테이블이 필요한지 설계하며, 데이터가 준수해야 하는 제약조건이 포함되어 있다.따라서 이들을 정의하거나 변경, 삭제 등을 할 때 사용하는 언어이다. 스키마, 도메인, 테이블, 뷰, 인덱스 등을 생성(CREATE), 수정(ALTER), 삭제(DROP), 초..

DataBase 2024.07.16

Spring MVC 구조와 레이어드 아키텍처

Spring MVC & Layered Architecture이번에는 MVC 패턴과 레이어드 아키텍처를 통해 Spring의 기본적인 동작 방식을 알아보려고 한다. MVC와 Layered Architecture에 대한 내용을 각각 살펴보고, Spring에서의 동작 과정을 알아보는 순서로 작성했다. MVCModel, View, Controller를 의미하며 애플리케이션의 요소를 세 가지 역할로 구분한 패턴이다. 역할에 따라 나뉘므로 낮은 결합도를 가지고, 개발과 유지 보수가 수월해진다. 또한 재사용성이 높아져 애플리케이션의 유연성도 향상된다.Model(모델)애플리케이션의 데이터로, 데이터 정보를 가공하여 가지고 있는 컴포넌트이다. 데이터 처리 및 저장소와의 상호작용을 포함한 데이터와 비즈니스 로직을 다룬다. ..

Spring 2024.07.09

데이터베이스, DBMS와 SQL

데이터베이스(Database, DB)데이터베이스 관련 내용을 정리하기 앞서 데이터베이스가 무엇인지 정리하려고 한다.  데이터베이스란?데이터가공되지 않은, 무의미한 자료들을 의미한다. 이러한 데이터에서 정보를 얻기 위해 수집, 정리하게 되었고 데이터베이스가 등장하게 되었다. 데이터베이스는 필요에 따라 정리된 전자적으로 저장되는 데이터의 모음이다. 텍스트, 미디어 등등의 다양한 유형의 데이터가 포함될 수 있으며, DBMS라는 소프트웨어를 사용하여 데이터를 관리할 수 있다.   DBMS란?데이터베이스 관리 시스템(Database Management System)은 데이터베이스에서 데이터를 공유하고 관리하는 과정을 도와주는 프로그램이다. DBMS가 있기 때문에 다양한 데이터에 대해 여러 명이 동시에 접근하게 될..

DataBase 2024.07.07

Arrays 클래스

java.util.Arrays코딩 테스트를 준비하면서 여러 함수를 쓰기 시작했는데, 수박 겉 핥기처럼 정확히 이해하지 못한 채로 사용한 것 같았다.그 중 하나로 정렬에 사용한 Arrays 클래스에 대해 정리해보려고 한다. java.util.Arrays 클래스는 배열을 다루기 위한 메소드들을 포함한다. 이 때 Arrays 클래스의 모든 메소드는 클래스 메소드(static method) 이기 때문에 객체를 생성하지 않고도 바로 사용이 가능하다.* static method  sort()전달받은배열의 모든 요소를 오름차순 정렬하는 메소드이다. 매개변수로 배열을 받고, 전달받은 원본 배열의 순서를 변경한다. 이 때 dual-pivot Quicksort 알고리즘을 사용한다. 다음과 같이 사용할 수 있다.* 정렬 알..

Java 2024.07.05

Spring Security 알아보기 - 개념, 과정

Spring SecuritySpring을 통해 어플리케이션을 만들다보면 로그인 기능을 사용할 때가 있다. 이런 보안과 관련한 기능들을 직접 구현하기에는 어려움이 많은데, Spring Security가 제공하는 보안과 관련한 기능(인증, 인가 등)을 이용하면 개발자는 보안관련 로직을 직접 작성하지 않고 서비스 로직에 집중할 수 있다. 즉 Spring Security는 인증(Authentication)과 인가(Authorization)에 대한 처리를 위임하는 프레임워크이다.  우선 어떻게 동작하는지 알아보면 좀 더 와닿을 것 같고, 이해가 잘 된 것 같아 흐름을 정리하려고 한다.  Spring Security 아키텍처Spring Security는 인증과 권한에 대한 부분을 Filter 흐름에 따라 처리한다...

Spring 2024.07.04

Maven vs Gradle

스프링부트 프로젝트를 진행하면서 자료를 찾아볼 때 Maven 자료가 꽤 많이 발견되었다. 스프링부트와 Gradle로 웹 개발을 시작한 나에게는 생소하기도 하고, Gradle에 적응해서인지 조금 읽기 힘들게 느껴졌다. 그래도 Maven이 먼저 나와 스프링을 이끌었고, 편의성을 추가한 Gradle이 나올 수 있었다고 생각한다. 어쨌든 Maven 구조를 알아두면 자료를 찾을 때 도움이 될 것 같아서 정리해보고자 한다.   빌드 관리 도구(Build Tool) 우선 Maven과 Gradle은 모두 빌드 관리 도구이다. 그렇다면 빌드의 개념을 알아야 할 필요가 있을 것 같다.  빌드(Build)란? 빌드란 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정 및 그 결과를 말한다. 빌드를 실..

Spring 2024.07.04