'분류 전체보기'에 해당되는 글 508건

JSP 변환 과정

2020/JSP SERVLET 2019. 12. 11. 16:22
반응형

JSP파일은 다음과 같이 3단계를 거쳐 실행됩니다.

1. 변환단계 : 컨테이너는 JSP파일을 자바 파일로 변환합니다.

2. 컴파일 단계 : 컨테이너는 변환된 자바 파일을 클래스 파일로 컴파일 합니다.

3. 실행 단계 : 컨테이너는 class파일을 실행하여 그 결과(HTML, CSS와 자바스크립트 코드)를 브라우저로 전송해 출력합니다.

 

우선 webcontent 폴더에 hello.jsp파일을 하나 만들어 주었습니다. 그 후에 아래와 같이 코딩을 하고 톰캣을 실행시켜주었습니다.

  jsp 실행과정을 정리하면 이클립스에서 hello.jsp를 생성한 후 톰캣을 실행합니다. 그런 다음 브라우저에서 hello.jsp로 요청합니다. 마지막으로 브라우저의 요청을 받은 톰캣 컨테이너는 해당 JSP파일을 읽어 들여와 hello_jsp.java 파일로 변환합니다. 그리고 브라우저로 HTML 형식의 결과를 전송하여 화면에 표시합니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

파일 저장

  하나의 ndarray 형을 파일에 저장하려면 np.save('파일명.npy', 변수명) 을 사용합니다. 확장자는 .npy를 사용하여야 합니다. 로드하려면 np.load('파일명.npy')를 입력해 주시면 됩니다.

 

  여러 ndarray 형을 저장

  여러 ndarray 형을 저장하려면 np.savez('파일명.npz', 변수명1 = 변수명1, 변수명2 = 변수명2)
 

  데이터를 np.load로 불러오면 저장된 모든 변수가 outfile에 저장되어 outfile['변수명']으로 각각의 변수를 참조할 수 있습니다. outfile.files로 저장된 목록을 볼 수 있습니다.

반응형

'2020 > Python' 카테고리의 다른 글

conda 환경(env) 삭제  (0) 2019.12.19
conda 환경 세팅(opencv, tensorflow)  (0) 2019.12.19
Python 함수만들기  (0) 2019.12.11
Python HELP  (0) 2019.12.11
Python bool 배열  (0) 2019.12.11
블로그 이미지

꽃꽂이하는개발자

,

Python 함수만들기

2020/Python 2019. 12. 11. 14:56
반응형

자주 사용하는 반복된 코드는 함수로 만드는 것이 좋습니다.

  이 책에서도 함수를 많이 사용합니다. 함수는 def 함수명():으로 시작하여, 함수의 내용은 들여쓰기로 정의합니다. 실행하려면 함수명()을 입력합니다.

 

  함수에 값 a,b를 넘겨주고 싶은 경우에는 def함수명(a,b): 와 같이 입력합니다. 함수의 결과를 출력하면 return 뒤에 해당 변수 이름을 사용합니다.

  함수에 전달할 변수를 인수라고 합니다. 함수의 출력은 반환값이라고 합니다.

  어떤 형태로든 인수나 반환값을 만들 수 있습니다. 또 여러 개의 반환값을 정의할 수 있습니다.

  반환값이 여러개라도 하나의 변수로 받을 수 있습니다. 이 경우 반환값은 tuple형이 되고, 각 요소에 함수의 반환값이 저장됩니다. 난수이므로 실행할 때마다 결과가 달라집니다.

 

반응형

'2020 > Python' 카테고리의 다른 글

conda 환경 세팅(opencv, tensorflow)  (0) 2019.12.19
JupyterNotebook 파일 저장, 파일 로드  (0) 2019.12.11
Python HELP  (0) 2019.12.11
Python bool 배열  (0) 2019.12.11
Jupyter Notebook slicing  (0) 2019.12.11
블로그 이미지

꽃꽂이하는개발자

,

Python HELP

2020/Python 2019. 12. 11. 13:57
반응형

  함수에는 많은 종류가 있고 기능 또한 다양합니다. 함수의 설명을 확인하는 help(함수명)을 기억해 두면 좋습니다. 같은 함수라도 파라미터를 생략하는 등 사용법이 다양하여 모든 기능을 기억하기는 힘들기 때문입니다.

  예를 들어 np.random.randint(5) 를 입력하면 0~4까지의 임의의 정수를 하나 생성합니다.

  또한 np.random/randint(5,10,(3,2)) 을 입력하면 5~9까지의 임의 정수를  값으로 하는 3 * 2행렬이 생성됩니다.

 

반응형

'2020 > Python' 카테고리의 다른 글

JupyterNotebook 파일 저장, 파일 로드  (0) 2019.12.11
Python 함수만들기  (0) 2019.12.11
Python bool 배열  (0) 2019.12.11
Jupyter Notebook slicing  (0) 2019.12.11
Python 행렬  (0) 2019.12.11
블로그 이미지

꽃꽂이하는개발자

,

Python bool 배열

2020/Python 2019. 12. 11. 11:58
반응형

넘파이를 통해 행려 ㄹ데이터에서 특정 조건을 만족하는 것을 추출하여 쉽게 수정할 수 있습니다.

위의 예제로 출력 및 수정을 알아보았습니다.

반응형

'2020 > Python' 카테고리의 다른 글

Python 함수만들기  (0) 2019.12.11
Python HELP  (0) 2019.12.11
Jupyter Notebook slicing  (0) 2019.12.11
Python 행렬  (0) 2019.12.11
Python 벡터(vector)  (0) 2019.12.10
블로그 이미지

꽃꽂이하는개발자

