개인 프로젝트 : 일정 관리 앱 JPA ver
·
Project
1. 프로젝트 개요이번 프로젝트는 Spring Boot를 사용하여 일정 관리 애플리케이션을 개발하는 것입니다. 이 애플리케이션은 사용자가 개인 일정을 관리할 수 있도록 다양한 기능을 제공합니다.2. 주요 기능회원가입 및 로그인: 사용자는 회원가입을 통해 계정을 만들고, 로그인하여 개인 일정을 관리할 수 있습니다.일정 관리: 사용자는 자신의 일정을 추가, 조회, 수정, 삭제할 수 있습니다.댓글 기능: 각 일정에 대해 댓글을 추가하고 관리할 수 있습니다.3. 기술 스택백엔드: Spring Boot, JPA데이터베이스: MySQL4. 코드 구성4.1. ControllerScheduleController : 일정 관련 API를 제공하는 컨트롤러입니다. 사용자의 요청을 처리하고, 비즈니스 로직을 호출하여 결과를 ..
(Spring) Servlet & DispatcherServlet 개념
·
Spring
1. Servlet1.1 정의Servlet은 자바를 사용하여 동적으로 웹 페이지를 생성하는 서버 측 프로그램입니다. 웹 애플리케이션의 핵심 구성 요소로, 클라이언트의 요청에 따라 동적으로 HTML이나 XML을 생성하고 이를 응답으로 반환합니다.1.2 동작 원리Servlet의 동작 과정클라이언트 요청 : 사용자가 웹 브라우저를 통해 HTTP 요청을 보냄Servlet 컨테이너 : 요청을 받은 Servlet 컨테이너(예: Tomcat)는 HttpServletRequest와 HttpServletResponse 객체를 생성HttpServletRequest : 클라이언트의 요청 정보를 담고 있는 객체HttpServletResponse : 서버의 응답 정보를 담고 있는 객체Servlet 찾기 : 요청된 URL에 따라..
(Spring) MVC와 Spring MVC
·
Spring
1. MVC(Model-View-Controller) 패턴MVC 패턴은 소프트웨어 디자인 패턴 중 하나로, 사용자 인터페이스와 비즈니스 로직을 분리하여 개발을 용이하게 만드는 구조입니다.→ 구성 요소Model : 애플리케이션의 데이터와 그 데이터를 처리하는 비즈니스 로직을 담당합니다.View : 사용자에게 데이터를 표시하는 부분으로, UI 요소를 담당합니다.Controller : 사용자의 입력을 받아 Model과 View를 연결해주는 중간 역할을 합니다.→ MVC의 흐름사용자의 요청이 Controller로 전달됩니다.Controller는 적절한 Model을 호출하여 데이터를 처리합니다.Model의 데이터를 View에 전달하여 사용자에게 결과를 보여줍니다. 2. Spring MVCSpring MVC는 Sp..
(SQL) 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문 만들기
·
SQL 문제풀이
▶ 문제USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성해주세요.▶ 소스코드SELECT COUNT(*) AS 회원수FROM user_infoWHERE joined BETWEEN '2021-01-01' AND '2021-12-31' AND age BETWEEN 20 AND 29;▶ 설명JOINED BETWEEN '2021-01-01' AND '2021-12-31': 가입일이 2021년 내에 있는 회원들을 필터링합니다.AGE BETWEEN 20 AND 29: 나이가 20세 이상 29세 이하인 회원만 선택합니다.COUNT(*): 조건에 맞는 회원의 수를 계산하여 반환합니다.
(JAVA) 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수 만들기
·
JAVA 알고리즘
▶ 문제두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.- 제한 사항 -두 수는 1이상 1000000이하의 자연수입니다.▶ 소스코드#include #include using namespace std;// 유클리드 호제법을 이용한 최대공약수 함수int gcd(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a;..
(SQL) 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 쿼리
·
SQL 문제풀이
▶ 문제동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.▶ 소스코드SELECT animal_idFROM animal_insWHERE name IS NULLORDER BY animal_id ASC;▶ 설명SELECT ANIMAL_ID: 동물의 ID만 조회합니다.FROM ANIMAL_INS: ANIMAL_INS 테이블에서 데이터를 가져옵니다.WHERE NAME IS NULL: 이름이 없는 동물들을 필터링합니다 (NAME이 NULL인 동물).ORDER BY ANIMAL_ID ASC: 결과를 동물의 ID 기준으로 오름차순 정렬합니다.
(JAVA) 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태로 출력하기
·
JAVA 알고리즘
▶ 문제이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. - 제한 사항 - n과 m은 각각 1000 이하인 자연수입니다.▶ 소스코드#include int main(void) { int n, m; scanf("%d %d", &n, &m); // n: 가로 길이, m: 세로 길이 // 세로 길이 m만큼 반복 for (int i = 0; i ▶ 설명scanf를 사용하여 입력받은 n(가로 길이)과 m(세로 길이)을 변수에 저장합니다.바깥쪽 for문은 세로 길이 m만큼 반복합니다.안쪽 for문은 가로 길이 n만큼 별을 출력합니다.안쪽 for문이 끝날 때마다 한 줄이 완성되므로 print..
(JAVA) 행렬 덧셈의 결과를 반환하는 함수 만들기
·
JAVA 알고리즘
▶ 문제행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.제한 조건행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.▶ 소스코드#include #include using namespace std;vector> solution(vector> arr1, vector> arr2) { // arr1과 arr2의 크기가 같기 때문에 arr1의 크기를 기준으로 새로운 벡터를 생성 vector> answer(arr1.size(), vector(arr1[0].size())); // 이중 for문을 사용해 각 행과 열의 원소를..