일반적인 자바 개발의 경우, 개발자가 직접 객체를 제어해야 했다(new 연산자를 통해 객체 생성, 객체의 의존성 생성, 초기화 등등)참고로 객체의 의존성은 객체 지향에서 두 클래스 간의 관계를 말한다도서 '스프링 부트 핵심 가이드'https://velog.io
스프링 컨테이너는 스프링 프레임워크의 핵심 컴포넌트스프링 컨테이너는 자바 객체의 생명주기를 관리(객체를 생성/관리/제거)하며, 생성된 자바 객체들에게 추가적인 기능을 제공함\*스프링에서는 자바 객체를 빈(Bean)이라고 함즉, 개발자가 정의한 빈을 객체로 만들어 관리하
"Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can just run"스프링 부트를 이용하면 단독으로 실행 가능한 상용 수준의 스프링
클라이언트의 요청을 처리하고 결과를 반환하는 자바 웹 프로그래밍 기술 일반적으로 서블릿은 서블릿 컨테이너에서 관리함서블릿 컨테이너는 서블릿 객체를 생성하고 관리하는 역할을 수행하는 주체로서, 멀티 스레딩을 지원하며 서블랫 객체는 싱글톤 패턴으로 관리됨
Controller 클라이언트가 요청을 하면, @Controller에 진입함 -> 컨트롤러는 요청에 대한 작업을 수행하고, 뷰쪽으로 데이터를 전달함
Member처럼 비즈니스 요구사항을 모델링한 객체를 엔티티라 하는데, SQL에 모든 것을 의존하는 상황에서는 개발자들이 엔티티를 신뢰하고 사용할 수 없고, DAO를 열어서 어떤 SQL이 실행되고 어떤 객체들이 함께 조회되는지 일일이 확인해야 함 -> 진정한 의미의 계층
JPQL (JPA Query Language) JPA에서 사용할 수 있는 쿼리 - SQL에서 테이블이나 칼럼의 이름을 사용하는 것과 달리, JPQL은 매핑된 엔티티 이름과 필드의 이름을 사용함
사용자가 잘못된 입력값을 넣었을 경우 정상적인 요청인지 검증을 해야한다. 만약 검증을 안할 경우 아래와 같은 상황이 발생할 수 있다만약 이름 입력란에 공백을 넣고 입력했는데 '이름이 입력되지 않았습니다'가 출력이 안된다면?검증을 하지 않고 HTTP 요청을 Server에
문법 if-else 조건문
엔티티 각각을 모두 테이블로 만들고 자식 테이블이 부모 테이블의 기본 키를 받아서 기본 키 + 외래 키로 사용하는 전략 -> 조회할 때 조인을 자주 사용함장단점테이블이 정규화됨외래 키 참조 무결성 제약조건을 활용할 수 있음저장공간을 효율적으로 사용함조회할 때 조인이 많
최근에 개발되는 서비스는 마이크로서비스 아키텍처(MSA)를 주로 채택하고 있음MSA는 말 그대로 애플리케이션이 가지고 있는 기능이 하나의 비즈니스 범위만 가지는 형태따라서 각 애플리케이션은 자신이 가진 기능을 API로 외부에 노출하고, 다른 서버가 그러한 API를 호출