2024/03 11

@GeneratedValue (테이블 전략, AUTO 전략)

테이블 전략 테이블 전략은 어떤거야? 테이블 전략(Table Strategy)은 JPA(Java Persistence API)에서 엔티티의 기본 키(primary key)를 생성하기 위해 사용되는 전략 중 하나입니다. 이 전략은 특별한 데이터베이스 시퀀스나 자동 증가(auto-increment) 기능을 사용하지 않고, 대신에 하나 또는 여러 개의 데이터베이스 테이블을 사용하여 엔티티의 기본 키 값을 관리합니다. 이 방법은 모든 종류의 데이터베이스에서 사용할 수 있는 장점이 있으며, 특히 시퀀스나 자동 증가 기능을 지원하지 않는 데이터베이스에서 유용합니다. 테이블 전략의 작동 방식 키 생성 테이블: JPA는 기본 키 값을 생성하고 저장하기 위한 별도의 테이블을 사용합니다. 이 테이블에는 각 엔티티 타입 또..

[JPA] 2024.03.29

@Id, @SequenceGenerator

@SequenceGenerator가 어떤 거야?? 목적은 무엇이고? @SequenceGenerator는 자바(JAVA)의 하이버네이트(Hibernate) ORM(Object-Relational Mapping) 프레임워크에서 사용되는 어노테이션(annotation)입니다. 객체 지향 프로그래밍 언어를 사용하여 작성된 프로그램이 데이터베이스와 효율적으로 상호 작용할 수 있도록 도와주는 도구 중 하나죠. @SequenceGenerator의 주된 목적은 데이터베이스 내에서 순차적인 값(시퀀스)을 생성하여, 엔티티(entity)의 기본 키(primary key) 값으로 사용하기 위한 것입니다. 기본 키는 데이터베이스 테이블의 각 레코드를 유일하게 식별하는 데 사용되는 필드(field)나 속성(attribute)을..

[JPA] 2024.03.28

PHP 입문과 궁금했던 점

PHP php와 javascript는 언제 나온 기술이야? PHP와 JavaScript는 웹 개발에서 널리 사용되는 두 가지 프로그래밍 언어입니다. 각각의 언어는 웹사이트와 웹 애플리케이션을 만드는 데 중요한 역할을 하며, 다음과 같은 시기에 등장했습니다. PHP PHP(원래의 의미는 Personal Home Page, 현재는 PHP: Hypertext Preprocessor의 재귀 약자)는 1995년에 Rasmus Lerdorf에 의해 처음 만들어졌습니다. PHP는 서버 측에서 실행되는 스크립트 언어로, 동적 웹 페이지를 생성하거나 데이터베이스와 상호 작용하는 등의 작업을 주로 수행합니다. PHP는 그 유연성과 데이터베이스와의 연결 용이성으로 인해 널리 사용되며, 웹 개발에서 중요한 역할을 합니다. J..

Clasic ASP

CLASIC ASP 코드 예시 보여줘 그리고 자바와의 차이점 알려줘 Classic ASP 코드 예시 Classic ASP (Active Server Pages)는 서버 측 스크립트 환경으로, 주로 VBScript 또는 JavaScript를 사용하여 웹 서버에서 동적 웹 페이지를 생성합니다. 여기에는 간단한 Classic ASP 코드 예시가 있습니다. 이 예시에서는 VBScript를 사용하여 사용자에게 "Hello, World!" 메시지를 표시하는 웹 페이지를 생성합니다. Classic ASP와 자바의 차이점 Classic ASP와 자바(특히 웹 개발 맥락에서의 Java EE 또는 Spring Framework 같은) 사이에는 몇 가지 주요 차이점이 있습니다: 프로그래밍 언어: Classic ASP: 주로..

JS, JSX 차이와 같은 점 (React)

JS, JSX 차이와 같은 점 (React) js파일과 jsx파일의 차이를 알려줘 react와 관련해서 JavaScript(.js) 파일과 JSX(.jsx) 파일 사이의 차이는 주로 React와 같은 라이브러리나 프레임워크에서 사용되는 JSX 구문의 지원 여부에 있습니다. React를 사용할 때 이 두 확장자가 어떻게 다르게 취급되는지 살펴보겠습니다. .js 파일 .js 확장자는 일반적인 JavaScript 파일을 나타냅니다. React 프로젝트에서도 사용할 수 있지만, 이 파일 내에서 JSX 구문을 직접 사용하려면 개발 환경(예: Babel)이 JSX를 지원해야 합니다. 초기 React 프로젝트나 일부 환경에서는 .js 파일 내에서도 JSX를 사용합니다. 하지만 이는 설정에 따라 다르며, 명확한 구분을..

TypeScript 궁금한 점(기초)

