inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 클럽 Study] 백엔드 3주차 발자국

S.M KIM
0


학습 내용 요약

 

<SQL을 직접 작성하는 것에 대한 문제점>

  1. 실수할 여지가 많으며, 실수 시 인지하는 시점이 느리다

    • SQL 작성 시 오타가 발생할 경우 IDE에서 자체적으로 확인해주는 것이 아니라면 보통은 런타임 에러로 처리가 되어서 실제로 서버가 가동될 때 에러가 발생하여 문제가 더 커질 가능성이 있음.

  2. 특정 데이터베이스에 종속적이게 된다.

    • 데이터베이스마다 SQL 문법이 조금씩 다르기 때문에 데이터베이스를 바꾸게 되면 이미 작성한 SQL문도 잘못된 부분이 있으면 하나하나 다 바꿔줘야 함.

  3. 반복작업이 많아진다.

    • 테이블을 하나 만들 때마다 기본적인 INSERT / SELECT / UPDATE / DELETE 쿼리는 필요하며, SELECT 쿼리를 할 때마다 필드 하나하나를 매핑해주는 것이 번거롭다.

  4. 데이터베이스와 객체는 패러다임이 다르다.

    • 대표적으로 연관관계와 상속에서 이러한 차이점이 두드러진다.

     

<JPA의 정의>

 

<JPA 어노테이션>

<application.yml>

<자동으로 쿼리문 날리기>

Repository

public interface UserRepository extends JpaRepository<User, Long> {
}

 

간단하게 사용할 수 있는 JPA 명령어

<트랜잭션과 영속성 컨텍스트>


회고

저번 주에 클린 코드에 대한 강의를 듣고 이번 주에 과제를 진행하면서 클린 코드를 적용해보기로 했지만 생각보다 쉽지 않아 아쉬웠던 것 같습니다. 이번 주 금요일에 진행했었던 QNA 코드리뷰 시간에서는 throw new를 적용할 때 발생하는 동시성 이슈, N+1 문제, @Transactional 어노테이션의 readonly 옵션, enum 클래스의 활용, ApiUrlConstants로 API 주소를 관리하는 기법 등이 기억에 남았습니다. 이제 마지막으로 최종 과제만 남았는데, 남은 시간동안 테스트 코드를 이용하여 최종 과제를 해결하는 것은 어려워도 지금까지 배운 클린 코드에 대한 지식으로 최대한 깔끔한 코드를 작성해보도록 노력할 것입니다.

 


백엔드 워밍업

답변 0