Spring 66

05./ Spring excersise-Member-02-service

MemberService 생성 => MemberRepository를 가지고와서 생성함 join, findMember, findId 중복회원 검증을 위해 이름을 비교해서 중복이름이 있는지 검증 후에 가입을 받음 (Optional에 담겨있어서 ifPresent 사용 가능) public class MemberService { private final MemberRepository memberRepository; public MemberService() { memberRepository = new MemoryMemberRepository(); } /** 회원 가입 */ public long join(Member member){ // 중복 이름 가입 안됨 checkDuplicateMember(member); me..

Spring/spring_old 2023.01.12

05./ Spring excersise-Member-01-domain and repository

domain에 저장할 class 정의 ==> interface 정의 ==> interface 구현한 class 1. 우선 domain을 정의하고 db에 넣을 정보에 대한 class를 정의함 domain 정의 : 회원 정보(객체) 생성하기 => id, name, registedDate public class Member { private Long id; private String name; private Date regDate; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { t..

Spring/spring_old 2023.01.11

05./ Spring excersise-Member-설계

1. 비지니스 요구사항 2. 회원 도메인과 리포지토리 만들기 3. 회원 리포지토리 테스트 케이스 작성 4.회원 서비스 개발 5. 회원 서비스 테스트 1. 비지니스 요구사항 - 데이터 : 회원 ID, 이름 - 기능 : 회원등록, 조회 - 아직 데이터 저장소가 선정안됨(...db 없음) -> 나중에 갈아 끼 controller -> service -> repository -> DB | | | Domain controller : web MVC의 컨트롤러 service : 핵심 비지니스 로직 repository : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 domain : 비즈니스 도메인 객체(회원, 주문, 쿠폰 등 주로 데이터베이스에 저장..

Spring/spring_old 2023.01.11

04./ spring 웹 개발

[ 정적 콘텐츠 ] https://docs.spring.io/spring-boot/docs/2.7.7/reference/html/web.html#web.servlet.spring-mvc.static-content /static/ 밑에 파일을 만들어서 넣으면 됨 [ MVC와 템플릿 엔진 ] model, view, controller view는 그리는데만 집중함, model, controller는 비지니스 로직에 집중 [Web Html 방식] 1. controller @Controller public class TestSpring { @GetMapping("hello") public String testOut(Model model) { model.addAttribute("data", "안녕하세요..~~");..

Spring/spring_old 2023.01.11

03./ Spring View 출력

브라우저 요청 -> localhost:8080/hello -> tomcat -> spring container -> controller를 찾아서 model에서 처리해서 -> viewResolver로 보내면 -> viewResolver에서 templates 밑에있는 html 파일(model이 포함된 method의 return 값에 해당되는 이름의 html 파일)을 찾아서(thymeleaf 템플릿 엔진에서 처리한 결과를) -> hello.html파일을 웹 브라우저에 전달 스프링 부트 템플릿엔지 기본 viewName mapping => 'resoures:templates/' + {viewName} + '.html' [기본 페이지 열기] spring은 기본적으로 java class의 controll annota..

Spring/spring_old 2023.01.11

02./ spring 환경 구성 검증

프로젝트가 생성되면 자동으로 main method를 갖는 java 파일(프로젝트의 시작점, loading됨)을 생성함 이 상태에서 실행하면 빈 페이지가 나옴 => 성공 [기본 라이브러리] spring-boot-starter-web - tomcat, webmvc spring-boot-starter-thymeleaf : 템플릿 엔진(View) spring-boot-starter(공통): 스프링부트 + 스프링 코어 + 로깅 - srping-boot : spring-core - spring-boot-starter-logging : logback, slf4j 테스트 라이브러리 spring-boot-starter-test - junit: 테스트 프레임워크 - mockito: 목 라이브러리 - assertj: 테스트..

Spring/spring_old 2023.01.11

01./ start.string.io

관련 라이브러리를 알아서 받아서 설치해줌 1. 관련 설정하고 - 버젼이 3.0이면 java가 17로 됨, 2.7은 11로 설정가능 - start-web을 지정하면 내장 tomcat이 설치됨 2. 다운로드 -> 압축 해제 3. intellij에서 open -> 압축해제한 폴더를 선택 -> open 4. 프로젝트가 생성됨 -> 관련 라이브러리를 다운받음 5. 여기서 개발하면됨 Intellij 설정을 보면 build.gradle에 위에서 설정한 라이브러리가 설정이되어 있음 plugins { id 'java' id 'org.springframework.boot' version '2.7.7' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } grou..

Spring/spring_old 2023.01.11

타임리프 - 기본 기능

https://catsbi.oopy.io/32a9458e-f452-4733-b87c-caba75f98e2d 1. 타임리프 - 기본 기능 목차 catsbi.oopy.io 1. 타임리프 소개 특징 • 서버 사이드 HTML 렌더링(SSR) : 타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링하는 용도로 사용된다. 사용법은 SSR이 다 비슷하기에 학습하기에도 어렵지 않고, 페이지가 어느정도 정적이고 빠른 생산성이 필요한 경우 백엔드 개발자가 개발해야하는 일이 생기는데 이 경우 타임리프는 좋은 선택지이다. • 네츄럴 템플릿 :타임리프는 순수한 HTML을 최대한 유지하려는 특징이 있다. 이게 JSP와의 큰 차이점으로 타임리프로 작성한 파일은 확장자도 .HTML이고 웹 브라우저에서 직접 파일을 열어도 내용을 확인..

Spring 2023.01.10

02. Project 생성-UML

Unified Modeling Language => 객체들 간의 관계를 정의한 일종의 ... 구성 환경 java 8 이상, insomnia(rest client), ide 필요 spring framework(core), spring data(db 연계), test, servlet(MVC) 위주로 표현, 처리, 저장 => 모아서 정보에 모음: entities rest client를 활용해서 서버 프로그램이 동작을 확인 => rest client 정보를 구성하고 사용자의 행위를 처리하는 class를 구성하고 => service 사용자 데이터를 저장하는 것은 => store 아래 class를 정의하고 시작 - entity : id / abstract - travelClub: 이름, 소개, 글자수 제한 - Me..

Spring/spring_old 2023.01.07