백엔드 88

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

48, 49 - Spring Boot : 회원가입 게시판 생성 (1)

1. 회원가입 입력양식인 member_register_form.jsp 생성 • 위치 : ‘/webapp/WEB-INF/view’ 폴더 내 위치 • 외부에서 접근 불가 → Controller에 의해 접근하기 : ❷방식으로 접근 ➊ 서블릿을 통해 JSP 파일 접근 클래스 단위로 매핑 ‘@WebServlet’ 죽석 추가 → name 및 urlPatterns 속성 이용 서블릿을 작동시키기 위해서 ‘프로젝트명Application’에 ‘@ServletComponentScan’ 주석 추가 ❷ Controller 클래스를 통해 JSP 파일 접근 - 스프링 부트 방식 메서드 단위로 매핑 → Controller 하나당 여러 개의 메서드 이용해 매핑 가능 다만, 웹 앱 단위로 컨트롤러 구분하는 것 권장 ‘@Controlle..

Oracle : SQL ( SELECT -2 )

연습 -- 7. IN 연산 -- • 몇 개의 낱개의 검색어와 비교할 때, 이 검색어들이 서로 연관되어 있지 않은 경우에 사용하는 연산자 -- → 이 검색어가 같으면 true, 다르면 false -- • WHERE 컬럼명 IN ( value1, value2, ... 여러 조건 ) -- → value의 경우, 컬럼명의 데이터타입과 일치하는 데이터값이 와야함 -- • IN연산은 OR연산과 유사하지만, OR연산의 경우 중복되는 데이터를 모두 적어야 하므로 혼동 가능성 있음 -- 반면, IN연산의 경우 중복되는 부분을 한번만 쓰므로 보다 깔끔한 표현이 가능 -- 예) 잠실역에서 7시와 9시에 탑승한 고객 검색에서 7시, 9시가 바로 그 대상 검색어에 해당됨 -- "잠실역에서 7시와 9시에 승/하차한 고객 검색" ..

백엔드/Oracle 2023.07.06

47 - Spring Boot : JSPCookBook 프로젝트 생성

* 폴더 구조 \application \controller → 라우팅 기능 \domain → ( DTO / VO ) ⇒ 데이터 / DAO ⇒ 메서드 \service → 데이터 정제 기능 \util → 기타 기능 1. 파일 생성 시, 폴더도 함께 생성시키기 - Project Package창에서 생성시킨 결과 확인 2. index.jsp 파일 생성 후, Spring Boot App 실행 - console창에서 톰캣이 8080 포트로 시작한다는 것 → 서버창에 ‘localhost:8080’ 입력 시, Whitelabel Error Page 출력됨 • 현재 톰캣 서버의 포트 : 80 → 'src/main/resources' 내 application.properties 파일에서 서버 포트 변경해주기 - conso..