WIL#4 항해 4W 회고
2022/10/16
- 학습내용
Spring에서 (controller-service-repository) 이 구조를 적용하고 공부하다보면 MVC패턴과 ORM에 대한 개념이 나온다.
1. ORM(Object Relational Mapping-객체-관계-매핑)
- ORM은 객체와 데이터베이스의 관계를 매핑해주는 도구이다.
- ORM은 프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 도구이다.
- ORM은 프로그래밍 언어의 객체와 관계형 데이터베이스 사이의 중계자(통역자) 역할을 한다.
- ORM은 MVC 패턴에서 모델(Model)을 기술하는 도구이다.
- ORM은 객체와 모델 사이의 관계를 기술하는 도구이다.
ORM은 DB의 접근을 프로그래밍 해당 언어 지금은 즉 JAVA의 관점에서 맞출 수 있다.
객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
SQL문을 직접 작성하지 않고 Entity를 객체로 표현할 수 있다.
ORM을 이용하면 SQL Query가 아닌 메소드로 데이터를 조작할 수 있다.
한줄평
ORM은 DB의 데이터를 프로그래밍 언어로 바꿔주는 번역기
2.MVC(Model-View-Controller)
프로그래밍의 구성 요소를 세 가지 역할로 구분하여 각각의 구성 요소에만 집중해서 개발하는 패턴이다.
1)Model
데이터베이스, 상수, 변수등의 데이터를 말한다.
View에서 데이터를 생성하거나 수정하면 Controller를 통해 Model을 생성하거나 갱신한다.
즉 Model이 View와 직접 소통하는 일은 없다.
2)View
Model을 기반으로 사용자가 볼 수 있는 화면을 말한다.
데이터를 받고 그리는 역할을 한다.
Model이 가지고 있는 정보를 따로 저장하지 않아야 하면 단순히 모양 등 화면에 표시하는 정보만 가지고 있어야 한다.
변경이 일어날 시 Controller에 이를 전달해야 한다.
3)Controller
Model과 View를 잇는 다리 역할이다.
View에서 이벤트에 대한 input 값을 받고 Model에게 전달해주기 전에 데이터를 가공할 수 있다.
메인 로직을 담당하며, Model이나 View의 변경 사항을 받으면 해석하여 각각의 구성 요소에 해당 내용을 알린다.
3.SQL(Structured Query Language-구조적 질의 언어)
SQL은 RDBMS에서 자료를 관리 및 처리하기 위해 설계된 언어이다.
SQL 특징
1)대소문자를 가리지 않는다.
2)SQL 명령은 반드시 세미콜론(;)으로 끝나야 한다.
3)고유의 값은 따옴표(")로 감싸준다.
SELECT * FROM EMP WHETE NAME = 'DONGGO';
4) SQL에서 객체를 나타낼 때는 백틱(``)으로 감싸준다.
SELECT `COST`, `TYPE` FROM `INVOICE`;
5) 주석 사용 시 문장 앞에 --를 붙여서 사용한다.
6) 여러 줄 주성은 /* */로 감싸준다.
SQL문법
1) DDL(데이터 정의 언어)
(CREATE,ALTER,DROP)
각 릴레이션(DB테이블)을 정의하기 위해 사용하는 언어
2) DML(데이터 조작 언어)
(SELECT,INSERT,UPDATE)
데이터를 추가/수정/삭제하기 위한 데이터 관리 언어
3) DCL(데이터 제어 언어)
(GRANT,REVOKE)
사용자 관리 및 사용자별로 릴레이션 또는 데이터를 관리하고 접근하는 권한을 다루기 위한 언어
SQL 문법을 아직 실사용 해본게 h2-console에서 테이블 확인용이서 추후 실습이 필요할 것 같다.
- 4week 회고
1.4week 일정
1) Spring 숙련~심화과정
2) Spring security, jwt를 활용한 회원가입/로그인 기능 추가
3) Spring 숙련과정 재학습
2. 4week 회고
99일의 4주 끝~!
벌써 28일차,,, 시간 진짜 삭제네
너무 Spring 공부만 하다가 안일하게 프론트 협업 프로젝트를 까먹고 있었다.
이번주 발제를 했는데 프론트 협업 프로젝트는 조금 기간이 남긴했다.
그럼에도 벌써 발제를 해서 알려주시는 건 흠 그만큼 항해 기간 중 제일 중요한 부분인 것 같다.
다행인건 security, jwt이 정말 이해가 잘안됐는데 토요일날 달리기에서 오신 팀원분 캐리를 받아 만들어봤다.
진짜;;; 오랜만에 새벽까지 밤새면서 배웠다.
걷기에 있으실 분이 아닌데 ㅎㅎㅎ 진짜 큰 걱정을 덜었다. 감사합니다!!!
이제 복습 확실해 해서 회원가입/로그인/CRUD 부분은 바로 코딩할 수 있게 해야겠다.
Spring 주차 마무리 잘하고 5주차도 더욱 개발하자!!!
3. 5week 목표
1) Spring security, jwt기능 확실히 복습
2) Spring 심화 시작 - security, jwt 기능 구현 팀프로젝트로 협업
3) Git -협업 복습
4) JAVA 스터디 - 인터페이스