WEB

    [Spring] 스프링 공부 #15

    도메인 모델 패턴 비즈니스 로직의 대부분이 엔티티에 있고, 서비스 계층은 단순히 엔티티에 필요한 요청을 위임하는 역할을 수행하는 패턴 주문 엔티티 //Order.java //==생성 메서드==// public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems) { Order order = new Order(); order.setMember(member); order.setDelivery(delivery); for (OrderItem orderItem : orderItems) { order.addOrderItem(orderItem); } order.setStatus(OrderStatus.ORDER); orde..

    [Spring] 스프링 공부 #14

    JPA 활용 예제 요구사항 회원 가입이 가능하고, 이미 가입되어 있는 회원을 조회할 수 있어야 한다. 상품을 등록, 수정, 조회할 수 있어야 한다. 상품의 종류에는 도서, 음반, 영화가 있다. 상품은 카테고리로 구분할 수 있다. 상품을 주문할 수 있다. 주문할 때 배송 정보를 입력할 수 있다. 주문 내역을 조회하고, 취소할 수 있어야 한다. 예제 클래스 다이어그램 외래 키가 있는 곳을 연관관계의 주인으로 정해야 한다. 회원(Member)과 주문(Order): 다대일 양방향 관계를 가지고 있다. 외래키를 가진 Order가 주인이 되어야 하기 때문에 Order.member를 ORDERS.MEMBER_ID 외래 키와 매핑한다. 주문상품(OrderItem)과 주문(Order): 다대일 양방향 관계를 가지고 있다..

    [네트워크] HTTP 공부 #3

    HTTP란? HTTP는 HyperTextTransferProtocol의 약자이며, 인터넷에서 데이터를 주고 받을 수 있는 프로토콜이다. HTTP의 특징 클라이언트 서버 구조 무상태 프로토콜, 비연결성 HTTP 메시지 단순함, 확장 가능 HTTP의 클라이언트-서버 구조 클라이언트가 HTTP 요청을 서버에 전송하면, 서버는 HTTP응답을 클라이언트에 전달한다 무상태(Stateless) 프로토콜 무상태 : 서버가 클라이언트의 상태를 보존하지 않는다. ex) 한 번 로그인 뒤, 다른 페이지에 접속하거나 새로고침을 할 경우 로그인 상태를 보존하지 않기 때문에, 계속 로그인해야한다. 고객이 요청할 경우 정보를 제공해준다면, 중간에 점원이 바뀌더라도 문제가 없다. 무상태는 응답서버를 쉽게 바꿀 수 있다 => 무한한 ..

    [네트워크] HTTP 공부 #2

    URI / URL / URN URI - Uniform Resource Identifier : 정보나 어떠한 자원을 하나의 뜻으로 식별하기 위한 데이터 서식을 정의한 규약 인터넷에서 이름 또는 자원을 식별하는데 사용된다 URL - Uniform Resource Locator : 네트워크 상에서 자원(웹 페이지, 파일, 이미지 동영상, 등등)이 어디 있는지 알려주기 위한 규약 웹 페이지를 찾기 위한 주소 URN - Uniform Resource Name : 리소스에 이름을 부여한다. 리소스를 영구적이고 유일하게 식별할 수 있다. Protocol - 프로토콜 : 어떤 방식으로 자원에 접근할 것인가 하는 규약 ex)http, https Path - 리소스 경로 : 리소스가 위치한 경로를 계층적 구조로 표현 Pa..

    [네트워크] HTTP 공부 #1

    IP (Internet Protocol) 인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소를 의미한다. IP 주소는 IPv4, IPv6 두 종류가 있으며, 일반적인 IP주소는 IPv4를 의미한다. IPv4 전 세계에서 사용된 첫 번째 인터넷 프로토콜 32비틑 방식으로, 8비트씩 4자지로 구성되어 있다. ( . 으로 구분) 인터넷 사용자가 증가하면서 더 많은 IP주소를 제공하기 위해서 IPv6가 등장했다. IPv6 128비트의 크기로 확장한 차세대 인터넷 프로토콜 16비트씩 8자리로 구성되어있다. ( : 으로 구분) IP는 고정, 유동, 공인, 사설 IP 총 4가지로 나눌 수 있다. 고정 IP 변하지 않는 컴퓨터에 고정적으로 부여된 IP주소 보안성이 우수하다 유동 ..

    [Spring] 스프링 공부 #13

    의존관계 자동 주입 생성자 주입 생성자를 통해서 의존 관계를 주입 받는 방법 불변, 필수 의존관계에 사용한다 생성자가 하나만 있을 경우, @Autowired 어노테이션 생략이 가능하다 수정자 주입 setter 주입, 수정자 메서드를 통해서 의존관계를 주입하는 방법 선택, 변경 가능성이 있는 의존관계에 사용 필드 주입 필드에 바로 주입하는 방법 코드가 간결하다 하지만, 외부에서 변경이 불가능해 테스트 하기 어렵다 일반 메서드 주입 일반 메서드를 통해서 의존관계를 주입하는 방법 한번에 여러 필드를 주입 받을 수 있다 자동 주입 대상 옵션 처리 @Autowired (required = false) : 자동 주입할 대상이 없을 경우 수정자 메서드가 호출되지 않는다. @Nullable : 자동 주입할 대상이 없을..

    [Spring] 스프링 공부 #12

    컴포넌트 스캔과 자동 의존관계 주입 @Component 어노테이션이 붙은 모든 클래스를 스프링 빈으로 등록한다. 기본적으로 클래스의 앞글자만 소문자화해서 빈 이름으로 등록한다. 생성자에 @Autowired 어노테이션을 지정하면 자동으로 스프링 빈을 찾아서 주입한다. @ComponentScan 옵션 basePackages: 탐색할 패키지의 시작 위치를 지정하는 옵션. includeFilters: 컴포넌트 스캔 대상을 추가로 지정 excludeFilters: 컴포넌트 스캔에서 제외할 대상을 지정 @ComponentScan( basePackages = "hello.core", includeFilters = { @Filter(type = FilterType.ANNOTATION, classes = MyInclud..