Spring [Spring] Servlet(서블릿)이란? Servlet, Servlet Container 알아보기 ✔️ HTML Form으로 데이터를 주고받을 때 해당 data가 form형식이므로, HTTP 메시지의 Content Type는 application/x-www-form-unreloaded이고, username=kim&age=20 의 형식으로 데이터를 전송합니다. 서버에서는 위에서 보낸 데이터를 받은 다음, 다음과 같은 일들을 수행해야 합니다. HTTP 요청 메시지를 파싱해서 읽기 HTTP 메... SpringservletSpring [MeU] Hashtag 기능 개발 ➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 검색 기능을 위해, 게시글이 삭제되면 tagPostMapping 테이블 안의 데이터도 함께 삭제된다. ✔️ vo/Tag.java, TagPostMapping.java ✔️ serv... MyBatisSpringbootSpringmysqlMyBatis Body로 전달된 JSON/XML 데이터를 처리하는 HTTP Message Converter 바디로 전달된 JSON/XML 데이터를 어떻게 객체로 변환할 수 있을까? 요청 본문에서 메시지를 읽거나 응답 본문에 메시지를 작성할 때 사용한다. 즉, @RequestBody, @ResponseBody 어노테이션을 사용할 때 요청/응답을 처리해주는 변환기다. 의존성에 따라 조건적으로 등록이 되는데, 이 설정은 WebMvcConfigurationSupport 클래스의 코드에서 확인할 수 있다.... SpringSpring 스프링 핵심 원리 - 기본편 (1) 객체 지향 설계와 스프링 좋은 객체 지향 설계의 5가지 원칙(SOLID) 객체 지향 설계와 스프링 2002년 로드 존슨이 30000줄짜리 스프링 시초 코드 들어있는 책 출간 스프링 역사 2003년 스프링 프레임워크 1.0 - XML 2006년 스프링 프레임워크 2.0 - XML 편의기능 지원 2009년 스프링 프레임워크 3.0 - 자바 코드로 설정 2013년 스프링 프레임워크 4.0 - 자바... SpringSpring 정적 콘텐츠 처리하는 ResourceHandler? 스프링에서는 HTML과 같은 정적인 콘텐츠들 어떻게 처리할까? 이 Handler는 이미지, 자바스크립트, CSS, HTML 같은 정적인 리소스를 처리한다. 톰캣, 네티 등과 같은 서블릿 컨테이너에는 모두 정적인 리소스를 처리할 디폴트 서블릿을 기본적으로 제공하고 있다. 스프링은 정적인 리소스를 이 디폴트 서블릿에 요청을 위임하여 처리를 하는데, 문제는 이 디폴트 서블릿이 모든 요청을 가로챌 ... SpringSpring 2022/04/19 Java& Spring 공부일기 오늘은 지친 몸을 이끌고 퇴근을 했다.. 너무 힘들었지만 그래도 기능 몇개 개발초석을 다지고.. 집에까지 터덜터덜걸어갔다.. 지방에서 서울로 상경한지 거의 1년이 다되어간다 나는 반지하에 살고 있지만! 다시 고시원으로 갈거다! 왜냐.. 거기는 전기세와 가스비가 무료니까! (핵심) 그리고 생각해보니까 내가 집에서 하는거라곤 잠자기+공부하기+유튜브보기 밖에없었다! 아무튼 각설하고 지친 몸을 이끌... JavaSpringJava DTO, Entity, Form의 차이 Entity 클래스는 실제 DataBase의 테이블과 1:1로 매핑되는 클래스로, Entity 클래스는 상속을 받거나 구현체여서는 안되며, 테이블내에 존재하지 않는 컬럼을 가지면 안됨 최대한 외부에서 Entity클래스의 getter method를 사용하지 않도록 해당 클래스 안에서 필요한 로직 method를 구현해야하고, Domain Logic만을 가지며, Presentation Logic을... SpringSpring 로깅 간단히 알아보기 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리( spring-boot-starter-logging )가 스프링 부트 로깅 라이브러리는 기본으로 다음 로깅 라이브러리를 사용한다. SLF4J - 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다. 쉽게 이야기해서 S... SpringSpring [Spring] 세팅 및 정리 세팅 pom.xml - dependency 세팅 web.xml - servlet 등록 프로젝트 만들어둠 servlet-context.xml - bean, component 세팅 root-context.xml - bean 등록 home.jsp - UTF-8 설정 어노테이션 @Controller @Autowired @GetMapping @PostMapping @Transactional Inter... SpringSpring Spring Entity 작성시 사용하는 어노테이션 1. @Entity 엔티티로 사용할 클래스에 엔티티임을 명시하는 어노테이션 2. @Table @Table(name = "board") name 속성을 이용해서 해당 엔티티가 매핑하는 데이터베이스 테이블이 무엇인지 지정 이렇게 작성된다면, 해당 Board 클래스는 데이터베이스에 "board" 테이블에 저장된다. 그렇다면 이 둘의 차이는 무엇일까? @Entity(name ="")의 경우 말그대로... Spring bootSpringSpring 스프링 프레임워크의 장,단점 및 특징 스프링 프레임워크의 특징을 설명하고, 장점 및 단점을 포스팅합니다. 프레임워크는 프로그램의 기초를 구축할 수 있는 코드의 집합입니다. 개발자라는 직업은 각 개발자의 능력에 따라 결과물의 완성도가 천차만별이기 때문에, 이를 극복하고자 하여 나온 결과물이 프레임워크입니다. 프레임워크를 사용한다면 프로그램의 기본 뼈대와 틀을 정하고, 모든 팀 구성원들이 이 틀과 뼈대에 맞게 살을 붙이기 위해 코드... 스프링공부Spring프레임워크Spring 스프링 프레임워크(5) 컨테이너 사용 컨테이너 사용을 위해 spring-context 추가 id를 통한 호출 Application Context 객체를 통해 xml 파일을 불러오기 context.getBean(xml파일에서 지정한 id) Program.java setting.xml 명시적으로 형변환 필요하다는 단점이 있다. 자료형을 통한 호출 context.getBean(클래스명.class) 해당 명령어로 인터페이스를 불러올 경... SpringSpring 1. Spring DI 스프링이 IoC 방식으로 관리하는 오브젝트. 스프링이 직접 그 생성과 제어를 담당하는 오브젝트만을 Bean이라고 한다. 스프링이 IoC를 담당하는 핵심 컨테이너. Bean을 등록, 생성, 조회, 반환하는 기능을 담당. BealnFactory를 확장한 IoC 컨테이너이다. 스프링이 제공하는 각종 부가서비스를 추가로 제공한다. BeanFactory라고 부를때는 주로 빈의 생성과 제어의 관점에서 ... SpringSpring HandlerInterceptor란? HandlerInterceptor에 대해서 알아보자. Handler를 실행하기 전과 후 그리고 완료 시점에 추가적인 작업을 하고 싶은 경우에 사용한다. 여러 핸들러에서 반복적으로 사용하는 코드를 줄이고 싶을 때 사용이 가능하다. (로깅, 인증 체크, Locale 변경 등) 여러 개의 HandlerInterceptor를 사용할 경우, 다음과 같은 순서로 적용된다. (PreHandle를 제외하고... SpringSpring Spring MVC 설정? Spring Boot의 Spring MVC 설정? 가장 원시적인 방법은 직접 빈을 등록하는 것이다. 직접 빈을 등록하는 것이 번거롭다면 @EnableWebMvc 어노테이션만으로 편하게 구성할 수 있다. 이 어노테이션의 코드를 따라가보면 WebMvcConfigurationSupport 클래스를 확인할 수 있는데, 기본적인 설정들이 DispatcherServlet의 기본값과 다른 것을 확인할 수 있다. 예를 들어, DispatcherServle... SpringSpring 2022/04/17 자바 및 Spring 3월 취업 아직 준비한것도 많이없고 정보처리기사, 어학도 없는 상태에서 면접도 제대로 많이 경험해 보지 못했다! 취직을 위해서 너무 급하게 공부를 해서 이해도 제대로 하지않고 포트폴리오만 만들자 라는 생각을 했던거같다! 아무튼 그래서 열심히 다시 꾸준히 강의샀던것도 다시듣고 부족했던 CS, 알고리즘을 공부하며 Spring 공부도 꾸준히 해서 더 좋은 조건에서 개발을 할 수 있는 개발자가 되도... JavaSpringJava 6. 다양한 연관관계 매핑 일대다 연관관계는 항상 다(N)쪽에 외래키가 있으므로, Member.team이 연관관계의 주인이다. 보통 일대다 관계에서 다 쪽에 외래키가 있지만, 여기서는 다 쪽에 외래키를 매핑할 수 있는 참조 필드가 없다. 따라서 일대다 단방향 매핑보다는, 다대일 양방향 매핑을 사용하는 것을 권장한다. 일대다 양방향 매핑은 존재하지 않는데(사실 다대일 양방향이랑 다를게 없기도 하다), 양방향 매핑에서 @... JPASpringstudyJPA @Transactional 과 PROXY 위 그림처럼 Spring AOP는 사용자의 특정 호출 시점에 IoC 컨테이너에 의해 AOP를 할 수 있는 Proxy Bean을 생성해준다. Spring AOP는 런타임 위빙 방식을 기반으로 하고 있고, Spring 에서는 상황에 따라 JDK Proxy와 CGLib방식을 통해 Proxy Bean을 생성해준다. JDK Proxy는 Spring AOP의 근간이 된다.JDK Proxy는 JAVA의 ... JPASpringJPA [Spring] 스프링 입문하기 (4) - 스프링 빈과 의존관계 스프링 빈과 의존 관계를 정리한 것이다. 생성자에 @Autowired가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다. memberService가 스프링 빈으로 등록되어 있지 않다. 상기 오류가 발생한 이유는 MemberService가 스프링 빈에 등록되어 있지 않기 때문이다. 참고: memberController는 스프링이 제공하는 컨트롤러여서 스프링 빈으로 자동 등록된... JavaInflearnSpringInflearn [Spring] 스프링 입문하기 (3) - 회원 관리 예제 - 백엔드 개발 데이터: 회원 ID, 이름 리포지토리: 데이터 베이스에 접근, 도메인 객체를 DB에 저장하고 관리 회원 객체 (Member) 생성한 Package domain에 Java class Member 생성 후 다음 소스코드 추가 생성한 Package resporitory에 File MemberRepository.java 생성 후 다음 소스코드 추가 findById: Member의 Attribute인... JavaInflearnSpringInflearn 심화반 - 2주차 - 3 ◎ 소셜 로그인 사용자가 애플리케이션에게 모든 권한을 넘기지 않고 사용자 대신 서비스를 이용할 수 있게 해주는 HTTP 기반의 보안 프로토콜 ex) 카카오, 네이버, 구글, 페이스북... ◎ 카카오 로그인 사용 승인받기 ( ) 카카오 로그인 사용 승인 받기 기본 구조 내 어플리케이션 > 어플리케이션 추가하기 사이트 도메인 등록하기: 어플리케이션 선택 > 플렛폼 메뉴 선택 > Web 플랫폼 등... SpringSpring 실무 활용 - 순수 JPA 와 Querydsl MemberJpaRepository 생성자에서 JPAQueryFactory를 새로 만들어 엔티티 매니저를 주입시키는 것을 볼 수 있다. 이 방법 말고도 JPAQueryFactory를 빈으로 따로 만들고 생성자에 그냥 주입만 시키는 방법도 있다. 이 경우에는 @RequiredArgsConstructor를 통해 더 간편한 코드를 짤 수 있다는 장점이 있다. 하지만, 이 방법은 테스트를 진행할때 ... JPASpringQuerydslJPA Web Application 웹 AP와 main이 있는 AP 비교 웹 AP 요청에 따라 할 일이 정해진다(B요청을 하면 B요청에 대해서 처리하고 처리 결과를 응답) main AP : main안에 있는 요청을 정해진 순서대로 수행 목적 : Table에 있는 값을 관리하고 이용하는 것 Table 수집(select), 열 변경(update), 행 삭제(delete), 새로운 행 쓰기(insert) 행동이 영구적으로 DB에 저... tomcatJavaSpringmysqlJava 심화반 - 2주차 - 2 2022년 4월 13일(수) [스파르타코딩클럽] Spring 심화반 - 2주차 - 2 ◎ 회원별 상품 등록 및 조회 POST "/api/products" 요청 → HTTP 403 Forbidden- -> CSRF protection 때문이다. POST 요청마다 처리 CSRF 를 disable (해당 프로젝트에서는 이것으로 진행) product에 저장한 사람의 userId를 저장 Product... SpringSpring Basic#7 Bean LifeCycle Callback 1. Bean LifeCycle callback 따라서 Bean이 생성되고 종료되는 시점을 알아야 이러한 연결을 미리 준비하거나 해제할 수 있다. Spring container → Spring Bean 생성 → DI → 초기화 callback → 사용 → 소멸전 callback → Spring 종료 따라서, DI 후 필요한 data를 사용할 준비가 완료되기 때문에 해당 시점을 callback... SpringSpring JPA와 영속성 컨텍스트 영속성 컨텍스트란 엔티티를 영구 저장하는 환경이라는 뜻이다. 애플리케이션이 DB에서 꺼내온 객체를 보관하는 역할을 함. 영속성 컨텍스트는 EntityManager를 통해 엔티티를 조회하거나 저장할 때 엔티티를 보관하고 관리한다. 엔티티 생명주기 비영속 : 영속성 컨텍스트와 관계가 없는 새로운 상태 영속 : 엔티티 매니저를 통해 엔티티가 영속성 컨텍스트에 저장되어 관리되고 있는 상태 -> pe... SpringJPAJPA Spring 객체지향 원칙 Open-Closed Principle 소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 구현 객체를 변경 할 때 클라이언트 코드(interface부)를 변경해야하면 안된다. Dependency Inversion Principle 추상화에 의존해야지, 구체화에 의존하면 안된다. 클라이언트가 구현 클래스에 의존하지 말고, 인터페이... 객체지향SpringOOPOOP JPA를 이용한 회원 주문서비스 설계2 JPQL 참고 : @NoArgsConstructor(access = AccessLevel.PROTECTED) : 매개변수가 없는 기본 생성자를 보호하여 비즈니스 로직에서 생성자를 생성한 뒤 Setter를 사용해 데이터를 입력하는 것을 막음 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) :... SpringJPAJPA 0415 Review 화폐 정규식 AJAX Jquery로 $.ajax함수를 사용할 때, data에 값을 넣으면 @RequestParam으로 받을수있다.... SpringSpring 이전 기사 보기
[Spring] Servlet(서블릿)이란? Servlet, Servlet Container 알아보기 ✔️ HTML Form으로 데이터를 주고받을 때 해당 data가 form형식이므로, HTTP 메시지의 Content Type는 application/x-www-form-unreloaded이고, username=kim&age=20 의 형식으로 데이터를 전송합니다. 서버에서는 위에서 보낸 데이터를 받은 다음, 다음과 같은 일들을 수행해야 합니다. HTTP 요청 메시지를 파싱해서 읽기 HTTP 메... SpringservletSpring [MeU] Hashtag 기능 개발 ➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 검색 기능을 위해, 게시글이 삭제되면 tagPostMapping 테이블 안의 데이터도 함께 삭제된다. ✔️ vo/Tag.java, TagPostMapping.java ✔️ serv... MyBatisSpringbootSpringmysqlMyBatis Body로 전달된 JSON/XML 데이터를 처리하는 HTTP Message Converter 바디로 전달된 JSON/XML 데이터를 어떻게 객체로 변환할 수 있을까? 요청 본문에서 메시지를 읽거나 응답 본문에 메시지를 작성할 때 사용한다. 즉, @RequestBody, @ResponseBody 어노테이션을 사용할 때 요청/응답을 처리해주는 변환기다. 의존성에 따라 조건적으로 등록이 되는데, 이 설정은 WebMvcConfigurationSupport 클래스의 코드에서 확인할 수 있다.... SpringSpring 스프링 핵심 원리 - 기본편 (1) 객체 지향 설계와 스프링 좋은 객체 지향 설계의 5가지 원칙(SOLID) 객체 지향 설계와 스프링 2002년 로드 존슨이 30000줄짜리 스프링 시초 코드 들어있는 책 출간 스프링 역사 2003년 스프링 프레임워크 1.0 - XML 2006년 스프링 프레임워크 2.0 - XML 편의기능 지원 2009년 스프링 프레임워크 3.0 - 자바 코드로 설정 2013년 스프링 프레임워크 4.0 - 자바... SpringSpring 정적 콘텐츠 처리하는 ResourceHandler? 스프링에서는 HTML과 같은 정적인 콘텐츠들 어떻게 처리할까? 이 Handler는 이미지, 자바스크립트, CSS, HTML 같은 정적인 리소스를 처리한다. 톰캣, 네티 등과 같은 서블릿 컨테이너에는 모두 정적인 리소스를 처리할 디폴트 서블릿을 기본적으로 제공하고 있다. 스프링은 정적인 리소스를 이 디폴트 서블릿에 요청을 위임하여 처리를 하는데, 문제는 이 디폴트 서블릿이 모든 요청을 가로챌 ... SpringSpring 2022/04/19 Java& Spring 공부일기 오늘은 지친 몸을 이끌고 퇴근을 했다.. 너무 힘들었지만 그래도 기능 몇개 개발초석을 다지고.. 집에까지 터덜터덜걸어갔다.. 지방에서 서울로 상경한지 거의 1년이 다되어간다 나는 반지하에 살고 있지만! 다시 고시원으로 갈거다! 왜냐.. 거기는 전기세와 가스비가 무료니까! (핵심) 그리고 생각해보니까 내가 집에서 하는거라곤 잠자기+공부하기+유튜브보기 밖에없었다! 아무튼 각설하고 지친 몸을 이끌... JavaSpringJava DTO, Entity, Form의 차이 Entity 클래스는 실제 DataBase의 테이블과 1:1로 매핑되는 클래스로, Entity 클래스는 상속을 받거나 구현체여서는 안되며, 테이블내에 존재하지 않는 컬럼을 가지면 안됨 최대한 외부에서 Entity클래스의 getter method를 사용하지 않도록 해당 클래스 안에서 필요한 로직 method를 구현해야하고, Domain Logic만을 가지며, Presentation Logic을... SpringSpring 로깅 간단히 알아보기 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리( spring-boot-starter-logging )가 스프링 부트 로깅 라이브러리는 기본으로 다음 로깅 라이브러리를 사용한다. SLF4J - 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다. 쉽게 이야기해서 S... SpringSpring [Spring] 세팅 및 정리 세팅 pom.xml - dependency 세팅 web.xml - servlet 등록 프로젝트 만들어둠 servlet-context.xml - bean, component 세팅 root-context.xml - bean 등록 home.jsp - UTF-8 설정 어노테이션 @Controller @Autowired @GetMapping @PostMapping @Transactional Inter... SpringSpring Spring Entity 작성시 사용하는 어노테이션 1. @Entity 엔티티로 사용할 클래스에 엔티티임을 명시하는 어노테이션 2. @Table @Table(name = "board") name 속성을 이용해서 해당 엔티티가 매핑하는 데이터베이스 테이블이 무엇인지 지정 이렇게 작성된다면, 해당 Board 클래스는 데이터베이스에 "board" 테이블에 저장된다. 그렇다면 이 둘의 차이는 무엇일까? @Entity(name ="")의 경우 말그대로... Spring bootSpringSpring 스프링 프레임워크의 장,단점 및 특징 스프링 프레임워크의 특징을 설명하고, 장점 및 단점을 포스팅합니다. 프레임워크는 프로그램의 기초를 구축할 수 있는 코드의 집합입니다. 개발자라는 직업은 각 개발자의 능력에 따라 결과물의 완성도가 천차만별이기 때문에, 이를 극복하고자 하여 나온 결과물이 프레임워크입니다. 프레임워크를 사용한다면 프로그램의 기본 뼈대와 틀을 정하고, 모든 팀 구성원들이 이 틀과 뼈대에 맞게 살을 붙이기 위해 코드... 스프링공부Spring프레임워크Spring 스프링 프레임워크(5) 컨테이너 사용 컨테이너 사용을 위해 spring-context 추가 id를 통한 호출 Application Context 객체를 통해 xml 파일을 불러오기 context.getBean(xml파일에서 지정한 id) Program.java setting.xml 명시적으로 형변환 필요하다는 단점이 있다. 자료형을 통한 호출 context.getBean(클래스명.class) 해당 명령어로 인터페이스를 불러올 경... SpringSpring 1. Spring DI 스프링이 IoC 방식으로 관리하는 오브젝트. 스프링이 직접 그 생성과 제어를 담당하는 오브젝트만을 Bean이라고 한다. 스프링이 IoC를 담당하는 핵심 컨테이너. Bean을 등록, 생성, 조회, 반환하는 기능을 담당. BealnFactory를 확장한 IoC 컨테이너이다. 스프링이 제공하는 각종 부가서비스를 추가로 제공한다. BeanFactory라고 부를때는 주로 빈의 생성과 제어의 관점에서 ... SpringSpring HandlerInterceptor란? HandlerInterceptor에 대해서 알아보자. Handler를 실행하기 전과 후 그리고 완료 시점에 추가적인 작업을 하고 싶은 경우에 사용한다. 여러 핸들러에서 반복적으로 사용하는 코드를 줄이고 싶을 때 사용이 가능하다. (로깅, 인증 체크, Locale 변경 등) 여러 개의 HandlerInterceptor를 사용할 경우, 다음과 같은 순서로 적용된다. (PreHandle를 제외하고... SpringSpring Spring MVC 설정? Spring Boot의 Spring MVC 설정? 가장 원시적인 방법은 직접 빈을 등록하는 것이다. 직접 빈을 등록하는 것이 번거롭다면 @EnableWebMvc 어노테이션만으로 편하게 구성할 수 있다. 이 어노테이션의 코드를 따라가보면 WebMvcConfigurationSupport 클래스를 확인할 수 있는데, 기본적인 설정들이 DispatcherServlet의 기본값과 다른 것을 확인할 수 있다. 예를 들어, DispatcherServle... SpringSpring 2022/04/17 자바 및 Spring 3월 취업 아직 준비한것도 많이없고 정보처리기사, 어학도 없는 상태에서 면접도 제대로 많이 경험해 보지 못했다! 취직을 위해서 너무 급하게 공부를 해서 이해도 제대로 하지않고 포트폴리오만 만들자 라는 생각을 했던거같다! 아무튼 그래서 열심히 다시 꾸준히 강의샀던것도 다시듣고 부족했던 CS, 알고리즘을 공부하며 Spring 공부도 꾸준히 해서 더 좋은 조건에서 개발을 할 수 있는 개발자가 되도... JavaSpringJava 6. 다양한 연관관계 매핑 일대다 연관관계는 항상 다(N)쪽에 외래키가 있으므로, Member.team이 연관관계의 주인이다. 보통 일대다 관계에서 다 쪽에 외래키가 있지만, 여기서는 다 쪽에 외래키를 매핑할 수 있는 참조 필드가 없다. 따라서 일대다 단방향 매핑보다는, 다대일 양방향 매핑을 사용하는 것을 권장한다. 일대다 양방향 매핑은 존재하지 않는데(사실 다대일 양방향이랑 다를게 없기도 하다), 양방향 매핑에서 @... JPASpringstudyJPA @Transactional 과 PROXY 위 그림처럼 Spring AOP는 사용자의 특정 호출 시점에 IoC 컨테이너에 의해 AOP를 할 수 있는 Proxy Bean을 생성해준다. Spring AOP는 런타임 위빙 방식을 기반으로 하고 있고, Spring 에서는 상황에 따라 JDK Proxy와 CGLib방식을 통해 Proxy Bean을 생성해준다. JDK Proxy는 Spring AOP의 근간이 된다.JDK Proxy는 JAVA의 ... JPASpringJPA [Spring] 스프링 입문하기 (4) - 스프링 빈과 의존관계 스프링 빈과 의존 관계를 정리한 것이다. 생성자에 @Autowired가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다. memberService가 스프링 빈으로 등록되어 있지 않다. 상기 오류가 발생한 이유는 MemberService가 스프링 빈에 등록되어 있지 않기 때문이다. 참고: memberController는 스프링이 제공하는 컨트롤러여서 스프링 빈으로 자동 등록된... JavaInflearnSpringInflearn [Spring] 스프링 입문하기 (3) - 회원 관리 예제 - 백엔드 개발 데이터: 회원 ID, 이름 리포지토리: 데이터 베이스에 접근, 도메인 객체를 DB에 저장하고 관리 회원 객체 (Member) 생성한 Package domain에 Java class Member 생성 후 다음 소스코드 추가 생성한 Package resporitory에 File MemberRepository.java 생성 후 다음 소스코드 추가 findById: Member의 Attribute인... JavaInflearnSpringInflearn 심화반 - 2주차 - 3 ◎ 소셜 로그인 사용자가 애플리케이션에게 모든 권한을 넘기지 않고 사용자 대신 서비스를 이용할 수 있게 해주는 HTTP 기반의 보안 프로토콜 ex) 카카오, 네이버, 구글, 페이스북... ◎ 카카오 로그인 사용 승인받기 ( ) 카카오 로그인 사용 승인 받기 기본 구조 내 어플리케이션 > 어플리케이션 추가하기 사이트 도메인 등록하기: 어플리케이션 선택 > 플렛폼 메뉴 선택 > Web 플랫폼 등... SpringSpring 실무 활용 - 순수 JPA 와 Querydsl MemberJpaRepository 생성자에서 JPAQueryFactory를 새로 만들어 엔티티 매니저를 주입시키는 것을 볼 수 있다. 이 방법 말고도 JPAQueryFactory를 빈으로 따로 만들고 생성자에 그냥 주입만 시키는 방법도 있다. 이 경우에는 @RequiredArgsConstructor를 통해 더 간편한 코드를 짤 수 있다는 장점이 있다. 하지만, 이 방법은 테스트를 진행할때 ... JPASpringQuerydslJPA Web Application 웹 AP와 main이 있는 AP 비교 웹 AP 요청에 따라 할 일이 정해진다(B요청을 하면 B요청에 대해서 처리하고 처리 결과를 응답) main AP : main안에 있는 요청을 정해진 순서대로 수행 목적 : Table에 있는 값을 관리하고 이용하는 것 Table 수집(select), 열 변경(update), 행 삭제(delete), 새로운 행 쓰기(insert) 행동이 영구적으로 DB에 저... tomcatJavaSpringmysqlJava 심화반 - 2주차 - 2 2022년 4월 13일(수) [스파르타코딩클럽] Spring 심화반 - 2주차 - 2 ◎ 회원별 상품 등록 및 조회 POST "/api/products" 요청 → HTTP 403 Forbidden- -> CSRF protection 때문이다. POST 요청마다 처리 CSRF 를 disable (해당 프로젝트에서는 이것으로 진행) product에 저장한 사람의 userId를 저장 Product... SpringSpring Basic#7 Bean LifeCycle Callback 1. Bean LifeCycle callback 따라서 Bean이 생성되고 종료되는 시점을 알아야 이러한 연결을 미리 준비하거나 해제할 수 있다. Spring container → Spring Bean 생성 → DI → 초기화 callback → 사용 → 소멸전 callback → Spring 종료 따라서, DI 후 필요한 data를 사용할 준비가 완료되기 때문에 해당 시점을 callback... SpringSpring JPA와 영속성 컨텍스트 영속성 컨텍스트란 엔티티를 영구 저장하는 환경이라는 뜻이다. 애플리케이션이 DB에서 꺼내온 객체를 보관하는 역할을 함. 영속성 컨텍스트는 EntityManager를 통해 엔티티를 조회하거나 저장할 때 엔티티를 보관하고 관리한다. 엔티티 생명주기 비영속 : 영속성 컨텍스트와 관계가 없는 새로운 상태 영속 : 엔티티 매니저를 통해 엔티티가 영속성 컨텍스트에 저장되어 관리되고 있는 상태 -> pe... SpringJPAJPA Spring 객체지향 원칙 Open-Closed Principle 소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 구현 객체를 변경 할 때 클라이언트 코드(interface부)를 변경해야하면 안된다. Dependency Inversion Principle 추상화에 의존해야지, 구체화에 의존하면 안된다. 클라이언트가 구현 클래스에 의존하지 말고, 인터페이... 객체지향SpringOOPOOP JPA를 이용한 회원 주문서비스 설계2 JPQL 참고 : @NoArgsConstructor(access = AccessLevel.PROTECTED) : 매개변수가 없는 기본 생성자를 보호하여 비즈니스 로직에서 생성자를 생성한 뒤 Setter를 사용해 데이터를 입력하는 것을 막음 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) :... SpringJPAJPA 0415 Review 화폐 정규식 AJAX Jquery로 $.ajax함수를 사용할 때, data에 값을 넣으면 @RequestParam으로 받을수있다.... SpringSpring 이전 기사 보기