전체 글 333

spring - 17일차

오늘의 문제점 - 댓글 작성 시 id 값이 댓글 작성 순서에 맞게 생성되는 것이 아닌, 전체 작성 글과 연동되어 생성된다. 즉, 처음 게시글을 작성하면 첫 게시글 1번의 id값이 1번이 되고, 그 사이에 댓글을 작성하면 댓글 1번의 id가 1번이 되야 하는데 id 값이 2번으로 작성되고, 다음 게시글을 작성하면 게시글 2번의 id 값이 3번이 된다.. 뭐가 문제인 것일까.. Notice Entity 변경 전 @Id // JPA에서 기본키를 나타는 필드에 사용 @GeneratedValue(strategy = GenerationType.AUTO) private Long id; Notice Entity 변경 후 @Id // JPA에서 기본키를 나타는 필드에 사용 @GeneratedValue(strategy =..

23.02.13 - 02.19 -WIL

ORM (Object-Relational Mapping) 객체와 관계형 DB의 데이터터를 자동으로 매핑해주는 것 객체 지향 프로그래밍은 클래스(class)를 사용하고, 관계형 DB는 테이블을 사용합니다 객체 모델과 관계형 모델 간에 불일치가 존재 ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결 DB 데이터 Object 필드 객체를 통해 간접적으로 DB 데이터를 다움 Persistant API 라고도 부름 JPA, Hibernate 가 있음 장단점 장점 객체 지향적인 코드로 인해 더 직관적이고, 비지니스 로직에 더 집중 가능 재사용성 및 유지보수의 편리성 증가 DBMS에 대한 종속성 감소 (DBMS - Datebase Management System - 데이터를 한 곳에 ..

spring - 14일차

영속성 컨텍스트 영속성 컨텍스트는 JPA에서 Entity를 관리하기 위한 중요한 메커니즘이다 (JPA는 객체와 관계형 데이터베이스 간의 매핑을 제공하는 ORM 기술의 표준) JPA에서는 Entity 객체를 DB에서 조회할 때마다 새로운 객체를 생성하지 않고, 영속성 컨텍스트에서 먼저 조회 => DB 조회가 필요 없어져 어플리케이션의 성능을 향상시킴 객체의 변경사항을 추적하고, 트랜잭션을 커밋할 때 해당 변경사항을 DB에 반영 => 어플리케이션에서 DB 변경 작업을 쉽게 처리 Entitiy 객체를 여러개 보유하며, 트랜잭션 단위로 관리 => 트랜잭션 롤백 시 영속성 컨텍스트가 관리하는 모든 엔티티 객체의 변경사항도 취소 Entity 객체의 동일성(Identity)를 보장 => 같은 ID 값을 가진 엔티티 ..

spring - 13일차

builder 패턴 - 복잡한 Object들을 단계별로 구축할 수 있는 생성 디자인 패턴 - 동일한 구성코드를 사용하여 다양한 타입과 표현을 제공 - 생성자를 가독성 좋게 만들어주는 패턴이라고 할 수 있음 - 객체를 생성할 수 있는 builder() 함수를 통해 얻고 거기에 셋팅하고자 하는 값을 셋팅하고 마지막에 build()를 통해 빌더를 작동시켜 객체를 생성 @Builder Bag bag = Bag.builder() .name("name") .money(10000) .memo("memo") .build(); 장점 - 필요한 데이터만 설정 가능 - 유연성 확보 (설정 값의 순서가 어떠하든 상관 없다) - 가독성을 높임 - 불변성 확보 옵션 builderMethodName - @Builder 어노테이션을..

spring - 10일차

@RequestBody vs @ModelAttribute 공통점 - 클라이언트 츨에서 보낸 데이터를 Java 코드에서 사용할 수 있는 오브젝트로 만들어준다. 차이점 RequestBody 클라이언트가 보내는HTTP 요청 본문(JSON, XML등)을 Java 객체로 변환 HTTP 요청 본문 데이터는 Spring 에서 제공하는 HttpMessageConverter를 통해 타입에 맞는 객체로 변환 객체를 JSON 문자열로 변환한 뒤, 요청에 응답 ModelAttribute contentType을 x-www-form-url-encoded로 요청 본문 내용을 Form형식으로 응답 Controller Annotation @Controller Controller 클래스에 작성 (이 어노테이션이 적용된 클래스는 Cont..

728x90