항해99/회고록

WIL#4 항해 4W 회고

리동구 2022. 10. 17. 15:24

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 스터디 - 인터페이스