학습목표 객체지향의 의미 장점 객체지향 - 다형성 역할과 구현을 분리 예시 1 - 자동차 자동차 역할이 있다. 구현 - 아반떼, K3, 테슬라 모델 3 운전면허를 가진 사용자는 아반떼를 타다가 k3를 타도 새로 공부를 할 필요가 없다. 운전을 하던 대로 하면 된다. 자동차의 종류가 어떤 것 인지는 중요하지 않다. 예시 2 - 공연(로미오와 줄리엣) 로미오 역할과 줄리엣 역할이 있다. 구현 - 로미오, 줄리엣을 공연하는 사람 로미오와 줄리엣 역할을 연기할 수 있는 사람이라면 누가 그 역할을 하던지 중요하지 않다. 다른 예시 키보드, 마우스, 세상의 표준 인터페이스들 정렬 알고리즘(어떤 알고리즘을 사용하던 중요 X) - 기능만 똑같다면 더 나은 성능의 알고리즘으로 교체해도 무관하다. 할인 정책 로직 정리 역..
Thymeleaf화면을 동적으로 만들 수 있는 템플릿 엔진 미리 정의된 템플릿(Template)을 만들고 동적으로 HTML 페이지를 만들어서 클라이언트에 전달하는 방식요청이 올 때마다 서버에서 새로운 HTML을 만들어 주기 때문에 SSL 서버 사이드 렌더링이라 한다. 1. 특징'natural templates' 확장자명 .htmlThymeleaf문법은 html 태그 안쪽 속성으로 사용된다. 2. thymeleaf_basicItemDto 연습용 Controller 생성 hello.example.controller.ThymeleafExController hello.example.dto.ItemDto 클래스 생성데이터를 주고받을 때는 Entity 클래스 자체를 반환X 데이터 전달용 객체(Data Trans..
Querydsl SQL, JPQL을 코드로 작성할 수 있도록 도와주는 빌더 API JPA Criteria에 비해서 편리하고 실용적이다 1. Querydsl 장점 고정된 SQL문이 아닌 동적으로 쿼리를 생성할 수 있다. 쿼리 재사용 제약 조건 조립 및 가독성 향상 문자열X 자바 소스코드로 작성 -> 컴파일 시점에서 오류 발견 가능 IDE의 도움으로 자동완성이 가능 -> 생산성 향상 2 build.gradle 설정 사용하기에 앞서 몇 가지 설정이 필요하다. // 1. queryDsl version 정보 추가 buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'org.springframework.boot' version '2.7.4' id 'io...
1. 상품 판매상태를 enum 클래스로 정의 enum 클래스에 대한 설명 hello.example.constant.ItemSellStatus.java 생성 상품의 현재 판매상태(판매, 품절)를 나타 내는 상수(SELL, SOLD_OUT) 2. 상품 클래스 생성 hello.example.domain.Item.java 생성 상품의 현재 판매상태는 enum타입의 ItemSellStatus변수를 갖는다. 상품 조회를 위한 @Getter선언과 Item클래스를 문자열로 출력해주는 @ToString선언 정적 팩토리 메서드를 사용할 예정이기 때문에 @Setter는 사용하지 않았다. 3. 상품 클래스 생성(+어노테이션) hello.example.domain.Item.java 생성 Table Schema을 위한 어노테이션..
학습 목표 정수를 표현하기 위한 자료형 정수형의 크기에 따른 비교 byte, short, int, long byte byte : 1바이트 단위의 자료형으로 동영상, 음악파일, 실행 파일의 자료를 처리할 때 사용한다. 8비트의 공간이 할당된다. 256개의 숫자 표현이 가능하고 256을 2로 나누어 0그리고 음수와 양수를 표현한다. 0과 127개의 양수와 -128개의 음수 표현이 가능하다. 표현범위는 -128 ~ 127이다. short short : 2바이트 단위의 자료형으로 C/C++ 언어와 호환 시 사용한다. 16비트의 공간이 할당된다. 65,536개의 숫자 표현이 가능하고 65,536을 2로 나누어 0 그리고 음수와 양수를 표현한다. 0과 32,767개의 양수와 -32,768개의 음수 표현이 가능하다...