데이터 모델데이터베이스를 만들 때 데이터를 어떻게 저장하고, 연결하고, 관리할지 정리한 설계도입니다.데이터를 다루는 규칙과 구조를 정해주는 역할을 하며, 데이터를 효율적으로 사용할 수 있도록 도와줍니다.데이터 모델의 종류개념적 데이터 모델데이터베이스를 만들기 전에 전체적으로 어떤 데이터가 필요하고, 데이터끼리 어떤 관계가 있는지를 알아보는 단계입니다. 예를 들어, 학교 데이터를 만든다면, "학생", "선생님", "수업"처럼 중요한 것들(Entity)을 먼저 정리하고, 이들이 서로 어떻게 연결되는지 생각합니다. 요약하자면, 비즈니스(현실 세계) 중심의 데이터를 설계하고 기술적인 내용은 제외하고, 데이터의 큰 그림을 그리는데 집중하여 사용자와 소통하기 쉽게 만들어줍니다.논리적 데이터 모델개념적 모델을 더 구..
데이터 베이스란데이터 베이스는 일상 속에서도 많이 쓰는 단어입니다. 인터넷 쇼핑몰에서 장바구니에 저장하거나, 은행에서 계좌를 조회하는 등 다양한 상황에서 데이터베이스가 쓰입니다. 즉, 데이터들을 저장하고 조회하는 프로그램입니다.학교를 예시로 드는 경우 학교에서 학생 정보 조회, 성적 조회, 출결 조회 데이터를 데이터베이스에서 가져와 조회하거나 정보를 저장하는 것입니다.데이터 베이스의 특징데이터베이스는 단순하게 데이터를 저장하는 것에 그치지 않고 구조적인 형태를 유지하기 위해 효율적인 데이터 저장 규칙이 존재합니다. 통합된 데이터 ( Integrated Data )데이터베이스는 조직의 여러 부서나 사용자가 필요한 데이터를 통합하여 관리합니다.이를 통해 데이터를 중복 없이 하나의 저장소에 모아 일관성을 유지..
설명자바의 람다 표현식이란 함수형 프로그래밍을 구성하기 위한 함수식이며,간단히 말해 자바의 메소드를 간결한 함수 식으로 표현한 것입니다. 전에는 자바에서 메서드를 하나 표현하려면 클래스를 정의해야 했습니다. 하지만 람다식으로 표현하면 메서드의 이름과 반환값을 생략할 수 있고 이를 변수에 넣어 자바 코드가 매우 간결해지는 장점이 있습니다. 아래와 같이 int add(int a, int b) {} 메소드 표현식을 메서드 타입, 메서드 이름, 매개변수 타입, 중괄호, return 문을 생략하고, 화살표 기호를 넣음으로써 코드를 함축했음을 볼 수 있습니다.이러한 특징으로 람다식을 이름이 없는 함수 익명 함수 라고도 합니다.타입을 생략을 해도 컴파일러가 에러를 띄우지않는 이유는, 컴파일러 나름대로 생략된 타입 위..
설명Enum 은 Enumeration의 약자입니다.Enumeration 은 "열거, 목록 "이라는 뜻을 가지고 있으며, 보통 한글로는 열거형이라고 부릅니다.즉, 열거형은 요소, 멤버라 불리는 명명된 값의 집합을 이루는 자료형입니다.어렵게 생각할 필요 없이 상수 데이터들의 집합으로 치부하면 됩니다. Enum 은 월,화,수,목.. 요일이나 봄, 여름, 가을, 겨울 등 이와 같이 정해져 있는 한정된 데이터 묶음을 열거형 타입인 Enum으로 묶어주면 보다 구조적으로 프로그래밍할 수 있습니다. Enum의 기본 구조1. enum 명은 클래스와 같이 첫 문자를 대문자로 하고 나머지는 소문자로 구성합니다.2. 관례적으로, 열거 상수는 모두 대문자로 작성합니다.3. 열거 상수가 여러 단어로 구성될 경우, 단어 사이를 밑..
간단 설명Optional 은 자바에서 제공하는 특별한 객체로, 값이 있을 수도 있고 없을 수도 있다를 명확히 표현하기 위해 사용합니다. 즉, 어떤 값이 null 일 때 발생할 수 있는 문제를 예방하기 위해 만든 것이라고 생각하시면 됩니다.Optional 클래스는 Java 8 version부터 지원하는 기능입니다.필요한 이유null 값을 처리하는 코드는 문제가 생기기 쉽습니다.자바에서는 만약 null 값을 사용하려고 하면 NullPointerException 오류가 발생합니다. 이런 오류를 예방하기 위해 전에는 코드에 많은 null 체크를 넣곤 했습니다.// null 체크 없는 코드String name = null;// 프로그램이 이 부분에서 오류 발생 (NullPointerException)System...
계층구조Spring 에서 웹 애플리케이션을 만들 때, 코드를 체계적으로 관리하기 위해 계층 구조를 사용합니다.이 구조는 역할에 따라 프로그램을 세 부분으로 나누는 방식으로, 우리가 건물을 지을 때 기초, 벽, 지붕처럼 각각의 역할을 나눈 것과 비슷하다고 생각하시면 됩니다. 개발자 입장에서는 이렇게 세분화함으로써 효율적으로 개발을 하고자 함인데요, 기본적인 계층으로는 크게 컨트롤러, 서비스, 리포지토리, DTO, 모델등으로 구성되어 있습니다. 각각의 계층은 계층마다 독립적으로 분리하여 구현하는것이 가능해야하고, 각 계층에서 담당해야 할 기능들이 있습니다. 계층컨트롤러 ( Controller )컨트롤러 계층은 HTTP 요청을 받아들이는 진입점입니다.클라이언트의 요청에 따라 어떤 처리를 할지 결정하고, 요청..
간단한 설명프로젝트를 진행하다 보면 시크릿 키와 같이 외부에 노출해서는 안되는 값들을 사용할 때가 있습니다.만약 코드 내부에 시크릿 키를 저장하고 사용할 경우 외부에 노출될 위험이 커집니다.이럴 경우 application.properties 와 같은 파일에 보안이 필요한 값들을 넣어 두고 .gitignore 로 등록하여 외부에 노출이 되지 않게 하며 필요할 때 꺼내 쓰면 외부에 노출될 위험이 줄어듭니다. 이렇게 application.properties 에 보안이 필요한 값들을 꺼내오는 어노테이션이 바로 @Value 입니다.사용@Value 를 사용하기 전에 우리는 보안이 필요한 값을 저장할 수 있는 파일을 만들어야 합니다.Spring 에서는 애플리케이션에서 사용하는 설정 값을 외부 파일인 test.prop..
Spring BeanSpring Bean은 Spring Framework에서 관리하는 객체를 의미합니다. Spring IoC (Inversion of Control) 컨테이너는 애플리케이션에서 객체의 생명 주기와 의존성 주입(Dependency Injection)을 관리합니다. Spring에서 관리하는 객체는 모두 Bean이라고 부르며, 이는 Spring 컨테이너가 생성하고 관리하는 객체입니다.Spring Bean을 등록하는 방법고전적인 방법 - Spring Bean XML 설정먼저 등록하고 싶은 Bean 파일을 만들어야 합니다.MyService 객체가 MyRepository 의존성을 갖고 있다고 가정하겠습니다.public class MyService { private final MyRepository..