취준 note 2023/spring

    스프링 핵심내용정리

    스프링은 설정이 너무 빡세다.. crud는 서블릿이나 스프링이랑 별다르지 않지만.. 프레임워크는 잘익혀두는것이 중요하다 Model 객체란 Model 객체는 Controller 에서 생성된 데이터를 담아 View 로 전달할 때 사용하는 객체. Model 객체는 스프링이 제공하는 모델을 사용하는 것이므로 따로 반환을 해주지 않아도 된다. 생명주기: ModelAndViewContainer가 생성될 때 함께 만들어진다. Model은 Map이라고 보면 된다. 이미 만들어져있는 model을 가져와서 컨트롤러의 파라미터에 전달해주기 때문에 런타임에서는 model 객체를 사용하게 됩니다. Model 객체 : 속성 값을 담아두는 객체ModelAndView 객체 : 속성 값 뿐만 아니라 View 이름도 담아둘 수 있는 객..

    스프링 트랜젝션+pagenation

    package org.doit.ik; import java.text.DateFormat; import java.util.Date; import java.util.Locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import lombok.extern.log4j.Log4..

    스프링AOP

    package org.doit.ik; import java.text.DateFormat; import java.util.Date; import java.util.Locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** * Handles requests for the ..

    스프링 di

    package org.doit.ik; import java.text.DateFormat; import java.util.Date; import java.util.Locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** * Handles requests for the ..

    스프링 시큐리티

    package org.doit.ik.controller; import java.io.File; import java.io.FileInputStream; import java.util.List; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.doit.ik.domain.MemberVO; import org.doit.ik.domain.NoticeVO; import org.doit.ik.mapper.MemberMapper; import org.doit.ik.mapper.NoticeMapper; imp..

    spring master - chap2 스프링빈 의존성 주입(IOC)

    spring master은 스프링의 전반적인 사용에대해서 소개하는 책인데, 이해가되지 않은 부분이 많아서 블로그 여러글을 참조하면서 chap2내용을 정리 해보았다 JAVA- 클래스는 다른 클래스에 의존적, 클래스가 의존성의 인스턴스를 직접 생성하면 클래스 가내에 긴밀한 결합이 이뤄짐 스프링 - 객체 생성 및 연결 책임이 IOC컨테이너라는 새로운 구성 요소로 인계 클래스는 의존성을 정의, IOC 컨테이너는 객체를 만들고 의존성을 연결, 의존성 생성 및 와이어링 제어가 컨테이너에 의해 수행되는 혁신적인 개념은 ioc또는 의존성 주입으로 유명하다 쉬운 유지 관리성, 결합력 감소 및 테스트 가능성 개선, 스프링의 의존성 주입 옵션 - 자바 콘텍스트와 CDI에 대한 표준 의존성 주입 스펙과 스프링이 이를 어떻게 ..

    코드없이 보는 스프링 부트 -페이징 정렬 처리하기

    스프링과 Hibernate try〜 catch와 같은 많은 양의 코드를 직접 작성 Spring Data JPA 내부적으 로 클래스를 생성하는 방식으로 동작하면서 코드가 없는 형식의 개발이 가능 페이징 처리와 정렬은 전통적으로 SQL을 공부하는데 반드시 필요 오라클은 '인 라인 뷰(inline view)',mySQL은 limit JPA는 내부적으로 이런 처리를 'Dialect과는 존재를 이용해서 처리 JDBC 정보가 예제와 같이 MariaDB의 경우에는 자동으로 MariaDB를 위한 Dialect가 설정 application.properties 등을 이용해서 설정 JPA가 이처럼 실제 데이터베이스에서 나용하는 SQL의 처리를 자동화 SQL이 아닌 API의 객체와 메 니드를 사용하는 형태로 페이징 처리 sp..

    컨트롤러와 RESTAPI

    계층형 아키텍처의 이해-SW도 실제 코드 개발 전에 최종 SW가 되어야 할 모습을 설계 함 ■ SW 아키텍처란, SW의 구조를 정의한 것으로 SW를 구성하는 주요 요소들과 요소들의 관계를 정의한 것■ SW를 서로 다른 역할을 하는 3 〜 4개 계층으로 구분一 Presentation LayerApplication Layer 一 Business LayerData Access Layer■Client(웹 브라우저, 모바일 앱)의 요청을 받고 ■Application Layer에 요청에 대한 처리를 위임하며 ■Client에 최종 응답을 하는 역할view: Client가 요청에 대한 응답의 결과로 보게 되는 웹 페이지 - data: Client가 요청에 대한 응답으로 받는 데이터Controller 코드■ Spring..

    SOLID 단일 책임 원칙

    ## SOLID SRP:단일 책임 원칙 OCP:개방-폐쇄 원칙 LSP:리스코프 치환 원칙 ISP:인터페이스 분리 원칙 DIP:의존관계 역전 원칙 ## SRP:단일 책임원칙 한 클래스는 하나의 책임만 가져야 한다 하나으ㅢ 책임이라는 것은 모호하다 -클 수 있고, 작을 수 있다. -문맥과 상황에 따라 다르다 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 ### OCP 개방 - 폐쇄 원칙 확자에는 열려으나 변경에는 닫혀있어야한다 다형성을 활용해보자 인터페이스를 구현한 새로운 클래스를 하나 만들어 새로운 기능 구현 구현 객체를 변경하려면 클라이언트 코드를 변경 다형성을 사용했지만 OCP원칙을 지킬 수 없다. 객체 생성, 별도의 조립, 설정자 필요 ## LSP 리스코프..

    JpaRepository 2

    MemoReposiory package org.zerock.ex2.repository; import org.springframework.data.jpa.repository.DpaRepository; import org.zerock.ex2.entity.Memo; public interface MemoRepository extends JpaRepository { } JpaRepository를 사용할 때는 엔티티의 타입 정보(Memo 클래스 타입)와 @Id의 타입을 지정하게 됩니다. 이처럼 Spring Data jPA는 인터페이스 선언만으로도 자동으로 스프링(bean)으로 등록됩니다 테스트코드를통한 CRUD 연습 • insert 작업: save(엔티티 객체) • select 작업 : findByld(키 타입)..

    엔티티 클래스 작성,JpaRepository 기본

    2.4.1 엔티티 클래스 작성 예제 프로젝트에 entity 패키지를 추가, @Entity 해당 클래스가 엔티티를 위한 클래스이 며,해당 클래스의 인스턴스들 이 JPA로 관리되는 엔티티 객체라는 것을 의미합니다. @Table @Entity 어노테이션과 같이 사용할 수 있는 어노테이션 @Table(name="t_memo")와 같이 지정하는 경우에는 생성되는 테 이블의 이름이 t.memo' 테이블로 생성 @ld 와 @GeneratedValue @Entity가 붙은 클래스는 Primary Key(이하 PK)에 해당하는 특정 필드를 @Id로 지정해야만 합니다. @ld가 사용자가 입력하는 값을 사용하는 경우가 아니면 자동으로 생성되는 번호를 사용하기 위해서 @GeneratedValue라는 어노테이션을 활용 @Gen..

    Spring Data JPA 개념

    2.3 Spring Data JPA의 소개 'Spring Data JPA'라는 것에 대해서 알아보고, 이를 활용하는 방법에 대한 학습 입니다. JPA(java Persistence API)는 Java 언어를 통해서 데이터베이스와 같은 영속 계 층을 처리하고자 하는 스펙입니다. JPA를 이해하기 위해서는 우선은 ORM(Object- Relational Mapping)이라는 기술에 대해서 먼저 설명해야만 합니다. ORM 과 JPA ORM(Object Relational Mapping)은 단어에서 보듯이 객체지향과 관련이 있습니다 ORM은 간단히 말하자면 '객체지향 패러다임을 관계형 데이터베이스에 보존아는 기술'이라고 할 수 있습니다. 패러다임 입장에서 생각하자면 '객체지향 패러다임을 관계형 패러다임으로 매핑..