목록3-1/[inflearn]스프링입문 (10)
dew's CSE Studying
17장 웹 페이지에서 댓글 등록하기17.1 댓글 등록의 개요댓글 생성 뷰 페이지(_new)에 댓글 입력 폼 만들기[댓글 작성] 버튼을 클릭해 REST API 요청 보내기 document.querySelector(): 웹 페이지에서 특정 요소(버튼)을 찾아 반환한다addEventListener(): 특정 요소에 이벤트가 발생(버튼 클릭)했을 때 특정 동작(댓글 객체 전달)을 수행한다fetch(): 웹 페이지에서 REST API 요청(POST 요청)을 보낸다 17.2 댓글 생성 뷰 페이지 만들기부트스트랩에서 코드를 복사해주고_new.mustache에 추가한 후 조금 수정해준다수정 완료! 17.3 자바 스크립트로 댓글 달기17.3.1 버튼 클릭 이벤트 감지하기 17.3.2 새 댓글 자바스크립트 객체 생성하기새..
15장 댓글 컨트롤러와 서비스 만들기15.1 댓글 REST API의 개요REST 컨트롤러: 댓글 REST API를 위한 컨트롤러로 서비스와 협업, 클라이언트 요청을 받아 응답하며 뷰가 아닌 데이터 반환서비스: REST 컨트롤러와 리파지터리 사이에서 비즈니스 로직, 즉 처리 흐름을 담당하며 예외 상황이 발생했을 때 @Transactional로 변경된 데이터 롤백DTO: 사용자에게 보여줄 댓글 정보를 담은 것. 단순히 클라이언트와 서버 간에 댓글 JSON 데이터 전송 15.2 댓글 컨트롤러와 서비스 틀 만들기게시글 리파지터리가 있어야 댓글을 생성할 때 대상 게시글의 존재여부를 파악할 수 있다15.3 댓글 조회하기15.3.1 요청을 받아 응답할 컨트롤러 만들기@AllArgsConstructor: 모든 필드를 ..
12장 서비스 계층과 트랜잭션12.1 서비스와 트랜잭션의 개념서비스(service): 컨트롤러와 리파지터리 사이에 위치하는 계층-서버의 핵심 기능(비즈니스 로직)을 처리하는 순서를 총괄한다 트랜잭션(transaction): 모두 성공해야 하는 일련의 과정 롤백(rollback): 트랜잭션이 실패로 돌아갈 경우 진행 초기 단계로 돌리는 것 12.2 서비스 계층 만들기@Autowired private ArticleRepository articleRepository; //게시글 리파지터리 객체 주입}일단 게시글 리파지터리 객체를 주입해주었다 12.2.1. 게시글 조회 요청 개선하기모든 게시글 조회 요청 개선하기// GET @GetMapping("/api/articles") public List..
9장 CRUD와 SQL 쿼리 종합9.1 JPA 로깅 설정하기쿼리(query): DB에 정보를 요청하는 구문-INSERT문(생성), SELECT문(조회), UPDATE문(수정), DELETE문(삭제) 로깅(logging): 시스템이 작동할 때 당시의 상태와 작동 정보를 기록하는 것1.application.properties에 코드 추가logging.level.org.hibernate.SQL=DEBUG-로깅 레벨(7단계)TRACE: DEBUG 레벨보다 더 상세한 정보DEBUG: 응용프로그램을 디버깅하는 데 필요한 세부 정보INFO: 응용 프로그램의 순조로운 진행 정보WARN: 잠재적으로 유해한 상황 정보ERROR: 응용 프로그램이 수행할 수 있느느 정도의 오류 정보FATAL: 응용 프로그램이 중단될 만한 심..
6장 게시판 내 페이지 이동하기6.1 링크와 리다이렉트란링크(link): 미리 정해 놓은 요청을 간편히 전송하는 기능-페이지 이동을 위해 사용-HTML의 또는 태그로 작성-클라이언트가 링크를 통해 어느 페이지로 이동하겠다고 요청하면 서버는 결과 페이지를 응답한다 리다이렉트(redirect): 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 재지시하는 것 6.2 링크와 리다이렉트를 이용해 페이지 연결하기6.2.1 새 글 작성 링크 만들기index.mustach에 이 링크를 추가해주었다.New Article6.2.2 -> 돌아가기입력페이지의 뷰파일인 new.mustach에 해당 코드를 추가해주었다Back 6.2.3 -> 이동하기 6.2.4 -> 돌아가기ArticleController을 ..
Part2 게시판 CRUD 만들기3장 게시판 만들고 새 글 작성하기: Create3.1 폼 데이터란폼 데이터: HTML 요소인 태그에 실려 전송되는 데이터-웹브라우저에서 서버로 데이터를 전송할 때 사용-태그에 실어 보낸 데이터는 서버의 컨트롤러가 객체(DTO: Data Transfer Object)에 담아 받은 후, 최종적으로 데이터베이스에 저장된다 3.2 폼 데이터를 DTO로 받기3.2.1 입력 폼 만들기3.2.2 컨트롤러 만들기3.2.3 폼 데이터 전송하기3.2.4 폼 데이터 받기받는건 @PostMapping()을 사용한다괄호 안에는 받는 url 주소를 넣는다 3.2.5 DTO 만들기3.2.6 폼 데이터를 DTO에 담기3.2.7 입력 폼과 DTO 필드 연결하기DTO와 동일한 이름을 name의 속성값..
1장 스프링 부트 시작하기1.1 스프링부트란-스프링 프레임워크를 개선한 것-자바 웹 프로그램을 더욱 쉽고 빠르게 만들기 위한 도구개발 환경 설정을 간소화웹 어플리케이션 서버를 내장 1.2 스프링 부트 개발 환경 설정하기 1.3 웹 서비스의 동작 원리 이해하기클라이언트-서버 구조-클라이언트: 서비스를 사용하는 프로그램 또는 컴퓨터-서버: 서비스를 제공하는 프로그램 또는 컴퓨터-클라이언트의 요청에 응답하려면 서버가 실행중이어야 한다 localhost:8080/hello.html의 의미-localhost: 내컴퓨터-8080: 포트번호-helllo.html: 웹브라우저(클라이언트)에서 서버에 요청한 파일(src>main>resources>static 디렉토리에서 기본적으로 파일을 찾는다) 2장 MVC 패턴 ..
섹션7 스프링 DB 접근 기술 1.H2 데이터베이스 설치설치 완료~ 2.순수 JDBC이렇게 설정해두면 스프링이 DB연결을 위한 작업을 다 알아서 해준다이 파트는 옛날 개발에서는 직접 구현했지만 요즘은 잘 사용하지 않으므로 그냥 보면서 넘기기로 한다!*개방-폐쇄 원칙(OCP, Open-Closed Principle): 확장에는 열려있고 수정, 변경에는 닫혀있다우리가 JdbcMemberRepository를 생성했지만 다른 코드는 전혀 건들지 않았던 것처럼 스프링의 DI(Dependency Injection)을 사용하면 기존 코드를 전혀 손대지 않고, 설정만으로 구현 클래스를 변경할 수 있다 3.스프링 통합 테스트@Transactional: 트랜잭션을 먼저 실행->두 개의 데이터를 INSERT->ROLL@S..
섹션4 회원관리 예제 - 백엔드 개발1.비즈니스 요구사항 정리데이터: 회원ID, 이름기능: 회원등록, 조회-컨트롤러: 웹 MVC의 컨트롤러 역할-서비스: 핵심 비즈니스 로직 구현(ex 회원은 중복가입 불가)-도메인: 비즈니스 도메인 개체(ex 회원, 주문, 쿠폰,... 주로 db에 저장/관리)-리포지토리: db에 접근, 도메인 개체를 db에 저장/관리 2.회원 도메인과 리포지토리 만들기회원 도메인package hello.hello_spring.domain;public class Member { private Long id; //id식별자(for system) private String name; //이름이 있다 public Long getId() { return id; ..
섹션1 : 강의 소개1.개발 환경 구축하기intellij 다운로드 -> oracle에서 java17 다운로드 후 환경변수 설정(터미널) -> 스프링 설정 후 다운로드 -> intellij에서 스프링 다운로드까지 모두 마쳤다!강의에서는 java11 다운로드를 권장하지만 스프링부트가 3.~로 업데이트 된 이후로 17이상의 버젼만 작동한다.intellij는 학교 교육메일을 이용하여 유료버젼을 무료로 이용 가능하다 :) 2.살펴보기src 밑에는 main 파일과 test 파일이 나뉜다. 요즘 개발 트렌드에서는 test코드가 매우 중요하다!! 섹션2: 프로젝트 환경설정1.프로젝트 생성브라우저에 localhost:8080 에 들어갔을 때 이 에러페이지가 뜨면 성공이다! (현재는 아무것도 작성하지 않았기 때문에 에러페..