
메타코딩 : https://www.youtube.com/watch?v=S7LBQxgoVP0&list=PL93mKxaRDidECgjOBjPgI3Dyo8ka6Ilqm&index=61 DataSource - 데이터베이스에 질의 요청 DB - 결과가 있으면 응답 해준다 user DataSource - DB에서 결과를 받아서 영속성컨텍스트에 response 해준다 영속성 - user 오브젝트가 만들어진다 - repository 돌려주고 repository - 서비스 응답 Service - user null 확인 만약 있으면 Controller 응답 세션 - user오브젝트 등록 Controller - /페이지 이동 RESTController - 데이터만 응답 ,메세지 자체를 응답 Controller - html페..

🤍글 상세보기 구현하기 1. Index.jsp 글 상세보기 버튼에 태그 추가 2. BoardController 작성 //글 상세보기 @GetMapping("/board/{id}") public String findById(@PathVariable int id, Model model) { model.addAttribute("board", boardService.글상세보기(id)); return "board/detail"; } 3. BoardService 작성 public Board 글상세보기(int id) { return boardRepository.findById(id) .orElseThrow(()->{ return new IllegalArgumentException("글 상세보기 실패: 아이디를 찾을 ..

🤍글쓰기 구현하기 1.BoardController 작성 //글쓰기 @GetMapping("/board/saveForm") public String saveForm() { return "board/saveForm"; } 2. saveForm.jsp 작성 글쓰기 완료 3. content 부분은 summernote를 적용했다. (For Bootstrap4) 적용한 모습 4. 글쓰기 버튼 클릭시 글이 등록되도록 board.js 작성 let index = { init: function() { $("#btn-save").on("click", () => { this.save(); }); }, save: function() { //alert('user의 save함수 호출됨'); let data = { title: $(..

🤍스프링 시큐리티 구현하기 스프링 시큐리티는 스프링 기반의 애플리케이션(인증, 권한, 인가 등)을 담당하는 스프링 하위 프레임워크임. 1. 인증이 안 된 사용자들이 출입할 수 있는 /auth/ 경로를 UserController에 추가해 준다. 2. 요청이 들어왔을 때 인증이 필요한지, 필요하지 않은지 구분하는 시큐리티 필터를 등록하는 SecurityConfig 클래스 생성 3. 설정 후 localhost:8080 주소로 접근하면 아래와 같은 화면이 뜨지만 4. 인증없이 접근할 수 있도록 설정해놓은 /auth/ 주소로 접속하면 페이지가 잘 뜨는 것을 확인할 수 있다. 5. 기존에 작성한 loginForm.jsp에서 form태그를 수정한다. 6.SecurityConfig 코드를 아래와 같이 수정하면 위의 f..

폼은 지난번에 만들어둔 loginForm을 활용하고 Ajax 코드도 회원가입 코드를 복사해서 수정 후 활용할 것이다. 1. 로그인 버튼 수정 로그인 2. User.js 에 로그인 코드 작성 let index = { init: function(){ $("#btn-save").on("click",()=>{//function(){} 대신 ()=>{} : this를 바인딩하기 위해서 this.save(); }); $("#btn-login").on("click",()=>{//function(){} 대신 ()=>{} : this를 바인딩하기 위해서 this.login(); }); }, login: function(){ //alert('user의 save함수 호출됨'); let data = { username: $(..

메타코딩 - (스프링부트 강좌 45강(블로그 프로젝트) - 스프링 JPA의 OSIV 전략) 확인! 🔍트랜잭션 이란? 일을 처리되기 위한 가장 적은 단위 🔍데이터베이스 격리 수준(Isolation Level) 이란? 트랜잭션에서 일관성 없는 데이터를 허용하는 수준 PHANTOM READ (데이터가 보였다 안보였다) -> 정합성이 깨짐 더보기 즉 자기 트랜잭션 번호보다 낮은 undo 로그를 보고 select 한다 🔍DB 격리 수준 종류 Read Uncommitted Read Commited Repeatable Read Serializable Read Uncommitted -> Serializable 로 갈수록 격리 수준이 높다.(high) Serializable -> Read Uncommitted 로 갈수록..

1. 트랜젝션 관리 - 2. 서비스 의미 때문 ex) 송금 서비스 1. 홍길동 금액 update() - commit 2. 임꺽정 금액 update() - commit 원래는 금액 2개를 업데이트 하는데 하나씩 트랜젝션을 하게 되는데 두개의 트랜젝션을 하나의 트랜젝션으로 묶어서 서비스화 시킬수 있다!!! 즉 여러개의 트랜젝션을 묶어서 하나로 만들수 있기 때문에 사용한다

1. 요청에 대한 응답을 html이 아닌 Data(Json)로 받기 위하여 Ajax를 사용하는 첫번째 이유 : 고객이 사용하는 클라이언트는 크게 2가지로 웹과 앱이 있으며, 일반적으로 서버로 부터 응답받을때 웹은 HTML파일을 받고 앱은 데이터(JSON)를 받는다. 이것은 서버를 이원화하여 구축한 것을 의미하며 이때 '서버를 통합하여 각각의 클라이언트에게 응답해줄순 없을까?'라는 의문점에서 고안된 방법이 Ajax통신이다. Ajax통신을 사용하면 웹은 서버로부터 데이터(JSON)를 리턴받을 수 있으며 그렇게 되면 서버의 분리 필요없이 하나의 서버로 각각의 클라이언트 요청을 받아 응답해줄수 있게된다. 대신 웹클라이언트는 추가적인 요청을 통해 HTML파일을 받아야한다. 2. 비동기 통신을 하기 위해서