분류 전체보기138 [Day-8] 상품 엔티티, 리파지토리, 서비스 구현 기능 - 상품 등록- 상품 목록 조회- 상품 수정#파일구조 #상품 엔티티 개발(비즈니스 로직 추가)domain -> Item//비즈니스 로직/*재고 증가 */public void addStock(int quantity){ this.stockQuantity+=quantity;}/*재고 감소 */public void removeStock(int quantity){ int restStock = this.stockQuantity -quantity; if(restStock NotEnoughStockExceptionpublic class NotEnoughStockException extends RuntimeException { .. WEB JAVA SPRING/PROJECT 2023. 8. 25. [Day-7] 회원 도메인, 리포지토리, 서비스, 회원 기능 테스트 #파일구조 (@Repository ==DAO)#회원 리포지토리 개발MemberRepository@Repository //Component scan해서 spring bean 자동등록public class MemberRepository { @PersistenceContext //spring이 jpa가 Entity Manager를 만들어서 EntityManager를 여기에 주입 private EntityManager em; //jpa가 member를 저장하는 로직 //EntitlyManager가 persist하면 영속성 컨택스트에 Member Entity를 넣고 트랜잭션이 커밋되는 시점에 DB에 insert쿼리 날라가서 저장 .. WEB JAVA SPRING/PROJECT 2023. 8. 25. [Day-6] 엔티티 설계 (연관관계) #★모든 연관관계는 지연로딩으로 설정★즉시로딩( EAGER )은 예측이 어렵고, 어떤 SQL이 실행될지 추적하기 어렵다. ex) member를 조회할때 연관된 order엔티티까지 한꺼번에 다 조회된다.최악의 경우에 하나를 조회할때 연관된 모든 것를 DB에서 가져와버림...뭐 하나 잘못 건들면 연관된 데이터 다 끌고와서 난리남절대로 쓰지말것 특히 JPQL을 실행할 때 N+1 문제가 자주 발생한다. ->n번 호출된다..실무에서 모든 연관관계는 지연로딩( LAZY )으로 설정해야 한다.ex) order 조회할때 order만 가져오게 된다.연관된 엔티티를 함께 DB에서 조회해야 하면, fetch join 또는 엔티티 그래프 기능을 사용한다.> 실시간으로 원하는것만 가져오는 것 ★제발 주.. WEB JAVA SPRING/PROJECT 2023. 8. 25. 2.간단한 프로토콜 HTTP 2.1,2 HTTP는 클라이언트와 서버 간 통신을 한다.HTTP 프로토콜에서는 반드시 한쪽이 클라이언트(request) 다른 한 쪽은 서버(response)역할을 담당클라이언트측에서 먼저 통신이 시작 -> request가 있어야 response가 있음 GET : 서버에 요구하는 종류 == 메소드/index.html : request URI(요구대상) == 리소스HTTP/1.1 : 클라이언트 기능 식별 == HTTP 버전 번호- 다른예시POST(메소드) /form/entry(URI) HTTP/1.1(프로토콜 버전)Host: hackr.jp (리퀘스트 헤더 필드)Connection: keep-alive (리퀘스트 헤더 필드)Content-Type: application/x-www-form-urlencoded.. INFRA/NETWORK 2023. 8. 25. [Day-5] 엔티티 클래스 개발2 #파일구조 Category //카테고리 엔티티 @Entity @Getter @Setter public class Category { //pk @Id @GeneratedValue @Column(name="category_id") private Long id; private String name; @ManyToMany // Category엔티티도 List로 items을 가지고, item엔티티도 List로 Category를 가진다. //일대다 다대일로 풀어내는 중간테이블이 존재하기 때문에 테이블로 매핑해줘야한다 @JoinTable(name = "category_item", //중간테이블 이름 정하기 //매핑 joinColumns = @JoinColumn(name = "category_id"),//중간테이블과 .. WEB JAVA SPRING/PROJECT 2023. 8. 25. [Day-4] 도메인 모델과 테이블 설계, 엔티티 클래스 개발 1 [도메인 분석 설계] #참고 *(다) - 무조건 여기에 외래키 존재 , 외래키를 연관관계 주인으로 잡아야함 ex) 자동차 - 바퀴(외래키) 그래야 유지보수 쉽다. - 주인쪽에 값을 세팅해야 값 바뀜 - 1쪽은 그냥 읽는데만 쓰임 엔티티(Entity) - 객체 , 추상적 - DB에서 한 건의 자료를 구성하는 레코드로 속성을 가진다. ex) 과목 : 국,영,수 - DB나 SQL상에 존재하지 않는다. 테이블과 달리 그냥 일종의 개념이다. - 엔티티 사이의 관계: 릴레이션(relationship) - 이것을 도표로 나타낸 것 : ERD(Entity Relationship Diagram) - 도메인 > 엔티티 > 속성 테이블 - 테이블은 데이터베이스나 SQL에 실제로 존재하며 물리적인 구조를 지니고 있다. 엔티티.. WEB JAVA SPRING/PROJECT 2023. 8. 25. [Day-3] JPA와 DB설정, 동작확인 #파일구조 application.yml spring: #띄어쓰기 제대로..... datasource: #2칸 url: jdbc:h2:tcp://localhost/~/jpashop #4칸 , DB접속 url username: sa password: driver-class-name: org.h2.Driver jpa: #2칸 hibernate: #4칸 ddl-auto: create #6칸 properties: #4칸 hibernate: #6칸 # show_sql: true #8칸 format_sql: true #8칸 logging.level: #없음 org.hibernate.SQL: debug #2칸 org.hibernate.type: trace #2 MemberRepository @Repository //=.. WEB JAVA SPRING/PROJECT 2023. 8. 25. [Day-2] 라이브러리, H2 DB #라이브러리 살펴보기 의존관계를 볼 수 있다. spring-boot-starter-thymeleaf 타임리프 템플릿 엔진(View) spring-boot-starter-web tomcat: 톰캣 (웹서버) spring-webmvc: 스프링 웹 MVC spring-boot-starter-data-jpa spring-boot-starter-aop spring-boot-starter-jdbc :HikariCP 커넥션 풀 (부트 2.0 기본) , DB 커넥션 가져다 쓴다 hibernate + JPA : 하이버네이트 + JPA spring-data-jpa: 스프링 데이터 JPA spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅 spring-boot-starter-test junit.. WEB JAVA SPRING/PROJECT 2023. 8. 25. [Day-1] 초기 설정 개발환경개발 툴 : 인텔리제이사용 기능 : web, thymeleaf, jpa, h2, lombok, validation groupId: jpabook artifactId: jpashop (스프링 부트 스타터(https://start.spring.io/))언어 : java ver11 https://velog.io/@codemcd/Spring-boot%EC%97%90%EC%84%9C-OpenJDK-11-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0 참고자료! IntelliJ에서 OpenJDK 11 설정하기OpenJDK 11 설치 및 인텔리제이에서 정상적으로 사용하도록 설정velog.io 1.설정 2.build.gradle 수정 plugins { id.. WEB JAVA SPRING/PROJECT 2023. 8. 25. 상속/생성자/인터페이스 상속1.자식 클래스가 부모 클래스의 기능을 그대로 물려받음2.보통 부모 클래스를 상속받은 자식 클래스는 부모 클래스의 기능에 더하여 좀 더 많은 기능을 갖도록 작성할 수 있다.3.부모 클래스로 만들어진 객체를 자식 클래스의 자료형으로는 사용할 수 없다 (IS-A관계)class Animal { String name; void setName(String name) { this.name = name; }}class Dog extends Animal { // Animal 클래스를 상속한다. void sleep() { System.out.println(this.name+" zzz"); }}public class Sample { public static v.. WEB JAVA SPRING/문법 2023. 8. 25. 객체/클래스/인스턴스 객체지향프로그래밍(OOP, Object-Oriented Programming) 프로그램을 객체 단위로 구성하는 방법이다. 모든 데이터를 객체(object)로 취급하며, 이러한 객체가 바로 프로그래밍의 중심 객체(object)란 소프트웨어 세계에 구현할 대상 다양한 기능을 하는 객체들을 조합해서 자기가 원하는 기능을 구현하는 방법이다. 객체(object) : 필드와 메소드로 구성이 된다. 객체안의 멤버변수들을 필드라고 하며 필드에 객체의 상태를 저장한다. 객체안의 멤버함수들을 메소드라고 하며, 특정한 작업을 수행한다. *참고 : https://wikidocs.net/156068 객체지향프로그래밍 클래스(class) 객체를 정의하는 틀 또는 설계도와 같은 의미 이러한 설계도인 클래스를 가지고, 여러 객체를 .. WEB JAVA SPRING/문법 2023. 8. 25. json데이터를 활용한 기초적인 홈페이지 https://data.seoul.go.kr/dataList/OA-1176/S/1/datasetView.do 열린데이터광장 메인데이터분류,데이터검색,데이터활용data.seoul.go.kr 열린데이터광장의 json데이터를 활용하였다.필드를 체크하고 검색하고 싶은 단어를 치면 결과값이 나온다!>>>>>>>데이터 URL: https://data.seoul.go.kr/dataList/OA-1176/S/1/datasetView.do 검색 단어: 필드: guname m_addr m_name lng m_code .. WEB JAVA SPRING/JS 2023. 8. 24. 이전 1 ··· 7 8 9 10 11 12 다음