본문 바로가기

Dev.BackEnd/Spring Boot

(7)
#SLiPP Spring boot, JPA 강의 - 반복주기 6 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기 6학습 내용AJAX를 활용해 답변 추가 기능 구현AJAX를 활용해 답변 삭제 기능 구현질문 목록에 답변 수 보여주기 기능 추가 중복 제거 및 리팩토링 JSON API 추가 및 테스트 쉘 스크립트를 활용해 배포 자동화 Intro기존의 MVC구조에서 서버와 클라이언트가 데이터를 주고 받는 방식은 다음과 같다. 클라이언트에서 데이터가 서버의 컨트롤러에 날라가고(프런트 컨트롤러의 역할), 컨트롤러는 모델에게 그 데이터를 전달하여 데이터베이스에 저장(페이지 컨트롤러의 역할)한다. 그리고 컨트롤러는 데이터의 변경사항을 반영하여 HTML 전체를 다시 구성(뷰의 역할)한 다음에 클라이언트에게 보내준다. 그러면 클라이..
#SLiPP Spring boot, JPA 강의 - 반복주기 5 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기 5학습 내용 1. 회원과 질문 간의 관계 매핑 및 리팩토링 2. 날짜 추가하기 3. 질문 상세보기 기능 / 질문 수정 및 삭제 기능 구현 - PutMapping, DeleteMapping 4. 답변 추가 및 답변 목록 기능 구현 5. Refactoring을 통한 중복 코드 제거 회원과 질문 간의 관계 매핑 JPA에서도 데이터베이스의 개념인 릴레이션 간의 관계를 설정할 수 있다. SQL 문을 사용했을 때와 다른 점은 테이블과 테이블의 관계를 객체 상에서 설정해주는 것 뿐이다. Question 객체와 User 객체가 관계를 맺도록 한다고 했을 때 User 객체와 Question 객체는 어떠한 관계인가를 따..
#SLiPP Spring boot, JPA 강의 - 반복주기 4 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기 4학습 목표 쿠키와 세션에 대한 대략적인 이해 로그인 사용자에 대한 접근 제한 1. 로그인 기능 구현 2. 로그인 상태에 따른 메뉴 처리 및 로그아웃 3. 로그인 사용자에 한해 자신의 정보를 수정하도록 수정 4. 질문하기, 질문목록 기능 구현5. 중복 제거 및 리팩토링6. 원격 서버에 소스코드 배포 1. 로그인 기능 구현 로그인 기능은 페이지가 바뀌더라도 로그인 상태를 유지하는 것이 중요하다. 어떻게 상태를 유지할 것인가? 기본적으로 웹 애플리케이션인 상태를 저장하는 방법이 없다. 코드를 작성하기 전에 로그인을 구현하는 과정을 살펴보자. 로그인의 흐름은 대략 이렇다. 로그인하려는 아이디를 전달받으면 해..
[Spring boot] Spring-Boot에서 JDBC Driver 설정하고 사용하기 Spring boot + jdbc driver 로 데이터베이스 사용 환경 설정 1. application.properties 에 해당 코드를 추가한다.code>>12345spring.application.name=SpringBootJdbcspring.datasource.url=jdbc:mysql://localhost/dbproject?autoReconnect=true&useSSL=falsespring.datasource.username=rootspring.datasource.password=(****)spring.datasource.dirverClassName=com.mysql.jdbc.DriverColored by Color Scriptercs 해당하는 Database를 dbproject라는 자리에 적..
#SLiPP Spring boot, JPA 강의 - 반복주기 3 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기3내용1. H2 데이터베이스 연동하기 2. 데이터베이스 조작하여 값 추가하기 3. HTML, URL Refactoring 4. 개인정보 수정 기능 구현하기 1. H2 데이터베이스를 사용하여 프로젝트에 데이터베이스 사용! H2 데이터베이스는 JAVA로 작성된 RDBMS이다. spring-boot jpa 를 이용한다. JPA에 대한 설명은 다음 포스팅을 참고하길 바란다. >> ORM에 대한 포스팅 >> H2 데이터베이스는 별도의 설치가 필요하지 않다. 데이터베이스 실습을 위해 mysql을 설치해본 사람이라면 데이터베이스를 별도의 설치과정 없이 사용할 수 있다는 장점이 얼마나 큰 것인지를 알 수 있을 것이다...
#SLiPP Spring Boot, JPA 강의 - 반복주기 2 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기2 학습내용 동적인 HTML 웹 페이지 개발할 수 있다. Spring MVC의 Model, View, Controller 에 대한 이해를 한다. + 강의 상 약간의 오타! form.html에서 E-mail을 입력받을 수 있는 input 태그를 추가하면서 로 해줘야 한다! 지난 번 강의와 html이 약간 차이가 난다. 이러한 부분이 신경쓰인다면 강의 github에 가서 clone 으로 내려받은 다음 이번 반복주기를 들어가자. 강의들을 때는 몰랐는데, 혼자 복습 과정 중 '삽질'했던 부분강의를 들을 때는 ‘음, 당연하지, 그렇지.' 하면서 쉽다고 느껴졌던 부분이 혼자 새하얀 에디터에서 부터 시작하려니 막막한..
#SLiPP Spring Boot, JPA 강의 - 반복주기 1 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >> 반복주기 1Spring boot에 대해서초기 스프링은 구성에 필요한 XML 코드가 많았다. 이를 극복하기 위한 수 많은 노력들이 있었다. 그러나 스프링 고유의 복잡한 구성에서 벗어나지 못했다. 모든 구성 작업은 개발 저항으로 타나난다. 애플리케이션 로직 작성 대신 구성 작업에 쓰는 시간은 모두 낭비다. 스프링 기능 구성에 신경을 쓰게 되면 비즈니스 로직을 설계하는데 방해가 되기 때문이다. 스프링은 많은 일을 대신 처리하지만, 개발자가 해야 할 부분도 함께 늘어나는 것이다. 게다가 어떤 라이브러리를 프로젝트 비륻에 포함해야 하는지 결정하는 일은 까다롭다. 의존성 관리는 중요한 문제지만, 또 다른 저항이 된다. ..