Java&Spring 5

Java 개발자가 JPA 를 쓸 때 이정도는 알고 쓰자 - 엔티티 기본 설계3

엔티티를 설계하면서 필수라고 볼 수 있는 연관관계, 그리고 내 엔티티는 어떤 쿼리를 생산하는가?에 대한 글을 작성합니다.Java 에서 객체지향적 표현과 DB 테이블의 표현 방식의 차이로 인한 패러다임의 불일치가 발생하지만, JPA 를 사용함으로서 그 문제를 해결할 수 있다는 것은 다들 아실거에요. 하지만, 이런 편한 기능 뒤에 숨어있는 JPA 의 동작 원리를 아는 것은 매우 중요합니다.편하게 객체지향적으로 DB 테이블을 다룰 수 있지만, 실제로 우리가 짠 코드에서 어떤 쿼리가 나가게 하는지 아는것은 아무리 강조해도 지나치지 않습니다. 편하다고 무작정 사용하면 성능 이슈 및 장애 유발 등 낭패를 볼 수 있습니다. (작성중...)

Java&Spring/JPA 2025.02.18

Java 개발자가 JPA 를 쓸 때 이정도는 알고 쓰자 - 엔티티 기본 설계2

Java 와 Spring 프레임워크 생태계를 실무에서 사용하는 웹 백엔드 개발자들이 JPA 를 사용할때 종종하는 실수들이 있습니다.백엔드 개발자라면 JPA 를 사용할 때 이정도는 알고 쓰자는 의미에서 글을 작성합니다.JPA 구현체로는 Hibernate 를 사용하고 DB 는 MySQL 을 사용하는 것을 전제로 합니다.값 객체 JPA 에서 사용하는 값 객체의 의미와 그 사용법에 대해 알기전에 참고 객체를 안짚을 수 없을 것 같습니다.Java 에서는 참조 객체(Reference Object)라는 개념이 있습니다. 참조 객체는 객체가 메모리에 위치하는 그 주소자체를 참조하는 객체를 말합니다.class Person { String name;}public class Main { public static ..

Java&Spring/JPA 2025.02.13

Java 개발자가 JPA 를 쓸 때 이정도는 알고 쓰자 - 엔티티 기본 설계1

Java 와 Spring 프레임워크 생태계를 실무에서 사용하는 웹 백엔드 개발자들이 JPA 를 사용할때 종종하는 실수들이 있습니다.백엔드 개발자라면 JPA 를 사용할 때 이정도는 알고 쓰자는 의미에서 글을 작성합니다.JPA 구현체로는 Hibernate 를 사용하고 DB 는 MySQL 을 사용하는 것을 전제로 합니다. 엔티티 설계@Entity@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED) // 기본 생성자 보호@AllArgsConstructor(access = AccessLevel.PRIVATE) // AllArgsConstructor도 보호@Builder@Table(name = "order")public class Order { @Id @Gen..

Java&Spring/JPA 2025.02.09

[Spring] Spring MVC

Spring MVC - 톰캣을 실행시키면 서블릿 컨테이너가 구동된다. 그 후 web.xml 의 내용을 불러와 생성해주고 관리해준다. - Web.xml 내용대로 .do 리퀘스트가 생기면 디스패처 서블릿이 실행된다. - 디스패처 서블릿은 스프링 컨테이너를 구동하고 핸들러 매핑을 이용해 컨트롤러를 검색하도록 요청하고 핸들러 매핑은 해당 컨트롤러 객체를 리턴한다. - Controller 는 model and view 에 비즈니스 로직 후에 얻은 결과물을 셋팅하고 View 단으로 리턴한다. - 디스패처 서블릿은 응답할 View 객체를 찾기 위해 ViewResolver 에게 질의를 한다. - ViewResolver 를 통해 찾아낸 Viewp(jsp)에 request를 전달 한다.

Java&Spring/Spring 2018.11.19

[Spring] Model1, Model2 아키텍쳐

Model1 아키텍쳐 - 클라이언트가 jsp 요청 - jsp 에서 View 단의 html 과 css 를 처리하고 Controller 단의 사용자 입력정보추출, DB연동처리, 화면 네비게이션 등의 기능을 처리한다. - jsp 에서는 자바빈즈를 이용해 비즈니스 로직인 Model 에 접근한다. - 그 다음으로 DB 연동을 통해 사용자가 요청한 정보를 가져온다. - 요청에 대한 응답으로 통신을 마친다. - 이 구조의 특징은 jsp 에서 Controller 기능과 View 기능을 모두 제공한다는 것이다. 이로 인해서 jsp 파일에 자바 코드와 디자인 소스들이 혼재하기 때문에 유지보수에 어려움이 따른다. Model2 아키텍쳐 - 클라이언트가 jsp 를 요청 - Controller 단의 Servlet 은 브라우저의 ..

Java&Spring/Spring 2018.11.19