전체 글
-
47일차 - 자바 웹 개발 (4)AI 솔루션 개발자과정(Java, Python) 2022. 12. 13. 17:16
JSP 페이지 예외 처리하기 JSP 페이지에서 오류가 발생하면 예외 처리 페이지를 이용해 예외를 처리할 수 있다. JSP 예외 처리 페이지는 먼저 예외 처리 JSP를 만든 후 디렉티브 태그 속성 중 isErrorPage 속성을 true로 설정한다. 그리고 일반 JSP 페이지의 디렉티브 태그 속성 중 errorPage 속성을 예외 처리 페이지 이름으로 지정한다. 이처럼 디렉티브 태그 속성을 통해 예외 처리 페이지를 만들 수 있다. JSP 실행 시 자주 발생하는 오류로는 404오류와 500오류가 있다. 404 오류는 요청한 JSP 페이지가 없을 때 발생하는 오류이고, 500 오류는 컨테이너에서 JSP 페이지 처리 중에 오류가 발생할 때 표시되는 오류이다. web.xml 에서 xml로 각각의 에러 코드에 대한..
-
46일차 - 자바 웹 개발(3)AI 솔루션 개발자과정(Java, Python) 2022. 12. 12. 15:52
쿠키와 세션 보통 웹 프로그램에서 사용되는 정보는 서블릿의 비즈니스 로직 처리 기능을 이용해 데이터베이스에서 가져온다. 그러나 동시 사용자 수가 많아지면 데이터베이스 연동 속도도 영향을 받게 되므로 정보의 종류에 따라 클라이언트 PC나 서버의 메모리에 저장해두고 사용하면 좀 더 프로그램을 빠르게 실행시킬 수 있다. HTTP 프로토콜은 서버-클라이언트 통신 시 stateless 방식으로 통신을 한다. 즉, 브라우저에서 새 웹 페이지를 열면 기존의 웹 페이지나 서블릿에 관한 어떤 연결 정보도 새 웹 페이지에서는 알 수 없다. 따라서 웹 페이지나 서블릿끼리 상태나 정보를 공유하려면 웹 페이지 연결 기능, 즉 세션트래킹을 이용해야 한다. 웹 페이지를 연동하는 방법은 다음과 같다. * 태그 : HTML의 태그를 ..
-
45일차 - 자바 웹 개발 (2)AI 솔루션 개발자과정(Java, Python) 2022. 12. 9. 17:07
이번에 진행하는 자바 웹 개발은 Java JDK 1.8버전과 Tomcat 9.0버전을 사용한다. 또한 이클립스 EE IDE을 설치해야 한다. 이클립스를 실행해서 workspace를 설정하고, File > New > Dynamic Web Project로 프로젝트를 생성한다. 세부 문서들은 src/ main/ webapp 폴더 안에 작성한다. 하단의 Server텝에서 서버를 생성할 수 있다. 우클릭 > New > Server로 생성한다. Apache > Tomcat v9.0을 선택하고, 톰캣이 설치된 폴더로 경로를 지정한다. 이후 위에서 작성한 프로젝트를 서버에서 구동하도록 추가한다. 서버를 더블클릭하면 이러한 오버뷰가 나오는데, 여기서 포트를 지정할 수 있다. 포트는 다음과 같이 설정한다. 이후 Ctrl ..
-
44일차 - 자바 웹 개발AI 솔루션 개발자과정(Java, Python) 2022. 12. 8. 17:12
프로그램의 발전 과정 일반적인 웹 페이지는 대부분 미리 서버에 등록해 두었다가 웹 브라우저가 서버에 특정 데이터를 요청하면 이를 웹 브라우저로 전송해서 보여준다. 이를 가능하게 하는 기술 중 하나가 JSP(Java Server Page)이다. 웹 프로그램은 클라이언트 PC 기반 프로그램에서 시작하여 클라이언트 서버 기반 프로그램, 웹 기반 프로그램 순으로 진화해 왔다. 클라이언트 PC 기반 프로그램이란 클라이언트 PC에서 클라이언트가 직접 설치해서 사용하는 프로그램이다. 이 프로그램의 단점은 보안에 취약하고, 프로그램이 변경될 때 마다 일일이 다시 설치해야 한다. 이러한 문제점을 보완하여 나온 것이 클라이언트 - 서버 기반 프로그램이다. 이 구조에서는 기존 클라이언트가 수행하는 모든 기능을 서버에서 수행..
-
43일차 - 도커와 웹 사이트 배포하기AI 솔루션 개발자과정(Java, Python) 2022. 12. 7. 18:14
웹 사이트 배포하기 웹 사이트를 사람들에게 공개하기 위해서는 먼저 서버에 올려야 한다. 지금까지 각자 작업한 컴퓨터와 서버는 운영체제를 비롯한 여러 가지 환경이 다를 수 밖에 없다. 윈도우에서 작업한 내용을 리눅스 서버로 옮기다 보면 그 과정에서 문제가 생길 수 있는데, 이때 도커를 이용하면 이 문제를 안정적으로 처리할 수 있다. 도커란 다른 하드웨어와 운영체제에서 작업하더라도 동일한 환경을 갖출 수 있도록 도와주는 기술이다. 기본적으로 앞에서 이용했던 가상환경(venv)와 비슷하다. 다반 가상환경은 개발환경을 구축하기에는 충분하지만 구현한 서비스를 서버에 옮겨서 서비스를 제공하는 배포 과정에서는 부족한 부분이 있다. 배포를 하기 위해서는 소스 코드를 복제해서 적절한 위치에 저장하고, 웹 페이지를 보여주..
-
42일차 - 장고 프로젝트(6)AI 솔루션 개발자과정(Java, Python) 2022. 12. 6. 22:52
폼으로 댓글 기능 구현하기 먼저 댓글 기능을 추가하기 위해 Comment 모델을 만든다. Comment 모델에는 어떤 포스트에 대한 댓글인지를 저장하기 위해 post 필드가 필요하다. 그리고 작성자를 저장할 author 필드와 댓글 내용을 담을 content 필드가 있어야한다. 마지막으로 작성일지와 수정일시를 담은 create_at 필드와 modified_at 필드를 만든다. blog/models.py를 다음과 같이 수정한다. 여러 댓글이 한 포스트의 댓글이 되기 때문에 post필드에는 ForeignKey를 사용한다. create_at 필드에는 처음 생성될 때 시간을 저장하도록 auto_now_add=True로 설정한다. modified_at에는 저장될 때 시간을 저장하도록 auto_now=True로 설..
-
41일차 - 장고프로젝트 (5)AI 솔루션 개발자과정(Java, Python) 2022. 12. 5. 17:51
스태프만 포스트를 작성할 수 있게 만들기 지금까지 만든 웹 사이트는 모든 사용자가 글을 쓸 수 있는 게시판 형태이다. 그러나 이 과정에서 만드는 웹 사이트는 블로그 형태로 만들고자 한다. 댓글은 모든 사용자가 자유롭게 작성할 수 있어도, 글은 최고 관리자 혹은 스태프에 해당하는 사람만 작성할 수 있게 만들고자 한다. 관리자 페이지에서 Users 메뉴로 들어가보면 사용자의 등급을 일반 사용자와 스태프, 최고 관리자까지 부여할 수 있다. 이 권한 여부에 따라 포스트 작성 페이지에 접근할 수 있는지 없는지를 테스트 코드로 작성한다. 먼저 tests.py에서 obama를 관리자로 권한을 부여하는 코드를 추가한다. 일반 사용자인 trump는 포스트 작성 페이지에 접근할 수 없기 때문에 상태코드가 200이면 안된다..
-
40일차 - 장고 프로젝트 (4)AI 솔루션 개발자과정(Java, Python) 2022. 12. 2. 17:41
다대다 관계 구현하기 다대다 관계를 가지는 요소를 찾아보면 태그가 있다. 태그와 카테고리는 비슷하지만, 태그는 한 포스트에 여러 태그를 연결할 수 있다는 점이 다르다. 포스트는 여러 개의 태그를 가질 수 있고, 태그는 여러 포스트에 적용할 수 있다. 이를 다대다 관계라고 한다. 이런 관계를 장고로 구현하려면 ManyToManyField를 사용한다. Tag 모델은 Category 모델과 내용이 거의 동일하다. 다음과 같이 models.py에서 카테고리 모델을 복사해서 붙여넣은 다음 모델명과, get_absolute_url()함수에서 category라고 쓴 부분만 tag로 수정한다. 또한 Tag의 복수형은 잘 나올테니 Meta클래스는 삭제한다. 또한 Post모델을 다음과 같이 수정한다. tags 필드를 빈 ..