Spring

    스프링부트 구조 Controller, Service, DAO, Repository, DTO, Entity

    스프링부트의 구조와 요청 흐름은 이러하다. 위 사진처럼 회사나 개발 그룹 규정에 따라 서비스와 DAO 사이에서 엔티티로 데이터를 전달하는 것을, 아래 사진처럼 DTO로 전달하기도 한다 💡 Controller 컨트롤러는 클라이언트로부터 요청을 받고 해당 요청에 대해 서비스 레이어에 구현된 적절한 메소드를 호출해서 결괏값을 받는다. 클라이언트로부터 들어오는 HTTP 요청을 받아서 처리하고, 그에 따른 결과를 HTTP 응답으로 반환하는 역할을 한다. @RestController @RequestMapping("/product") public class ProductController { private final ProductService productService; @Autowired public Product..

    JPA? ORM? 하이버네이트?

    💡 ORM 등장 배경 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 이로 인해 객체 모델과 관계형 모델 간에 불일치가 존재한다. 객체 모델과 관계형 모델 간의 불일치 사이에서 개발자는 SQL문을 사용하여 두 모델 간의 차이를 메웠지만 객체 모델링을 SQL로 풀어내는데 너무 많은 코드와 노력이 필요하다. 이러한 문제를 해결하기 위해 ORM이 등장하였다. 💡 ORM이란 ORM은 Object Relational Mapping의 약자로 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제와 제약사항을 개발자 대신 해결해준다. 💡 JPA JPA는 Java Persistence API의 약자로 자바 ORM 기술에 대..

    MVC

    💡MVC 패턴이란 MVC는 소프트웨어를 Model, View, Controller라는 3가지 구성 요소로 구분한 개발 방법론으로 사용자 인터페이스, 데이터 및 논리 제어를 구현하기 위해 사용되는 디자인 패턴이다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두며 이를 통해 더 나은 업무의 분리와 향상된 관리를 제공한다. MVC 웹 프레임워크를 사용하는 대표적인 프레임워크는 스프링, 장고 등이 있다. 💡Model Model은 소프트웨어나 애플리케이션에서 정보 및 데이터 부분을 의미한다. 이는 Controller에게 받은 데이터를 가공하는 역할을 수행한다고 볼 수 있다. 💡View View는 입력값이나 체크박스 등과 같은 사용자 인터페이스 요소를 나타낸다. 이는 Controller에게 받은 Mode..