2023.02.19

김근호·2023년 2월 19일
1

WIL

목록 보기
5/8

이번주를 되돌아보며

이번주는 아마도 지금까지 항해99를 해오면서 가장 힘들었던 한주가 아니였나 싶을 정도로 많은 것을 배우고 소화했던 한 주였다. JPA,JWT,리팩토링,예외처리 등등... 강의를 들으면서 개념을 이해하고 과제를 하면서 익숙해지려고 하는 과정속에서 매주 나에게 맞는 공부 방법을 찾아 나가면서 맞춰가는것 같다. 특히 이번주는 그런 고민들을 많이 했었다. 팀원들과도 얘기를 많이 하면서 도움도 많이 받고 힘든 부분에 대해서 기대면서 서로서로 힘이 되어주었다. 혼자라면 어떻게 견뎌 냈을까라는 걱정도 들었지만, 한편으로 좋은 동료들이 있어서 참 다행이다라는 생각을 많이 했다. 아직까지도 다른 사람들과 비교 하면서 조바심을 가지는게 발목을 많이 잡지만 성장하는 단계라고 생각하고 남은 기간동안 나 자신에게 집중해서 성장에 더 신경쓰도록 노력해야겠다.

이번주 키워드<ORM, SQL, MVC>

MVC

MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다

  • model

    데이터베이스에서 데이터를 가지고 올 수 있고 데이터를 가지고 있을 수도 있다.
    데이터베이스와 소통한다.
    컨트롤러에게 데이터를 전달한다.
    모델이 뷰와 직접 소통하는 일은 없다.
  • View

    유저가 보는 화면을 보여주게 하는 역할이다.
    데이터를 받고 그리는 역할을 수행한다.
    모델이나 데이터베이스와는 소통하지 않고 컨트롤러와만 소통한다.
    컨트롤러에게 엑션이나 데이터를 전달만 하고 전달 받기만 한다.
  • Controller

    뷰에서 엑션과 이벤트에 대한 인풋 값을 받는다.
    모델에게 전달해주기 전에 데이터를 가공할 수 있다.
    뷰에게 모델에게 받은 데이터를 가공할 수 있다.
    이렇게 세가지로 나눠서 API를 설계하는 패턴을 말한다.

MVC 디자인 패턴 특징

  • MVC의 핵심은 각 구성요소를 독립시킴으로써 각 팀으로 하여금 맡은 부분의 개발에만 따로 집중 할 수 있게 하여 개발의 효율성을 높일 뿐만 아니라. 개발 완료 후에도 유지보수성과 확장성을 보장한다.
  • 소프트웨어가 서비스하기 위해서는 여러 과정과 처리가 필요하다.
  • 그러한 처리들을 각 기능 단위 별로 나눠서 처리한다.
  • 그러므로써 프로그래밍을 할 때 역할을 하는 정돈된 코드를 작성할 수 있다.
  • 디버깅이나 코드 가독성을 높인다.

SQL

구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다. 관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 데이터 속성과 데이터 값 간의 다양한 관계를 나타냅니다
SQL 쿼리문은 역할에 따라 3가지로 분류되며 아래와 같습니다.

SQL 명령어

  • DDL(Data Definition Language, 데이터 정의어)
    DB 오브젝트를 생성, 삭제, 변경하는 역할을 하며, DB 설계 단계에서 주로 사용됩니다.
    ex.(CREATE, DROP, ALTER...)
  • DML(Data Manipulation Language, 데이터 조작어)
    DB를 조회, 삽입, 삭제, 변경하는 역할을 하며, 관리 목적의 쿼리문입니다.
    ex. (SELECT, INSERT,UPDATE...)
  • DCL(Data Control Language, 데이터 제어어)
    사용자의 권한을 관리하는 역할을 합니다.
    ex. (GRANT, DENY, REVOKE...)
  • 이중 개발자가 일반적으로 DB를 사용할 때 사용하는 언어의 중요도는 DML > DDL > DCL 순입니다.
  • DB를 조회하고, 관리하는 DML을 가장 많이 사용하며, DB의 테이블의 스키마(설계 수준)를 수정하는 DDL을 그다음으로 많이 씁니다.
  • DCL은 DBA(DataBase Administration, 데이터베이스 관리자)가 주로 사용하며 일반 개발자는 사용할 일이 드뭅니다.

ORM

Object Relational Mapping, 객체-관계 매핑
객체지향 프로그래밍과 관계형 데이터베이스는 서로 다른 패러다임으로 인해 문제가 생길 수 있다.
이러한 문제를 해결하기 위해서 ORM은 객체와 관계와의 매핑을 통해 자동으로 SQL을 생성하여 불일치를 해결할 수 있다. 즉, SQL없이 객체를 통해서 DB조작을 가능하게 할 수 있다.

profile
앞만 보고 나아가자!

0개의 댓글