Spring 110

#1.Tool Story - 개발툴에 대한 이야기 _ STS , Intellij | 내장Was, 외장Was 에 대하여

https://www.youtube.com/watch?v=89XVAt5V43c&list=PL3036mp45iYyP_Dqz7cHuDN6DQcUiKdlM  숲을 보는 이번 시간, 개발 tool에 대해 알아보자.  우리가 개발하는 모든 내용은 was(톰캣으로 대표되는) 에서 구동되는 코드를 만드는 것이다.  아파치 톰캣의 구조를 볼건데 톰켓을 실행시켜볼 것 .  - intellij든 sts 든 구동을 시킴(스프링부트는 내장 was 가지고 있기 때문에 별도로 톰켓돌리지 않음)(서블릿 jsp_dynamic으로 할 때는 톰켓 연동해서 띄우는 과정도 있었음)   --- 톰켓 다운 후 bin에 있는 폴더에 cmd => startup.bat 입력 수 주소창에 localhost:8080 치면 고냥이 나옴..저 화면이 나오..

[스프링부트3 자바백엔드개발입문] 8장 게시글 삭제하기 : Delete

미리보기 이 장에서는 데이터 CRUD의 마지막 단계인 데이터 삭제하기를 실습해 보겠습니다. 8.2.1 Delete 버튼 추가하기 8.2.2 Delete 요청을 받아 데이터 삭제하기 클라이언트에서 서버로 요청을 보낼 때 크게 4가지 HTTP 메서드 활용함 그 중에서 DELETE 사용하면 되는데 HTML에서는 POST, GET 메서드만 제공 따라서 GET방식으로 삭제 요청 받아서 처리할 것 로그가 잘 찍히는군요 그 다음은 세 부분으로 나누어 처리합니다. 1. 삭제할 대상 가져오기 2. 대상 엔티티 삭제하기 3. 결과 페이지로 리다이텍트하기 1. 삭제할 대상 가져오기 DB에 접근해 데이터를 처리할 때는 JPA의 리파지터리를 이용합니다. 2. 대상 엔티티 삭제하기 target에 무언가 저장됐다면 삭제를 수행합니..

Spring 2023.09.24

[스프링부트3 자바백엔드개발입문] 7장 게시글 수정하기 : Update

