백엔드 40

Spring Boot - # Project 03 - Bootstrap / @PostMapping

detail.html 을 만들어야 한다. template.html 을 복사붙여넣기 해서 detail.html 로 이름을 변경해주자.기존 template.html 코드는 아래와 같다. MainContentSection 부분을 손보면 되겠다. - 상세보기,- 리뷰목록,- 리뷰 및 평점 쓰기,- 리스트로 돌아가기(root page로 돌아가기) 을 만들자.여기서부터는, html 을 공부해본 적이 없기 때문에 강의에서 알려주는 걸 일단은 따라해보고, chatGPT의 도움을 받아서 이해를 많이 해보고 공부해보려고 한다. 상세보기 ..

Spring Boot - # Project 03 - 웹 버튼 클릭 /

자, 이제 View Details 버튼을 누르면 작동되도록 해보자. home.html 을 확인해보자.1. HTML 기본 구조HTML은 HyperText Markup Language의 약자로, 웹페이지의 구조를 만들 때 사용되는 언어입니다.HTML은 태그로 구성되며, 각 태그는 여는 태그 와 닫는 태그 로 나눠집니다.내용여기서 는 **"division"**의 약자이며, 컨테이너(묶음) 역할을 합니다. 즉, 는 다른 요소들을 그룹화하기 위해 사용됩니다.2. class 속성class는 CSS나 JavaScript에서 특정 요소를 선택하거나 스타일을 적용하기 위해 사용되는 속성입니다.하나의 클래스 이름에 여러 요소를 부여할 수 있고, 하나의 요소에 여러 클래스 이름을 붙일 수도 있습니다.예시:여기서 class=..

Spring Boot - 자동 구성 사용자 정의 / # Project 03 - 1:N (OneToMany) DB/Entity Modeling

application.properties 를 yml 로 바꿔보겠다. properties 대신에 yml 을 쓰면 된다.내부 코드가 자동으로 바뀌는 건 아니라서 yml properties 컨버팅 사이트에서 바꿔서 복붙해주자. @Entity 클래스가 가지고 있는 멤버의 변수 이름이 table 열의 이름으로 바뀔 때, 카멜 케이스 표기법에서 스네이크 케이스 표기법으로 자동으로 바뀌는 설정이 되어 있다고 했었다.그런데, 그냥 @Entity 클래스의 멤버의 변수 이름을 그대로 table 열의 이름으로 사용하고 싶다면, 간단하게 설정을 추가해주면 된다.yml 파일에서는 저렇게 추가하면 된다.만약 properties 파일이었다면,spring.jpa.hibernate.naming.physical-strategy=org..

Spring Boot - Maven/Gradle을 사용한 종속성 관리

Maven과 Gradle은 프로젝트의 종속성(Dependency) 관리를 위해 주로 사용되는 빌드 도구입니다. 종속성은 라이브러리를 의미하며, 개발자가 프로젝트에서 필요로 하는 외부 코드, 즉 다른 개발자나 회사가 만들어 놓은 기능들을 가져와서 사용하는 것입니다.  1. Maven을 사용한 종속성 관리Maven은 XML 기반의 빌드 도구입니다. pom.xml 파일이 프로젝트의 중심입니다.주요 개념pom.xml 파일: Maven 프로젝트의 설정 파일입니다. 프로젝트의 종속성, 플러그인, 빌드 설정 등을 정의합니다.의존성(Dependency): 외부 라이브러리의 선언입니다. Maven은 선언된 라이브러리를 중앙 리포지토리에서 다운로드합니다.중앙 리포지토리(Central Repository): Maven이 사..

Spring Boot - 실습 - #Project 02 (Repository, Service, Controller, View 만들자)

나중에 interface BookRepository 안에직접 메서드를 만들 수도 있다.지금은 기본적으로 JpaRepository에서 제공해주는 메서드를 사용하는 방법만 구현한다.이제 Service layer를 만들 것이다.여기서는 insert, select, update, delete 하는 기능을 만들어보려고 한다. 이 서비스 메서드는 위에서 만든 repository가 필요하다. 그래서 @Autowired 로 가지고 올 수 있다.@Autowired 를 해줘야, 메모리에 올라와있는 EntityManager(); 가 bookRepository 에 자동으로 연결이 된다.그래야지만 bookRepository 라는 인터페이스를 이용해서 EntityManager() 라는 구현체에 있는 메서드를 써가지고 CRUD 를..

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 를 만들어서 연결해서 쓰는 것. ..