SpringBoot 24

Spring Boot - application.properties / 실습 - #Project 02 (DB 연결, Entity 만들기)

application.properties는 Spring Boot에서 애플리케이션의 설정을 정의하는 프로퍼티 파일입니다. 이 파일을 통해 데이터베이스 연결 정보, 서버 포트, 로그 레벨 등 다양한 설정을 관리할 수 있습니다.기본적으로 Spring Initializr 를 통해 Spring Boot 프로젝트를 생성하면 application.properties가 생성됨.1. 파일의 역할애플리케이션에 필요한 설정 값과 환경 변수를 정의합니다.코드를 변경하지 않고 설정 값을 쉽게 수정할 수 있습니다.환경별로 다른 설정을 적용할 수 있습니다 (e.g., application-dev.properties, application-prod.properties).2. 파일 위치application.properties 파일은 ..

Spring Boot - 자동 구성 메커니즘 Auto Configuration / 실습 - #Project 01

1. 스프링과 객체 생성일반적으로 Java에서는 객체를 생성하려면 new 키워드를 사용해야 합니다.직접적 객체 생성 (수동 생성)MyClass obj = new MyClass();위의 코드처럼 개발자가 직접 객체를 생성하는 방식입니다.이 방식은 객체가 다른 클래스에 강하게 결합되므로 유지보수와 테스트가 어렵습니다.간접적 객체 생성 (Spring이 관리)스프링은 객체를 직접 생성하지 않고, 대신 Spring 컨테이너에게 객체 생성을 위임합니다.스프링 컨테이너스프링은 ApplicationContext나 BeanFactory라는 컨테이너를 통해 객체를 관리합니다.이때 생성되고 관리되는 객체를 Bean이라고 합니다.Bean이란?Bean은 스프링 컨테이너가 관리하는 객체를 의미합니다.스프링은 Bean의 생명주기(..

Spring Boot - Starter / MVN Repository /

Starter란 무엇인가?Starter는 Spring Boot가 제공하는 의존성 묶음(Dependency Bundle)입니다.Spring 애플리케이션을 개발할 때, 특정 기능을 추가하려면 다양한 라이브러리를 가져와야 합니다. 그런데 어떤 라이브러리를 가져와야 할지 모르거나, 각 라이브러리의 버전을 맞추는 게 매우 번거로울 수 있습니다.Spring Boot Starter는 이 문제를 해결해줍니다. Starter는 여러 라이브러리를 하나의 패키지로 묶어 놓은 것입니다. 이를 통해 하나의 의존성만 추가하면 관련된 라이브러리들이 함께 추가됩니다.라이브러리를 묶어서 패키지 형태로 제공한다는 것이 중요한 포인트!(* Lombok 이나 DevTools 같은 Starter가 아닌 단순 라이브러리도 있음)Starter의..

Spring Boot - '프로젝트 구조 이해' / 데이터 흐름에 대한 이해 / Thymeleaf에 대한 이해 / view 처리

우선, 조금 이해가 안 되는 부분이 있어서 공부를 좀 하고 넘어가도록 하겠다.thymeleaf 가 html 인거야?Thymeleaf는 HTML 템플릿 엔진입니다. 즉, HTML을 기반으로 동작하는 템플릿 엔진이기 때문에 HTML 문서 안에 서버 사이드 로직을 추가할 수 있습니다.Thymeleaf의 개념HTML 파일에 동적 데이터를 삽입하고 표현하기 위한 템플릿 엔진입니다.Thymeleaf는 순수 HTML 문법을 사용하므로, 웹 브라우저에서 Thymeleaf 코드를 그대로 열어도 HTML처럼 보입니다.Spring Boot에서 Thymeleaf는 View를 렌더링하는 데 사용됩니다.Thymeleaf와 HTML의 관계HTML: 정적 화면을 표시하는 구조화된 언어입니다.Thymeleaf: HTML에 서버 사이드..

Spring Boot - '프로젝트 구조 이해' / 어떤 원리와 어떤 관계, 어떤 순서로 실행이 되는 것인지 프로젝트 구조와 함께 확실하게 파악!

h2 db 에 member 정보 2개 정도 입력을 해보고나서Controller, Service, Repository, 3-tier 를 이용해서 data 를 서로 어떻게 연결하는지 확인해보자. 입력을 해주고 나서, Run Selected 를 눌러주자.select * from member, member의 모든 것(*) 을 불러오는 것 까지 해봤다.행 하나를 추가해보자.실행을 할 때, 드래그해서 선택한 후에 run, 그래서 Run Selected 라는 것.자, 이제 우리가 만들어야 하는 건,FrontController, HandlerMapping, ViewResolver 는 framework에서 제공해주는 것이라서우리는 Controller, Service, Repository 를 만들어서 연결해서 쓰는 것. ..

Spring Boot - H2 Database - DB 연결 / Entity / Hibernate / Lombok

Spring Boot EFA를 도식화해서 보여주고 있다.R-DBMS 에 MySQL 이라고 되어 있지만, 여기서는 H2 Database를 연결했다. H2 DB를 설치하고나서, DBMS가 H2 DB를 사용하겠다는 것.관계형 DB 이기 때문에 table 단위로 데이터 저장할 것이다.DBMS에 직접 table 을 만드는 것은 아니고,JPA 를 이용하게 되면은, Entity 객체, VO 같은 객체를spring data JPA에서 제공해주는 ORM Mapping 통해서Object 를 하나의 Relational (Table - 관계형 데이터베이스에서는 Table 이라는 말 대신에 Relational 이라고도 함)즉, Object 를  ORM Mapping 을 통해서 Table 로 자동으로 만드는 방법이 Hiberna..

Spring Boot - POJO = Controller? / 3-tier Architecture /

Spring Boot에서 POJO와 Controller는 같은 것이 아닙니다. 이 둘은 서로 다른 개념을 가지며, 역할도 다릅니다. 각각의 정의와 차이점을 이해하는 것이 중요합니다.POJO (Plain Old Java Object)정의:POJO는 단순히 "기본적인" 자바 객체를 의미합니다.특정 프레임워크나 기술에 종속되지 않는, 최소한의 코드로 구성된 클래스를 말합니다.주로 데이터 저장, 비즈니스 로직, 서비스 로직 등을 처리하기 위해 사용됩니다.특징:Java 표준 클래스로 작성됨.상속이나 인터페이스 구현을 강제하지 않음.종속성을 최소화하여 재사용성이 높음.예제: public class User { private String name; private int age; // Construct..

Spring Boot - @EnableAutoConfiguration의 동작 원리 / @ComponentScan의 동작 원리

@SpringBootApplication 어노테이션은- @SpringBootConfiguration- @EnableAutoConfiguration- @ComponentScan을 결합한 것이라고 했다. 이제 EnableAutoConfiguration을 알아보자.- @SpringBootConfiguration 의 경우에는 Web 하고는 관련이 없었다.Spring Web MVC 에서 중요한 건 FrontController, HandlerMapping, ViewResolver 등즉, Web에서 사용할 수 있는 미리 만들어져 있는 클래스들을 메모리(Spring Container)에 올려야 한다.그런 애들을 어떻게 올리냐, @EnableAutoConfiguration 을 통해서 올린다. 자동으로 환경 구성을 할 수..

Spring Boot - Application 실행하기 / Spring Boot 동작 원리 / Spring Boot의 Annotation / @SpringBootConfiguration 의 상세 원리

프로젝트 생성시 지정한 Package에"프로젝트이름(Artifact) + Application" 형태의 자바 어플리케이션이 만들어진다. 이번에는 IntelliJ 에서 진행해보고자 한다. 나는 분명 Artifact 에 HelloBoot 라고 입력했는데, 만들어진 main class의 이름을 보면,HelloBootApplication 이라고 나와있다. 일단, 이렇게 어플리케이션 open을 하고나면은 Java version check 부터 해보자. 확인했으니 이제 run 도 해보자.run 해보고 나서 웹에서도 확인해보자.그리고 뭔가 만들어놓은게 없으니 만들어야 한다.Controller, templates/index.html 을 만들어주자. Spring Boot 애플리케이션의 동작 원리는 다양한 구성 요소가 유..

Spring Boot - 개발환경 설정 / 개발 툴 / Spring Initializr 초기화 활용 /

OpenJDK 17버전 다운로드 후에 폴더 생성해서 넣어주고 내 PC - 우클릭 후 속성 - 고급 시스템 설정 - 환경 변수 - 시스템 변수에서 JAVA_HOME 설정을 해줘야 한다. 그런데, 지난번에 Java 공부를 하면서, 이미 설정을 했었는데 그때는 JDK 11 버전이었다.어쨌든, 이번에는 17이고 폴더 위치가 다르니까 옮겨주자.그리고나서 Path 도 변경을 해줘야 한다.JAVA_HOME 설정을 변경해주고 나서 밑에 내려보면 Path 도 찾을 수 있다.그리고 Path는 JAVA_HOME 의 bin 으로 잡아주자. 제대로 설정이 되었는지 확인까지 완료!Spring 개발 tool 로는, intellij, sts(eclipse), 전자정부 eclipse, vs code 가 있다.spring.io 라는 사..