본문 바로가기

TIL(Today I Learned)

TIL-230624

📝오늘 공부한 것

  • 스파르타코딩클럽 Spring 입문주차 1주차 ~끝까지

 

😥어려웠던 것들

진짜 강의를 들을 때 한 강에 한번씩은 에러가 났다..

그래서 구글링을 해서 이것저것 따라해보다가, 팀원들한테도 물어도 보고, 파일도 초기화해보고,,, 하다보면 해결!

에러가 났었던 부분들을 정리하고 싶었지만,, 개념이 부족해 잠깐의 컴퓨터나 프로그램 문제였는지 코드의 문제였는지 조차 파악을 못해서 TIL에 적기 실패...ㅠㅠ

 

알게 된 점

처음보는 용어들, 개념들이 많아서 강의를 들을때 자주 언급하셨지만, 기억에 잘 남지않는 것들로 정리를 해봤다...!

 

[MVC 디자인 패턴]

 - Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나입니다

 - 소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리합니다.

 

Model :

데이터와 비즈니스 로직을 담당합니다.

데이터베이스와 연동하여 데이터를 저장하고 불러오는 등의 작업을 수행합니다.

 

View :

사용자 인터페이스를 담당합니다.

사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현합니다.

 

Controller :

- ModelView사이의 상호작용을 조정하고 제어합니다.

- 사용자의 입력을 받아 Model에 전달하고, Model의 결과를 바탕으로 View를 업데이트합니다.

 

[Spring MVC]

Servlet API를 기반으로 구축된 독창적인 웹 프레임워크

Servlet(서블릿) : 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양

https://docs.spring.io/spring-framework/reference/web/webmvc.html

 

Spring Web MVC :: Spring Framework

Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, "Spring Web MVC," comes from the name of its source module (spring-webmvc), but it is more commonl

docs.spring.io

 

[SQL(Structed Query Language)]

- RDBMS에서 사용되는 언어

 

DDL(Data Definition Language) : 테이블이나 관계의 구조를 생성하는데 사용

- CREATE: 새로운 데이터베이스 및 테이블을 생성

CREATE DATABASE 데이터베이스이름;
CREATE TABLE 테이블이름
(
	필드이름1 필드타입1,
    필드이름2 필드타입2,
    ...
);

- ALTER: 데이터베이스와 테이블의 내용을 수정

ALTER TABLE 테이블이름 ADD 필드이름 필드타입;
ALTER TABLE 테이블이름 DROP 필드이름;
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입;

- DROP: 데이터베이스와 테이블을 삭제. 데이터 및 테이블 전체를 삭제

DROP DATABASE 데이터베이스이름;
DROP TABLE 테이블이름;

- TRUNCATE: 데이터베이스와 테이블을 삭제. 최초 테이블이 만들어졌던 상태 즉, 컬럼값만 남김

TRUNCATE DATABASE 데이터베이스이름;
TRUNCATE TABLE 테이블이름;

 

DCL(Data Control Language) : 데이터의 사용 권한을 관리하는데 사용

- GRANT: 사용자 또는 ROLE에 대해 권한을 부여

GRANT [객체권한명] (컬럼)
ON [객체명]
TO { 유저명 | 롤명 | PUBLC} [WITH GRANT OPTION];

//ex
GRANT SELECT ,INSERT 
ON mp
TO scott WITH GRANT OPTION;

- REVOKE: 사용자 또는 ROLE에 부여한 권한을 회수

REVOKE { 권한명 [, 권한명...] ALL}
ON 객체명
FROM {유저명 [, 유저명...] | 롤명(ROLE) | PUBLIC} 
[CASCADE CONSTRAINTS];

//ex
REVOKE SELECT , INSERT
ON emp
FROM scott
[CASCADE CONSTRAINTS];

DML(Data Manipulate Language): 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용

- INSERT: 테이블에 새로운 row를 추가

INSERT INTO 테이블이름(필드이름1, 필드이름2, 필드이름3, ...) VALUES(데이터값1, 데이터값2, 데이터값3, ...);
INSERT INTO 테이블이름 VALUES(데이터값1, 데이터값2, 데이터값3, ...);

- SELECT: 테이블의 row를 선택

SELECT 필드이름 FROM 테이블이름 [WHERE 조건];

- UPDATE: 테이블의 row의 내용을 수정

UPDATE 테이블이름 SET 필드이름1=데이터값1, 필드이름2=데이터값2, ... WHERE 필드이름=데이터값;

- DELETE: 테이블의 row를 삭제

UPDATE 테이블이름 SET 필드이름1=데이터값1, 필드이름2=데이터값2, ... WHERE 필드이름=데이터값;

 

[CREATE 제약조건]

AUTO_INCREMENT : 컬럼의 값이 중복되지 않게 1씩 자동으로 증가하게 해줘 고유번호를 생성

NOT NULL : 해당 필드는 NULL값을 저장할 수 없음

UNIQUE : 해당 필드는 서로 다른 값을 가져야함

PRIMARY KEY : 해당 필드가 NOT NULLUNIQUE 제약 조건의 특징을 모두 가짐

FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 만들며 데이터의 무결성을 보장

CASCADE : FOREIGN KEY로 연관된 데이터를 삭제, 변경 할 수 있음.

 

 

느낀 점🤔

강의에 나온 코드를 따라적으면서 CRUD 메모장을 만들어 보았다. html화면과 같이 구축한 서버를 바로바로 확인하면서 봐서 그런지 자바공부했을때보다 재밌는 것같기도 하고...얼른 잘하고싶다,,,,,!

'TIL(Today I Learned)' 카테고리의 다른 글

TIL-230628  (0) 2023.06.29
TIL-230626  (0) 2023.06.26
TIL-230623  (0) 2023.06.23
TIL-230621  (0) 2023.06.22
TIL-230620  (0) 2023.06.20