TypeScript 궁금한 점(기초) 타입스크립트의 목적과 주 기능 등을 알려줘 TypeScript는 Microsoft에 의해 개발된 자바스크립트의 상위 집합 언어입니다. 자바스크립트 코드에 타입을 추가하여 개발하는 과정에서 발생할 수 있는 오류를 사전에 발견하고, 대규모 애플리케이션의 개발 및 유지보수를 용이하게 만들어 주는 것이 주요 목적입니다. TypeScript는 개발자가 코드에 대한 더 명확한 의도를 표현할 수 있게 하여, 개발 팀 내에서 또는 개인 프로젝트에서도 생산성과 코드의 품질을 향상시키는 데 기여합니다. TypeScript의 주요 목적 타입 안정성 제공: 컴파일 시간에 타입을 체크하여 실행 시 발생할 수 있는 일부 오류를 사전에 방지합니다. 개발자 생산성 향상: 코드 자동완성, 인터페이..

MSA 인텔리제이로 프론트엔드, 백엔드 동시에 로컬에서 각각의 인텔리제이 인스턴스로 작업시 브랜치 공유되어 작업하기 곤란한 사항_2 (해결)

요 몇일간 이것 worktree를 적용해서 문제 해결을 위해서 시도를 해보았는데 분명 내가 원하는 MSA의 한 부분 프로젝트(백단, 프론트단)을 각각 읽으면 해당 브랜치로 바뀌게 되었으나 먼가 다른 문제가 생겼다. 맥의 finder에는 폴더가 있는데(src, …) 인텔리제이에서는 프로젝트로 열리지가 않았다. 여기서 또 막 헤메다가 git 초기 설정 파일이 삭제되었고 git저장소를 다시 설정하는 부분에서 잘못되어서 그냥 다시 처음부터 다시 시작하자는 마음으로 git저장소를 다시 클론해서 MSA프로젝트들을 다운 받았다. 여기서 내가 기존에 처음 git에 올린 파일 경로와 git clone 했을 때 생성되는 파일 경로가 달랐다. 내가 잘못 이해하고 있었던 부분이 있었나보다 이게 왠걸 이제 java단과 fron..

MSA 인텔리제이로 프론트엔드, 백엔드 동시에 로컬에서 각각의 인텔리제이 인스턴스로 작업시 브랜치 공유되어 작업하기 곤란한 사항

MSA 인텔리제이로 프론트엔드, 백엔드 동시에 로컬에서 각각의 인텔리제이 인스턴스로 작업시 브랜치 공유되어 작업하기 곤란한 사항 백엔드만 작업하다가 프론트엔드까지 react로 작업하려고 프론트 초기 버전까지 나의 github에 커밋까지 하였는데 오늘 더 작업 하려고 보니 이상하게 다른 작업한 것이 없는데 백엔드(자바) 부분이 서버가 작동을 하지 않았다 이상하게 생각하다가 브랜치가 react(가칭)로 되어 있었다. 다른 것로 바꿔도 react 프론트랑 java 백엔드 부분 인텔리제이가 브랜치가 공유되고 있어서 두개를 동시에 작업 할 순 없었다. 서버를 인텔리제이를 통하지 않고 띄우는 방법이야 있겠지만 앞으로도 위해서 프론트엔드 부분과 백엔드 부분을 동시에 뛰우는 것이 여러모로 필요하였다. 구글링과 챗티피티..

Sort Merge Join, Nested Loop Join, b-tree, b+tree

조인 방식이 여러개 있짢아 그것들 알려줘 sort merge 방식의 조인 과 nested loop 방식 join inner join과 outer join은 테이블 간의 join인 거잖아? sort Merge 조인과 nested loop 조인도 join인데 이런 것들은 어떤 조인이야?? 네, 맞습니다. 'Inner Join'과 'Outer Join'은 테이블 간에 수행되는 조인의 종류로서, 데이터베이스에서 두 테이블의 데이터를 결합하는 방법을 정의합니다. 반면, 'Sort Merge 조인'과 'Nested Loop 조인'은 데이터를 조인하는 방식, 즉 실제로 조인 연산을 수행하는 내부 메커니즘을 설명합니다. 이들은 조인의 구현 방식이며, 'Inner Join', 'Outer Join' 등과 같은 조인의 논..

[SQLD] 2024.03.06

@Enumerated, @Temporal 어노테이션

어노테이션 @Enumerated 어노테이션에 대해 설명 해줘 @Enumerated 어노테이션은 Java Persistence API(JPA)에서 열거형(enum) 타입을 데이터베이스에 저장할 때 사용하는 어노테이션입니다. 이 어노테이션을 사용하면, 열거형의 값을 어떻게 데이터베이스에 저장할지를 지정할 수 있습니다. @Enumerated는 주로 엔티티(entity) 클래스의 필드에 적용됩니다. @Enumerated 어노테이션에는 EnumType.ORDINAL과 EnumType.STRING 두 가지 방식이 있습니다: EnumType.ORDINAL: 이 방식을 사용하면, 열거형의 순서(ordinal) 값이 데이터베이스에 저장됩니다. 예를 들어, 열거형에 FIRST, SECOND, THIRD가 순서대로 정의되어..

[JPA] 2024.03.04