자바 (36) 썸네일형 리스트형 2020.11.17 일자 수업 : Business Layer 실습 - Business Layer 분리 현재 Command에서 UI처리 작업과, 업무 로직 처리 작업(업무에 필요한 데이터 처리를 수행하는 응용프로그램의 일부)을 모두 수행하고 있다. 따라서 이것을 high-cohesion을 실현하기 위해 이 비즈니스 로직 역할을 Service 객체에게 위임하고, Command는 UI처리만 할 것이다. 따라서 Command와 Prompt 는 UI에 관한 로직으로 presentation Layer에 속하고 우리가 이번 프로젝트가 새로 생성할 Service 객체들은 Business Layer에 속한다. 반면, DAO/MyBatis/DBMS는 Peresistence Layer에 속한다. 즉, 우리의 프로젝트는 다음과 같이 나눠진다. presenatation Layer : 사.. 2020.11.16 일자 수업 : 트랜잭션 관리 실습 - 트랜잭션 관리 ProjectDeleteCommand에서는 먼저 작업 테이블에서 다음과 같은 과정으로 세 가지 테이블에서 데이터를 삭제한다. TaskDao.deleteByProjectNo() 이 프로젝트에 대한 작업을 담당하는 팀원이 있는 경우, 이 팀원 정보들을 모두 삭제(TaskDao.deleteByProjectNo) ProjectDao.delete() 프로젝트와 멤버의 관계 테이블에서 해당 프로젝트의 팀원 데이터를 모두 삭제(ProjectDao.deleteMembers) 해당 프로젝트에 대한 데이터를 삭제(ProjectDao.delete) 그런데 문제는 이 두 메서드가 SQL문을 실행하기 위한 SQLSession 객체가 각각 다르다는 점이다. 따라서 두 메서드의 삭제 작업이 모두 완료된 시점.. 2020.11.9 일자 수업 : Chain of Responsibility, MyBatis, Persistence Framework 실습 - Chain of Responsibility CommandFilterManager의 내부적인 작동 구조를 LinkedList와 비슷하게 할 수도 있다. CommandFilterManager는 LinkedList가 Node를 관리하듯이 firstChain과 lastChain을 갖는다. Chain은 LinkedList의 Node와 같다. Chain은 수행할 작업을 담은 filter와 다음 Chain을 가리키는 nextChain을 갖는다. 어떤 Chain에 대해서 doFilter를 호출하면 해당 Chain 안에 담긴 filter에 대해서 doFilter를 호출한다. 그리고 각 Filter는 doFilter 메서드 몸체에서 작업을 수행한 후 두 번째 파라미터로 받은 nextChain에 대하여 doFilt.. 2020.11.5 일자 수업 : DAO interface, 커넥션 객체 공유, 로그인 실습 - DAO Interface MariaDB를 사용하는 dao.mariadb 패키지와 Oracle을 사용하는 dao.oracle 패키지를 만들었다고 가정할 때, 기존에 사용하고 있는 패키지 클래스에서 다른 패키지의 클래스들로 사용 DAO를 변경할 때마다 DAO를 사용하는 코드를 모두 수정해야 한다. 이 불편함을 해소하기 위해 DAO 클래스에 대한 사용 규칙, 즉 인터페이스를 정의하여 클래스 대신 인터페이스를 사용하도록 한다. 일단, mariaDB를 사용하고 있는 DAO 클래스는 com.eomcs.pms.dao.mariaDB에 모두 집어넣고, com.eomcs.pms.dao 패키지에는 DAO 인터페이스를 집어넣을 것이다. 일단 BoardDao를 인터페이스로 바꾸어 com.eomcs.pms.dao에 넣어.. 2020.10.19 일자 수업 : 사용 사례, executor 프레임워크 요구사항 분석 - 사용 사례 Actor(who)가 이 시스템을 사용하여 달성하려는 업무 목표(what)를 Use-case(사용사례)라고 한다. 분석 설계 과정에서 use-case을 식별하는 것을 use-case identify라고 한다. 다음은 use-case을 식별할 때 사용되는 use-case의 조건이다. (개발할) 시스템을 사용해서 처리하는 업무 한 사람이 한 번에 한 순간에 수행하는 업무 예) 메일 전송 (메일 전송은 한 번에 한 순간에 하지 않을 수도 있다.) => 메일 임시보관 / 메일 전송 카운트가 가능한 단위로 업무를 쪼갠다. 업무의 시작과 끝이 명확하다. 이 조건에 따라 use-case의 적정 크기를 지정해야 한다. RUP 개발 프로세스에서는 2주에서 6주 안에 개발할 수 있는 규모를 u.. 2020.10.13 일자 수업 : 옵저버 패턴, 네트워크 프로그램 실습 실습 - 발행자와 구독자의 데이터 공유 git/eomcs-java-project/mini-pms-33-b 옵저퍼 패턴과 자바에서 제공하는 Servlet 클래스들의 관계는 유사하므로 옵저버 패턴을 확실히 익혀야 한다. ServletContextListener 웹 어플리케이션을 실행하는 데 필요한 초기화 작업이나 웹 어플리케이션이 종료된 후 사용된 자원을 반환하는 등의 작업을 수행하는데 사용된다. 이를 통해 웹 어플리케이션이 시작되고 종료될 때 특정한 기능을 실행할 수 있다. 출처 : ServletContextListener 이벤트 처리| 작성자 원종천 구체적으로는 Servlet의 context의 변경 사항이 생길 때마다 그에 따른 수행 작업을 하는 클래스이다. 이번 실습에서는 발행자에서 옵저버에게 파라미터.. 2020.10.12 일자 수업 : Observer 디자인 패턴 Observer Design Pattern git/eomcs-java-basic/src/main com.eomcs.design-pattern.observer Observer Design Pattern (= Publish-Subscribe Pattern) Observer 디자인 패턴은 특정 객체의 상태 변화에 따라 수행해야 하는 작업이 있을 경우, 기존 코드를 손대지 않고 손쉽게 기능을 추가하거나 제거할 수 있는 설계 기법으로 발행(publish)/구독(subscribe) 모델 이라고 부르기도 한다. 구독 객체를 리스너(listener) 또는 관찰자(observer) 라 부르기도 한다. 어떤 객체의 상태에 변화가 생기면, 즉 이벤트가 생기면, 그것에 대한 소식을 받아 작업을 수행하는 객체가 listener.. Do it! 자료구조와 함께 배우는 알고리즘 입문 : 3장 검색 검색 알고리즘 검색과 키 어떤 검색을 하게 되더라도 특정 항목에 주목한다는 점은 검색하기의 공통점이다. 그 주목하는 항목을 키라고 한다. 키는 전체 데이터의 일부로, 검색 대상을 찾아내기 위해 주목하는 데이터를 말한다. 예를 들어, 여러 사람들 중 국적인 한국인 사람을 검색한다고 할 때, 국적이 키이고, 키 값은 한국이다. 또한 찾고자하는 키값과 일치하는 사람이 조건이며, 이런 조건은 꼭 하나만 있는 것은 아니고, 논리 곱이나 논리 합을 사용하여 복합 지정하기도 한다. 배열에서 검색하기 배열을 검색하는 예시로 다음 세가지 검색 기법을 제시한다. 이 중 몇몇은 자료구조에 의존한다. 우리는 이 장에서 배열 검색을 학습하며 다음의 알고리즘을 활용한다. 선형 검색 : 무작위로 늘어놓은 데이터 모임에서 검색 수행.. 이전 1 2 3 4 5 다음