본문 바로가기

🍃Spring ,SpringBoot 공부/스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술4

[스프링 공부/스프링 입문] 회원 도메인과 리포지토리 만들기 이번 강의에선 MemberRepository 인터페이스를 생성하고 이를 메모리에서 구현한 MeoryMemberRepository를 생성하였다. 왼쪽이 강사님 코드고 오른쪽이 내가 짠 코드다. 강사님께서는 id 값을 증가시킬 때 member 객체의 setId()를 사용해서 증가시키셨는데 나는 member는 domain이니까 setter가 없어야 한다고 생각해서 setter를 생성하지 않았다. store에 id를 증가시키고 그만인 거면 store.put(++sequence, member)이라고 하고 말았겠지만 반환 값으로 id가 들어간 객체를 반환을 해줘야 했다. 그래서 newMember라는 임시 객체를 만들어주고 그 안에 생성자로 id를 넣어서 반환했다. 맞는 방법인지는 모르겠다. 인프런 김영한 강사님의 .. 2022. 12. 22.
[스프링 공부/스프링 입문] 웹 어플리케이션 계층 구조 (DTO와 Domain의 차이) 웹 어플리케이션의 계층 구조는 위와 같다. 이 중에 도메인 객체가 좀 생소하기도 하고 DTO와 Domain의 차이가 무엇인지 궁금해져서 자세하게 알아보기로 했다. 1. Domain과 DTO 1) Domain DB 테이블과 매칭되는 클래스, DB 테이블의 칼럼을 필드로 가지고 있음 데이터가 변경되는 것을 막기 위해 setter가 존재하지 않음 "@Entity" annotation을 사용해서 Domain임을 나타냄 2) DTO(Data Transfer Object) 계층간 데이터 교환을 위해 사용하는 객체 Domain의 데이터를 복사하여 전달함 데이터를 가공, 변경할 일이 없기 때문에 setter가 없음 setter가 아닌 생성자로 데이터를 받음 toEntity() 메서드를 생성하여 DTO를 Entity로 .. 2022. 12. 14.
[스프링 공부/스프링 입문] 템플릿 엔진 (JSP와 Thymeleaf) 강의를 수강하다가 강사님께서 템플릿 엔진으로 Thymeleaf를 사용하시는 것을 봤다. 나는 그전까지 JSP를 주로 사용했기에 두 개의 차이가 무엇인지 궁금해졌다. 1. 템플릿 엔진(Template Engine)이란 템플릿 엔진은 동적인 페이지를 제작하기 위해 사용한다. 동적인 페이지는 정해진 템플릿에 데이터를 더해서 가공한 결과를 사용자에게 제공하지만, 정적인 페이지는 개발자가 미리 만들어둔 페이지를 그대로 제공한다. 2. 템플릿 엔진의 종류 1) 서버 사이드 템플릿 엔진 서버에서 DB 또는 API에서 가져온 데이터를 미리 정의된 템플릿에 넣어 HTML 문서로 만들고 이를 클라이언트에 전달해준다. HTML 코드에서 고정적으로 사용되는 부분은 템플렛으로 만들어두고 동적으로 생성되는 부분만 템플릿의 특정 .. 2022. 12. 14.
[Spring 공부/스프링 입문] 스프링 프로젝트 생성 사전 준비물 Java 11 IDE : InteliJ 1. InteliJ를 사용해서 생성 InteliJ Ultimate 버전을 사용하고 있다면 InteliJ 안에서 스프링 프로젝트를 생성할 수 있다. 만약 Community 버전을 사용하고 있다면 start.spring.io를 통해 프로젝트를 생성하면 된다. 1) 새로운 프로젝트 생성 우측 상단 NEW PROJECT 선택 2) 프로젝트 설정 좌측 Generator에서 Sping Initializr을 선택한다. 1. Language : 언어 선택 Java 2. Type : 필요한 라이브버리를 관리하고 빌드까지 해주는 툴 선택 Maven : 과거에 많이 씀 Gradle : 요즘 많이 씀 (선택) 3. Group : 그룹 명 com.example. 과 같이 많이.. 2022. 10. 27.