Spring[Spring boot] Bank App - 회원가입(화면구현)
·
Spring
👨‍💻 지난 포스팅에서 회원 가입 로직을 설계하고 구현한 것에 이어, 이번에는 회원 가입 화면을 구현하고 H2 데이터베이스를 설정하여 초기 데이터를 셋팅하는 과정을 다뤄보겠습니다. 🚀✅ H2 의존성 추가 (build.gradle)dependencies { runtimeOnly 'com.h2database:h2'} 📌 의존성 확인: H2가 정상적으로 추가되었는지 확인 후 Gradle refresh 실행✅ application.yml 설정spring: datasource: url: jdbc:h2:mem:bankdb;MODE=MySQL # 인메모리 DB 사용 driver-class-name: org.h2.Driver username: sa password: '' sql:..
[Spring boot] Bank App - 회원가입
·
Spring
1. dto 설계 하기 및 개념 확인(사전 기반 지식)🔹DTO 설계 및 개념 이해 Spring Boot 애플리케이션에서 DTO(Data Transfer Object)와 Model을 분리하는 것은 유지보수성과 가독성을 높이기 위해 중요한 설계 원칙 중 하나입니다. ✅ DTO와 Model의 차이점 구분 DTO (Data Transfer Object) Model (Entity, Domain Model) 역할클라이언트와 서버 간 데이터 전달DB 테이블과 매핑되는 비즈니스 객체사용 목적View-Controller 간의 데이터 교환데이터베이스 저장 및 조회설계 방식주로 @Getter와 @Setter만 포함JPA Entity, @Entity, @Table 사용✅ DTO와 Model을 분리하는 이유가독성과 유지보..
[Spring boot] Bank App - 모델링
·
Spring
모델링(Modeling) 개념 정리💡 모델링이란?모델링은 현실 세계의 시스템이나 프로세스를 컴퓨터 시스템 내에서 표현하기 위해 추상화하는 과정입니다.중요 정보를 식별하고, 정보 간의 관계를 정의하며 데이터 구조와 알고리즘을 설계합니다.특히, 데이터베이스 모델링은 데이터 구조 설계에 중점을 둡니다.데이터베이스와 Java 간 데이터 타입 차이데이터베이스와 Java는 사용하는 데이터 타입이 다릅니다.데이터베이스 데이터를 Java 객체로 표현하기 위해 모델링 과정이 필요합니다.ORM (Object-Relational Mapping)개념ORM은 객체 지향 언어의 객체와 관계형 데이터베이스 테이블을 매핑하는 기법입니다.주요 특징객체의 속성과 메서드를 통해 데이터 조작 가능.SQL 쿼리 작성 최소화.데이터베이스 구..
2025.01.09 쿼리문
·
Database/1일 1쿼리
문제) 입사일이 가장 오래된사람의 현재 연봉과 직급을 구하시오 답) SELECT e.hire_date, s.salary, t.titleFROM titles tJOIN salaries s ON t.emp_no = s.emp_noJOIN employees e ON s.emp_no = e.emp_noORDER BY e.hire_date ASCLIMIT 1;
2025.01.07 쿼리문
·
Database/1일 1쿼리
#2025.01.07 문제) 평균 연봉이 가장 높은 부서와 평균 연봉은?#답) SELECT a.dept_no, AVG(b.salary) AS average_salaryFROM salaries bJOIN dept_emp a ON b.emp_no = a.emp_noGROUP BY a.dept_noORDER BY average_salary DESCLIMIT 1;
2025.01.06 쿼리문
·
Database/1일 1쿼리
#2025.01.06 문제) 나이가 가장많은 사람의 부서와 직급 그리고 이름은?#답) SELECT a.birth_date, a.first_name, a.last_name, b.title, d.dept_nameFROM employees AS aJOIN titles AS b ON a.emp_no = b.emp_noJOIN dept_emp AS c ON b.emp_no = c.emp_noJOIN departments AS d ON c.dept_no = d.dept_noORDER BY birth_date ASCLIMIT 1;
2025.01.04 쿼리문
·
Database/1일 1쿼리
#2025.01.04 문제) 부서가 "Production"인 직원의 수 #답)   SELECT count(*) as "Finance"  FROM employees  JOIN dept_emp ON employees.emp_no = dept_emp.emp_no  JOIN departments ON departments.dept_no = dept_emp.dept_no  WHERE departments.dept_name = "Finance";
2025.01.03 쿼리문
·
Database/1일 1쿼리
문제) d001부서의 staff의 평균 나이는? SELECT AVG(YEAR(CURDATE()) - YEAR(e.birth_date)) AS average_ageFROM dept_emp deJOIN employees e ON de.emp_no = e.emp_no JOIN titles t ON e.emp_no = t.emp_no WHERE de.dept_no = 'd001' AND t.title = 'Staff' AND t.to_date = '9999-01-01';