spring week02-WIL#3

송지은·2021년 10월 3일
0
post-thumbnail

1)MVC에 대해서

너무 중요한 개념이기에
스파르타 강의도 왓 그렇게 강의시간 긴거 처음 봤다.

MVC는 Model, View, Controller의 약자 입니다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성 요소를 세가지 역할로 구분한 패턴입니다.

manipulate - 컨트롤러가 model을 조종한다는 의미


이 그림에는 컨트롤러가 뷰에도 영향을 미친다는 부분이 있는데 이것이 더 정확하다.

MVC는 디자인 패턴중 하나이다

디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것을 말합니다.

Model?

애플리케이션의 정보, 데이터를 나타냅니다. db, 처음 정의하는 상수, 초기화값, 변수 등을 뜻하며, 이러한 data 정보들의 가공을 책임지는 컴포넌트를 말합니다.

view?

input텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타냅니다. 다시 말해 데이터 및 객체의 입력, 그리고 보여주는 출력을 담당합니다. 데이터를 기반으로 사용자들이 볼 수 있는 화면입니다.

controller?

데이터와 사용자 인터페이스 요소들을 잇는 다리역할을 합니다.
즉 사용자가 데이터를 클릭하고, 수정하는 것에 대한 "이벤트"들을 처리하는 부분을 뜻합니다.

왜 MVC패턴을 사용해야 할까?

사용자가 보는 페이지, 데이터처리, 그리고 이 2가지를 제어하는 컨트롤, 이 3가지로 구성되는 하나의 애플리케이션을 만들면 각각 맡은바에만 집중을 할 수 있게 됩니다. 공장에서도 하나의 역할들만 담당해서 처리를 하는것이 효율적으로 됩니다.

서로 분리되어 각자의 역할에 집중할 수 있게끔 하여 개발을 하고 그렇게 애플리케이션을 만든다면, 유지보수성, 확장성, 유연성이 증가하고 중복코딩이 사라진다.

그러면 ALLInOneController??service 랑 Repo없이도 잘 동작하네?

근데 문제점!!

  1. 한 개의 클래스에 너무 많은 양의 코드가 존재

    1. 코드 이해가 어려움: 처음부터 끝까지 다 읽어야 코드 내용을 이해할 수 있음
  2. 현업에서는 코드 추가 혹은 변경 요청이 계속 생김

    [변경 요청의 예]

    1. 신규 상품 등록 시 Client 에게 응답 (Response) 하는 값 변경
      1. 등록된 Product 전체 정보 → 등록된 Product 의 id
    2. 최저가 (Myprice) 업데이트 조건 변경
      1. Client 가 최저가를 0원 이하로 입력 → 에러 발생
    3. DB 테이블 이름 변경
      1. Product 테이블의 lpricelowprice 변경

        그래서 역할 분리가 필요합니다.

ORM(Object Relational Mapping

Object-Relational Mapping

-객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말합니다.
객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용합니다.
객체 모델과 관계형 모델 간에 불일치가 존재합니다.
ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결해줍니다.

-데이터베이스 데이터 <- 매핑 -> Object 필드

-객체를 통해 간접적으로 데이터베이스 데이터를 다룹니다.
Persistant API라고도 부릅니다.
Ex) JPA, Hibernate

강의를 아직 못들어서... 여기까지만 하겠다 ㅜㅜ

3) SQL

사전적 정의 : = Structured Query Language 구조화 질의어

SQL을 설명하기 위해서는 DB의 에 대한 이야기가 꼭 필요하다.
우리가 프로그램에서 사용되는 모든 데이터는 모두 데이터 베이스라는 곳에 저장되어 있습니다.

이 데이터베이스에 저장된 데이터를 꺼내보기 위해 필요한 것이 바로 SQL이다
쿼리 언어인데, 즉 데이터베이스가 알아들을 수 있는 유일한 언어입니다.

SQL이 언어라고??????

우리가 외국인과 대화를 하려면, 둘 중 한명이 상대방의 언어를 이해해야 하는 것 처럼
데이터베이스가 알아들을 수 있는 언어로 정보를 "요청"해야
디비가 그것을 이해하고 우리가 원하는 데이터를 원하는 포맷으로 보내어줍니다.

3주차 회고

아 시간이 참 빠르다.
그래도 심화 강의가 어렵긴 하지만 디테일하게 들어가셔서
그동안 이해가 안됬던 부분을 좀 더 이해할 수 있었다.

자바 스터디도 준비하면서 자바 기본개념이 좀 잡혀서
더 잘 들리는 것 같기도 하다.

그래도 이제 3주 지났는데
조금 성장된 내 자신을 느낀다.

근데 살짝 나태해진 감도 없지 않아 있음ㅋ
이게 개인 프로젝트이다 보니 심장이 사실 덜 쫄려서 그런것 같다.

하 4주차도 힘내자

한 12시간만 푹 자고 싶다.

profile
꧁⍢⃝꧂ All about codes in my brain ꧁⍢⃝꧂

0개의 댓글