80일차 렌더링이 끝난 후에는 body에 append는 가능하지만 header에 데이터를 추가할 수 없다 도착하는 시점에 header를 읽을 수 있다 ajax: header를 세팅하는 기술, body가 없다. view방식 : body에 접근 ajax방식 : header에 접근 -> 특성에 맞게끔 사용 로그인 => jwt 발급 : ajax (최초 발행) AL insert를 제외한 Authentication 진행 + session에 groupCode 저장 local storage : 브라우저 종료시에도 남아있음 session storage : 브라우저 종료시 삭제 sessionStorage.setItem('JWT', jwt) => session Storage에 저장 sessionStorage.getItem('JWT'..
썸네일 79일차 페이지 렌더링 : 동적인 페이지의 데이터를 el로 담을 때 ... 렌더링을 시작하기 전에 발생하는 handler : post handler 렌더링을 끝낸 후 발생하는 handler : afterCompletion api의 경우 두 단계 (post handler, afterCompletion)는 발생하지 않는다 redirect를 두번 발생시키는 것은 비효율적인 방법이긴하다 .. modelAttribute로 redirect를 하는 방법, model은 dispatcher방식만 사용하긴 한다. redirect:/를 추가하면 redirect view resolver ? 를 찾는다.. parameter 존재 여부에 따라 set get을 구분해준다.
썸네일 78일차 Json Web Token Header.Payload.Signature type algorithm claim, claim, claim, ... -> claims claim이 여러개일때는 claim의 추출을 위해 setSubject가 필요하지만 claim이 하나 일땐 Subject가 필요없음 AOP ? filter: Apache interceptor : servlet context preflight : 사전 통신 ?? req.getMethod().equals("OPTIONS") 면 token 인증 필요하지 않음 preHandle false: interceptor를 통과, true: interceptor 통과시키지 않음 CORS cross origin resource sharing SOP Access - C..
썸네일 76일차 mybatis association ? id필드는 부모.. 가지고 있어야한다 collection은 arrayList에 대해 작동
썸네일 75일차 proxy server : 임시 서버,
썸네일 74일차 ACID 선언적 transaction Isolation level DEFAULT 0 READ UNCOMMITTED >> Dirty Read 1 READ COMMITTED >> Dirty Read Prevention 2 REPEATABLE READ >> Non-Repeatable Read Prevention 3 SERIALIZABLE >> Phantom Read Prevention 모든 사용자가 공용으로 사용할 temporary table repeatable_read shareLock ? 읽는 동안은 dml을 사용할 수 없음, select는 가능 모든 사람의 select 가 끝나면 dml이 가능하다 .. insert delete 가능 update 불가능 serializable : 직렬화 기법 모든 사용자가..
썸네일 73일차 serverCallByFetchAjaxUsingJson?! 이미 등록되어있는 정보를 이용해 insert할 경우는 를 사용한다! 원래 오라클의 insertAll은 서로 다른테이블에 데이터를 집어넣기 위해 사용함! open : InsertALL : 반복하지 않을 구문 오라클은 close구문이 필요하다. 그래야 대기하지 않고 반복을 멈춤...timeout 방지 DML구문은 ";" 사용하지 않는다.. Procedure, Function, Trigger을 사용하는 PL/SQL에서는 세미콜론 사용가능하다 insert를 사용할 경우 하나의 행에 대해서만 적용되기 때문에 태그를 사용해야한다. 여러개의 값을 가져올 경우 selectKey에서 keyColumn을 명시해주어야한다..! toCharArray 암호화된 데이터를..
썸네일 72일차 data.zonecode , data.roadAddress 다음이 정해놓은 .. https://postcode.map.daum.net/guide Daum 우편번호 서비스 우편번호 검색과 도로명 주소 입력 기능을 너무 간단하게 적용할 수 있는 방법. Daum 우편번호 서비스를 이용해보세요. 어느 사이트에서나 무료로 제약없이 사용 가능하답니다. postcode.map.daum.net
썸네일 71일차 싱글톤 @Service Spring에서의 bean ? @Autowired
썸네일 70일차 get, post : 페이지를 전달 받을 때를 위한 method server단에서는 적용하는 어노테이션이 다름 get: URL에 서버에 전송할 데이터까지 전송 post: header에 전송할 데이터를 담아 전송 format : 데이터를 날릴 형식 ! => URLEncoded : 데이터를 전달할 때 (ex. groupName : jobCode?groupName="group1", 우리가 get을 사용하던 방식) 텍스트 기반이므로 파일을 전송할 수 없음 => form : 바이너리 파일도 전송가능!! 일반적으로 바이너리 파일 존재 여부에 따라 format을 지정하지 않음 .......주로 form 방식을 사용!! Ajax에서는 form 형식으로 만들어 준다 ..?! 명시하지 않아도 js의 formData 방식을..
썸네일 69일차 @RunWith : Junit이 가지고 있는 기능 Spring-test가 RunWith를 지원해줌. 단위테스트(특정 클래스만 테스트)할 때 RunWith는 고정 @contextConfiguration으로 환경설정을 한다. => 임시적으로 root-context 실행가능 @Log4j : 테스트하기 전에 기록을 남길 때 Autowired(injection) : 자동주입, 메모리상에 생성된 bean 탐색 (bean: dbcp,data source, sqlfactory, session, tran) onMethod_ : 로그에 저장할때 (필요할 때) setMethod를 Log4j에 자동으로 생성 데이터 타입이 일치하는 요소가 여러개일경우 qualify 사용해서 이름으로 구분한다 mapper.xml : DAO 역할..
썸네일 68일차 dispatcherServlet : 톰캣! server.xml => 각 프로젝트의 web.xml 가동 @Component 1) @Controller 2) @Service 3) @Resource 4) @Bean @Component만 만들면 하위 4개의 어노테이션을 메모리에 올림 orm : myBatis.. dbcp설정 connection pool? ORM (Object Relational Mapping) : DAO 역할 (JPA, ... ) get, set 안해도됨! reflection class 빈의 필드 이름과 컬럼의 이름이 일치하면 자동으로 setBean 해준다. DataSource : DBCP에서 connection을 찾아줌 ... 어떤 conneciton을 줄지 결정 ,,,, dbcp를 제어 to..