목록개인 공부/스프링부트 개념정리 (30)
나의 개발 성장일지

SELECT와 UPDATE는 COMMIT시 데이터 적용해주면되는거고 INSERT와 DELETE는 바로 DB에 적용해줘야한다. 1. 1-1 톰캣시작->필터들 메모리에 올라감(권한필터,인증필터,한글인코딩필터)->걸러냄 1-2 디스패쳐가 메모리올라감 ->주소를 받아 주소에 맞는 컨트롤러에 요청해줌 1-3 Controller,Service,Repository,영속성컨텍스트는 사용자요청시마다 쓰레드1개씩 추가로 만들면서 메모리에뜸 1-4 데이타소스는 톰캣시작과 같이 메모리에 장착 1-5 인터셉터(2차필터)는 컨트롤러에 함수가 실행되기전 해당 데이터에대한 권한체크하는것\ 1-6 필터는 입장이가능한지 안한지 권한체크를 하는곳임 1-7 서비스단에서 트랜잭션시작과 종료를하니까 관리가능 2 영속성 컨텍스트에 찾는 객체가존..

1. 1-1 요청이 오면 JDBC커넥션->트랜잭션->영속성컨텍스트시작 1-2 영속성컨테스트는 요청마다 일어남 2.기존방식문제점 개선하기 2-1 플레이어는 2개이상 팀을 가질 수 없다 2-2 팀은 다수의 플레이어를 가질 수 있다. 2-3 EAGER전략은 연관된테이블 다 호출 2-4EAGER 전략일때 흐름도 2-5 open in view =true일때 lazy전략 ->영속성컨텍스트 종료가 다름! 2-5-1 영속성컨텍스트가 컨트롤러까지 살아있음 2-5-2 프록시객체가 컨트롤러에서 호출시 진짜객체로변함 2-5-3 jdbc도 살짝열려서 팀객체를 불러옴 ->select만가능 -> 다른건 다 꺼졋음

1.트랜잭션 :일이 처리가 되기위한 가장 작은 단위 1-1서비스->여러트랜잭션이 모인 트랜잭션 1-2 오라클은 COMMIT된거만 READ를 한다. 2 트랜잭션이끝나기전 데이터요청 2-1 A가 트랜잭션을 시작하고 UPDATE를하면 COMMIT이 되기전까지 11번에 임꺽정으로만 SELECT가능하다 2-2 현재까지 COMMIT된 데이터를 UNDO영역에 한번더 저장한다 2-3 B는 UNDO영역에서 데이터를 구한다. 3. 부정합 3-1 트랜잭션이 실행되는동안 동일한 select시 같은데이터가나와야함 3-2 동일한 SELECT동안 데이터가 보였다안보였다->팬텀리드 4.MYSQL이 부정합을 방지하는 방법 ->REPEATABLE COMMIT 4-1 READ COMMIT은 UNDO영역에 COMMIT된 데이터를 가져온다 ..
1.요청에 대한 응답을 HTML이 아닌 DATA(JSON)을 받기위해 1-1 Ajax를 사용하면 data를 받아오니 범용성이 좋다. 1-2 페이지를 반환하는 방식은 페이지를 해석하는 브라우져가 필요하므로 범용성이 안좋다 2.비동기통신을 하기위해서다 2-1 ajax사용 ->서버에서 데이터가져와야함->시간이오래걸림 ->다음순서부터 cpu가 진행함 ->서버에서 데이터를 브라우져로 가져옴 ->하던일까지멈추고 cpu가 그데이터를 처리함(콜백)

https://www.w3schools.com/bootstrap4/bootstrap_get_started.asp Bootstrap 4 Get Started W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schools.com 단축키 ctrl+shift+Enter하면 정렬하기 1.띄어쓰기 간격조절과 한글설정 2.기본View파일 경로 2-1 static폴더는 정적인파일만 존재한다 2-2 src/m..
1.Get요청 http://Localhost:8080/blog/user?username=ssar 특징 : body로 데이터를 담아 보내지 않음. 2.Post, Put ,Delete요청(데이터를 변경) 2-1데이터를 담아보내야할것이 많음. 2-2 form태그의 한계 -> get요청,post요청만 가능,데이터가 (key=value)로 날아감 2-3 그래서 자바스크립트로 요청을해야함 통일: form태그보다 자바스크립트 ajax요청->데이터는 Json으로 통일 3. 스프링 컨트롤러의 파싱 전략 1 스프링 컨트롤러는 key=value 데이터를 자동으로 파싱하여 변수에 담아준다. 가령 get요청은 key=value이고 post요청중에 x-www-form-urlencoded (form태그를 만들어서 데이터 전송) 시..

1. 2. 3. 프로그램->프로세스가 되었을때 메모리에서 생기는일 3-1 프로세스가 필요로하는 재료들이 메모리에 올라가야한다. 3-2 메모리에 코드영역,데이타영역,Heap영역,stack영역에 나눠서 메모리에 올라감 3-3 해당프로세스 대한 정보를 가진 PCB블록이 생성된다. 3-3-1 Pointer ->프로세스상테 중 준비나 대기상태의 큐를 구현 3-3-2 Process State ->현재 프로세스상태를 담음 3-3-3 Pid->고유변호를 담음 3-3-4 ProgramCounter ->다음명령을 가리킴 4 컨텍스트스위칭)프로세스단위로 프로세스 2개를 동시에 실행시키고싶다면? 4-1 회의시 3팀이있는데 1팀마다 자기가 사용한 마이크랑 책상 다 들고나감 4-2 다음사람이랑 겹쳐서 냅둬도 되는 물건 다바꿈 5..

https://ict-nroo.tistory.com/130 [JPA] 영속성 컨텍스트와 플러시 이해하기 영속성 컨텍스트JPA를 공부할 때 가장 중요한게객체와 관계형 데이터베이스를 매핑하는 것(Object Relational Mapping) 과영속성 컨텍스트를 이해하는 것 이다. 두가지 개념은 꼭 알고 JPA를 활용하자. ict-nroo.tistory.com 1.더티체킹 1-1 USER정보를 수정후 DB에 Save함수를 호출하지않아도 @Transactional을 붙이니 수정됨 2.영속성 컨텍스트와 더티체킹의 원리 2-1 더티체킹(Dirty Checking)이란 상태 변경 검사이다. JPA에서는 트랜잭션이 끝나는 시점에 변화가 있는 모든 엔티티 객체를 데이터베이스 반영한다. 그렇기 때문에 값을 변경한 뒤, ..

1. 수정하기 1-1 클라이언트 1-1-1 클라이언트측에서 URL과 BODY에 데이터실어서 요청 1-1-2 raw데이터-> Json방식-> key,value에 ""를 붙여야됨 1-2 서버 1-2-1 @RequestBody -->Json데이터요청->Java Object로받아줌 (MessageConverter의 Jackson라이브러리가변환해서받아줌) 2 SAVE함수의 특성 3. 람다식의 필요성 3-1 자바는 파라미터에 함수를 넣을 수없다. 3-2 람다식을 사용하면 자바 파라미터에 함수를 넣을수 있다. 3-3 람다식의 조건이 존재한다. 4 객체로 요청처리하기 4-1 DTO객체에 요청받은데이터를 넣어준다. 4-2 파라미터로 받은 ID로 DB접근-> 해당ID의 user데이터를 가져온다 4-3 user데이터를 se..