Cute Hello Kitty Kaoani

전체 글

Database/SQL

[SQLD] 데이터 모델링

데이터 모델링의 이해 데이터 모델링 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정 데이터베이스를 구축하기 위한 분석/설계의 과정 데이터 모델링의 특징 추상화 : 현실세계를 일정한 형식에 맞춰 표현 단순화 : 복잡한 현실을 제한된 언어나 표기법을 통해 이해하기 쉽게 표현 정확화 : 애매모호함을 배제하고 누구나 이해 가능하도록 정확하게 표현 💡 단추정! 데이터 모델링을 하는 주요 이유 분석된 모델을 가지고 데이터베이스를 생성하여 개발 및 데이터 관리에 사용 업무정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현 업무의 흐름을 설명하고 분석 데이터 모델링을 할 때 유의점 중복 : 여러 장소에 같은 정보를 저장하지 않도록 ..

WebServer/Spring

[Spring] Spring 개요

Spring은 엔터프라이즈용 Java 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 경량급 프레임워크이다. 엔터프라이즈용 Java 애플리케이션 개발을 편하게 할 수 있게 해주는 스프링이 등장하기 이전에는 비즈니스 로직을 구현하기 위해 일련의 작업들을 개발자들이 수 작업으로 처리했다면 현재는 스프링 프레임워크와 같은 도구들이 등장하면서 작업들이 자동화되고 효율적으로 관리될 수 있게 되었다. 또한, 빌드 툴이 발전하면서 개발과정에서 필요한 빌드, 배포, 테스트 등의 작업들도 자동화될 수 있게 되었다. Maven이나 Gradle과 같은 빌드툴을 사용하여 프로젝트의 의존성 관리와 빌드 과정을 자동화하여 개발자는 더욱 효율적으로 프로젝트를 관리하고 비즈니스 로직에 집중할 수 있게 되었다. 오픈소스 어떤 ..

WebServer/JSP&Servlet

[JSP&Servlet] JSTL (JSP Standartd Tag Library)

JSP에서는 사용자가 필요하면 tag를 자체적으로 만들어 사용할 수 있다. Apache에서는 메우 유용한 커스텀 태그를 제공하고 이 것을 JSTL이라 한다. ⚙️ 환경설정 프로젝트의 WEB-INF/lib 폴더에 jstl.jar standard.jar 파일 추가 제공 라이브러리 라이브러리 URI Prefix Core http://java.sun.com/jsp/jstl/core c XML Processing http://java.sun.com/jsp/jstl/xml x I18N formatting http://java.sun.com/jsp/jstl/fmt fmt SQL http://java.sun.com/jsp/jstl/sql sql Functions http://java.sun.com/jsp/jstl/fu..

WebServer/JSP&Servlet

[JSP&Servlet] EL (Expression Language)

데이터를 웹 브라우저에 출력하기 위한 문법으로서 다른 출력방법과 비교하여 훨씬 사용하기 쉽게 구성되어 있다. 서블릿에서 setAttribute(key, value) 메서드를 통해 scope에 저장된 데이터 값을 JSP에서 브라우저에 매우 편리하게 출력하는 용도로 사용한다. ${key} null 값을 비어있는 값으로 처리 ➡️ NullPointerException 발생 X null 여부 확인 방법: ${empty xxx} DTO에 저장한 경우 ${key.변수명} 형식으로 사용한다. 단, 조건 및 반복 처리를 못한다. ➡️ JSTL를 이용 🧩 테스트 서블릿에서 scope에 데이터를 저장한다. package com.controller; @WebServlet("/ELServlet") public class EL..

WebServer/JSP&Servlet

[JSP&Servlet] JSP 태그

JSP는 자바 코드 사용과 관련하여 다섯 가지의 스크립트 기반 태그를 제공한다. 태그 형태 의미 주석문(Comment tag) 주석처리 지시자(Directive tag) JSP 페이지에서 설정 가능한 속성들을 지시 선언문(Declaration tag) 변환된 서블릿의 멤버 변수와 메서드 선언 수행문(Scriptlet tag) 실행될 자바 코드 작성 표현식(Expression tag) 브라우저에 출력할 데이터 설정 💡 서버는 브라우저가 요청한 JSP파일을 찾아 서블릿 클래스로 변환한다. 이후 서블릿 객체와 동일하게 서블릿 컨테이너에 의해 생성되고 관리된다. hello.jsp ➡️ hello_jsp.java ➡️ hello_jsp.class ➡️ 실행결과는 html로 반환 지시자 Directive tag J..

WebServer/JSP&Servlet

[JSP&Servlet] 파일 업로드 (File upload)

개요 Apache 그룹에서 제공하는 Commons Fileupload 라이브러리를 이용하여 파일 업로드 기능을 구현한다. Apache Commons – Apache Commons Welcome to Apache Commons Apache Commons is an Apache project focused on all aspects of reusable Java components. The Apache Commons project is composed of three parts: The Commons Proper - A repository of reusable Java components. The Commons Sandbox - A commons.apache.org 💡 실행환경 Fileupload: comm..

