Developer Note/국비과정 수업내용 정리&저장 83

24년 10월 31일

오전서블릿 리스너란 ?이벤트가 발생하면 실행청취자라는 정의가 있음.특정 이벤트가 발생하길 계속 기다린다.서블릿,필터 처럼 @WebListener 으로 사용한다.리스너가 이벤트가 발생할 때 동시에 특정행동을 하는데 , 이것을 이벤트 핸들링 이라고 한다.그래서 리스너는 이벤트 핸들러라고 불리기도 한다.서블릿 리스너 객체의 종류리스너 객체의 종류에는 크게는 2가지가 있다.ServletContextListener 와 ServletContextAttributeListener이렇게 두가지로 나뉘는데 비슷해보이긴 한데 두가지의 차이점은 Listener 는 시작과 종료시 실행되는 이벤트를 처리 , Attribute 는 말 그대로 ServletContext 에 속성이 추가,제거,변경 CRUD 될 때 호출됨.이외에도 몇가..

24년 10월 30일

오전서블릿의 주요 클래스와 메서드✓ HttpServlet: 서블릿을 만들기 위해 반드시 상속해야 할 필수 클래스✓ HttpServletRequest: 클라이언트가 데이터를 입력하거나 클라이언트의 정보에 대한 요청 값을 가지고 있는 클래스✓ HttpServletResponse: 클라이언트가 요청한 정보를 처리하고 다시 응답하기 위한 정보를 담고 있는 클래스✓ HttpSession: 클라이언트가 세션을 정보로 저장하고 세션 기능을 유지하기 위해서 제공되는 클래스서블릿의 기본적인 메서드void init() 서블릿의 객체가 생성 될 때 호출되는 메서드.void destroy()서블릿의 객체가 메모리에서 사라질 때 호출되는 메서드void service(request, response)서블릿의 요청이 있을 때 호출..

24년 10월 29일

서블릿자바에서 자바코드로 웹을 구현하기 위해 나온 서버측의 프로그램.웹 서버측 에서 동적인 페이지를 자바로 구현한 서버측 프로그램서버 측에서 실행함. 요청을 받으면 서버에서 처리함. 그러고 응답으로 결과값만 보내주는 구조임특징MVC 모델에서 컨트롤러 역할을 한다.서블릿 파일로 사용하기 위해서는 HttpServlet 클래스를 상속받아서 사용한다.모든 메서드는 스레드로 동작된다서블릿 컨테이너서블릿은 .java 파일을 컴파일한 .class 파일 형태이며 , 이를 실행하고 관리해주는 런타임을 서블릿 컨테이너 라고 한다. (간단히 전체적인 동작을 관리해주는 거라고 보면 될듯)서버에 있는 서블릿이 스스로 작동하는게 아님. 서블릿 컨테이너가 서블릿을 작동시키는 거임.아파치 톰캣이 이 역할을 하는거임 !역할 :생명주기..

24년 10월 25일

