Problem

본격적으로 코딩 공부를 시작한지 어느덧 19일차이지만, 여전히 개념적인 부분에서 너무나 부족하다. 그래서 아래와 같이 오늘 공부한 것들을 적어서 정리를 해보았다.

What I learned

ERD (Entity Relationship Diagram)

ERD는 정보 기술 시스템 내에서 사람, 개체, 장소, 개념 또는 이벤트 간의 관계를 나타내는 그래픽 표현이다. ERD는 비지니스 프로세스를 정의하고 관계형 데이터베이스의 기반이 될 수 있는 데이터 모델링 기술을 사용한다.

Peter Chen Notation을 사용하여 아래 사용 방법 및 의미를 확인해보자.

수정이 필요하지만 오늘 처음으로 첫 프로젝트에 필요한 ERD를 작성해보았다.

알고보니 이걸 대신 만들어주는 사이트가 있어 공유해본다.
https://www.erdcloud.com/

NullPointerException vs IllegalArgumentException

먼저 NullPointerException(NPE) JavaDoc에서는 "NPE is meant to be used for attempting to use null where an object is requred." IllegalArgumentException(IAE) JavaDoc에서는 "Thrown to indicate that a method has been passed an illegal or inappropriate argument."

즉, 정리해보면 NPE는 null을 허용하지 않는 메소드에 null이 인자로 넘어왔을 때 사용하면 되고, IAE는 잘못된 인수를 가진 호출을 받았을 때 사용하면 된다.

@EnableJpaAuditing

오늘 프로젝트를 하며 Timestamped가 연결이 되지 않는 문제가 계속 발생했다. 같이 프로젝트를 진행하고 있는 페어가 Application클래스에 @EnableJpaAuditing이 들어가있는지 확인해보라고 해서 했더니 들어가있지 않았다. 이런 기본적인걸 잊지 않고, 같은 실수를 반복하지 않기 위해 적어보았다.

*@EnableJpaAuditing은 엔티티 객체가 생성이 되거나 변경이 되었을떄, 해당 Annotation을 활용하여 자동으로 값을 등록할 수 있다.

Controller/Entity/Service/Repository 개념 정리

Controller (Presentation Layer)

  • 사용자의 요청이 진입하는 지점
  • 요청에 따라 어떤 처리를 할지 결정
  • 결정한 처리를 응답으로 보내줌

Service (Business Layer)

  • Controller와 Repository 사이에서 비지니스 로직 수행

Repository (Persistence Layer)

  • 서비스가 비지니스 로직을 수행할 때 필요한 데이터들을 DB에서 꺼내옴
  • 서비스가 비지니스 로직을 수행 후 변경된 데이터들을 DB에 저장함

정리해보면 아래와 같다.

출처:
https://gallery-k.tistory.com/310

profile
Think out of the Box

0개의 댓글