hayu's 개발 일지

[WIL]240310 항해99 주특기 3주차 회고 & ORM, SQL, MVC 본문

항해99/회고

[WIL]240310 항해99 주특기 3주차 회고 & ORM, SQL, MVC

hayu00 2024. 3. 10. 11:30

ORM란?

- ORM은 Object Relational Mapping(객체-관계-매핑)의 약자이다. 즉, 객체와 데이터베이스의 관계를 매핑해주는 도구이다.

- 프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 도구로 객체와 관계형 데이터베이스 사이의 중계자(통역가) 역할을 한다. 

- ORM을 사용하면 테이블과 매핑된 객체를 메소드 호출로 조회가능하다. 

 

ORM의 장점 

- 직관적인 코드로 가독성이 증가하고 로직에 집중할 수 있다.

-> 메소드를 통해 DB조작 가능, 객체마다 코드를 별도로 작성해 가독성 높아짐.

- 재사용 및 유지보수의 편리성이 증가한다. 

-> 독립적으로 작성되어 있고, 객체들을 재활용할 수 있다. 

- DBMS(Database Management System)에 대한 종속성이 줄어든다.

-> 대부분 ORM 솔루션은 DB에 종속적이지 않기 때문에 구현 방법 뿐만 아니라 많은 솔루션에서 자료형 타입까지 유효하다.

+ DBMS(Database Management System) : 데이터 베이스를 관리하고 운영하는 소프트웨어이다. 현재는 관계형 DBMS를 많이 사용한다. (ex. MySQL, Oracle, SQLite )

1. 대용량의 대이터를 사용하고 저장, 관리할 수 있다.

2. 공유개념, 동시에 다른 사용자가 공유할 수 있다.

 

ORM의 단점

- 완벽한 ORM 으로만 서비스 구현하기 힘들다. 

-> 사용하기는 편리하지만 설계는 신중해야 한다. 

- 프로젝트의 복잡성이 커질 경우 난이도 또한 올라간다.

SQL란?

- SQL은  DBMS에 데이터를 구축, 관리하고 활용하기 위해서 사용되는 언어이다. 즉 데이터 베이스용 프로그래밍 언어이다. 쿼리(Query) 언어라고 불리기도 한다. 

+ 쿼리(Query): 데이터 베이스에서 데이터를 조작하기 위해 사용되는 명령어나 질의문을 의미한다. 일반적으로 데이터 베이스에서 데이터를 조회하거나 변경하기 위해 사용된다. 

MVC란?

- 이 부분은 이전 블로그를 참고하자.

이전 블로그: https://yuha00e.tistory.com/entry/TIL240301-%EC%8A%A4%ED%94%84%EB%A7%81-MVC-%EC%99%80-Front-Controller

이번주도 하얗게 불태웠다...

이번주 배운 내용

- 이번주에는 엔티티 연관관계 매핑, Spring Security 등을 배웠다. 

 

새로 알게된 점

- Spring Security를 어떻게 사용하는지를 배웠고, @RequestBody 는 POST, PUT 에만 사용한다는 사실을 알게 되었다.

 

어려웠던 점

- 사실 프로젝트 자체를 따라가는게 힘들었다. 아무래도 페어 프로그래밍으로 진행을 하다보니 끌려가는 느낌이 있었던 것 같다. 

 

아쉬웠던 점

- 코드를 완벽하게 이해하지 못한 부분이 아쉬웠다. 그냥 봤을 때는 이해가 되는듯 했지만 하나씩 따져 봤을 때 이해가 되지 않았다는 것을 알 수 있었다. 

 

회고

- 비전공자에다가 코딩을 처음 배워보는 나로써는 프로젝트를 따라가기가 힘들었다. 코드를 짜는 것도, 코드를 완벽하게 이해하는 것도 힘들었다. 아무래도 이해가 완벽하게 되지 않아서 짜는게 힘들었던 것 같다. 그래서 나름의 방법을 생각했다. 완셩된 코드를 뜯어서 분해해보기로 했다. 내가 뜯어보고 코드를 이해하는 방식으로 공부를 해야겠다고 결심했다. 다음주의 나도 후회없이, 최선을 다해서 성장하는 내가 되기를 바란다.