본문 바로가기

Join Equi join / Non-equi join 1. Equality condition(=) join=을 사용해 일치하는 값을 조회한다.[tip] hash join은 Equi join만 사용 가능하다.SELECT * FROM EMP, DEPTWHERE EMP.DEPTNO = DEPT.DEPTNOAND EMP.ENAME LIKE '임%'ORDER BY ENAME;2. Non-Equi join>, =, 중복되지 않는 튜플 합치기 과정으로 수행되기 때문에 정렬이 발생한다.SELECT DEPTNO FROM EMPUNIONSELECT DEPTNO FROM EMP 2. 교집합 : INTERSECT 연산SELECT 연산의 결과를 교집합한다.SELECT DEPTNO FROM EMP INTERSECTSELECT DEPTN..
Java 진영의 persistent framework persistent framework persistent layer(data access layer)를 다루는 프레임워크를 persistent framework 라고 한다.persistent framework는 다음 두 가지로 분류할 수 있다. 1. SQL MapperObject의 필드와 SQL 문을 매핑SQL 문을 이용해 직접 데이터베이스를 조작MyBatis2. ORMObject 필드와 데이터를 매핑코드를 통해 데이터를 조작 가능(ORM 프레임워크가 쿼리를 자동 생성)persistent API라고 할 수 있음JPA, Hibernate(JPA를 구현)Java 진영의 persistent framework 1. JDBC(Java database connectivity)Java에서 DB접근을 할 수 있도록 하..
파일 업다운로드 기본설정, 멀티파트 미디어 타입 1. 멀티파트 미디어 타입 POST 방식의 전송은 POST body에 데이터를 포함시켜 전송한다. 이 때, 다음 두 가지 방식을 사용할 수 있다.application/x-www-form-urlencoded : 일반 파라미터만 전송 가능multipart/form-data : 파일 전송 가능multipart 미디어 타입은 단일 body에 다중 resource로 설계된 타입이다.이미지에서 볼 수 있듯 하나의 body에 여러 컨텐츠가 포함되며 각 컨텐츠는 boundary로 구분된다.특히 마지막 boundary의 끝에는 --가 붙어 body의 끝을 알린다. (이는 모두 HTTP 통신 규격에 따른다.)만약 데이터의 크기가 패킷 크기보다 크다면(1500byte), 여러 패킷으로 쪼개져서 전송된다. 2. spring ..
로깅, SLF4J 1. SLF4J로깅 패사드로깅에 대한 추상화된 인터페이스를 제공해준다.즉, SLF4J를 사용하면 로깅 라이브러리에 대한 의존성을 제거해준다.(손쉬운 모듈 교체 가능) 2. spring에서 SLF4J 사용하기 1) spring 기본 로깅 모듈 제거spring은 기본적으로 common-logging을 사용이를 제거하고 slf4를 추가org.springframeworkspring-context${spring.version}commons-logging commons-logging 2) jcl-over-slf4 추가commons-logging을 대체하는 SLF4J 라이브러리추가하지 않으면 spring은 commons-logging을 찾지 못했다는 오류를 발생시킨다. org.slf4jjcl-over-slf4j1.7..
인터셉터, 서블릿 필터 1. filter(servlet filter)Request가 들어오기 전, Response가 나가기 전 적용(선처리, 후처리 작업)web.xml 에 등록하여 사용 2. 인터셉터DispatcherServlet과 handler 사이에 요청을 보내기 전, 받기 전에 적용(선처리, 후처리 작업)컨트롤러에 대한 공통된 작업을 처리하는데 사용할 수 있다.
[해결] intellij spring 설정 중 NoClassDefFoundError 1. 오류내용NoClassDefFoundError: org/apache/commons/dbcp2/BasicDataSource 2. 문제DBconfig 파일에서 BaiscDataSource()를 실행하지 못했다.검색 결과 주된 이유가 pom.xml에 common-dbcp2를 명시하지 않는 것이었는데,pom.xml 디펜던시에 dbcp가 추가되어 있었음에도 클래스를 찾을 수 없다는 오류가 발생했다. 3. 해결방법 모듈은 다운받아져 있는데, output으로 추가하지 않아서 발생한 문제였다.project setting -> artifacts 창의 오른쪽 부분에 available element가 있는데(붉은 색으로 표시된 부분), 거기서 모듈을 더블클릭해서 추가해 주면 된다.이 작업을 해주지 않으면 out 으로 컴..
상태 정보 유지(쿠키, 세션) 1. 쿠키, 세션 개념 HTTP는 stateless하기 때문에 상태 유지를 위한 별도의 프로토콜이 필요하다. 1) 쿠키상태 정보를 사용자 컴퓨터에 저장(보안 이슈 있을 수 있음)key,value 형태로 값을 저장(간단한 부가 정보 포함 가능)key값 중복 불가. 중복될 경우 덮어씌워진다.서버는 쿠키의 유효시간을 설정할 수 있다.서버는 쿠키를 임의로 삭제할 수 없다. 단, value가 null인 쿠키로 덮어씌울 수는 있다.2) 세션상태 정보를 서버에 저장각 클라이언트마다 세션id와 세션객체(HttpSession 객체) 생성2. 동작 방식 이해1) 쿠키 동작 방식2) 세션 동작 방식 [참조][JSP] 웹에서 쿠키(Cookie)의 사용 : https://hyeonstorage.tistory.com/114
spring mvc 프로젝트 구조 1. 구조https://www.javaguides.net/2019/01/spring-mvc-project-structure.html 2. WEB-INF뜻과 사용법servlet 규격에 따라 사용되는 디렉토리웹과 관련된 항목 중 브라우저에서 직접 접근할 수 없도록 해야 할 파일들을 보관(WEB-INF 폴더는 노출되지 않는다)보안을 위해 jsp 파일(view)는 WEB-INF에 보관하여 직접 접근이 불가하게 해야 한다.이와 반대로 css, 이미지, javascript와 같이 브라우저가 참조해야 하는 것은 WEB-INF 밖에 보관해야 한다.(일반적으로 Context root 하위에 static 폴더를 만들어 보관한다.)[참조] http://blog.naver.com/PostView.nhn?blogId=p9529..