전체 글 120

4. 스프링 부트 3와 테스트

1. 테스트 코드 개념 익히기 ◉ 테스트 코드 : 작성한 코드가 의도대로 잘 동작하고 예상치 못한 문제가 없는지 확인할 목적으로 작성하는 코드 1) 테스트 코드란? ▪︎ 테스트 코드 : test 디렉터리에서 작업 ▪︎ 테스트 코드의 다양한 패턴 중 given-when-then 패턴 이용 → 테스트 코드를 세 단계로 구분해 작성하는 방식 ① given : 테스트 실행을 준비하는 단계 ② when : 테스트를 진행하는 단계 ③ then : 테스트 결과를 검증하는 단계 2. 스프링 부트 3와 테스트 ◉ 스프링 부트는 애플리케이션을 테스트하기 위한 도구와 애너테이션을 제공함 ▪︎ spring-boot-starter-test 스타터의 테스트 도구 목록 • JUnit : 자바 프로그래밍 언어용 단위 테스트 프레임 ..

Oracle : SQL ( INNER JOIN )

JOIN에서 사용할 테이블에 데이터 추가 - 사원 테이블(tbl_employee)에 데이터 추가 -- 1. 사원 테이블에 데이터 추가 (1 ~ 5번 자료) INSERT INTO tbl_employee ( emp_id, emp_name, gender, age, hire_date, dept_id, address_id) VALUES ( 1, '김유신', '남성', 56, TO_DATE('2023-07-01', 'YYYY-MM-DD'), 1, 2); INSERT INTO tbl_employee ( emp_id, emp_name, gender, age, hire_date, dept_id, address_id) VALUES ( 2, '신사임당', '여성', 34, TO_DATE('2023-07-01', 'YYYY-..

백엔드/Oracle 2023.07.14

Oracle : SQL ( INSERT / DELETE / UPDATE 확장 / COMMENT )

INSERT ① 정식 형식 : 컬럼 리스트와 값 리스트는 1:1 대응 ( 데이터형, 관련순서 ) INSERT INTO 테이블명 ( 컬럼 리스트, … ) VALUES ( 값 리스트, … ) ; ② 약식 형식 INSERT INTO 테이블명 VALUES ( 값 리스트, … ) ; → 이 경우에는 컬럼을 알 수 없으므로, 테이블 구조(컬럼 구조) 형식으로 값을 입력함 • 대용량 데이터를 삽입할 경우, 트랜잭션 이용 권장 ③ 주로 백업용으로 필요한 데이터만 모으는 결과보고 데이터용으로 사용 INSERT INTO 테이블명 ( 컬럼 리스트, … ) SELECT 문장 ( 컬럼 리스트와 일치하는 검색 컬럼 리스트 ) ( 참고 사항 ) • 실제 데이터 백업용으로 사용할 때 많이 쓰는 방법은 테이블을 만들 때 SELECT문..

백엔드/Oracle 2023.07.13

3. 스프링 부트 3 구조 이해하기

1. 스프링 부트 3 구조 살펴보기 - 계층 : 각자의 역할과 책임이 있는 어떤 소프트웨어의 구성 요소를 의미 → 각 계층은 소통 가능하지만, 직접 간섭하거나 영향을 미치지 않음 1) 스프링 부트의 계층 알아보기 프레젠테이션 계층 비즈니스 계층 퍼시스턴스 계층 데이터베이스 컨트롤러 서비스 레포지토리 ◉ 프레젠테이션 계층 • HTTP 요청을 받고 이 요청을 비즈니스 계층으로 전송하는 역할 → 컨트롤러 • 컨트롤러는 스프링 부트 내에 여러 개가 있을 수 있음 ◉ 비즈니스 계층 • 모든 비즈니스 로직을 처리 → 서비스 ◉ 퍼시스턴스 계층 • 모든 데이터베이스 관련 로직을 처리 → 레포지토리 • 이 과정에서 데이터베이스에 접근하는 DAO 객체 사용 가능 → DAO : 데이터베이스 계층과 상호작용하기 위한 객체 ..

SQL ( GROUP BY ~ HAVING / 집합연산자 )

GROUP BY에서 조건절 HAVING 추가 • 그룹 질의 결과물 내에서 특정 내용만들 다시 가져오려면 HAVING 조건절 사용 • WHERE : 그룹화하기 전의 조건 설정 HAVING : 그룹화한 후의 조건 설정 ※ GROUP BY절이 그룹 지정! 그룹에 대한 조건 지정 시, WHERE절이 아닌 HAVING절 사용 ※ WHERE 절에는 MAX, SUM, AVG 등과 같은 집계함수 사용 불가 • 구문 SELECT 컬럼명 FROM 테이블명 WHERE 그룹화하기 전 조건 (전체 테이블에 적용) GROUP BY 그룹화할 컬럼명 HAVING 그룹화한 후의 조건 (그룹화한 컬럼에 적용) ORDER BY 컬럼명 ; SELECT STATION_NAME, BOARD_TIME, GUBUN, MIN(PASSENGER_NU..

백엔드/Oracle 2023.07.12

2. 스프링 부트 시작하기 (2) - 스프링 부트 둘러보고 코드 이해하기

3. 스프링 부트3 둘러보기 1) 첫 번째 스프링 부트3 예제 만들기 ① TestController.java - 사용자가 /test GET 요청 시, "Hello, World!" 문자열을 반환 package org.choongang.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController // 라우터 역할 : HTTP 요청과 메서드를 연결하는 장치 public class TestController { @GetMapping("/test") public String hello() { return "H..

Oracle : SQL ( CASE WHEN THEN / GROUP BY )

CASE 구문 : CASE WHEN THEN - DECODE 함수를 조금 더 구체화하여 SELECT절의 구문형식으로 확장 가능 DECODE 함수와 같이 컬럼이나 표현식을 비교하여 결과값을 비교하여 조건에 맞는 결과값을 리턴함 → 특정 조건에 따라 값을 변경할 수 있는 수식으로, 주로 SELECT절에서 사용 - ① 단순형 CASE 구문 CASE 표현식 WHEN 비교조건1 THEN 결과1 // 표현식과 비교조건1 비교 시, 같으면 결과1 리턴 WHEN 비교조건1 THEN 결과1 // 표현식과 비교조건2비교 시, 같으면 결과2 리턴 WHEN 비교조건1 THEN 결과1 // 표현식과 비교조건3 비교 시, 같으면 결과3 리턴 ELSE 기본값 // 표현식이 조건들과 같지 않은 경우, 기본값 리턴 END // CAS..

백엔드/Oracle 2023.07.11

2. 스프링 부트 시작하기 (1) - 스프링 콘셉트 공부

포스트맨 설치 • 별도의 애플리케이션 • HTTP 요청을 보낼 수 있는 클라이언트 프로그램 • API 개발을 마친 후 웹 브라우저에서 테스트하기 보다, 포스트맨을 이용하기 . 다운로드 ① 구글에서 포스트맨 검색 - 다운로드 : Mac Apple Chip 클릭 - 파인더에서 다운로드 받은 파일 클릭해서 실행시키면 설치 완료! ② 하단 Skip and go to the app 클릭 : 계정없이 사용해보기 ③ 프로젝트 실행시킨 후, 포스트맨에서 호출해보기 1. 스프링과 스프링 부트 1) 스프링의 등장 - 엔터프라이즈 애플리케이션 ( Enterprise Application ) ▪︎ 대규모의 복잡한 데이터를 관리하는 애플리케이션 용어 ▪︎ 소프트웨어의 발전으로 엔터프라이즈 애플리케이션이 점점 복잡해짐 → ( 예..

Oracle : SQL ( 날짜형 함수 / 형변환 함수 / NULL 처리 함수 / GREATEST, LEAST, DECODE / WITH절 )

날짜형 함수 - 데이터형 date or timestamp를 대상으로 연산을 수행하는 함수 - 특정일을 기준으로 ‘과거 3일전’, ‘한달 후’ 등 이와 같이 날짜 계산 가능 또한, 해당 월의 마지막 날이 언제인지 등 날짜를 구할 수 있음 - 중요한 기본 날짜 함수 - SYSDATE • 현재 날짜와 시간 반환 (인터넷 시간이 아닌 컴퓨터의 시계를 이용) SELECT SYSDATE FROM dual; → 결과 : 2023-07-10 00:32:08.000 - ADD_MONTHS( date, n ) • 입력날짜 date에 입력달 n개월을 더한 날짜를 반환 • n < 0인 경우, 입력날짜에서 n개월을 뺀 날짜를 반환 SELECT ADD_MONTHS(SYSDATE, 1) FROM dual; → 결과 : 2023-0..

백엔드/Oracle 2023.07.10

Oracle : SQL - 내장 함수

내장 함수 - 수학함수의 정의와 유사 - 여러 자주 사용하는 기능을 한 함수 이름을 정의해놓으면 필요할 때 불러서 사용 가능 - 그 중에서 이미 잘 만들어진 SQL 제공함수를 공부해보자. 1. 숫자형 함수 - 입력되는 파라미터(매개변수)가 숫자인 경우, 계산결과(반환값)이 숫자인 함수를 의미 - 절대값 함수 : ABS(n) • 매개변수 n의 절대값을 반환 • SELECT ABS(-199) FROM dual; → 결과 : 199 - 천장 함수 : CEIL(n) • 매개변수 n과 같거나 큰 최소 정수 반환 = 올림 • SELECT CEIL(10.5) FROM dual; → 결과 : 11 - 바닥 함수 : FLOOR(n) • 매개변수 n과 같거나 작은 최대 정수 반환 = 내림 • SELEC..

백엔드/Oracle 2023.07.07