정의- 객체 지향 프로그래밍에서 사용되는 개념- 객체를 데이터 스트림으로 변환하거나 데이터 스트림에서 객체로 변환하는 과정- 이러한 과정은 객체의 상태를 저장하고 나중에 다시 복원하는 데 사용. - 주로 객체를 파일에 저장하거나 네트워크를 통해 전송하는 상황에서 유용하게 활용 +데이터 스트림(Data Stream)은 데이터를 연속적인 일련의 바이트로 표현하는 것직렬화 (Serialization)- 직렬화는 메모리에 존재하는 객체를 디스크에 저장하거나 네트워크 통신을 위해 형식에 맞는 데이터로 변환하는 과정- 객체를 메모리 상태에서 바이트 스트림 또는 문자열로 변환하여 외부 저장소에 저장하거나 전송- 주로 객체의 필드 값과 클래스 정보가 직렬화- 예를 들어, 자바에서는 `Serializable` 인터페이스..
주로 웹 애플리케이션에서 HTTP 요청을 처리하는 서블릿 또는 컨트롤러에서 자동으로 생성되고 제공되는 객체입니다. 이 객체는 클라이언트에서 서버로 HTTP 요청을 보낼 때 서버 측에서 자동으로 생성되며, 해당 요청을 처리하는 메서드에 매개변수로 전달됩니다. 웹 애플리케이션에서 HTTP 요청과 관련된 정보를 제공하는 Java Servlet API의 일부입니다. 이 객체를 사용하면 클라이언트에서 서버로 보낸 HTTP 요청에 관한 다양한 정보에 액세스할 수 있습니다. 주로 다음과 같은 정보와 데이터가 넘어옵니다. HTTP 메서드: 요청이 사용한 HTTP 메서드 (GET, POST, PUT, DELETE 등)를 확인할 수 있습니다. 요청 URL: 클라이언트가 요청한 URL을 확인할 수 있습니다. 요청 헤더: H..
JSON 배열 데이터를 파싱// 클라이언트에서 전송된 JSON 배열 데이터를 파싱 JSONArray array = JSONArray.fromObject(param.get("paramMaplist"));클라이언트에서 전송된 JSON 배열 데이터를 서버에서 사용할 수 있는 형태로 변환 작동 순서param 객체에서 "paramMaplist" 키로 전달된 데이터를 가져온다,(이 데이터는 JSON 배열 형태로 클라이언트에서 전송되었다고 가정)JSONArray.fromObject(...) 메서드를 사용하여 JSON 배열 데이터를 자바의 JSONArray 객체로 파싱.이렇게 파싱된 배열은 이후에 자바 코드에서 사용할 수 있게 됨 클라이언트에서 다음과 같은 JSON 배열을 전송했다고 가정하면"paramMaplis..
📌type이 object인 이유?? jsp의 success: function(data) 여기로 넘어감 console.log(data) 결과 🚩ajax에서 dataType: "JSON"을 설정했을 때, 서버에서 응답한 데이터가 JSON 형식으로 전달되면, JavaScript에서는 이 데이터를 받아서 자동으로 JavaScript 객체로 변환함 예를 들어, 서버에서 다음과 같은 JSON 형식의 데이터를 보냈다고 가정 { "name": "John", "age": 30 } 이 데이터는 JavaScript 객체처럼 다루어짐 즉, 다음과 같이 사용 console.log(data.name); // "John" console.log(data.age); // 30 typeof data가 "object"로 표시되는 이유는 ..
제이쿼리와 AjaxAjax를 이용하여 개발을 손쉽게 할 수 있도록 미리 여러 가지 기능을 포함해 놓은 개발 환경을Ajax 프레임워크라고 합니다.그중에서도 현재 가장 널리 사용되고 있는 Ajax 프레임워크는 바로 제이쿼리(jQuery)입니다.$.ajax({ url: "/examples/media/request_ajax.php", // 클라이언트가 요청을 보낼 서버의 URL 주소 data: { name: "홍길동" }, // HTTP 요청과 함께 서버로 보낼 데이터 type: "GET", // HTTP 요청 방식(GET, POST) dataType: "json" // 서버에서 보내줄..
Ajax를 이용한다면웹 페이지 전체를 다시 로딩하지 않고 일부분만을 갱신할 수 있다. 즉 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있다.\ 댓글 등록시 바로 등록되고 삭제시 바로 삭제된다. (새로고침되지않음)세션 등록을 했기 때문에 댓글 작성자만 삭제 가능하다. Asynchronous JavaScript and XML 으로 동적인 웹 페이지를 만들기 위한 개발 기법이며이때 서버와는 다음과 같은 다양한 형태의 데이터를 주고받을 수 있다. - JSON - XML - HTML - 텍스트 파일 등 동작원리① : 사용자에 의한 요청 이벤트가 발생합니다.② : 요청 이벤트가 발생하면 이벤트 핸들러에 의해 자바스크립트가 호출됩니다.③ : 자바스크립트는 XMLHttpRe..
1.CartItemDto/** * 상품 상세 페이지에서 장바구니에 담을 상품 아이디와 수량 전달받음 */package com.shop.dto;import lombok.Getter;import lombok.Setter;import javax.validation.constraints.Min;import javax.validation.constraints.NotNull;@Getter @Setterpublic class CartItemDto { @NotNull(message = "상품 아이디는 필수 입력 값 입니다.") private Long itemId; @Min(value = 1 ,message = "최소 1개 이상 담아주세요") private int count;} 2.Cart/* ..
1.상태 취소로 만들것2.상품 재고 감소 시켰던 만큼 더하기 1.Item//상품 재고 증가 (주문취소시)public void addStock(int stockNumber){ this.stockNumber += stockNumber;} 2.OrderItem//주문 취소public void cancel(){ this.getItem().addStock(count);} 3.Order//주문 취소 = 상품 재고 더하기 + 주문상태 취소로 바꾸기public void cancelOrder() { this.orderStatus = OrderStatus.CANCEL; for (OrderItem orderItem : orderItems) { ..
1.OrderItemDto/** * 조회한 주문 데이터 화면에 보낼때 사용 * 주문 상품 정보 담음 */package com.shop.dto;import com.shop.entity.OrderItem;import lombok.Getter;import lombok.Setter;@Getter @Setterpublic class OrderItemDto { public OrderItemDto(OrderItem orderItem, String imgUrl){ this.itemNm = orderItem.getItem().getItemNm(); this.count = orderItem.getCount(); this.orderPrice = ord..
고객이 상품 주문하는 기능 구현 1.OutOfStiockException/** * - 고객이 상품을 주문하면 현재 상품의 재고에서 주문수량만큼 재고를 감소시켜야한다. * - 주문수량 > 재고수량 == 주문x 이럴때 발생시킬 exception 정의 */package com.shop.exception;public class OutOfStiockException extends RuntimeException { public OutOfStiockException(String message){ super(message); }} 2.Item//상품 재고 감소 로직//엔티티 안에 비즈니스 로직 작성하는 이유 : 코드의 재사용, 데이터의 변경 포인트 한군..
1.MainItemDto/*** 메인 페이지에서 상품을 보여줄때 사용*/package com.shop.dto;import com.querydsl.core.annotations.QueryProjection;import lombok.Getter;import lombok.Setter;@Getter @Setterpublic class MainItemDto { private Long id; private String itemNm; private String itemDetail; private String imgUrl; private Integer price; @QueryProjection //Querydsl 결과 조회시 MainItemDto ..
등록된 상품 리스트를 조회할 수 있는 화면 만들기상품을 조회하는 조건 설정,페이징기능,선택한 상품 상세 페이지로 이동 조회조건1.상품 등록일2.상품 판매 상태3.상품명 or 상품 등록자 아이디조회조건이 복잡한 화면은 Querydsl을 이용해 조건에 맞는 쿼리를 동적으로 쉽게 생성하자. 1.사용자 정의 인터페이스 작성 2.사용자 정의 인터페이스 구현 3.Spring Data Jpa 리포지토리에서 사용자 정의 인터페이스 상속 1.ItemSearchDto/** * 상품 조회 조건을 가지고 있다. */@Getter @Setterpublic class ItemSearchDto { private String searchDateType; //현재 시간과 상품 ..