WebServer/JSP&Servlet

[JSP&Servlet] 쿠키를 이용한 간단한 로그인&로그아웃

쿠키(Cookie)란? 클라이언트가 서버에 정보를 요청할 때 생성되는 상태정보 클라이언트에 데이터 저장 LoginServlet.java package com.servlet; @WebServlet("/login") public class LoginServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1. 로그인 폼에서 전송되는 아이디와 비밀번호 입력하기 String userid = request.getParameter("userid"); String passwd = request.getPara..

WebServer/JSP&Servlet

[JSP&Servlet] 세션을 활용한 간단한 로그인&로그아웃

세션(Session)이란? 클라이언트가 서버에 정보를 요청할 때 생성되는 상태정보 서버에 데이터를 저장 LoginServlet.java package com.controller; @WebServlet("/login") public class LoginServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1. 로그인 폼에서 전송되는 아이디와 비밀번호 읽어오기 String userid = request.getParameter("userid"); String passwd = request.getP..

WebServer/JSP&Servlet

[JSP&Servlet] 쿠키 관리 (Cookie)

쿠키(Cookie) 쿠키(Cookie)🍪는 사용자의 상태정보를 클라이언트에서 관리하는 메커니즘이다. 클라이언트에 정보가 저장되기 때문에 서버 부하가 크지 않으나 누구나 클라이언트에 접근할 수 있기 때문에 보안에 매우 취약하다. 쿠키 정보는 브라우저의 메모리 또는 OS 파일로 저장할 수 있다. 기본 저장은 브라우저 메모리기 때문에 브라우저를 종료하면 자동으로 쿠키 정보도 제거된다. Cookie API 이용 클라이언트(브라우저orPC)에 데이터 저장 저장되는 데이터는 문자열만 저장 가능 도메인(웹사이트)당 300개 까지만 저장 가능 클라이언트가 쿠키 사용 여부를 결정 time-out 지정 가능 사용자 인증이나 장바구니 기능에 주로 사용 Cookie API 메서드 설명 Cookie(name, value) 쿠키..

WebServer/JSP&Servlet

[JSP&Servlet] 세션 관리 (Session)

HTTP 기반으로 동작하는 클라이언트가 서버에 정보를 요청할 때 생성되는 상태정보를 세션이라고 한다. 세션을 통해 서버와 클라이언트 간의 지속적인 연결이 가능하다. 클라이언트는 지속적으로 서버에 특정 동작을 요청할 수 있으며 서버는 실행결과를 클라이언트에 응답할 수 있다. 등장배경 Http 프로토콜은 불특정 다수인 클라이언트와 지속적으로 연결하려면 웹 서버의 부하가 매우 크기 때문에 요청하고 응답 받으면 즉시 연결을 끊는 방식(connection-less, state-less)으로 동작이 된다. 이로인해 각 페이지마다 이전 페이지에서 했던 데이터 및 기능들을 현재 페이지에서 알 수가 없다. 즉, 첫 화면에서 선택한 물건을 장바구니에 담고 다음 페이지에서 결제할 때 이전화면의 장바구니에 담긴 정보를 확인할..

WebServer/JSP&Servlet

[Servlet] 요청 위임

클라이언트의 요청을 받은 서블릿에서 다른 컴포넌트(서블릿, JSP, html)로 요청을 위임할 수 있다. 직접 요청 받은 서블릿에서 모든 작업을 처리하지 않고 위임한 컴포넌트에서 특정 작업을 처리하여 모듈화가 가능하다. 위임 방식 HttpServletRequest 객체를 이용한 forward 방법 HttpServletResponse 객체를 이용한 redirect 방법 포워드 방식 (forward) 맨 처음 요청 받은 서블릿에서 생성된 HttpServletRequest 객체를 재사용하여 위임하는 방법으로 포워드(forward)라고 한다. 하나의 HttpServeltRequest 객체를 사용하기 때문에 request가 확장되어 포워드가 되었을 때 URL 변경이 안된다. request.getRequestDis..

Algorithm/알고리즘

[JAVA/알고리즘] 이진 탐색(Binary Search)

이진탐색 (Binary Search)은 정렬되어 있는 배열에서 데이터를 검색할 때, 탐색 범위를 절반씩 줄여가며 찾아가는 알고리즘이다. public static int binarySearch(int[] arr, int target) { int answer = 0; int lt = 0; // 왼쪽끝 lt int rt = arr.length - 1; // 오른쪽끝 rt Arrays.sort(arr); // 정렬된 배열 while (lt target) // 찾는값이 mid보다 작으면 rt값 조정 rt = mid - 1; else lt = mid + 1; // mid보다 크면 lt값 조정 } return answer; } 시간복잡도 탐색 대상을 절반씩 계속해서 줄여나가기 때문에, 시간복잡도는O(log n)이다.

gangintheremark
갱ㅎr