프로그래밍 175

자바스크립트의 1급객체와 클로저 개념

javascript의 매우 헷갈리는 부분에 대해서 보자. 1234567891011function outer() { var count = 0; var inner = function() { return ++count; }; return inner;}var increase = outer(); console.log(increase());console.log(increase());cs 자 이 함수롤 보자. 콘솔에 찍히는 것으로 구분을 해보면서 볼건데 결과값은 1,2가 나온다.외부함수를 실행하고 외부함수안에서 내부함수(inner)를 실행하지 않고 반환한다. return inner;그리고 외부변수 increase에 담아서 저장한다. 실행은 increse()로 해줘야 1,2 가 나온다. 왜그럴까? count변수는 ou..

프로그래밍/ 2017.02.01

호스팅과 클라우드

Hosting(호스팅) 개인pc로 운영하기에는 불편함이 따른다. IDC(Internet Data Center) 데이터 센터 웹호스팅 서비스 => 웹서버 (Apache, NGINX) + 미들웨어 (PHP,Java,Python,Ruby) + 데이터베이스(Oracle, MySQL) 장점 : 어플리케이션을 업로드만 하면된다.단점 : 어플리케이션을 위한 용도로만 사용할수 있다. 서버 호스팅 (컴퓨터를 제공) 서버컴퓨터를 제공한다. 장점 : 모든것을 할 수 있다.단점 : 직접 운영해야 한다. 클라우드 컴퓨팅 (Cloud Computing) 인프라의 질적/양적 발전가상화, 종량제 (쓰는 만큼 돈을 낸다) 가상머신 : 물리적인 컴퓨터 처럼 작동하는것. 밑단Computer(하드웨어) - 운영체제 - 가상머신(소프트웨어로..

아이피에 대해서

도메인을 치고 들어가면 NameServer 에 들어가서 각각의 도메인별로 ip를 알고 있기 때문에 도메인으로 웹사이트에 접속할 수 있는 것이다. 예전에 처음 웹을 만들었을 당시 이정도의 ip갯수면 충분할 줄 알았다.Ipv4 - 255.255.255.255 => 42억개의 주소체계 (현대에 부족해짐)부족함을 해결하고자 새로운 체계를 도입했다. 아직 상용화 단계가 아닌 과도기에 있다. Ipv6 - 2의 128승개 => 2823구 6692양 ..... => 영구적으로 해결이 됨 공유기란?집에 컴퓨터가 3대가 있다면 각각 회선을 3개 뚫으면 되긴 하지만 비용이 많이 들기 때문이다.하나의 통신사 회선을 공유기에 연결하고 3대의 컴퓨터가 인터넷을 사용할 수 있다.무선통신 (wifi) 으로 노트북이나 스마트폰을 연결..

mvc패턴 모델2의 개념과 간단한 mvc패턴 만들어보기

모델1구조는 웹 브라우저의 요청이 곧바로 jsp에 전달된다. 웹 브라우저의 요청을 받은 jsp는 자바빈이나 서비스 클래스를 사용해서 웹 브라우저가 요청한 작업을 처리하고 그 결과를 클라이언트에 전달한다. 이것의 의미는 jsp페이지에 비즈니스 로직을 처리하기 위한 코드와 웹 브라우저에 결과를 보여줄 출력 관련 코드가 섞인 다는 것이다. 모델2구조는 모델 1 구조와 달리 웹 브라우저의 요청을 하나의 서블릿이 받게 된다. 서블릿은 웹 브라우저의 요청을 알맞게 처리한 후 그 결과를 보여줄 jsp페이지로 포워딩 하게 된다. 포워딩을 통해서 요청 흐름 받은 jsp페이지는 결과화면을 클라이언트에 전송한다. 즉, 서블릿이 비즈니스 로직 부분을 처리하게 되는 것이다. 모델2 구조의 특징은 웹 브라우저의 모든 요청이 단일..

프로그래밍 2017.01.28

나도 답변형 게시판을 만들어보자 ! (2)

DB 테이블을 생성해 보자. 각 처리 분야별 역할은서비스 : 게시판 관련 로직을 수행한다. ListArticleService - 게시글 목록 제공ReadArticleService - 게시글 읽기 기능WriteArticleService - 게시글 쓰기 기능ReplyArticleService - 답변 쓰기 기능UpdateArticleService - 게시글 수정 기능DeleteArticleService - 게시글 삭제 기능 DAO : DB 테이블에 대한 CRUD작업을 수행.모델 : Article(게시글 데이터), ArticleListModel (게시글 목록 화면을 생성할 때 필요한 데이터 저장) Article 모델12345678910111213141516171819202122232425262728293031..

레프트 메뉴 추가 후 서비스단을 만들어보자! - (2)

서비스 폴더를 만들 때 구조를 살펴보자. java안에 main폴더는 메인화면쪽 파일들을 모아 놓은 것이고 welcomeWeb폴더는 새로만든 페이지에 대한 폴더이다. 그 안에 web폴더를 두고 밑에 컨트롤러를 작성한다. 12345678910111213141516@Controllerpublic class WelcomeWebController { @Resource(name="welcomeWebService") private WelcomeWebService welcomeWebService; @SuppressWarnings("unused") @RequestMapping(value = "welcomeWeb.do") public String initWelcomeWeb() throws Exception { @Suppr..

레프트 메뉴 추가 후 서비스단을 만들어 보자! - (1)

먼저 번에 만들었던 default-left.jsp가 있을 것이다. 메뉴중 하나를 더 추가해 보자. 추가 후 onclick 속성이 있을 것이다.javascript:left.pageSubmitFn('welcomeWebMeu') 이것이 클릭 되었을 때 발동하는 코드인데 이 스크립트를 정의해 주어야 한다. default-left.jsp의 상단에 스크립트 코드를 넣어 보자. 123456789101112131415161718192021 var left = { pageSubmitFn : function(pageName) { $("#pageName").val(pageName); alert($("#pageName").val()); if(pageName == "mainMenu") { $("#frm").attr("actio..

PreparedStatement의 사용법

PreparedStatement는 Statement와 동일한 기능을 하지만 차이점이 있다면 전자는 미리 SQL쿼리의 틀을 짜 놓고 나중에 값일 지정한다는 것이다. 12345678910111213141516171819202122232425262728293031323334Colored by Color Scriptercs line 21 - 실행할 쿼리를 미리 입력하는데 값이 들어가는 부분은 ?로 대치한 쿼리를 사용한다. line 23 - setString은 첫번째 인자로 물음표의 위치가 들어가고 두번째로는 값이 들어간다. PreparedStatement를 생성할 때에 실행할 쿼리를 지정하기 때문에 이들 두 메서드는 쿼리를 인자로 전달받지 않는다. ResultSet executeQuery() - SELECT 쿼..

MySQL LONG VARCHAR 읽기

SQL의 LONGVARCHAR 타입은 대량의 텍스트 데이터를 저장할 때 사용되며, ResultSet에서 LONGVARCHAR타입의 데이터를 읽어오기 위해서는 getCharacterStream() 메서드를 사용해야 한다. 1234567891011121314151617181920212223Colored by Color Scriptercs line 5 - HISTORY 는 테이블안의 long varchar 타입의 이름이다. line 8 - 스트림에서 읽어올 데이터를 저장하라 버퍼를 설정한다. line 12 - 스트렘에서 데이터를 읽어와 버퍼에 저장한다. reader로 읽어서 Stringbuffer에 저장한다. line 16 - 버퍼에 저장된 내용을 String으로 변환한다. 참고) 오라클에서는 long var..

반응형