스터디 (18) 썸네일형 리스트형 [Servlet] Connection Pool [Connection Pool] JDBD API를 사용하여 데이터베이스와 연결하기 위해 Connection 객체를 생성하는 작업은 비용이 굉장히 많이 드는 작업 중 하나이다. Connection 객체를 생성하는 과정은 다음과 같다. JDBC 드라이버 로딩 Connection 객체 생성 statement 객체 생성 쿼리문 실행 ResultSet 객체로부터 데이터 조회 Result 객체 close statement 객체 close Connection 객체 close 이처럼 커넥션을 사용할때마다 객체를 새로만든다는 것은 비효율적이다. 이러한 문제를 해결하기 위해서 앱이 로딩될 때 Connection 객체를 미리 생성하고, 필요할 경우 미리 생성되있던 Connection 객체를 사용하게 하여 앱의 성능을 향상시.. [Servlet] Web Server && WAS [Request(요청), Response(응답)] 일반적으로 브라우저는 GET방식, POST방식 2가지로 방식을 이용한다. GET방식 : 주소와 데이터를 한번에 같이 보내기 때문에 단순 링크로 처리되므로 다른 사람들에게 메신저나 SNS등을 통해서 쉽게 공유가 가능하다. 주로 특정한 정보를 조회하는 용도로 사용된다. POST방식 : 주소와 데이터를 따로 보내는 방식이고 입력한 내용들을 전송과 같은 버튼을 눌러서 호출하는 방식 - 아이디 및 패스워드에 대한 정보들을 가려주는 일종의 시크릿 모드 [웹 서버와 WAS(서블릿 컨테이너란?)] 클라이언트의 요청을 처리하기 위한 서버는 크게 2가지의 종류가 있다. 웹 서버 : 정적인 데이터를 처리하는 서버로 대표적으로는 아파치 서버가 있다. 단순 이미지나 html파.. [JS] 변수 & 호이스팅 [Var] var 변수는 함수 외부에서 선언될 때의 범위는 전역이다. 함수 블록 외부에서 var를 사용하여 선언된 모든 변수를 전체 윈도 상에서 사용할 수 있다. var가 함수 내에서 선언될 때는 함수 범위로 지정된다. 즉 해당 함수 내에서만 사용하고 접근될 수 있다. var변수는 중복 선언이 가능하고 값이 업데이트가 발생할 수 있다. - 중복 선언이 되면서 본인도 모르게 변수의 값이 재정의가 될 수 있다. -> 오류의 원인이 될 수 있다. [let] let은 선언한 블록 내에서만 사용이 가능하다. 선언된 범위 내에서는 미리 선언된 let 변수는 다시 선언할 수 없다.(중복 불가) let a = 10; console.log(a); a = 40; console.log(a); 하지만 다른 범위 내에서 미리 .. [JS]이벤트 등록하는 방법 2가지 1. HTML에서 이벤트 등록 자바스크립트 위 텍스트를 클릭해 보세요 2. JS에서 onclick속성으로 마지막으로 등록된 이벤트만 사용 const text = document.querySelector("#text"); text.onclick = function() { text.style.color = "beige"; // onclick을 이벤트로 등록하면 모든 브라우저에서는 사용이 가능하지만 // 여러 개는 사용이 불가하고 마지막으로 동록된 이벤트만 사용된다. //alert("hi"); // p태그에서는 색이 바뀌지 않음 } 3. addEventListener를 이용하여 여러개 사용 const heading = document.querySelector("#heading"); heading.addEven.. [JAVA] 컬렉션 [컬렉션 프레임워크] 자바는 널리 사용되는 자료구조를 바탕으로 객체들을 효율적으로 관리할 수 있게 해주는 인터페이스나 클래스들을 총칭해서 컬렉션 프레임워크라고 한다. 컬렉션의 주요 인터페이스로는 List, Set 등 2가지 종류가 있다. LIFO 자료구조를 제공하는 스택 클래스와 FIFO 자료구조를 제공하는 큐 인터페이스를 제공한다. 스택을 응용한 대표적인 예가 JVM 스택 메모리이다. LIFO : 스택 메모리에 저장된 변수는 나중에 저장된 것부터 제거된다. FIFO : 작업 큐는 먼저 들어온 작업부터 처리한다. [스택] 스택은 LIFO자료구조로 구현한 클래스이다. 예시로 지갑에서 먼저 넣은 동전이 밑으로 쌓이고 늦게 넣은 동전일수록 먼저 사용하게 되므로 LIFO자료구조이다. [List 컬렉션] 순서를 .. [JAVA] Thread [스레드의 개념] 운영체제는 실행 중인 프로그램을 프로세스로 관리한다. 멀티 태스킹은 두 가지 이상의 작업을 동시에 처리하는 것을 말하는데, 이때 운영체제는 멀티 프로세스를 생성해서 처리한다. 멀티 프로세스들은 서로 독립적으로 구성되어 있기 때문에 하나의 프로세스에 오류가 발생해도 다른 프로세스에는 영향을 미치지 않는다. 하지만 멀티 태스킹이 꼭 멀티 프로세스를 뜻하지 않는다. 하나의 프로세스 내에서 멀티 태스킹을 할 수 있도록 만들어진 프로그램이 있다. 예시로 카카오톡은 채팅 작업도 하면서 동시에 파일 전송을 같이 하기 때문에 멀티 스레드를 사용하는 프로그램이다. 멀티 스레드 기능을 사용하는 카카오톡 같은 경우에는 메신저 기능의 스레드가 오류가 발생하면 파일 전송 스레드도 프로세스 자체도 종료되기 때문.. [JAVA] 상속 [상속의 개념] 상속이란 부모클래스가 자식클래스에게 필드와 메서드를 물려주는 것을 말한다. 우선 코드로 먼저 확인해 보자. [상속을 사용하지 않았을 때] public class Child { public static void main(String[] args) { int result = valueAdd(10, 20); // Parent 클래스 내부에서 valueAdd 메서드 호출 System.out.println("a + b = " + result); } public static int valueAdd(int a, int b) { int result = a + b; return result; } } public class Kid { public static void main(String[] args) {.. [JAVA] 배열 [배열의 개념] '배열이란 동일한 타입의 자료형끼리만 사용이 가능하고 순차적인 자료 구조를 띄고 있다. 변수는 어떠한 값을 저장해서 사용하는 게 전부이지만, 배열은 인덱스연산자[]를 통해 보다 빠른 참조가 가능한 자료형이다. 그리하여 배열은 같은 타입의 값들을 배열이라는 곳에 모아 데이터를 구조적으로 다루는데 도와준다. 배열을 구성하는 각 값들은 요소(element)라고 하며, 해당 요소의 위치를 인덱스(index)라고 한다. 배열에는 1차원 배열과 2차원 배열 2가지가 존재한다. [배열의 선언 & 초기화] 배열은 처음에 선언해줄때 꼭 배열의 크기를 정해주어야 한다. int[] num = new int[5]; // 기본 초기화 방법 int[] num = {1,2,3,4,5};// num이라는 객체를 선언.. 이전 1 2 3 다음