프로그래밍/Spring 42

[Sprint MVC1] 3. 서블릿

김영한 [스프링 MVC 1편] - 강의정리 JSP로 회원관리 웹 애플리케이션 만들기서블릿과 JSP의 한계서블릿으로 개발할땐 뷰화면을 위한 HTML을 만드는 작업이 자바 코드에 섞여 지저분하고 복잡하다.JSP를 사용한 덕분에 HTML 작업을 깔끔하게 처리하고, 동적으로 변경이 필요한 부분만 자바코드를 적용했다.그러나 JAVA코드, 리포지토리 등 다양한 코드가 JSP에 노출돼있다.즉, JSP가 너무 많은 역할을 한다.MVC 패턴비즈니스 로직은 서블릿처럼 다른 곳에서 처리하고, JSP는 목적에 맞게 HTML로 화면을 그리는 일에 집중하는 것이 MVC 패턴이다. MVC 패턴 - 개요변경의 라이프사이클UI 일부를 수정하는 일과, 비즈니스 로직을 수정하는 일은 각각 다르게 발생할 가능성이 매우 높고, 서로에게 영향..

[Spring MVC1] 1. 웹 애플리케이션 이해

김영한 [스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 강의 정리웹 서버, 웹 애플리케이션 서버웹 - HTTP 기반HTTP 메시지에 모든것을 전송한다.HTML, TEXT, 이미지, 영상, 파일, JSON, XML 등 거의 모든 형태의 데이터 전송이 가능하다.서버간 데이터를 주고받을 때도 대부분 HTTP 사용한다. 웹 서버HTTP 기반으로 동작한다.정적 리소스 제공정적(파일) HTML, CSS, JS, 이미지, 영상 등ex) NGINX, APCHE 웹 애플리케이션 서버 (WAS)HTTP 기반으로 동작한다.웹서버 기능을 포함한다.프로그램 코드를 실행해 애플리케이션 로직을 수행한다.동적 HTML, HTTP API(JSON)서블릿, JSP, 스프링 MVCex) 톰캣 웹 서버 vs 웹 애플리케이션 서버사실 ..

[Spring] 스프링의 주요 특징

POJO 기반의 구성 POJO ( Plain Old Java Object) 스프링은 객체간의 관계를 구성할 때, 별도의 API 등을 사용하지 않는 POJO의 구성만으로 가능하도록 제작되어 있다. 즉, 일반적인 Java 코드를 이용해 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있다. 이것은 코드를 개발할 때 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않다는 것을 의미한다. 그래서 생산성에서 유리하고, 코드에 대한 테스트 작업도 좀 더 유연하게 할 수 있다. 의존성 주입(DI)를 통한 객체 간의 구성 관계 의존성 (Dependency) : 하나의 객체가 다른 객체의 상태에 따라 영향을 받는 것이다. 주입(Injection) : 외부에서 밀어넣는 것. 객체를 얻기 위해 주체가 수동적인 ..

[Spring boot / JPA] 7. 웹 계층 개발

아래 강의 정리 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 스프 www.inflearn.com 목차 홈 화면과 레이아웃 회원 등록 회원 목록 조회 상품 등록 상품 목록 상품 수정 변경 감지와 병합(merge) 상품 주문 주문 목록 검색, 취소 홈 화면과 레이아웃 Log @Slf4j Logger log = LoggerFactory.getLogger(getClass()); HTML 관례상 th라고 많이 쓴다. th:replace와 같은 속성들을 사용할 수 있다. fragments/~로..

[Spring boot / JPA] 6. 주문 도메인 개발

아래 강의 정리 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 스프 www.inflearn.com 목차 주문, 주문 상품 엔티티 개발 주문 서비스 개발 주문 기능 테스트 주문 검색 기능 개발 구현 기능 상품 주문 주문 내역 조회 주문 취소 주문, 주문 상품 엔티티 개발 createOrder (생성 메서드) 주문 엔티티를 생성할 때 사용한다. 주문 회원, 배송 정보, 주문 상품의 정보를 받아서 실제 주문 엔티티를 생성한다. cancle (주문 취소) 주문 취소시 사용한다. 문 상태를 취..

[Spring boot / JPA] 5. 상품 도메인 개발

아래 강의 정리 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., - 강 www.inflearn.com 목차 상품 엔티티 개발 (비즈니스 로직 추가) 상품 리포지토리 개발 상품 서비스 개발 상품 엔티티 개발 (비즈니스 로직 추가) 구현 기능 상품 등록 상품 목록 조회 상품 수정 addStock() 재고가 증가하거나, 상품 주문을 취소해서 재고를 다시 늘려야 할 때 사용한다. removeStock() 만약 재고가 부족하면, 예외가 발생한다. 주로 상품을 주문할 때 사용한다. 상품 리포지토리..

[Spring boot / JPA] 4. 회원 도메인 개발

아래 강의 정리 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., - 강 www.inflearn.com 목차 회원 리포지토리 개발 회원 서비스 개발 회원 기능 테스트 회원 기능 회원 등록 : save 회원 목록 조회 : findOne, findAll, findByName 회원 리포지토리 개발 @Repository : 스프링 빈으로 등록, JPA 예외를 스프링 기반 예외로 예외 변환한다. @PersistenceContext : 스프링이 엔티티 매니저(EntityManager)를 만들어 in..

[Spring boot / JPA] 3. 애플리케이션 구현 준비

다음 강의 정리 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., - 강 www.inflearn.com 목차 구현 요구사항 애플리케이션 아키텍처 구현 요구사항 기능 목록 회원 기능 - 회원 등록 - 회원 조회 상품 기능 - 상품 등록 - 상품 수정 - 상품 조회 주문 기능 - 상품 주문 - 주문 내역 조회 - 주문 취소 애플리케이션 아키텍처 계층형 구조 사용 controller, web : 웹 계층 service : 비즈니스 로직, 트랜잭션 처리 repository : JPA를 직접 사용..

[Spring boot / JPA] 2. 도메인 분석 설계

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., - 강 www.inflearn.com 목차 요구사항 분석 도메인 모델과 테이블 설계 엔티티 클래스 개발1 엔티티 클래스 개발2 엔티티 설계시 주의점 요구사항 분석 간단한 쇼핑몰을 만들것이다. 기능 목록 회원 기능 - 회원 등록 - 회원 조회 상품 기능 - 상품 등록 - 상품 수정 - 상품 조회 주문 기능 - 상품 주문 - 주문 내역 조회 - 주문 취소 기타 요구사항 - 상품은 재고 관리가 필요하다. - 상품의 종류는 도서, 음반, 영화가 ..