life is egg
22.12.05 [Spring 입문-SQL] 본문
IP를 www.~~.com같은은 주소로 가린게 DNS
상호간의 약속을 정해서 통신해야함 !
> 웹프로그래밍 할라면 HTTP라는 프로토콜을 이해해야함 ..!
최근 경향은 ... 느슨하게 프론트엔드와 백엔드가 연결..~ 즉
서버가 뷰를 반환해주는것보단 요청에 맞는 정보만 반환
json이라는 형태로 데이터만 반환해주는 방식 ~ 많이 이용
REST ~ 소프트웨어 아키텍쳐 `
RESTful API는 ~ REST 규약?을 잘 지킨것
NOSQL vs SQL 각각의 장단점이 있으니까 ... 적절한 용도로 사용해야함
~~패턴 / ~~ 아키텍쳐
>>유연성이 핵심
서버의 구성은 크게 세가지로 나뉨!
- 새로운데이터를 처리하는 부분
- 서비스 로직을 처리하는 부분
- 기존데이터를 이용하는 부분
이와 유사하게 스프링, 스프링부트에도 레이어가 나뉘어져있다
- Presentation 계층 @Controller
- Domain(Business or Service) 계층 @Service
- Data Access(Persistence) 계층 @Repository
- 인접한 계층이랑 소통함 컨트롤러는 서비스랑 서비스는 저장소랑 ~소통
복붙 읽어보기 ~
Presentation 계층
사용자와 상호 작용 처리 계층
CLI, HTTP 요청, HTML 처리 등을 담당한다.
HTTP 요청 처리 및 HTML 렌더링에 대해 알고 있는 웹 계층
흔히 말하는 MVC (Model / View / Controller) 도 이 계층에 속한다.
우리가 URL을 매핑해서 특정 메서드가 해당 URL로 요청이 올 때마다 호출되게 프로그래밍 했었죠? 그 계층을 말하는 것이며, 스프링에서는 @Controller 어노테이션을 사용하여 표현합니다!
Domain(Business or Service) 계층
서비스/시스템의 핵심 로직
유효성 검사 및 계산을 포함하는 Business 논리 계층
애플리케이션이 수행해야하는 도메인과 관련된 작업들을 담당한다.
입력/저장된 데이터를 기반으로 계산
Presentation 계층에서 받은 데이터의 유효성 (Validation) 검사
어떤 Data Access 를 선택할지 결정
우리의 서버 프로그램이 복잡해지면, 비즈니스 로직을 수행하기 위한 별도의 계층(Layer)이 필요합니다. 사실 더 이상적으로는 유능한 서버 프레임워크를 써서 Presentaion, Data Access계층에는 별로 할 일이 없고, 도메인 계층이 비대해지는게 가장 좋습니다. 스프링에서는 @Service 어노테이션을 사용해서 표현합니다!
Data Access(Persistence) 계층
DAO 계층
Database / Message Queue / 외부 API와의 통신 등 처리
데이터베이스 또는 원격 서비스에서 영구 데이터를 관리하는 방법을 분류하는 데이터 접근 계층
우리의 데이터베이스, 혹은 데이터를 저장하는 데이터 소스는 서버 외부에 별개로 존재하는 경우가 매우 많고, 그러한 데이터 소스와의 소통을 해주는 계층이라고 생각하시면 될 것 같습니다. 스프링에서는 @Repository 어노테이션을 사용해서 표현합니다.
DBMS (Database Management System)
RDBMS(Reational DBMS) ~ 관계형 데이터베이스 ,, 테이블(열*행)로구성
>종류로 MySQL , PostgreSQL, Oracle Database(유료) 등등..
> H2는 인메모리 DB... 서버 작동중에만 데이터 저장 서버꺼지면 데이터 삭제
SQL (Structured Query Language) 언어야! 회사마다 차이 존재
>DDL DCL DML 로 분류..
>DDL(Data Definition Language) CREATE/ALTER/DROP/TRUMCATE
>DCL (Data Control Language) GRANT/REVOKE
>DML(Data Manipulation Language) INSERT/SELECT/UPDATE/DELETE
CREAT

너무 험난하다...강의 는 짧은데 왜 진도가 안나가냐..! 처음 세팅이 너무 욕나온다고 할 수 있겠다
무튼 일단 인텔리제이 얼티메이트 버전으로 업그레이드 하고 ~ 또 jbdc인가 찾아서 설치하고 옵션에서 따로 적용눌러주고
아 근데 프로젝트 생성할때 그냥 생성하는거랑 generte인가 이걸로 spring머시기 하는거랑 뭔차이지
무튼 스프링 머시기로 하라니까 인텔리제이 다운그래이드 하라는데 걍 프로젝트 생성해서 했다 . !


걍 따라하는 중 딸각 선생님이 그립다... 두 사진이 뭔 차이냐 EXAM이 STUDENT와 관계를 맺고 있냐 없냐 차이
ALTER를 이용해서 관계를 맺을 수 있다.! SUTDENT와 MAJOR는 외래키를 사용해 관계를 미리 맺었다
자막이 매우 빠르게 지나가지만 .. 윈도우 기준 [컨트롤+A 전체선택] [컨트롤+엔터 execute]
INSERT에서는~
null을 허용했으면 null이 없다면 순서대로 값을 추가하면 되지만 null항목이 있다면 들어갈 항목을 VALUES앞에 명시해줘야함

업데이트 ~ 정보확인하기 ~ 삭제하기

다양한 방법으로 정보를 가져올 수 있다..

JOIN~ON

문제 1~5 내가 풀다가 후반 갈수록 도저히 못풀겟음 진짜 눈물나옴 그냥 책한권 사서 My SQL 공부한다

오우...진짜 마지막 말이 너무 달았다.. 매번 SQL해야 하냐? 아니 ! ORM? 이라는 기술이발달 .. .스프링에서는 JPA를 이용해서 ORM 쓸수 있어 ORM은 SQL을 쉽게? 다루게 해주는건가봐~
JPA
@Entity 를통해 DB역활을 한다고 알려줌!
> 어렵다 !
'TIL' 카테고리의 다른 글
| 22.12.07 [알수없는] (0) | 2022.12.07 |
|---|---|
| 22.12.06 [MVC] (0) | 2022.12.06 |
| 22.12.02 [JAVA심화3 +CS] (2) | 2022.12.04 |
| 22.12.01 [JAVA 심화 2] (2) | 2022.12.01 |
| 22.11.30 [자바심화 1일차 & 미니프로젝트피드백] (0) | 2022.11.30 |