
해당 글은 김영한님의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의를 수강하고 정리한 게시글입니다. 동시 요청 - 멀티 쓰레드 지난 번 포스팅 [서블릿]에서 WAS에 대해 알아보았는데 이번에는 WAS에서 지원하는 멀티 쓰레드에 대해 알아보자. 쓰레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 쓰레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 쓰레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티쓰레드 (multithread)라고 한다. 참고 : 쓰레드 (컴퓨팅) - 위키백과, 우리 모두의 백과사전 웹브라우저에서 서버로 요청을 하면 TCP/IP 커넥션 연결 후 WAS에서 서블릿 객체를 호출..

해당 글은 김영한님의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의를 수강하고 정리한 게시글입니다. 서블릿 서블릿이란 웹페이지를 동적으로 생성하는 서버측 프로그램을 의미한다. 참고: 자바 서블릿 - 위키백과, 우리 모두의 백과사전 이를 좀 더 명확하게 이해하기 위해서는 서버에서 처리해야하는 업무를 알고 있어야 한다. 그러기 위해 HTML Form을 이용해 회원 가입하는 예시를 보자. 위와 같이 HTML Form을 통해 데이터를 전송한다. 그 후 서버에서 처리해야 하는 업무는 다음과 같다. 의미있는 비즈니스 로직을 처리하기 전에 위와 같은 TCP/IP 연결부터 시작해서 HTTP 메시지를 생성하고 메시지 바디 내용을 파싱하는등 많은 과정을 거쳐야한다. 그러나, 서블릿을 지원하는 WAS..

해당 글은 김영한님의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의를 수강하고 정리한 게시글입니다. 현재 웹은 HTTP 기반으로 거의 모든 형태의 데이터(HTML, TEXT, 이미지, 영상등)를 주고 받는다. 이는 우리가 서버 공부를 하며 HTTP는 꼭 알고 있어야된다는 걸 의미한다. 앞으로 다룰 내용들은 HTTP에 대한 전반적인 지식이 필요함으로 다음을 참고하자. 참고 : [Network] 03. HTTP 기본 이제 실무에서 동작하는 웹 서버와 웹 애플리케이션을 알아보고 실무에서는 어떤 식으로 구성될지 알아보자. 웹 서버(Web Server) 웹서버는 HTTP 기반으로 동작하고 정적 리소스(HTML, CSS, JS, 이미지, 영상) 제공 및 기타 부가기능을 제공한다. 웹서버의 대..

해당 글은 김영한님의 실전! 스프링 데이터 JPA - 인프런 | 강의를 수강하고 정리한 게시글입니다. 스프링 데이터 JPA 분석 실제 스프링 데이터 JPA가 제공하는 공통 인터페이스의 구현체를 보기위해서는 아래를 참고하자. org.springframework.data.jpa.repository.support.SimpleJpaRepository 위의 “SimpleJpaRepository” 를 확인하고 중요한 것만 보면 다음과 같이 어노테이션이 적용되어 있다. [@Repository 적용] JPA 예외를 스프링이 추상화한 예외로 변환 [@Transactional 트랜잭션 적용] JPA의 모든 변경은 트랜잭션 안에서 동작 스프링 데이터 JPA는 변경(등록, 수정, 삭제) 메서드를 트랜잭션 처리 서비스 계층에서..

해당 글은 김영한님의 실전! 스프링 데이터 JPA - 인프런 | 강의를 수강하고 정리한 게시글입니다. 스프링 데이터 JPA - 확장 기능 사용자 정의 리포지토리 구현 스프링 데이터 JPA 리포지토리는 인터페이스만 정의하고 구현체는 스프링이 자동 생성 스프링 데이터 JPA가 제공하는 인터페이스를 직접 구현하면 구현해야 하는 기능이 너무 많음 인터페이스의 메서드를 직접 구현해야하는 다양한 이유들.. JPA 직접 사용( EntityManager ) Querydsl 사용 스프링 JDBC Template 사용 MyBatis 사용 데이터베이스 커넥션 직접 사용 등등… 위와 같은 이유들로 사용자 정의 리포지토리를 구현해서 사용한다. 사용법 [사용자 정의 인터페이스] public interface MemberRepos..

해당 글은 김영한님의 실전! 스프링 데이터 JPA - 인프런 | 강의를 수강하고 정리한 게시글입니다. 스프링 데이터 JPA - 기본 스프링 데이터 JPA란? 스프링 데이터 JPA를 알아보기 전 왜 사용하는지부터 알아보자. 기존 순수 JPA에서 번거롭게 작성하던 기본 CRUD같은 코드 및 간단한 기능들을 스프링 데이터 JPA가 제공하는 공통 인터페이스를 사용함으로서 편리하고 쉽게 생산성을 높일 수 있다. [예시 1] 순수 JPA 사용 코드 public List findAll() { return em.createQuery("select m from Member m", Member.class) .getResultList(); } 스프링 데이터 JPA 사용 코드 public interface MemberRepo..

해당 글은 김영한님의 실전! Querydsl - 인프런 | 강의를 수강하고 정리한 게시글입니다. Querydsl - 스프링 데이터 JPA가 제공하는 Querydsl기능 및 커스텀 스프링 데이터에서 제공하는 기능을 알아보고 실무 환경에 맞게 바꿔보자. 인터페이스 지원 - QuerydslPredicateExecutor 공식 URL : Spring Data JPA - Reference Documentation [QuerydslPredicateExecutor 인터페이스] public interface QuerydslPredicateExecutor { Optional findById(Predicate predicate); Iterable findAll(Predicate predicate); long count(P..

해당 글은 김영한님의 실전! Querydsl - 인프런 | 강의를 수강하고 정리한 게시글입니다. Querydsl - 실무 활용 이전 글들 [Querydsl] 02. 기본 문법 , [Querydsl] 03. 중급 문법 에서 Querydsl의 문법을 알아봤다면 이제 Querydsl을 활용해 실전 예제를 한번 알아보자. - 순수 JPA와 Querydsl [순수 JPA Reopsitory] @Repository public class MemberJpaRepository { private final EntityManager em; private final JPAQueryFactory queryFactory; public MemberJpaRepository(EntityManager em) { this.em = em..