데이터베이스(Database) 데이터베이스란? 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합 논리적으로 연관된 하나 이상의 자료의 모음 데이터들을 고도로 구조화 함으로써 검색과 갱신의 효율화를 꾀한 것 몇 개의 자료 파일을 조직적으로 통합하여 중복을 없애고 자료를 구조화 시킨 자료의 집합체 DB란 무엇일까 통합된 데이터(Integrated Data) 각자 사용하던 데이터를 모아서 중복을 최소화하고 데이터 불일치를 제거 저장된 데이터(Stored Data) 문서 형태로 보관되는 것이 아니라 저장장치(디스크, 테이프 등 컴퓨터 저장장치)에 저장됨 운영 데이터(Operational Data) 조직의 목적을 위해서 사용되는 데이터를 의미 공용 데이터(Shared Data) 여러 사람이 각각 다..
File Upload 파일 업로드 클라이언트가 서버로 파일을 전송하는 과정 여러 개의 파일을 업로드 할 수 있음 기존 방식의 Form 기존에 사용하던 은 문자 위주의 데이터를 사용 enctype="application/x-www-form-urlencoded" 기본 값(생략 가능) HTTP Body에 문자로 key=value 형태로 전송하고, 여러 개의 데이터라면 & 기호를 통해 구분하였음 파일 업로드 방식의 Form 파일은 문자가 아닌 바이너리 데이터를 전송 파일만 전송하는 것이 아니라 다른 데이터를 같이 전송하기도 함 enctype="multipart/form-data", method="POST" 필수 여러 개의 파일을 업로드하고 싶다면 multiple="multiple" 속성 추가 필요 참고할 블로그..
MVC 패턴을 접한지는 어느덧 반년이 넘었다. MVC 패턴을 처음 접하고 Model, View, Controller를 구현하면서 정말 재미있게 구현했던 기억이 난다. 그러다가 Model, View, Controller에 이어서 Service를 분리하여 구현하는 코드를 접하게 되었다. 하지만 그때의 나는 왜 꼭 Service가 필요하지? Controller에서 모든 코드를 구현하면 안되나? 라고 생각하며 Service의 필요성을 확실하게 느끼지 못하였고, 현재까지도 개발할 때 Service를 만들긴 하였으나, 왜 Service가 필요한지, Controller와 어떻게 분리해야 하는지에 대한 확실한 이해가 없이 개발을 해왔던 것 같다. 그렇기 때문에 이번 기회를 통하여 Controller와 Service의 ..
오늘은 Filter와 Interceptor에 대한 공부를 하였다. 먼저 Listener, Filter, Interceptor의 정의에 대해서 알아보고, 이번 내용의 핵심인 Filter와 Interceptor를 비교하면서 정리하고자 한다. Listener부터 시작하겠다. Listener, Filter, Interceptor Listener란? 프로그래밍에서 Listener란 특정 이벤트가 발생하기를 기다리다가 실행되는 객체 이벤트란 특정한 사건 발생 버튼 클릭 ,키보드 입력, 컨테이너 빌드 완료, 웹 어플리케이션 시작, HTTP 요청 수신 등 서블릿 컨테이너에서 발생하는 이벤트 감지 web.xml 파일에 태그를 이용하여 사용 가능 리스너가 여러 개일 경우 보통 선언된 순서대로 실행되지만 아닌 경우도 있음 ..
MVC 패턴 요청과 응답의 흐름 1 forward 서버 내부에서 일어나는 호출 클라이언트의 URL에 대한 요청이 들어오면 해당 URL이 다른 URL로 포워딩된 것이 확인되었을 경우 URL의 리소스를 확인하여 클라이언트에 응답 포워딩이 일어나면 클라이언트 단에서는 아무런 동작 X, 모든 동작을 서버에서 처리 클라이언트(웹브라우저)에서 요청한 URL은 물론 요청정보도 바뀌지 않음 redirect 서버가 클라이언트에서 요청한 URL에 대해 응답에서 다른 URL로 재접속하라고 명령을 보내는 것 URL을 다시 가리킨다라는 뜻 클라이언트는 해당 URL로 다시 요청 URL 주소가 바뀌면서 다시 접속되는 것을 확인 가능, 클라이언트 또한 리다이렉션이 일어났음을 알 수 있음 웹브라우저 서버에서 Redirect를 하라는 ..
관점 지향 프로그래밍(AOP) AOP(Aspect Oriented Programming) 어플리케이션 로직에는 핵심 기능과 부가 기능이 존재 핵심 기능: 객체가 제공하는 고유의 기능 부가 기능: 핵심 기능을 보조하기 위한 기능(시간 측정, 로그 추적, 트랜잭션 관리 등) OOP에서 모듈화의 핵심 단위는 클래스, AOP에서 모듈화의 단위는 Aspect Aspect는 여러 타입과 객체에 거쳐서 사용되는 기능(Cross-Cutting, 트랜잭션 관리 등)의 모듈화 AOP는 OOP를 대체하는 것이 아닌 보조하는 것이 목적 AOP 용어 Target: 핵심 기능을 담고 있는 객체 → 부가기능을 부여할 대상 Aspect 여러 클래스에 공통적으로 적용되는 공통 관심 사항(AOP의 기본 모듈) Advice + Point..