,
반응형

  list와 ndarray에서 요소를 한 번에 나타낼 ?때 슬라이스라는 편리한 방법을 사용할 수 있습니다. 이를 잘 사용하면 프로그래밍이 간편해 집니다. 슬라이스는 ':'을 사용하며 변수명[시작:끝]으로 사용할 수 있습니다. 앞에 시작을 넣지않고 [:끝]만 넣으신다면 처음부터 지정하신 곳까지 출력이 되게 됩니다.

 

 

반응형

'2020 > Python' 카테고리의 다른 글

Python HELP  (0) 2019.12.11
Python bool 배열  (0) 2019.12.11
Python 행렬  (0) 2019.12.11
Python 벡터(vector)  (0) 2019.12.10
Jupyter if문, for문  (0) 2019.12.10
블로그 이미지

꽃꽂이하는개발자

,

Python 행렬

2020/Python 2019. 12. 11. 10:13
반응형

  ndarray의 2차원 배열로 다음과 같이 행렬을 정의 할 수 있습니다.

  행렬(배열)의 크기ndarray변수명.shape 명령으로 알 수 있습니다.

  이 출력은()로 둘러싸여 있으므로 tuple형으로 나타납니다. 다음과 같이 입력하여 w와 h에 각각 2와 3을 저장할 수 있습니다.

 

  요소를 참조하려면? (인덱스는 0부터 시작합니다^^)

  요소의 수정?

  요소가 0과 1인 ndarray 만들기

  모든 요소가 0인 ndarray는 np.zeros(size)로 만들 수 있습니다. np.ones(size)도 동일합니다.

  값이 랜덤인 행렬 생성?

  요소가 랜덤(임의)인 행렬을 생성하는 경우에는 np.random.rand(size)를 사용합니다.

  이 경우 size는 tuple이 아닙니다. 예를들어, 2 * 3의 난수행렬을 생성하려면?

  np.random.randn(size)를 사용하면 평균 0분산 1의 가우스 분포로 난수를 생성할 수 있습니다.

  또한 np.random.randint(low, high, size)를 사용하려면 low에서 high까지 임의의 정수값으로 이루어진 size 크기의 행렬을 생성할 수 있습니다.

  행렬의 크기 변경

  행렬의 크기 변경하는 경우 변수명.reshape(n,m)을 사용합니다. 

  행렬의 사칙연산

  사칙 연산 +, -, *, /는 해당되는 요소 전체에 적용됩니다.

  스칼라 * 행렬

스클라를 행렬에 곱하면 다음과 같이 모든 요소에 적용됩니다.

이 외에도 넘파이에는 여러 함수가 준비되어 있습니다.

제곱근

np.sqrt(x)

로그 np.log(x)
반올림 np.round(x,유효자리수)
평균 np.mean(x)
표준 편차 np.std(x)
최대값 np.max(x)
최소값 np.min(x)

  행렬 곱의 계산

  변수명1.dot(변수명2)

반응형

'2020 > Python' 카테고리의 다른 글

Python bool 배열  (0) 2019.12.11
Jupyter Notebook slicing  (0) 2019.12.11
Python 벡터(vector)  (0) 2019.12.10
Jupyter if문, for문  (0) 2019.12.10
Python tuple  (0) 2019.12.10
블로그 이미지

꽃꽂이하는개발자

,

JSP의 등장

2020/JSP SERVLET 2019. 12. 10. 19:10
반응형

서블릿의 등장

  초기 웹 프로그램은 서블릿을 이용해서 구현했습니다. 그런데 인터넷 사용자가 폭발적으로 증가하고 사용자에게 보여주는 화면의 기능이나 구성이 복잡해집에 따라 사용자를 고려하는 화면 요구 사항도 점점 늘어났죠. 그래서 현재는 프로그래머가 서블릿으로 화면을 구현하지 않고 주로 디자이너가 이 일을 담당하는 추세입니다.

  그래서 서블릿의 기능 중 별도로 화면 기능을 디자이너가 작업하기 쉽게 하기 위해 JSP가 등장했습니다.

  JSP는 디자이너 입장에서 화면의 수월한 기능 구현과 개발 후 화면의 편리한 유지관리를 목적으로 도입되었습니다. 기존 서블릿에서는 자바 코드를 기반으로 문자열을 사용해 HTML과 자바스크립트 화면을 구현했으나 JSP는 이와 반대로 HTML, CSS와 자바스크립트를 기반으로 JSP 요소들을 사용해 화면을 구현합니다.

  정리해 보자면,

 

문제점

  • 웹 프로그램의 화면 기능이 복잡해지므로 서블릿의 자바 기반으로 화면 기능 구현 시 어려움이 발생한다
  • 디자이너 입장에서 화면 구현 시 자바 코드로 인해 작업이 어렵다
  • 서블릿에 비지니스 로직과 화면 기능이 같이 있다보니 개발 후 유지관리가 어렵다

해결책

  • 서블릿의 비지니스 로직과 결과를 보여주는 화면 기능을 분리하자!
  • 비지니스 로직과 화면을 분리함으로써 개발자는 비지니스 로직 구현에 집중하고, 디자이너는 화면 기능 구현에만 집중하자!
  • 개발 후 재사용성과 유지관리가 훨씬 수월해진다!

JSP의 구성요소

  JSP는 HTML과 자바스크립트를 기반으로 JSP에서 제공하는 여러가지 구성 요소들을 사용해 화면을 구현하는 기술입니다. 주로 웹 프로그램의 화면 기능과 모델2 JSP의 구성 요소는 다음과 같습니다.

  • HTML 태그, CSS 그리고 자바스크립트 코드
  • JSP 기본 태그
  • JSP 액션 태그
  • 개발자가 직접 만들거나 프레임워크에서 제공하는 커스텀 태그
  •  
반응형
블로그 이미지

꽃꽂이하는개발자

,