목록분류 전체보기 (282)
Hayden's Archive
Attribute : 서버상에서 데이터(개체)를 보관하는 저장소. -보관할 때 Binding : setAttribute(" ", object) //키는 String으로 밸류는 객체로 들어감. -찾아올 때 Look-up : getAttribute(" ") //키로 찾아옴. Attribute 총 3가지가 있음. -> 용도에 따라 적절하게 사용해야 함. : 모두 setAttribute(), getAttribute가 있음. : 동일한 메소드가 서로 다른 객체에 있을 때는 이름, 기능이 똑같더라도 뭔가 다른 점이 있음. : 데이터가 보관되는 scope가 다름. 데이터가 저장되는 유통기한이 다름. - ① ServletRequest : WAS 가동하자마자 만들어짐. 서버 꺼지기 전까지 저장함. 모든 서블릿들이 공유할..
- 요청을 하면 폼값을 받고, 응답을 하면 페이지를 돌려줘야 하는데 이 때 영어는 깨지지 않지만 한글은 깨짐. - 따라서 양방향 한글 인코딩 처리가 필요하다. - 한글 처리부터 하고 폼값 받아와야 하고, 한글 처리부터 하고 응답해야 한다. - 따라서 service() 메소드에 다음 코드를 포함시킨다. request.setCharacterEncoding("utf-8"); //요청 관련 인코딩 처리 response.setContentType("text/html;charset=utf-8"); //응답 관련 인코딩 처리 - 그런데 filter를 사용하면 서블릿을 작성할 때마다 번거롭게 위 코드를 적어주지 않아도 된다. - Filter의 원리 필터를 만들어주고 컨테이너가 알아들을 수 있게 등록해줘야 함. 필터 뒤..
* 컨테이너 = WAS - 컨테이너는 본질적으로 메모리 공간. - 컨테이너는 JVM 위에 탑재됨. JVM보다 훨씬 광범위하고 파워풀하고 다채로움. 서블릿들이 컨테이너에서 만들어지고 요청을 받고 뭔가가 만들어지고 뭔가가 많이 없어지고 이런 것들이 메모리. - 컨테이너 = 서블릿들이 생성되고 실행되는 제반적인 환경 그 자체. * CGI = Common Gateway Interface - CGI는 서버 사이드에서 돌아가는 전반적인 프로그램. 자바 기반은 스레딩 방식으로 돌아가고 자바 기반이 아닌 것은 프로세스로 일일이 요청에 수행. - CGI 기술 => 컨테이너(=WAS) 상에서 실행하는 프로그램을 통칭. 서버상에서 돌아가는 다이나믹한 기술을 CGI 기술이라고 한다. - ASP, PHP, Pearl, JSP,..
- form 태그 method 속성으로 Get 방식과 Post 방식을 정해줄 수 있다. 디폴트는 Get 방식이다. - 클라이언트에서 데이터 쪼가리 날리면서 요청한다. get 방식이면 데이터 쪼가리를 주소에 입력폼 key, value으로 붙이고 / post 방식이면 ServletRequest에 입력폼 key, value을 담음. 1. Get 방식 - Get 방식. get it (페이지 줘.) - 데이터 전달이 목적이 아니라 페이지 연결이 주목적. 태그가 Get 방식임. - 응답받은 페이지 주소 보면 http://localhost:8888/web02_HTTServletForm/FS?userId=111&userPass=222&menu=김치볶음밥&menu=닭도리탕 - 객체에 안 담기고 주소창에 붙인 걸 보면 F..
web.xml (DD 파일) - 클라이언트의 요청을 수행할 서버사이드의 컴포넌트가 먼저 만들어져 있어야 함. - 자바 SE 레벨에서는 객체 생성의 주체는 개발자. 하지만 자바 EE 레벨에서는 WAS가 서블릿 객체를 생성한다. 개발자는 실행해서 컴파일하고 배포하면 됨. - 서버가 인식할 수 있는 유일한 기술이 xml. 프로그램 아님. 프로그램은 인간이 머신을 이해하는 랭귀지. WAS(컨테이너)가 인식할 수 있는 기술은 xml임. 예전에는 이걸 다 개발자가 만들었다. - WAS는 가동되면 web.xml을 읽어들인다. - WAS가 이걸(web.xml) 읽어서 매핑해서 인스턴스를 컨테이너 메모리 안에다가 생성. XML은 주석 잘 안 다는 게 좋음. - web.xml을 DD(Deployment Descriptor..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌� www.acmicpc.net 내가 작성한 코드 public class Main { private static int notSelfNum (int n) { int total = n; int quotient = n; while(quotient > 0) { total += quotient % 10; quotient /= 10; } return total; }..
참고 : 방통대 김진욱 교수 운영체제 강의 교착상태(Deadlock) : 관련된 모든 프로세스가 무한히 대기 기아상태(Starvation) : 관련된 일부 프로세스가 지속적으로 대기 * 교착상태(Deadlock)의 필요조건 (아래 4가지가 동시에 만족될 경우 교착상태가 일어날 수 있음) 1. 상호배제 조건 - 공유할 수 없고 동시에 쓸 수 없는 자원일 때 발생함. - 하나의 자원이 있고 프로세스 A가 쓰고 있으면 프로세스 B는 쓰지 못하고 기다려야 함. 2. 점유 대기 조건 - 점유하고 있는 상태로 기다린다. - 프로세스 A가 자원 a를 할당받아 배타적으로 점유하고 있는데 프로세스 B가 점유하고 있는 자원 b가 해제되기를 기다림 3. 비선점 조건 - 선점은 자원을 빼앗아올 수 있는 건데, 비선점은 자원을..
알고리즘 문제 출처 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 � www.acmicpc.net 내가 작성한 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i=0; i
알고리즘 문제 출처 : https://www.acmicpc.net/problem/1546 따로 최댓값으로 나눈 뒤 100을 곱하고 합하는 것이나 총합을 최댓값으로 나눈 뒤 100을 곱하는 것이나 결과는 같게 나온다. 그런 생각에서 코드를 짰는데 결과가 이상하게 나와서 당황스러웠다. 알고 보니 모두 int형으로만 변수를 선언해서 나눈 결과가 온전히 나오지 안고 몫만 나왔던 것. 필요한 숫자들을 따로 double형으로 선언하였고 입력값도 double형으로 받으니 정답! import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double max ..
- 결론적으로 클래스 필드로 정보가 저장되는데 최종적으로 정보를 넣는 곳이 DB. DB에 액세스하기 위한 프로그램이 DAO. - Model : DAO와 VO를 한꺼번에 가리키는 말. - 개발의 순서는 Back부터 시작. 그래서 프로그램 배울 때도 Back부터 시작. 그게 안 되어있으면 앞으로 dependency 할 수 없음. - 제이쿼리는 Front UI 프레임워크 => 프론트 쪽에서 쓰이는 자바스크립트를 다 모아놨다. - 프로그램은 동적. 들어오는 입력값에 따라 결과값이 달라짐. 이게 프로그래밍. html, css는 값이 들어올 공간도 없을 뿐더러 값이 고정. - 프로그램의 전반적인 매커니즘을 알려면 연결구조를 알아야 한다. 연결구조를 알려면 이 부분을 알아야 함. - 화면은 2가지가 있음. 초기(in..