분류 전체보기
-
JPA 관계 매핑 1) JPA 관계 매핑의 개념 객체 간의 관계를 데이터베이스 테이블과 연결하는 기술 객체 지향 프로그래밍과 관계형 데이터베이스 간의 불일치를 해결할 수 있으며, 객체 간의 관계를 표현하고 조회, 추가, 수정, 삭제 등의 작업을 객체 단위로 수행할 수 있습니다. @OneToMany, @ManyToOne, @OneToOne, @ManyToMany 등의 애너테이션을 사용하여 관계를 표현할 수 있습니다. 2) 연관관계 ● 단방향 연관관계 한 엔티티에서 다른 엔티티를 참조하는 관계를 말합니다. 한 쪽 방향으로만 연관관계를 조회하고 수정할 수 있고, 연관 엔티티의 정보를 가져오기 위해서는 별도의 조회가 필요함. 간단하고 명확한 구조를 갖추어야 할 때 사용합니다. 아래 예시처럼 한 명의 작가(Aut..
[Java] JPA 관계 매핑: @OneToMany, @ManyToOne, @OneToOne, @ManyToMany Annotation, 관계의 주인 정리JPA 관계 매핑 1) JPA 관계 매핑의 개념 객체 간의 관계를 데이터베이스 테이블과 연결하는 기술 객체 지향 프로그래밍과 관계형 데이터베이스 간의 불일치를 해결할 수 있으며, 객체 간의 관계를 표현하고 조회, 추가, 수정, 삭제 등의 작업을 객체 단위로 수행할 수 있습니다. @OneToMany, @ManyToOne, @OneToOne, @ManyToMany 등의 애너테이션을 사용하여 관계를 표현할 수 있습니다. 2) 연관관계 ● 단방향 연관관계 한 엔티티에서 다른 엔티티를 참조하는 관계를 말합니다. 한 쪽 방향으로만 연관관계를 조회하고 수정할 수 있고, 연관 엔티티의 정보를 가져오기 위해서는 별도의 조회가 필요함. 간단하고 명확한 구조를 갖추어야 할 때 사용합니다. 아래 예시처럼 한 명의 작가(Aut..
2023.07.14 -
@GenerativeValue 1) 개념 JPA에서 엔티티의 주요 키(primary key) 값을 자동으로 생성하는 방법을 지정하는데 사용 @GeneratedValue 애너테이션 바로 아래에 있는 필드가 주요 키(primary key)에 해당하는 필드입니다. 2) strategy @GeneratedValue 애너테이션은 strategy 속성과 함께 사용됩니다. strategy 속성은 주요 키 값을 생성하는 전략(strategy)을 지정하는 역할을 합니다. 일반적으로 세가지 주요 전략을 사용할 수 있습니다. ① GenerationType.IDENTITY ● 개념 데이터베이스의 자동 증가(auto-increment) 기능을 사용하여 기본 키 값을 생성합니다. 데이터베이스에 의존적인 전략으로, 대부분의 관계형..
[Java] @GenerativeValue의 개념과 예시@GenerativeValue 1) 개념 JPA에서 엔티티의 주요 키(primary key) 값을 자동으로 생성하는 방법을 지정하는데 사용 @GeneratedValue 애너테이션 바로 아래에 있는 필드가 주요 키(primary key)에 해당하는 필드입니다. 2) strategy @GeneratedValue 애너테이션은 strategy 속성과 함께 사용됩니다. strategy 속성은 주요 키 값을 생성하는 전략(strategy)을 지정하는 역할을 합니다. 일반적으로 세가지 주요 전략을 사용할 수 있습니다. ① GenerationType.IDENTITY ● 개념 데이터베이스의 자동 증가(auto-increment) 기능을 사용하여 기본 키 값을 생성합니다. 데이터베이스에 의존적인 전략으로, 대부분의 관계형..
2023.07.14 -
JPA 맛 1) 취지 JPA 사용하기 전, JPA 없이 구현하는 것이 가능하다는 점을 확인해보자. JPA를 사용하게 되면 어떻게 코드가 바뀌는 지도 알 수 있을 것이다. 예시는 멤버(Member) 클래스와 취미(Hobby) 클래스의 관계를 파악하여, 취미 클래스를 출력하였을 때, 해당 취미를 가진 멤버가 출력되게 해보고자 했습니다. 2) ERD Diagram 멤버와 취미는 many to many 관계를 형성하고 있습니다. 하나의 멤버가 여러개의 취미를 가질 수 있고, 하나의 취미를 여러 멤버가 가지고 있을 수 있습니다. 3) 순서 1. Member.java로 멤버 클래스 만들어주기 @Data @AllArgsConstructor @NoArgsConstructor public class Member { pr..
[Java] 코드 예제 Part.1) JPA 학습 전 흉내내보기JPA 맛 1) 취지 JPA 사용하기 전, JPA 없이 구현하는 것이 가능하다는 점을 확인해보자. JPA를 사용하게 되면 어떻게 코드가 바뀌는 지도 알 수 있을 것이다. 예시는 멤버(Member) 클래스와 취미(Hobby) 클래스의 관계를 파악하여, 취미 클래스를 출력하였을 때, 해당 취미를 가진 멤버가 출력되게 해보고자 했습니다. 2) ERD Diagram 멤버와 취미는 many to many 관계를 형성하고 있습니다. 하나의 멤버가 여러개의 취미를 가질 수 있고, 하나의 취미를 여러 멤버가 가지고 있을 수 있습니다. 3) 순서 1. Member.java로 멤버 클래스 만들어주기 @Data @AllArgsConstructor @NoArgsConstructor public class Member { pr..
2023.07.12 -
조건문 if 1) if 구문 ① 개념 조건문을 구현하기 위해 사용되는 키워드 조건식이 참이면 if 블록 안의 코드가 실행되고, 조건식이 거짓이면 if 블록을 건너뛰고 다음 코드가 실행됩니다. ② 기본 구조 if (조건식) { // 조건이 참인 경우 실행되는 코드 } ③ 조건식 boolean 값 표현식으로 사용 조건식이 true로 평가되면 if 블록 안의 코드가 실행됩니다. 조건식은 비교 연산자, 논리 연산자, 메소드 호출 등을 사용하여 생성할 수 있습니다. ※ 논리연산자 AND ( && ) : 양쪽의 조건식이 모두 참(true)인 경우에만 전체 표현식을 참으로 평가 OR ( || ) : 양쪽의 조건식 중 하나 이상이 참(true)인 경우 전체 표현식을 참으로 평가 NOT ( ! ) : 단항 연산자로, 조..
[Java] 자바의 조건문: if, if-else, else if 등의 개념과 예시조건문 if 1) if 구문 ① 개념 조건문을 구현하기 위해 사용되는 키워드 조건식이 참이면 if 블록 안의 코드가 실행되고, 조건식이 거짓이면 if 블록을 건너뛰고 다음 코드가 실행됩니다. ② 기본 구조 if (조건식) { // 조건이 참인 경우 실행되는 코드 } ③ 조건식 boolean 값 표현식으로 사용 조건식이 true로 평가되면 if 블록 안의 코드가 실행됩니다. 조건식은 비교 연산자, 논리 연산자, 메소드 호출 등을 사용하여 생성할 수 있습니다. ※ 논리연산자 AND ( && ) : 양쪽의 조건식이 모두 참(true)인 경우에만 전체 표현식을 참으로 평가 OR ( || ) : 양쪽의 조건식 중 하나 이상이 참(true)인 경우 전체 표현식을 참으로 평가 NOT ( ! ) : 단항 연산자로, 조..
2023.07.12 -
public static void main(String[] args) 1) 이게 무엇일까? Java 프로그램의 진입점(Entry Point)을 나타내는 메소드 시그니처입니다. 이 메소드는 Java 프로그램이 실행될 때 자동으로 호출되며, 프로그램의 실행을 시작하는 역할을 합니다. 2) 하나씩 분석해보자 ● 구조 [접근 제어자] [키워드] [반환 타입] 메소드이름([스트링타입 배열 args]) { public static void main (String[] args) } ① public Java의 접근제어자(public, private, protected, default) 중 하나입니다. 접근제어자를 통해 특정 메소드에 접근 제약을 두는데 public은 프로젝트 내에서 자유롭게 접근할 수 있게 해줍니다. ..
[Java] public static void main(String[] args)가 무엇일까?public static void main(String[] args) 1) 이게 무엇일까? Java 프로그램의 진입점(Entry Point)을 나타내는 메소드 시그니처입니다. 이 메소드는 Java 프로그램이 실행될 때 자동으로 호출되며, 프로그램의 실행을 시작하는 역할을 합니다. 2) 하나씩 분석해보자 ● 구조 [접근 제어자] [키워드] [반환 타입] 메소드이름([스트링타입 배열 args]) { public static void main (String[] args) } ① public Java의 접근제어자(public, private, protected, default) 중 하나입니다. 접근제어자를 통해 특정 메소드에 접근 제약을 두는데 public은 프로젝트 내에서 자유롭게 접근할 수 있게 해줍니다. ..
2023.07.11 -
메소드 선언 1) 메소드(Method)의 개념 클래스 안에서 어떤 작업을 수행하는 코드의 블록으로, 특정한 기능을 수행하고, 필요에 따라 값을 반환할 수 있습니다. 메소드는 다른 메소드를 호출할 수 있으며, 이를 통해 코드의 모듈화와 계층화를 구현할 수 있습니다. 2) 메소드 선언 메소드를 정의하고 구현하기 위한 구문 [접근 제어자] [반환 타입] 메소드이름([매개변수 리스트]) { // 메소드의 실행 코드 } ① 접근 제어자 ( Access Modifier ) 메소드의 접근 범위를 지정하는 키워드 ● public: 어떤 클래스에서든 접근 가능 ● protected: 같은 패키지 내 또는 상속 관계의 클래스에서 접근 가능 ● private: 해당 클래스 내에서만 접근 가능 ② 반환 타입 ( Return ..
[Java] 메소드 선언 Method Declaration메소드 선언 1) 메소드(Method)의 개념 클래스 안에서 어떤 작업을 수행하는 코드의 블록으로, 특정한 기능을 수행하고, 필요에 따라 값을 반환할 수 있습니다. 메소드는 다른 메소드를 호출할 수 있으며, 이를 통해 코드의 모듈화와 계층화를 구현할 수 있습니다. 2) 메소드 선언 메소드를 정의하고 구현하기 위한 구문 [접근 제어자] [반환 타입] 메소드이름([매개변수 리스트]) { // 메소드의 실행 코드 } ① 접근 제어자 ( Access Modifier ) 메소드의 접근 범위를 지정하는 키워드 ● public: 어떤 클래스에서든 접근 가능 ● protected: 같은 패키지 내 또는 상속 관계의 클래스에서 접근 가능 ● private: 해당 클래스 내에서만 접근 가능 ② 반환 타입 ( Return ..
2023.07.11 -
리스트 List 1) 리스트의 개념 순서가 있는 데이터의 모음입니다. 2) 리스트의 종류 ① ArrayList ● 개념 List 인터페이스를 구현한 클래스 중 크기가 동적으로 조정될 수 있는 가변 크기 배열 ● 생성 List arrayList = new ArrayList(); *초기값을 가지는 배열 선언 List myList = new ArrayList(Arrays.asList("apple", "banana", "orange")); 내부적으로 배열을 사용하여 요소를 저장합니다. 요소는 연속된 메모리 위치에 저장되며, 인덱스를 사용하여 접근할 수 있습니다. ● 특징 1) 자동크기조정 ArrayList는 요소의 추가나 삭제 시에 자동으로 크기를 조정합니다 기본적으로 요소가 추가될 때 배열의 크기는 현재 크기..
[Java] List 리스트의 개념과 종류리스트 List 1) 리스트의 개념 순서가 있는 데이터의 모음입니다. 2) 리스트의 종류 ① ArrayList ● 개념 List 인터페이스를 구현한 클래스 중 크기가 동적으로 조정될 수 있는 가변 크기 배열 ● 생성 List arrayList = new ArrayList(); *초기값을 가지는 배열 선언 List myList = new ArrayList(Arrays.asList("apple", "banana", "orange")); 내부적으로 배열을 사용하여 요소를 저장합니다. 요소는 연속된 메모리 위치에 저장되며, 인덱스를 사용하여 접근할 수 있습니다. ● 특징 1) 자동크기조정 ArrayList는 요소의 추가나 삭제 시에 자동으로 크기를 조정합니다 기본적으로 요소가 추가될 때 배열의 크기는 현재 크기..
2023.07.03 -
MVC 패턴 1) MVC 패턴의 개념 MVC는 소프트웨어 아키텍처 패턴으로, 애플리케이션을 Model, View, Controller 세 가지 주요 구성 요소로 분리합니다. MVC 패턴은 유연성, 재사용성, 유지보수 용이성 등의 이점을 제공하지만, 복잡성과 추가적인 코드량이 증가할 수 있는 단점도 있습니다. 2) MVC 패턴의 구성 요소 ① Model Model은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터베이스, 파일 시스템, 외부 API 등을 통해 데이터를 저장하고 관리하며, 데이터의 유효성 검사, 업데이트, 검색 등을 수행합니다. Model은 보통 독립적으로 설계되어 재사용 가능하며, 데이터 변경이 발생하면 이를 View와 Controller에 알리는 역할을 수행합니다. ● 예) 사용..
[Spring] Spring MVC 구조MVC 패턴 1) MVC 패턴의 개념 MVC는 소프트웨어 아키텍처 패턴으로, 애플리케이션을 Model, View, Controller 세 가지 주요 구성 요소로 분리합니다. MVC 패턴은 유연성, 재사용성, 유지보수 용이성 등의 이점을 제공하지만, 복잡성과 추가적인 코드량이 증가할 수 있는 단점도 있습니다. 2) MVC 패턴의 구성 요소 ① Model Model은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터베이스, 파일 시스템, 외부 API 등을 통해 데이터를 저장하고 관리하며, 데이터의 유효성 검사, 업데이트, 검색 등을 수행합니다. Model은 보통 독립적으로 설계되어 재사용 가능하며, 데이터 변경이 발생하면 이를 View와 Controller에 알리는 역할을 수행합니다. ● 예) 사용..
2023.06.30