오전어제 한 문제 풀이 로그인 ${msg_userid} ${msg_password} ${msg_db}     회원가입페이지로 이동 request.setAttribute("db_msg", "이미 존재하는 회원"); request.getRequestDispatcher("../join.jsp").forward(request, response); }else{ //회원정보 o , 비밀번호 확인 if(!password.equals(dbUser.getPassword())){ request.setAttribute("db_pw", "패스워드 불일치"); request.getRequestDispatcher("../lo..

24년 10월 22일

세션이란 ?간단하게 내가 이해하는 바로는 클라이언트가 서버에 요청을 보냈을 때 클라이언트의 정보가 초기화 되지 않도록 정보를 계속 유지시켜주는 기능이다.web 서버는 웹 컨테이너 상태를 유지하기 위해 정보를 저장하고 , 저장한 정보는 브라우저를 닫을 때 , 일정시간이 지날 때 , 서버에서 세션을 삭제했을 때 삭제가 이루어진다.세션에 값을 저장할때는 session객체를 사용하면 된다.session.setAttribute("이름","값");이 메소드는 이름 : 값 형태로 세션에 정보를 저장한다.정보를 가져올 때는session.getAttribute("이름");이 때 값을 반환받을 때는 타입이 Object 타입으로 반환받기 때문에 형변환을 해주어야 한다.세션의 값이 저장되어 있는지 확인할 때는Enumerati..

24년 10월 18일

오라클에서 디폴트 값을 넣을 때는 디폴트라는 것을 명시해야하고MYSQL 은 NULL 쓰면 디폴트값이 알아서 들어간다.CHECK : 제약조건 값 지정U = UNIQUE : 기본키는 아니지만 중복된 값을 넣을 수 없음SQL 에서의 인덱스 : 데이터의 검색을 효율적으로 하기 위해 인덱스를 지정해준다데이터가 많으면 많을 수록 유리한데 적을 때는 오히려 불리하다.오라클에서는 인덱스를 재구성할 수 있음COMMIT 을 하고 난 뒤에는 롤백이 안된다.오라클에서의 CONCAT 함수 : MOBILE1||'-'||MOBILE2파이프라인( || ) 을 사용해서 가운데 붙여줄 문자열을 삽입한다.PL/SQL 이란 ?SQL 을 확장한 절차적 언어이다.관계형데이터베이스에서 사용되는 ORACLE 의 표준데이터 엑세스 언어로 , 프로시..

24년 10월 17일

DB 로 넘어갔다.근데 mysql 아니고 오라클을 사용한다.외부평가에서는 오라클을 사용한다고 한다. 오라클 시퀀스란? 유일한 값을 생성해주는 오라클 객체기본키와 같이 순차적으로 증가하는 컬럼을 생성할 수 있다.주로 기본키(PRIMARY KEY)를 생성하기 위해 사용. constraint (제약조건)조건에 맞지않는 데이터를 입력시키지 않기 위한 제약조건외부평가에서 사용하는 dbms 오라클 SELECT * FROM USERTBL WHERE HEIGHT > ANY (SELECT HEIGHT FROM USERTBL WHERE ADDR='경남');SELECT * FROM USERTBL WHERE HEIGHT > ALL(SELECT HEIGHT FROM USERTBL WHERE ADDR='경남');SELECT * ..

24년 10월 15일

사서의 도서 대여 작업 mvc 패턴사서가 도서 대여를 해주기 위해서는 유저의 정보를 받아야함. 우선 사서계정이 권한이 있는지 확인 → 사서의 세션정보 요청(getSession) → 정보 반환→ 가입한 회원인지 확인 → 회원정보 요청(getUserInfo) → 정보 반환 책의 정보 확인(getBook) → 책 정보 반환 → 책이 대여된 상태인지 확인→ 책이 있다면 대여해줌 getBook에서 대여여부 확인하려면 정규화 과정에 약간 어긋난다고함. 결합도 낮추는 법 : 인터페이스를 따로 만들어서 구현한다. 클래스에 커서대고 오른쪽 클릭 → Refactor → extract interface → 인터페이스를 만든다. 자동으로 원래 파일의 메소드들이 오버라이딩으로 바뀌고 인터페이스에서 정의가 된다.

24년 10월 14일

세션이란 :• 클라이언트로부터 오는 일련의 요청을 하나의 상태로 보고 그 상태를 일정하게 유지하는 기술클라이언트가 웹 서버에 접속해있는 상태가 하나의 단위(지금 하는 수업을 예로 보자면 로그인이 되어있거나 이런 상태를 하나의 단위로 보는 그런 것)presentation layer : 사용자에게 보여주는 화면Control layer :business layer :persistance layerdomain model layer :트랜잭션이란?데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 뜻함.※ 즉 쿼리문을 사용해서 데이터베이스에 영향을 주는 상태를 말하는 것이다.트랜잭션의 특징원자성 : 트랜잭션이 모두 DB에 반영되던가 , 아니면 아예 반영되지 않아야 한다는 것이다.일관성 : 작업처리 결과가..

24년 10월 11일

오늘은 User(사용자) 입장에서의 도서관리 프로그램 기능구현.사용자 입장에서의 CRUD 의 구성. Insert(1) : 회원가입Update(2) : 회원정보수정Delete(3) : 회원탈퇴Select(4) : 회원정보조회SelectAll(5) : 관리자가 회원전체정보조회LogIn(6) : 로그인LogOut(7) : 로그아웃 오늘은 사용자(User) 입장에서의 도서 관리 프로그램을 구현한다.사용자 입장에서의 CRUD 구성 ServiceNo.InsertUpdateDeleteSelectSelectAllLoginLogOut어제 한대로 기본적인 순서부터 적어보자면 뷰에서 사용자에게 입력을 받는다. 받아서 컨트롤러에서 요청을 처리하는데 , 어디로 처리하냐 ?private void init() { System.o..