| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- mvc
- DP
- 우선순위큐
- 합 구하기
- C#강의
- 브루투포스
- 1일1솔
- pypy3
- 누적합
- 백준
- python3
- popleft
- 완전탐색
- BFS
- JPA
- spring
- 파이썬
- 그리디 알고리즘
- LCM
- Python
- c#
- Java
- 프로그래머스
- appendleft
- 소수찾기
- unity
- deque
- 인프런
- 소수판별
- 연관관계
- Today
- Total
목록Java (15)
jae_coding
목차 객체와 테이블 매핑 DB 스키마 자동 생성 필드와 컬럼 매핑 기본 키 매핑 0. 앤티티 매핑 객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne, @JoinColumn 1. 객체와 테이블 매핑 @Entity - @Entity가 붙은 클래스는 JPA가 관리하는 엔티티이다. - JPA를 사용해서 테이블과의 매핑할 클래스는 @Entity 어노테이션을 꼭 붙여야한다. - 주의사항 1) 기본 생성자 필수 (parameter가 없는 public or protected 생성자) 2) final class, enum, interface, inner class 에는 사용할 수 없다. 3) 저장할 필드에는 final을 사용할 ..
목차 SQL 중심적인 개발의 문제점 JPA 소개 1. SQL 중심적인 개발의 문제점 배경: 21세기는 객체를 관계형 DB에 관리하기때문에 SQL을 중심적으로 개발하였다. 하지만 이는 반복되는 쿼리가 발생한다는 단점이 생긴다. 물론 요즘에는 JDBC 템플릿, 마이바티스 같은 메퍼들이 있기때문에 일이 줄었지만 아직 반복되는 점들이 많이 존재한다. 반복적인 예) CRUD 자바 객체를 SQL로 SQL을 자바객체로 반복해야한다. 관계형 DB를 사용하는 상황에서는 SQL에 의존적인 개발을 피하기는 어렵다. 또한, 객체와 관계형 데이터베이스의 패러다임의 불일치가 존재한다는 단점이 있다. '객체 지향 프로그래밍': 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공한다..
본 리뷰는 인프런 김영한님의 스프링 MVC 리뷰를 한 포스팅입니다. 목차 프로젝트 생성 스프링 부트 환경에서 서블릿 등록 및 사용 HttpServeletResquest Http 데이터 요청 및 조회 GET 쿼리 파라미터 POST HTML form 요청 데이터 API 메시지 바디 (TEXT, JSON) HttpServletResponse HTTP응답 데이터 1. 프로젝트 생성 스프링 부트 스타터 (https://start.spring.io) -. JSP를 실행하기 위해서 Packaging은 War을 이용합니다. -. Build.Gradle plugins { id 'org.springframework.boot' version '2.7.3' id 'io.spring.dependency-management' v..
본 리뷰는 인프런 김영한님의 스프링 MVC 리뷰를 한 포스팅입니다. 목차 웹 서버, 웹 애플리케이션 서버 서블릿 동시 요청 (멀티 쓰레드) HTML, HTTP API, CSR, SSR 1. 웹 서버, 웹 애플리케이션 서버 -. Web은 HTTP를 기반으로 접근, 클라이언트에서 데이터 전송 및 응답을 할 때, HTTP 라는 프로토콜로 동작을 한다. -. 현재 모든 것이 HTTP라는 메시지에 모든 것을 전송합니다. HTML, TEXT, IMAGE, 음성, 영상, 파일 JSON, XML (API) 서버 간 데이터를 전송 및 응답할 때, HTTP를 사용한다. -. Web서버: HTTP를 기반으로 동작하는 서버 정적 리소스(특정 폴더에 파일을 두면 서버가 파일들을 서빙해주는 것) 제공, 기타 기능 정적 파일: H..
본 리뷰는 인프런 김영한씨의 스프링 핵심원리 - 기본편 리뷰를 한 포스팅입니다. 목차 생성자 주입 수정자 주입 필드 주입 일반 메서드 주입 1. 생성자 주입 -. 생성자를 통해서 의존 관계 주입을 받는 방식이다. -. 특징 1. 생성자 호출 시점에 딱 1번만 보장된다. 2. 불변, 필수 의존관계에 사용된다. 3. 스프링에서는 생성자가 1개만 있다면 @Autowired를 자동으로 주입시켜준다. (스프링 빈에만 해당) @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; pub..
본 리뷰는 인프런 김영한씨의 스프링 핵심원리 - 기본편 리뷰를 한 포스팅입니다. 목차 새로운 할인 정책 개발 새로운 할인 정책 적용과 문제점 AppConfig 등장 (문제 해결) 새로운 구조와 할인 정책 적용 좋은 객체 지향 설계의 원칙 적용 정리 (SRP, DIP, OCP 적용) 1. 새로운 할인 정책 개발 일방적이었던 할인정책 (고정할인 정책)을 2가지의 정책을 구현클래스로 만들어 구현 클레스를 변경할 수 있도록 구현을 변경해주려고한다. -. 새로운 할인 정책 기존 포스팅의 할인 정책은 고정할인 정책을 시행하였지만, 이를 x%씩 할인 해주는 정책으로 변경하려고한다. 할인 정책은 동일하게 VIP회원에게만 적용이되고, BASIC회원에게는 적용을 해주지 않는다. -. 할인 정책 인터페이스 package h..
본 리뷰는 인프런 김영한씨의 스프링 핵심원리 - 기본편 리뷰를 한 포스팅입니다. 목차 객체 지향 프로그래밍 스프링과 객체 지향 좋은 객체지향 원칙 SOLID 1. 객체 지향 프로그래밍 (Object-oriented programming) 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지 를 주고받고, 데이터를 처리할 수 있다. (협력) 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프 트웨어 개발에 많이 사용된다. 추상화 (Abstract) -. 핵심적인 코드만 보여줌. -. 불필요한 부분을 숨김. -. 인터페이스와 구현을 분리함. 캡슐화 (C..
목차 홈 화면 레이아웃 구성 회원 등록 및 조회 상품 등록, 수정 및 목록 조회 상품 주문, 취소 및 목록 조회 결과 페이지 1. 홈 화면 레이아웃 구성 view 리소스 코드 https://getbootstrap.com/ Bootstrap The most popular HTML, CSS, and JS library in the world. getbootstrap.com 에 들어가셔서 본인의 버전에 맞도록 다운로드 후 resources에 등록하시면 됩니다. 그리고 css 파일을 추가해주시면 됩니다. jumbotron-narrow.css 파일 /* Space out content a bit */ body { padding-top: 20px; padding-bottom: 20px; } /* Everything..
목차 주문 엔티티, 주문상품 엔티티 주문 Repository 주문 Service 주문 기능 Test 주문 검색 기능 1. 주문 엔티티, 주문상품 엔티티 Order Entity package jpabook.jpashop.domain; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import javax.persistence.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Entity @Table(name = "orders") @Getter @Setter //생성메..
목차 Setter를 가급적 사용하지 말자 즉시로딩 vs 지연로딩 컬렉션 필드는 초기화를 시켜라 테이블명, 컬럼명 규칙 1. Setter를 가급적 사용하지 말자 실무에서는 Setter를 너무 많이 사용하게되면, 변경 포인트가 너무 많기 때문에 유지 보수가 어렵다. 엔티티 수정이 어떻게 되는지 파악하기가 어렵다. (나중에 변경해어야될때, 모든 엔티티를 보면서 유지보수를 해야하기 때문에 Setter을 줄어야한다)-> Getter는 열고 Setter는 닫아야한다. 2. 즉시로딩 vs 지연로딩 즉시로딩('EAGER') 위 상황에서 member를 조회할 때, 연관된 order를 한번에 조회한다. 그리고 order를 조회할때, 필요한 것을 모두 조회한다는 것이다. 이 경우에 어떤 attribute를 조회할 때, 연관..