미리보기 : 데이터 수정은 서버에서 어떻게 처리하는 걸까요? : 수정하기 위해 기존 글을 수정 페이지로 불러오고 이를 변경해 다시 DB에 저장해 봅니다. 1. 만들고 기존 데이터 불러오기 2. 데이터를 수정해 DB에 반영한 후 결과를 볼 수 있게 로 리다이렉트하기 7.2.1 에 Edit 버튼 만들기 7.2.2 Edit 요청을 받아 데이터 가져오기 @GetMapping("/articles/{id}/edit") public String edit(@PathVariable Long id, Model model){ //수정할 데이터 가져오기 Article articleEntity = articleRepository.findById(id).orElse(null); //모델에 데이터 등록하기 model.addAttr..

Spring 2023.09.23

[스프링부트3 자바백엔드개발입문] 5장 게시글 읽기 : Read

미리보기 : 이 장에서는 DB에 저장된 데이터를 조회해 웹페이지에 출력해 볼 것임 5.2.1 URL 요청받기 articles/id로 URL 요청을 했을 때 이를 받아 줄 컨트롤러를 만들 것 @PathVariable: URL 요청으로 들어온 전달값을 컨트롤러의 매개변수로 가져오는 어노테이션 id = 1000이 잘 전달됨 굿 지금까지 서버의 컨트롤러가 URL 요청을 받는 것까지 직업했습니다. 5.2.2 데이터 조회해 출력하기 다음으로 할 일 3가지 1. id를 조회해 DB에서 해당 데이터 가져오기 2. 가져온 데이터를 모델에 등록하기 3. 조회한 데이터를 사용자에게 보여 주기 위한 뷰 페이지 만들고 반환하기 1. id를 조회해 데이터 가져오기 앞서 배웠던 레포지토리로 DB에 저장된 데이터를 가져오겠습니다. ..

Spring 2023.09.22

[스프링부트3 자바백엔드개발입문] 3장 게시판 만들고 새 글 작성하기: Create

미리보기 CRUD란 게시글을 생성하고, 조회하고, 수정하고, 삭제하는 것 을 말합니다. 게시판 만들기를 배우면 서버 프로그래밍과 데이터베이스의 기본기를 자연스럽게 익힐 수 있습니다. 3.1 폼 데이터란? 태그에 실려 전송되는 데이터를 말합니다. 태그는 이렇게 웹 브라우저에서 서버로 데이터를 전송할 때 사용합니다. 태그에 실어 보낸 데이터는 서버의 컨트롤러가 객체에 담아 받습니다. 이 객체를 DTO라고 합니다. DTO로 받은 데이터는 최종적으로 데이터베이스에 저장됩니다. 3.2.1 입력 폼 만들기 3.2.2 컨트롤러 만들기 3.2.3 폼 데이터 전송하기 : 웹 페이지에 내용을 입력해 서버로 전송하는 예제를 실습해보자! 앞서 구성한 웹페이지에서 submit 버튼을 누른다고 아무것도 되지 않는다. 데이터를 어..

Spring 2023.09.22

[스프링부트3 자바백엔드개발입문] 2장 MVC 패턴 이해와 실습

미리보기 1. 뷰 템플릿 만들어보기 2. 뷰 템플릿을 실행하기 위해 역할을 분담해 동작하는 기법인 MVC 패턴에 대해서도 알아보기 2.1.1 뷰 템플릿이란 : 화면을 담당하는 기술로, 웹 페이지(view)를 하나의 틀로 만들고 여기에 변수를 삽입해 서로 다른 페이지로 보여줍니다. 여기서도 머스테치를 사용하는 군요... 리액트를 사용했으면 좋으련만,,,, 2.1.2 MVC 패턴 :뷰는 컨트롤러와 모델이라는 두 동료가 있습니다. - 컨트롤러 : 클라이언트의 요청에 따라 서버에서 이를 처리하는 역할 - 모델 : 데이터를 관리하는 역할 이처럼 웹페이지를 화면에 보여주고, 클라이언트의 요청을 받아 처리하고, 데이터를 관리하는 역할을 나누는 기법을 MVC 패턴이라고 합니다. 2.2.1 뷰 템플릿 페이지 만들기 뷰템..

Spring 2023.09.21

[스프링부트3 자바백엔드개발입문] 1장 스프링부트 시작하기

1.2 스프링부트 개발환경 설정하기 구글 검색창에 adoptOpenJDK 검색 open jdk 설치 완 spring initializer를 통해 프로젝트를 생성했음 No matching variant of org.springframework.boot-gradle-plugin:3.1.3 was found. 에러발생 https://jojoldu.tistory.com/698 Spring Boot 3.x 실행이 안될 경우 (feat. IntelliJ) 스프링 부트 3.0 이 출시되었다. (현재 최신은 3.0.1 이지만) 3.0 부터는 Java 17부터 지원된다. 그러다보니 기존에 Java8, 11등을 사용하시던 분들은 3.x 스프링 부트 프로젝트를 실행할때 에러들을 만나 jojoldu.tistory.com 빌드..

Spring 2023.09.21

회원 도메인 실행과 테스트

우리가 만든 회원 도메인이 정상적으로 동작하는지 만들어볼게요 이 부분이 다 개발이 됐습니다. 우리는 이 그림을 만들 것입니다. 실제 런타임에 동작을 하면, 클라이언트는 MemberServiceImpl이라는 회원 서비스를 사용을 하게 되고, 그 다음에 회원 서비스는 메모리 회원 저장소, MemoryMemberRepository new 해가지고 넣었던거 생각나죠? 실제 인스턴스간 그림은 이렇게 된다고 했습니다. 회원 클래스간 다이어그램은 정적인거고, 객체 다이어그램은 동적인 것입니다. new 해서 실제 들어가야 그걸 알 수 있잖아요 이제 실제 실행하고 테스트 해보겠습니다. MemberApp을 생성하고 psvm을 치고 엔터를 치면 자동으로 생긴다! 여기서 잘되는지 간단하게 테스트 해볼게요 MemberServi..