PC

블로그 이미지

DAVID

'PC'에 해당되는 글 109건

제목 날짜
  • 160711: 82회차 2016.07.11
  • 160708: 81회차 2016.07.11
  • 160707: 80회차 2016.07.07
  • 160706: 79회차 2016.07.06
  • 160705: 78회차 2016.07.05
  • 160704: 77회차 2016.07.04
  • 160701: 76회차 2016.07.01
  • 160630: 75회차 2016.06.30
  • 160629: 74회차 2016.06.29
  • 160628: 73회차 2016.06.28

160711: 82회차

Programming 2016. 7. 11. 09:52

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것




[15] UI 설계

[01] UI 설계

01) UI 설계의 이해
UI의 설계부터 구현 및 검증까지는 해당 프로젝트의 시작부터 종료까지 전반에 걸쳐 진행
되며 진행 내용은 다음과 같다.
1. UI 개발 목표와 범위 수립
해당 프로젝트의 목표 및 정의 단계에서 UI 부분의 목표와 범위에 대한 계획을 수립하는 
단계로 프로젝터 계획 전반에 UI 계획을 반영한다. 이 과정을 수행하기 위해서는 해당 프
로젝트의 이해 당사자(Stake Holder)의 UI 요구 사항을 조사하고, 정의하며 UI 트렌드 및 
해당 서비스의 사용자를 분석한다.
2. UI 전략 수립
서비스를 사용할 사용자 조사 및 시장 조사를 통해 UI와 UX에 대한 전략을 수립하는 단
계로 사용자는 물론 기술적 관점에서도 전략을 수립하는 것이 중요하다.
3. 사용자 요구 사항 분석 및 정의
사용자 조사와 페르소나(Persona) 결과를 기반으로 사용자의 요구사항을 추출하고 선별하
여 사용자 요구 사항을 분석한다. 이를 통해 해당 시스템 전반에 적용되는 UI의 컨셉을 
18
설계한다. 이때 페이퍼나 도구를 활용한 프로토타입(Prototype)의 제작이 진행된다.
4. UI 상세 설계
UI에 대한 콘셉트가 정의되면 이를 토대로 실제 설계와 구현을 위한 모든 화면에 대해 상
세 설계를 진행하게 된다. UI의 기능에 대한 구조와 화면 간의 상호 흐름, 예외 처리 등의 
UI 전반에 걸친 설계가 이루어진다.
5. 구현
UI 설계에 따른 구현에는 다양한 기술들이 사용되며 HTML5, CSS3, JavaScript 등과 같은 
기본적인 언어들은 물론 jQuery와 같은 JavaScript의 라이브러리 또한 범용적으로 사용된
다. 또, UI 구현은 UI 디자이너들과 협업으로 이루어지게 된다.
6. 테스트
테스트 단계는 일반 사용자를 대상으로 해당 개발 소프트웨어의 사용성을 검증하는 단계
로 사용성에 대한 계획을 수립하고, 이 계획을 토대로 테스트를 진행하게 된다.

 
02) UI 상세 설계
1. UI 시나리오 작성
(1) UI 상세 설계의 첫 단계는 시나리오 문서의 작성이다. 전체 기능을 한 번에 확인하고 
이해할 수 있도록 기능 구조를 만들게 되는데, 보편적으로 계층 구조 또는 플로차트 
형태로 작성하게 된다.
(2) 모든 기능에 대해서 공통적으로 적용되는 UI 요소와 사용자와의 상호 작용에 대한 일
반적인 규칙을 정의한다.
(3) 사용자와 화면과 화면의 상호 작용에 대한 흐름과 순서(Sequence), 분기(Branch), 조건
(Condition), 루프(Loop) 등을 명시한다.
(4) UI에 대한 일반 규칙을 준수하고 각 기능의 상세 시나리오를 작성한다.
2. UI 시나리오 작성을 위한 일반적인 규칙에 대한 정의
(1) 주요 버튼의 위치와 기능
화면에서 공통으로 배치되는 주요 버튼들의 위치와 기능을 설명하는 것으로 화면들에 
대한 일관성을 보장한다.
(2) 공통 UI 요소
다양한 형태의 입력 폼(일반 버튼, 체크 박스, 라디오 버튼, 텍스트 입력, 탭 등)과 각 
UI 요소들에 대해 언제 사용되는지, 어떤 형태를 갖는지를 정의하며 사용자의 조작에 
대해 어떻게 반응하는지를 설명한다.
(3) 기본 레이아웃
여러 화면에 공통적으로 나타나는 제목, 버튼들, 인디케이터 등의 위치와 속성을 설명
한다.
(4) 기본 상호 작용 규칙
공통적으로 사용되는 조작 방법과 실행, 이전, 다음 등과 같은 화면 전환효과 등에 대
해 설명한다.
(5) 공통 단위의 테스크 흐름
대다수의 기능에 공통적으로 사용되는 삭제, 검색 등에 대한 반응 흐름을 설명한다.
3. UI 시나리오 작성에서 고려할 사항
(1) 완전성(Complete)
누락되는 것이 없도록 최대한 상세하게 기술해야 하며 해당 시스템보다는 사용자의 
사용 방법에 기초하여 작성해야 한다.
(2) 일관성(Consistent)
전체 화면과 UI 요소들은 일관성을 갖고 있어야 한다.
(3) 가독성(Readable)
표준화된 템플릿 등을 활용하여 작업자 간에 문서 통한 소통이 원활하여야 하며 문서
를 쉽게 읽을 수 있어야 한다.
(4) 이해성(Understandable)
추상적이거나 보편적으로 사용하지 않고 이해하기 어려운 용어의 사용은 피한다.
(5) 수정 용이성(Modifiable)
수정이나 개선 사항에 대해서 시나리오에 반영하는 것이 쉬워야 한다.
(6) 추적 용이성(Traceable)
변경 사항에 대해서 언제, 어떤 부분이 어떤 이유로 변경 되었는지에 대해 쉽게 추적
할 수 있어야 한다.
 
3) GUI 설계
GUI 설계를 통해 개발 소프트웨어의 시각적 콘셉트를 정의하고 표현한다. 이를 통해 전체 
UI 구성에 대해 이해할 수 있다.
1. 통일성(Unity)
GUI 설계에서 통일성은 UI 요소들이 공통적으로 갖는 특성을 뜻한다. 통일성을 나타내는 
방법은 색상, 모양, 스타일, 요소들의 배치 등 다양하게 존재한다.
2. 우선순위
우선순위는 화면에 보이는 요소들의 나열되는 순서라고 할 수 있다. 우선순위는 사용자가 
해당 페이지를 바라보는 시선에 따라 정해지며, 우선순위에 영향을 줄 수 있는 요소로는 
UI 요소들의 위치, 색상, 크기 등이 있다.
3. 그 외의 요소들
GUI 설계에서 고려해야 할 부분은 통일성, 우선순위 외에도 비율과 균형, 인터랙션과 모
션 등이 있다.
 

[02]  UI 상세 설계하기

1. UI 시나리오 문서를 작성한다.
(1) 전체 페이지들의 계층 구조를 설계한다.



(2) 전체 페이지에서 공통적으로 적용되는 UI 요소들에 대해 정의한다.
(3) 메인 화면에 대한 레이아웃과 기능을 정의한다.
(4) 각 페이지별 이동 경로를 설계한다.
(5) 전체 사이트 맵을 작성한다.



(6) UI 시나리오 내용을 구성원 간에 반복하여 검토한다.
2. GUI 템플릿 제작과 화면을 디자인한다.
(1) 화면 디자인에 활용될 레이아웃, 컬러 패턴, 디자인 요소 등을 정의한다.
(2) 디자인 요소들에 대한 정의 이후에 GUI 템플릿을 제작한다.



(3) 각 페이지에 대한 세부 화면을 디자인 한다.
(4) 디자인된 GUI 화면을 검토한다.


 



5. 수업

진도: 

hw: 


6. 할것




1. web.xml → 한글 처리★

2. pom.xml → lib설정★

3. web-inf/root-context.xml★

web-inf/appservlet/servlet-context.xml★

4. resources/*.xml -> CRUD★

src/test/resources/homepage.xml → test용 bean 설정★

5. dao → junittest★






6. Controller 생성

7. view 연결

//6이랑 7 같이 bbs에선 csfinder (tlds도 건드리고) + etc 어려운거 : member

//memo부터~.~

루트 -컨텍스트 하는 중임★


Bbs

Reply

Image



Memo★

Guest★

Member★


8. tile2 → template 설정



덧글 & bbs는 같이 서비스를 만들고 (서비스 = 매니저 같은 것)

= 관계가 형성되어진 DAO는 같이 서비스를 사용하고

관계가 없는 애들은 따로 따로 dao 마다 서비스를 만든다.



UML에서 ITestService는 선택 사항










오늘 신청해야 내일 시험 볼 수 있음


이건 스프링 디자인 참조 사이트


니가싫어도나는좋아.html



'Programming' 카테고리의 다른 글

160713: 84회차  (0) 2016.07.13
160712: 83회차  (1) 2016.07.12
160708: 81회차  (0) 2016.07.11
160707: 80회차  (0) 2016.07.07
160706: 79회차  (0) 2016.07.06
Posted by DAVID

160708: 81회차

Programming 2016. 7. 11. 09:29

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것



html 뷰 작성하느라 못 적음



5. 수업

진도: 

hw: 


6. 할것



'Programming' 카테고리의 다른 글

160712: 83회차  (1) 2016.07.12
160711: 82회차  (0) 2016.07.11
160707: 80회차  (0) 2016.07.07
160706: 79회차  (0) 2016.07.06
160705: 78회차  (0) 2016.07.05
Posted by DAVID

160707: 80회차

Programming 2016. 7. 7. 18:12

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것



[11] [OOAD] 분석시퀀스 다이어그램(Sequence Diagram)

[01] 분석시퀀스 다이어그램

1. 시퀀스 다이어그램(Sequence Diagram)


  -  시퀀스 다이어그램은 상호작용 다이어그램의 일종으로 , 어떤 기능을 실현하기 위한 객체 간 메세지의 교환을
     시계열로(시간순서 대로) 표현한다.

 - 시퀀스 다이어그램은 시스템개발의 상위 작업부터 하위 작업까지 여러단계에서 사용된다.


2.  시퀀스 다이어그램의 주요요소

 1) 라이프 라인(Life Line)

   - 어떤 기능을 실현하기 위해 상호 작용에 추가하는 객체를 나타낸다. 라이프라인의 점선은 객체가 생존하는 시간을 위에서 
     아래로 나타낸다.  점선에 X가 덧붙여질 경우  객체의 소멸시점을 나타낸다.






  2) 메시지(Message)와 메세지 반환(Return)

   - 메시지는 라이프라인이 가지는  메소드의 호출을 나타내는 것으로 객체간의 통신에 사용된다. 이때 메소드를 가지는 것은
     메시지를 수신한 측의 라이프 라인 이다. 

  - 메시지는 각 라이프 라인의 점선을 잇는 실선의 화살표로 표기한다.메시지가 반환되는 것은 점선의 화살표로 표시한다.
    또한 수행하는 메소드의 반환값이 있을경우 여기에 기술할 수 있다.


 


--------------------------------------------------------------------------------------------------------------------------------------------------
 [Sequence Diagram 예]

 



[02] UML 모델링 과정 





[12] NCS 학습모듈 - 화면 구현
[01] 화면 구현

- 학습목표 : 

요구 사항 분석 단계에서 파악된 화면에 대한 요구 사항을 소프트웨어 아키텍처 단계에서 정의
된 구현 지침 및 UI/UX 엔지니어가 제시한 UI 표준과 지침에 따라 화면과 폼, 메뉴 등의 구조와 
흐름을 구현하여 반영할 수 있다
- 선수학습
UML(Unified Modeling Language), HTML, CSS, JavaScript, 요구사항, 프로토타이핑, UI(User Interface)

- 핵심용어
요구 사항, 유스케이스, HTML, 프로토타이핑, CSS, JavaScript


- 내용 체계

1. UI 요구 사항 확인하기 
   
 1-1.  UI 요구 사항 검증 

 1-2.  UI 프로토타이핑 


2. UI 설계하기

  2-1  UI 설계 


3.  UI 구현하기 

  3-1  UI 구현 

  3-2  UI 테스트 




5. 수업

진도: 

hw: 


6. 할것



http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:%EA%B8%B0%EC%97%85%ED%9A%8C%EC%9B%90_%EA%B4%80%EB%A6%AC%EA%B8%B0%EB%8A%A5

'Programming' 카테고리의 다른 글

160711: 82회차  (0) 2016.07.11
160708: 81회차  (0) 2016.07.11
160706: 79회차  (0) 2016.07.06
160705: 78회차  (0) 2016.07.05
160704: 77회차  (0) 2016.07.04
Posted by DAVID

160706: 79회차

Programming 2016. 7. 6. 16:45

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것


[07] [OOAD] 분석모델 확인하기

[01] 분석모델 확인하기

(01) 분석모델 검증

 
1. 검증 방법
한국정보화진흥원의 "정보시스템 감리지침: 시스템 개발사업 객체지향 컴포넌트 모델 V1.0”
에서 사업유형이 시스템 개발, 감리 시점이 요구 분석, 감리 영역이 응용시스템인 경우 “유
스케이스 모형 상세화 수준 및 적정성”과 “개념 수준의 분석클래스 도출”에 관한 점검 
항목을 기준으로 검증하고 감리 시점이 분석 설계, 감리 영역이 응용시스템인 경우 “유스케
이스로부터 분석 클래스 도출 및 상세화”에 관한 점검항목을 기준으로 검증한다



2. 유스케이스 모델 검증


한국정보화진흥원의 정보시스템 감리지침에서는 시스템 기능에 대한 유스케이스 모형 상
세화 수준 및 적정성에 대하여 다음과 같은 사항을 점검하도록 하고 있다.




3. 개념 수준의 분석 클래스 검증
시스템의 주요 도메인 개념을 분석 클래스로 도출하여 유스케이스 분석에 활용하므로, 개
념 수준의 주요 분석 클래스를 적절히 도출하였는지, 관련 정보가 명확한지 점검해야 한
다. 주요 점검 항목은 다음과 같다.
- 개별 유스케이스 단위로 작성하지 않고 시스템 전체를 대상으로 작성하였는가?
- 중요도가 높은 요구사항 또는 유스케이스에 필요한 엔터티 클래스가 도출되었는가?
- 도출된 클래스 이름과 설명이 이해관계자 간에 이견이 발생하지 않도록 명확한가?
- 클래스의 속성은 도출하였는가? 도출된 속성의 이름과 설명이 명확한가?
- 클래스들 간에 순환적 관계가 불필요하게 정의되어 있는가?
- 클래스 간의 관계에서 다중성(Multiplicity)이 정의되었는가?



  



4. 분석 클래스 검증
유스케이스마다 분석 클래스가 적절히 도출되었고, 제어 클래스의 도출 등이 충분하고 상
세하게 도출되어 클래스의 역할, 클래스 간의 관계, 메시지 흐름 등을 확인할 수 있는지 
검토한다.
(1) 유스케이스 실현(Realization)에 필요한 분석 클래스 도출 확인
(가) 하나의 유스케이스를 실현하기 위하여 3개 이상의 클래스가 역할(Role) 기준으로 
    도출되어야 하며, 유스케이스 별로 실현에 필요한 클래스가 추적 가능해야 클래
    스 누락 여부를 확인할 수 있다.
(나) 유스케이스 별로 도출된 분석 클래스들이 역할(Role) 기준으로 경계(Boundary), 엔
    터티(Entity), 제어(Control) 클래스가 도출되어 스테레오 타입으로 표시되었는지 
    확인한다

 
   
    유스케이스 이벤트 흐름에 따라 다르지만 일반적으로 유스케이스 당 1개의 제어 클래스가 존재하고,
     연결된 액터마다 1개의 경계 클래스가 존재하는지 확인한다. 


 
    


 
    (2) 경계(Boundary)와 제어(Control) 클래스의 도출 여부 및 상세화 정도 확인
        유스케이스 실현에 필요한 분석 클래스들이 도출되었는지 확인하기 위하여,
        유스케이
스 단위로 분석 클래스를 확인한다  

    

    (3) 클래스 간의 관계, 클래스 정보의 상세화 정도 확인



        


        


 

(02) 분석모델의 시스템화 타당성 분석

유스케이스 모델의 개별 유스케이스에 대한 분석모델을 작성한 이후, 해당 분석모델로 시
스템을 개발하는 경우에 어떠한 영향을 미치는지 필요한 자원, 상호 운용성, 시장 성숙도, 
기술적 위험 분석 측면에서 타당성을 조사한다.




 



1. web.xml → 한글 처리★

2. pom.xml → lib설정★

3. web-inf/root-context.xml★

web-inf/appservlet/servlet-context.xml★

4. resources/*.xml -> CRUD

src/test/resources/homepage.xml → test용 bean 설정★

5. dao → junittest★






6. Controller 생성

7. view 연결

//6이랑 7 같이 bbs에선 csfinder (tlds도 건드리고) + etc 어려운거 : member

//memo부터~.~

루트 -컨텍스트 하는 중임★


Bbs

Reply

Guest

Image

Member

Memo



8. tile2 → template 설정



덧글 & bbs는 같이 서비스를 만들고 (서비스 = 매니저 같은 것)

= 관계가 형성되어진 DAO는 같이 서비스를 사용하고

관계가 없는 애들은 따로 따로 dao 마다 서비스를 만든다.



UML에서 ITestService는 선택 사항


















5. 수업

진도: 

hw: 


6. 할것


첨부에 uml 샘플


덧글 & bbs는 같이 서비스를 만들고 (서비스 = 매니저 같은 것)

= 관계가 형성되어진 DAO는 같이 서비스를 사용하고

관계가 없는 애들은 따로 따로 dao 마다 서비스를 만든다.



UML에서 ITestService는 선택 사항


'Programming' 카테고리의 다른 글

160708: 81회차  (0) 2016.07.11
160707: 80회차  (0) 2016.07.07
160705: 78회차  (0) 2016.07.05
160704: 77회차  (0) 2016.07.04
160701: 76회차  (0) 2016.07.01
Posted by DAVID

160705: 78회차

Programming 2016. 7. 5. 15:07

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것


1. web.xml → 한글 처리★

2. pom.xml → lib설정★

3. web-inf/root-context.xml★

web-inf/appservlet/servlet-context.xml★


4. resources/*.xml -> CRUD



Bbs

Reply

Guest

Image

Member

Memo ★


src/test/resources/homepage.xml → test용 bean 설정

5. dao → junittest

6. Controller 생성

7. view 연결

8. tile2 → template 설정



Bbs

Reply

Guest

Image

Member

Memo ★




[04] [OOAD] NCS 학습모듈 - 요구사항 확인

[01] 요구사항 확인

- 학습목표 : 

업무 분석가가 수집, 분석, 정의한 요구사항과 이에 따른 분석모델에 대해서 확인과 현행
시스템에 대해 분석할 수 있다.

 
- 선수학습
요구공항, 비즈니스 분석, UML 활용분석

- 핵심용어
현행 시스템 분석, 요구사항 확인, 요구공학, 분석모델 검증, 요구사항 타당성 분석, 요구사항정의서,
기능 요구사항, 비기능 요구사항


- 내용 체계

1. 현행시스템 분석하기
   
 1-1. 현행 시스템 파악

 1-2. 개발 기술 환경 정의


2. 요구사항 확인하기

  2-1 요구사항 정의

  2-2 요구사항의 시스테화 타당성 분석


3. 분석모델 확인하기

  3-1 분석모델 검증

  3-2 분석모델의 시스템화 타당성 분석


[05] [OOAD] 현행시스템 분석하기

[01] 현행 시스템 분석하기 
 
 1) 현행 시스템 파악
   - 개발하고자 하는 응용소프트웨어에 대한 이해를 높이기 위해, 현행 시스템의 적용현황을 파악함으로써
     개발범위와 향후 개발될 시스템으로의 이행방향성을 분석할 수 있다

 

   - 현행 시스템 파악의 개요  
 
   1. 현행 시스템 파악의 정의 및 목적
   (1) 현행 시스템 파악의 정의
       현행 시스템이 어떤 하위 시스템으로 구성되어 있는지,  제공하는 기능이 무엇인지,
       다른 
시스템들과 어떤 정보를 주고받는지, 어떤 기술요소를 사용하고 있는지, 사용하고 있는 
       소프트웨어 및 하드웨어는 무엇인지, 네트워크는 어떻게 구성되어 있는지 등을 파악하는 
       활동이다.
   (2) 현행 시스템 파악의 목적
       이를 통하여 향후 개발하고자 하는 시스템의 개발범위 및 이행방향성 설정에 도움을 
       주는 것이 목적이다.
 
   2. 현행 시스템 파악 절차
    아래와 같이 3단계로 구분하여 수행해야 할 활동들에 대하여 기술한다.
    - 1단계 현행 시스템의 구성, 기능, 인터페이스 현황을 파악하는 단계
    - 2단계 현행 시스템의 아키텍처 및 소프트웨어 구성 현황을 파악하는 단계
    - 3단계 현행 시스템의 하드웨어 및 네트워크 구성 현황을 파악하는 단계

       



- 현행 시스템 구성/기능 및 인터페이스
 1. 현행 시스템 구성 현황
  - 현행 시스템 구성 현황의 정의
    현행 시스템 구성 현황은 조직의 주요 업무를 처리하는 기간 업무와 이를 지원하는 
    지원 업무로 구분하여 기술한 것이다.
  - 현행 시스템 구성 현황 작성 시 고려 사항
    각 업무에 속하는 단위 업무 정보시스템들의 명칭, 주요 기능들을 명시함으로써 조직 
    내 존재하는 모든 정보시스템의 현황을 파악하도록 한다.
 
 2. 기능 현황
  - 기능 현황의 정의
    단위 업무 시스템이 현재 제공하고 있는 기능을 기술한 것이다.
  - 기능 현황 작성 시 고려 사항
    단위 업무 시스템에서 제공하는 기능들을 주요 기능과 하부 기능으로 구분하여 계층
    형으로 표시한다.
 
 3. 인터페이스 현황
  - 인터페이스 현황의 정의
    단위 업무 시스템이 다른 단위 업무 시스템과 주고받는 데이터의 종류, 데이터 형식, 
    프로토콜, 연계유형, 주기 등을 명시한 것이다.
  - 인터페이스 현황 작성 시 고려 사항
    중요한 고려 사항으로는 어떤 형식(format)으로 데이터를 주고받는지(XML, 고정 포맷,가변 포맷 등),
    어떤 통신규약(TCP/IP, X.25 등)을 사용하고 있고, 연계유형(EAI, FEP
 등)은 무엇인지 등이 있다.

















 
-  현행 시스템 아키텍처 및 소프트웨어
 
 1. 현행 시스템 아키텍처 구성도
   - 현행 시스템 아키텍처 구성도의 정의
     기간 업무를 수행하기 위하여 계층별로 어떠한 기술 요소들을 사용하고 있는지 최상
     위 수준에서 그림으로 표현한 것이다.
   - 현행 시스템 아키텍처 구성도 작성 시 고려 사항
     단위 업무 시스템별로 아키텍처가 다른 경우에는 가장 핵심이 되는 기간 업무 처리 
     시스템을 기준으로 한다.




※ [그림 1-2]에 대한 설명 전자정부 모바일 공통 컴포넌트는 효율적인 전자정부 기반 시스템의 
구축? 운영을 통해 전자정부의 서비스 품질 및 정보화 투자 효율 향상의 기반을 확보하고, 
모바일 전자정부 서비스에 대한 접근성
을 제고하기 위해 모바일 표준 프레임워크 기반으로 
개발된 공통 컴포넌트로서 주요 구성 요소는 다음과 같다.


- 공통 기반 계층(Foundation Layer): 실행 환경 서비스 간에 공통적으로 사용되는 기능을 제공한다.
- 화면 처리 계층(Presentation Layer/UX Layer): 업무 처리 서비스와 사용자 간의 인터페이스를 
  담당하는 서비스로 사용자 화면 구성 및 사용자 입력 정보 검증 등의 기능을 지원한다.
- 업무 처리 계층(Business Layer): 업무 프로그램의 업무 로직을 담당하는 서비스로 업무 흐름 제어,
  트랜잭션 관리, 에러 처리 등의 기능을 제공한다.
- 데이터 처리 계층(Data Access Layer): 업무 프로그램에서 사용할 수 있도록 데이터에 대한
   
CRUD 기능을 지원한다.
- 연계 통합 계층(Integration Layer): 타 시스템과의 연동 기능을 지원한다.


 
 2. 소프트웨어 구성도
 - 소프트웨어 구성도의 정의
   단위 업무 시스템의 업무 처리를 위해 설치되어 있는 소프트웨어들의 제품명, 용도, 
   라이선스 적용 방식, 라이선스 수를 명시한 것이다.
 - 소프트웨어 구성도 작성 시 고려 사항
   시스템 구축 시 인프라 구축 비용에서 하드웨어 비용뿐만 아니라 소프트웨어 비용이 
   적지 않기 때문에, 상용 소프트웨어의 경우에는 라이선스 적용 방식의 기준(사이트, 서
   버, 프로세서, 코어(core), 사용자 수 등)과 보유한 라이선스 수량 파악이 중요하다.


    



 
 - 하드웨어 및 네트워크
 
 1. 하드웨어 구성도
  - 하드웨어 구성도의 정의
    단위 업무 시스템들이 어디에 위치하고 있는 서버에서 운용되고 있는지 서버의 주요 
    사양(CPU 처리 속도, 메모리 크기, 하드디스크의 용량 등)과 수량, 이중화가 적용되어 
    있는지 여부를 명시한 것이다.
  - 하드웨어 구성도 작성 시 고려 사항
    이중화는 기간 업무의 서비스 기간, 장애 대응 정책에 따라 필요성 여부가 결정되며, 
    현행 시스템에서 이중화가 적용된 경우에는 목표 시스템에서도 이중화가 필요한 경우
    가 대부분이며, 이에 따라 인프라 구축 기술 난이도 및 비용 증가 가능성이 존재한다.




 
 2. 네트워크 구성도
 - 네트워크 구성도의 정의
   업무 처리 시스템들이 어떠한 네트워크 구성을 가지고 있는지 그림으로 표현한 것이다.    
 - 네트워크 구성도 작성 시 고려 사항
   네트워크 구성도의 작성을 통해 서버의 위치, 서버 간의 네트워크 연결 방식을 파악할 
   수 있다. 네트워크 구성도는 조직 내 서버들의 물리적인 위치 관계 파악, 조직 내 보
   안 취약성 분석 및 대응, 네트워크 장애 발생 추적 및 대응 등의 다양한 용도로 활용
   될 수 있다. 
 





 2) 개발 기술 환경 정의

 - 개발 기술 환경

   개발 기술 환경을 정의할 때  고려할 사항을 [그림 1-6]과 같이 운영체제, DBMS, 미들웨어,
    오픈 
소스 순으로 살펴본다.
 




1. 운영체제 주요 특징 및 고려 사항
(1) 운영체제의 정의
운영체제(OS: Operating System)는 하드웨어와 소프트웨어 리소스를 관리하고 컴퓨터 
프로그램을 위한 공통 서비스를 제공하는 소프트웨어를 의미한다. 관련 사이트 참고 
(https://en.wikipedia.org/wiki/Operating_system)
 
(2) 운영체제의 종류 및 특징
주요 운영체제로는 마이크로소프트 윈도즈(Microsoft Windows), 유닉스(UNIX), 리눅스
(Linux), 아이오에스(iOS), 안드로이드(Android) 등이 있다.
 
자바 가상 머신(JVM: Java Virtual Machine)은 다양한 하드웨어 및 운영체제에서 자바 (Java) 언어로 
작성된 애플리케이션을 수행하기 위한 사양(JVM Specification)의 구현체 (Implementation)를 의미한다.
오라클(Oracle)이 자바(Java) 상표를 소유하고 있으며, 핫 스팟(Hotspot) 구현체와 클래스 라이브러리(Class Library) 
구현체를 배포하고 있다. 아 이비엠(IBM)의 J9, 오라클(Oracle)의 JRockit(이전 BEA System 제공) 등
벤더별로 여러 자바 가상 머신(JVM: Java Virtual Machine) 구현체를 배포하고 있다.
관련 사이트 참 고(https://en.wikipedia.org/wiki/Java_virtual_machine)
 
(3) 고려 사항
 



 
2. DBMS 주요 특징 및 고려 사항
(1) DBMS의 정의 사용자, 다른 애플리케이션, 데이터베이스와 상호 작용하여 데이터를 저장하고
분석하기 위한 컴퓨터 소프트웨어 애플리케이션으로, 
데이터베이스 생성, 조회, 변경 등의 관리가
중요 기능이다. 
 관련 사이트 참고(https://en.wikipedia.org/wiki/Database)
 
(2) DBMS의 종류 및 특징


 
 
(3) 고려 사항

 
 
3. 미들웨어의 주요 특징 및 고려 사항
 
(1) 미들웨어의 정의
운영체제와 소프트웨어 애플리케이션 사이에 위치하는 미들웨어(Middleware)는 소프트
웨어 애플리케이션에게 운영체제가 제공하는 서비스를 추가 및 확장하여 제공하는 컴
퓨터 소프트웨어를 말한다. (https://en.wikipedia.org/wiki/Middleware) 여기에서는 미들웨
어 중 웹 애플리케이션 서버(WAS: Web Application Server)에 대해서 알아본다.
 
(2) 웹 애플리케이션 서버(WAS: Web Application Server)의 정의
동적인 웹 사이트, 웹 애플리케이션, 웹 서비스의 개발을 지원하기 위하여 설계된 소
프트웨어로서 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리를 제공하
고 있다. 관련 사이트 참고(https://en.wikipedia.org/wiki/Web_application_framework)
 
(3) 웹 애플리케이션 서버(WAS: Web Application Server)의 종류 및 특징
 


 
(4) 고려 사항
 


 
4. 오픈 소스 사용에 따른 고려 사항
(1) 오픈 소스의 정의
오픈 소스(Open Source)는 소스 코드를 공개해 누구나 특별한 제한 없이 그 코드를 보
고 사용할 수 있는 오픈 소스 라이선스를 만족하는 소프트웨어를 말한다
 
 
(2) 오픈 소스 사용 시 고려 사항
오픈 소스를 사용하는 경우에는 라이선스의 종류, 사용자 수, 기술의 지속 가능성 등
을 고려해야 한다. 라이선스의 종류 등 자세한 내용은 한국저작권위원회의 OLIS 사이
트(https://www.olis.or.kr)를 참조한다. 어떠한 오픈 소스를 사용해야 라이선스의 문제가 
없을지 판단이 어려운 경우에는 전자정부 표준 프레임워크에서 사용 중인 오픈 소스 
소프트웨어를 참조할 수 있다



 - 시스템 용량산정 방법

수집 및 분석된 온라인 트랜잭션 처리(OLTP: Online Transaction Processing), WEB/WAS 
기초 자료 조사 항목의 값을 시스템 용량산정 엑셀 파일에 입력하여 CPU, 메모리,디스크
용량을 계산한다.

(1) CPU 용량산정
(가) OLTP/Batch/데이터베이스 서버
온라인 트랜잭션 처리(OLTP: Online Transaction Processing)/일괄작업(Batch)/데이터베이스
서버의 CPU 용량을 산정하기 위한 상세 내용은 본 학습모듈의 부
록을 참조한다.
구체적인 CPU 용량 산정 절차는 [그림 1-7]과 같다.
 

 
위의 절차대로 시스템 용량을 산정할 수 있도록 한국정보화진흥원에서는 엑셀
(Excel) 파일을 제공하고 있다.
(http://www.nia.or.kr/bbs/board_view.asp?BoardID=201111281321074458&id=1536&
Order=&search_target=&keyword=&Flag=) 아래는 이 파일의 온라인 트랜잭션 
처리(OLTP) 서버의 CPU 용량산정 시트(Sheet)이다.
WEB/WAS 용량산정, 메모
리 용량산정, 디스크 용량산정 시트도 제공하고 있다.

 
 
(나) WEB/WAS 서버
WEB/WAS 서버의 CPU 용량을 산정하기 위한 상세 내용은 본 학습모듈의 부
록을 참조한다. 구체적인 CPU 용량 산정 절차는 [그림 1-9]와 같다.

 
 
(2) 메모리 용량산정
서버의 메모리를 산정하기 위한 상세 내용은 본 학습모듈의 부록을 참조한다. 구
체적인 메모리 용량산정 절차는 [그림 1-10]과 같다. 
 

 
(3) 디스크 용량산정
시스템의 디스크 용량을 산정하기 위한 상세 내용은 본 학습모듈의 부록을 참조
한다. 디스크 용량산정 절차는 [그림 1-11]과 같다.




[06] [OOAD] 요구사항 확인하기

[01] 요구사항 정의

학습목표:

• 소프트웨어 공학기술의 요구사항 분석 기법을 활용하여 업무 분석가가 정의한 응용 소프트웨어의
  요구사항을 
 확인할 수 있다. 
• 업무 분석가가 분석한 요구사항에 대해 정의된 검증기준과 절차에 따라서 요구사항 을 확인할 수 있다

1)  요구공학 개요
- 요구공학(Requirements Engineering)이란 요구사항을 정의하고, 문서화하고, 관리하는 프로
  세스를 의미한다. (https://en.wikipedia.org/wiki/Requirements_engineering)
 
1. 요구사항 개발 프로세스
소프트웨어공학 지식체계(SWEBOK: SoftWare Engineering Body of Knowledge)에서는 이 
프로세스를 요구사항 도출(Elicitation), 분석(Analsysis), 명세(Specification), 확인(Validation)
으로 구분하고 있다. (http://www.computer.org/web/swebok)
 

 

(1) 요구사항 도출(Requirement Elicitation)
   (가) 요구사항 도출은 소프트웨어가 해결해야 할 문제를 이해하는 첫 번째 단계로서 
         요구사항이 어디에 있고, 어떻게 수집할 것인가와 관련되어 있다.
   (나) 이 단계에서 이해관계자(Stakeholder)가 식별되고, 개발 팀과 고객 사이의 관계가 
         만들어진다.
   (다) 이 단계에서는 다양한 이해관계자와 효율적인 의사소통이 중요하다.
 
(2) 요구사항 분석(Requirement Analysis)
   (가) 요구사항들 간 상충되는 것을 해결하고, 소프트웨어의 범위를 파악하며, 소프트
        웨어가 환경과 어떻게 상호 작용하는지 이해한다.
   (나) 시스템 요구사항을 정제하여 소프트웨어 요구사항을 도출한다. 
 
(3) 요구사항 명세(Requirement Specification)
   (가) 요구사항 명세란 체계적으로 검토, 평가, 승인될 수 있는 문서를 작성하는 것을 
        의미한다.
   (나) 시스템 정의, 시스템 요구사항, 소프트웨어 요구사항을 작성한다.  
 
(4) 요구사항 확인(Requirement Validation)
   (가) 분석가가 요구사항을 이해했는지 확인(Validation)이 필요하고, 요구사항 문서가 
        회사의 표준에 적합하고 이해 가능하며, 일관성이 있고, 완전한지 검증
        (Verification)하는 것이 중요하다.
   (나) 이해관계자들이 문서를 검토해야 하고, 요구사항 정의 문서들에 대해 형상 관리
         를 해야 하는데, 일반적으로 요구사항 관리 툴을 이용한다.
   (다) 리소스가 요구사항에 할당되기 전에 문제를 파악하기 위하여 검증을 수행한다.
        위와 같은 요구사항 개발 프로세스 중에서 요구사항 확인하기와 관련된 단계는 분석 및 
        검증 단계이므로, 필요 지식에서는 도출 및 명세 단계를 생략한 분석 및 검증 단계에 대
        해서만 기술하기로 한다.


2) 요구사항 분석 기법 
      요구사항분석참조
      요구사항 분석을 통해 요구사항을 기술할 때에는 아래의 작업들이 가능하도록 충분하고 
      정확하게 기술하여야 한다.
         - 요구사항의 확인(Validation)
         - 요구사항 구현의 검증(Verification)
         - 비용 추정
 
     분석기법으로 요구사항 분류((Requirement Classification), 개념 모델링(Conceptual Modeling), 
     요구사항 할당((Requirement Allocation), 요구사항 협상((Requirement Negotiation),
     정형 분
석(Formal Analysis) 등이 있다.
 
  1. 요구사항 분류(Requirement Classification)
     요구사항을 다음과 같은 기준으로 분류한다.
    - 요구사항이 기능인지 비기능인지
    - 요구사항이 하나 이상의 고수준 요구사항으로부터 유도된 것인지 또는 이해관계자나 
      다른 원천(Source)으로부터 직접 발생한 것인지
    - 요구사항이 제품에 관한 것인지 프로세스에 관한 것인지
    - 우선순위가 더 높은 것인지 여부
    - 요구사항의 범위(요구사항이 소프트웨어에 미치는 영향의 범위)
    - 요구사항이 소프트웨어 생명 주기 동안에 변경이 발생하는지 여부
 



2. 개념 모델링(Conceptual Modeling)
(1) 개념 모델의 역할
(가) 실세계 문제에 대한 모델링이 소프트웨어 요구사항 분석의 핵심이며, 모델은 문
     제가 발생하는 상황에 대한 이해를 증진시키고 해결책을 설명한다. 
(나) 따라서 개념 모델은 문제 도메인의 엔터티(entity)들과 그들의 관계 및 종속성을 
     반영한다.
 
 
(2) 개념 모델의 종류와 표기법
(가) 유스케이스 다이어그램(Use Case Diagram), 데이터 흐름 모델(Data Flow Model), 
     상태 모델(State Model), 목표기반 모델(Goal-Based Model), 사용자 인터액션(User 
      Interactions), 객체 모델(Object Model), 데이터 모델(Data Model) 등과 같은 다양한 
     모델을 작성할 수 있다.
(나) 대부분의 모델링 표기법은 UML(Unified Modeling Language)을 사용한다.
 
(3) UML 다이어그램의 사용
(가) 사용 시나리오를 나타내기 위하여 유스케이스 다이어그램이 많이 사용되고 있다.
(나) 구조 다이어그램(Structure Diagram)은 시스템의 정적 구조(Static Structure)와 다
     양한 추상화 및 구현 수준에서 시스템의 구성 요소, 구성 요소들 간의 관계를 보
     여 준다. 
(다) 행위 다이어그램(Behavior Diagram)은 시스템 내의 객체들의 동적인 행위(Dynamic 
      Behavior)를 보여 주며, 시간의 변화에 따른 시스템의 연속된 변경을 설명해 준다.
 
3. 요구사항 할당(Requirement Allocation)
(1) 요구사항을  만족시키기 위한 아키텍처 구성 요소를 식별하는 것을 요구사항 할당이
    라 한다.
(2) 다른 구성 요소와 어떻게 상호 작용하는지 분석을 통하여 추가적인 요구사항을 발견
    할 수 있다.
 
4. 요구사항 협상(Requirement Negotiation)
(1) 두 명의 이해관계자가 서로 상충되는 내용을 요구하거나, 요구사항과 리소스, 기능과 
    비기능 요구사항들이 서로 상충되는 경우, 어느 한 쪽을 지지하기보다는 적절한 트
    레이드 오프 지점에서 합의가 중요하다.
(2) 요구사항에 우선순위를 부여하는 것은 중요한 요구사항을 필터링할 수 있으며, 요구
    사항들 간 상충되는 문제를 해결하는 데 사용될 수 있다.
 
5. 정형 분석(Formal Analysis)
(1) 형식적으로 정의된 시맨틱(Semantics)을 지닌 언어로 요구사항을 표현한다.
(2) 정확하고 명확하게 표현하여 오해를 최소화시킬 수 있다.
(3) 정형 분석(Formal Analysis)은 요구사항 분석의 마지막 단계에서 이루어진다.
 
3) 요구사항 확인
  분석가가 요구사항을 이해했는지 확인(Validation)하는 것이 필요하고, 요구사항 문서가 회
  사의 표준에 적합하고 이해 가능하고, 일관성이 있고, 완전한지 검증(Verification)하는 것
 이 중요하다. 이해관계자들이 문서를 검토해야 하고, 요구사항 정의 문서들에 대해 형상  
 관리를 해야 하는데 일반적으로 요구사항 관리 툴을 이용한다. 리소스가 요구사항에 할당
 되기 전에 문제를 파악하기 위하여 검증을 수행한다.
 
1. 요구사항 확인 기법
(1) 요구사항 검토(Requirement Reviews)
(가) 요구사항 검증의 가장 일반적인 방법으로, 여러 검토자들이 에러, 잘못된 가정, 
     불명확성, 표준과의 차이 등을 찾아내는 작업을 수행하며, 검토자 그룹을 어떻게 
     구성하느냐가 중요하다.
(나) 예를 들어, 고객 중심 프로젝트에서는 검토자 그룹에 고객 대표자가 1명 이상 포
     함되어야 한다.
(다) 검토는 시스템 정의서(System Definition Document), 시스템 사양서(System Specification), 
     소프트웨어 요구사항 명세서(SRS: Software Requirements Specification Document)
     를 완성한 시점 등에서 이루어진다.
 
(2) 프로토타이핑(Prototyping)
(가) 프로토타이핑은 새로운 요구사항을 도출하기 위한 수단으로, 또한 소프트웨어 요
     구사항에 대해 소프트웨어 엔지니어가 해석한 것을 확인하기 위한 수단으로 많
     이 사용된다.
(나) 프로토타이핑의 장점은 분석가의 가정을 파악하고 잘못된 경우 유용한 피드백을 
     제공한다는 점, 사용자 인터페이스(User Interface)의 동적인 행위가 문서나 그래
     픽 모델보다 프로토타입으로 이해하기 쉬운 점, 요구사항의 가변성이 프로토타이
     핑 이후에 급격히 감소하는 점이다.
(다) 단점은 사용자의 관심이 핵심 기능에서 멀어지고 프로토타입의 디자인이나 품질
     문제로 집중될 수 있으며, 프로토타입 수행 비용이 발생한다는 것이다. 
(라) 잘못된 요구사항을 만족시키기 위하여 자원을 낭비하는 것을 방지할 수 있다는 
     점에서 프로토타이핑을 긍정적으로 검토할 수 있다.
(3) 모델 검증(Model Verification)
(가) 분석단계에서 개발된 모델의 품질을 검증할 필요가 있다.
(나) 예를 들어, 객체 모델의 경우 객체들 사이의 존재하는 의사소통 경로(Communication 
     Path)를 검증(Verify)하기 위하여 정적 분석(Static Analysis)을 수행하는 것이 유용
     하다.
(4) 인수 테스트(Acceptance Tests)
(가) 요구사항의 중요한 속성은 최종 제품이 요구사항을 만족시키는지 확인이 가능해
     야 한다는 것이다
(나) 각각의 요구사항을 어떻게 확인할 것인지에 대한 계획을 세워야 한다.
     요구사항 검증 단계에서 사용되는 기법 이외에 요구사항 품질 검증을 위한 국내 표준을 
     활용하여 요구사항을 검증할 수 있다. 정보통신단체표준 TTAK.KO-11.0103 “소프트웨어 
     요구사항 품질 평가 항목”에서는 요구사항 명세의 품질을 객관적이고 정량적으로 평가하
    기 위한 기준으로 평가 항목을 제시하고 있다. 구체적인 품질 모델, 품질 특성, 품질 특성 
    평가 항목은 부록을 참조한다.



[02] 객체 지향 분석(Object Oriented Analysis) 
     - UML: Usecase Diagram 정의
     - Tool: StarUML 
     - StarUML 다운
   
     - Project main folder
       . F:/javadb
       . F:/javadb/datadown               : 개발관련 프로그램
       . F:/javadb/ojt/analyze_design    : 각종 설계 문서 및 파일 자료
       . F:/javadb/eclipse                   : main development tool 
       . F:/javadb/lib                          : jar Library
 
                             :
                             :

 
1. 요구 사항 정의(Defining Requirement)
   - 기능적 모델링(Functional Modeling)
   - 요구되는 기능 정의
 
1)  유스케이스 다이어그램(UseCase Diagram)
    - 외부로 부터 본 시스템의 기능(행동)을 표현한다. 즉 어떤 시스템을 외부(사용자 등)에서 봤을때,
      이 시스템에 어떠한 기능이 존재하는가를 확인할 수 있다.
 
   - 요구 분석등의 상위작업에서 사용되며, 사용자의 '이 기능이 필요하다'라는  요구(기능 요구)를 정리
     하여 개발 대상을 명확하게 하기 위해 사용한다.

 

2) 유스케이스 다이어그램(UseCase Diagram)의 주요 요소 

  - 액터(Actor)
    어떤 시스템을 중심으로 봤을때,  그 외부에 존재하는 것을 나타낸다. 일반적으로 시스템의 사용자나
    관련된 외부의 시스템을 나타낸다.

    액터는 사람모양을의 아이콘으로 표기하며, 액터를 추상화 하거나 구체화할 경우에는 액터간의 일반화
    (generalization) 관계로 표현할 수 있다.

    일반화 관계는 객체 지향의 상속과 그 의미가 유사하며, 일반화 액터의 모든 기능을 특수화한 액터가 갖게
    된다. 아래의 그림은 영업이 일반화 액터이고, 영업부장이 특수한 액터가 된다.

     

  - 유스케이스(UseCase)
   어떤 시스템을 외부에서 봤을 때, 그 시스템이 가지고 있는 기능을 나타내는 것이다. 그래서 외부로 부터 
   파악할 수 없는 레벨의 내부처리는 유스케이스로 표현하지 않는다.

   유스케이스는 타원형으로 표기하고, 타원 안에 이름을 기술한다. 어떤 기능이 다른 기능을 포함할 경우에는,
   유스케이스간에 포함(include)관계를 사용해서 표현한다.
   또, 어떤 기능을 확장해서 기능(처리)를 추가할 경우에는 유스케이스 간에 확장(extends)의 관계를 사용해서
   표현한다.

   아래의 그림은 수주 내용을 등록하기 위해서 고객정보를 등록하는 작업을 확장(추가)하고, 고객정보를 확인
   하는 작업을  포한 함고 있다.
   

 - 관련(Association)
   양쪽 끝에 화살모양이 없는 실선 모양으로 유스케이스와 액터간의 관련성을 나타낸다.

 ---------------------------------------------------------------------------------------------------------------

[UseCase Diagram 예]

  


 
[과제] 역활 분담 수정
       - 요구사항 정의 후 발생된 내용을 가지고 역활 재 정의
   
 
 
 
 
3) 유즈케이스 정의서 작성
 
1. Usecase Specification(유즈케이스 정의서)
   - 회사마다 독립적인 양식이 있으며 엑셀, 워드, 프로젝트 관리 솔루션등을
     이용합니다. 
 
 
Usecase 번호: mem01_회원가입
 
Actor     System
----------------------------------
비회원    1) 아이디 중복 확인
             - 아이디 중복되면 Ex01
          2) 별명 중복 확인
             - 별명 중복되면 Ex02
          3) 주민등록번호 중복 검사
             - 주민등록번호 중복되면 Ex03 
          4) 이메일 중복 검사
             - 이메일 중복되면 Ex04 
          5) 기타 정보 입력 후 전송
 
 
예외 처리
         Ex01: 아이디 중복 안내 창 출력
         Ex02: 별명 중복 안내 창 출력
         Ex03: 주민등록번호 중복 안내 창 출력
         Ex04: 이메일 중복 안내 창 출력
 
 
 
 
 
2. Usecase Specification(유즈케이스 정의서)까지 만들어 질 경우 의뢰인의
   의도를 구체적으로 어느정도 파악 할 수 있게 됩니다.
 

































5. 수업

진도: 

hw: 


6. 할것



'Programming' 카테고리의 다른 글

160707: 80회차  (0) 2016.07.07
160706: 79회차  (0) 2016.07.06
160704: 77회차  (0) 2016.07.04
160701: 76회차  (0) 2016.07.01
160630: 75회차  (0) 2016.06.30
Posted by DAVID

160704: 77회차

Programming 2016. 7. 4. 15:35

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것



[01] NCS 란?

[01] NCS(?National Competency Standards)

1. 국가직무능력표준(NCS)은 무엇인가?
 - 국가직무능력표준(NCS, National Competency Standards)은 산업현장에서
   직무를 행하기 위해 요구되는 지식.기술.태도 등의 내용을 국가가 체계화한 것
 
 
2. 일을 할 수 있는 On-Spec인 능력(On-Spec: 스팩을 넘어서 능력중심) 
 - 직업기초능력 : 직업인이 공통으로 갖추어야 할 능력(의사소통능력, 정보능력 등)
 - 직무수행능력 : 그 분야의 특정 전공능력(NCS)
 
 
3. 직업기초 능력영역
 
 
4. 국가직무능력표준 개념도


[01] Project 팀원 결정, 주제 선정 기초 조사, 주제 결정

[01] Project 팀원 결정
 
1. 팀원 이력 조사
   ① 성명:
   ② 사용가능 DB:
   ③ 사용가능 언어(독학 포함):
   ④ 교육 이력(전산관련 교육, 현재 학원 과정은 미포함):
   ⑤ 개발 경력(모든 언어):  
 
 
프로젝트 팀원 발표
 
 
 
2. 팀장, 수석 프로그래머,총무 선출 
 
 
 
3. Project 주제 선정 기초 조사
 
  ★  필수 기술 2가지이상 선택하여 프로젝트 진행
 
   - 개발 유형
     . Model 2          : MVC,  Spring
     . Persistence Logic: iBATIS,MyBatis, Hibernate등
     . User interface   : Ajax, jQuery, ActionScript 등
     . DBMS             : SQL, PL/SQL
   - 개발 방법론: CBD(Component Based Development) & SOA(Service Oriented Architecture)
   - 사용 DBMS: OracleXE 11g
   - 개발 OS: Windows 7
  
   - OJT 프로젝트 주제를 선정 합니다.
     . 팀원이 흥미를 갖는 주제로 선정합니다.
 
     ⓐ 주변에서 소재 찾기
     ⓑ 직장 근무 경험(업무 프로세서를 알고 있어야 가능)
     ⓒ 블로그, UCC, 이미지 갤러리, 영상 갤러리등 인터넷 기술 관련
     ⓓ 각종 관리 시스템의 응용(인사, 자재, 물류 관리 시스템)
     ⓔ 각종 예약 시스템의 응용(각종 운송 수단, 팬션)
     ⓕ 각종 판매 시스템의 응용(각종 쇼핑몰등)
 
        정치, 경제, 사회, 문화등 전 분야를 대상으로 주제를
        선정 할 수 있으나 DBMS를 기반으로 하는 프로젝트여야 합니다.
 
   - 유사 사이트와 구체적인 기능을 1~2줄로 요약하여 게시판에 등록합니다.
 
   - 각팀은 2개정도의 주제에대해서 구체적인 기능을 유사사이트를
     통해 시연 합니다.
 
 
 
 
 
[과제] 프로젝트 유형과 주제를 결정해 주시기 바랍니다.
 
 
 
 
 
[참고] OJT 리스트

- Web Application + RIA
. 각종 쇼핑몰
. 블로그
. 커뮤니티
. 각종 예약 시스템
. 레포트 재판매 시스템
 
 
- RFID + Web Application + RIA
. SOA 기반 각종 물류 추적 관리 시스템
. SOA 기반 도서 밀반출 차단 시스템
. SOA 기반 무인 자동화 주차장 관리 시스템
. SOA 기반 친환경 농산물 원산지 추적 관리 시스템
. SOA 기반 애완견 혈통 이력 추적 관리 시스템등 응용 Application 제작
. SOA 기반 수퍼 마켓 자동 정산 시스템
. SOA 기반 유기농 야채 이력 파악 시스템
. SOA 기반 항공 수화물 관리 시스템
. SOA 기반 영화 관람용 전자 티켓
. SOA 기반 미아 실종을 막을 수 있는 유치원 출입 관리 시스템
. SOA 기반 무인 도서관 좌석 예약 시스템
. SOA 기반 가짜양주 검색 시스템
. SOA 기반 실내온도 모니터링 시스템
. SOA 기반 도서 밀반출 차단 시스템
. SOA 기반 애완견 혈통이력 관리 시스템
. SOA 기반 무료급식 온라인 지원 시스템
. SOA 기반 도서관 자리 예약 시스템
 
 -----------회의-----------------

[1차 회의]

강부철: 홰이스북
홍선미: 여행 사이트 - 날씨 
지향길: 나라 소개 커뮤니티
김민경: 취업 관련(잡코리아)★★★★★★
김별: 구글 같이 검색 가능한 사이트
김민기: 택시 평가 사이트(1100)
전범수: 변호사 상담 사이트

[2차 주제 선택]

강부철- 페이스북 안에 싸이월드처럼 볼 수 있는 공간 제공
홍선미- 국내 여행지 중에 좋은 곳을 묶어서 소개를 해주는 
지향길- 블로그 게시판 처럼 올리는 것
★김민경- 기업 정보, 공채 달력, 채용 공고 제공하는 사이트
김별- 검색 사이트
김민기-택시를 타고 / 게시판 제목에 택시 번호 입력 (기사 인성 평가)
전범수 - 법률 상담이 필요한 사람들이  상담글을 올리면 근처 변호사무소에서 예상 수임료를 제시해서 상담이 필요한 사람과 변호사들을 연결해 주는 서비스

---------------------------------------------------------------------------------------------------------------------

[주제: 취업 관련 사이트]

IT계열 취업 관련 정보 제공 및 기업의 인재 유입과 개인 구직 활동에 도움이 되는 사이트
 
1. 구직자 가입기능
01) 구직자 회원가입
02) 회원 가입시 이력서 첨부 기능
2. 검색기능
01) 분류(지역별 / 업종별)
3. 글 등록 기능
01) 개인 - 이력서
02) 기업 - 인재상

4. 회사 가입기능
01) 회사 회원가입 
02) 연봉 정보
03) 인재 정보

5. 고객 센터
01) 문의 사항
02) 공지 사항


6. 추가 기능
01) 면접 팁
02) 면접 후기
03) 공채 달력 제공
04) 로그인시 지역 정보 제공
05) 이력서 첨삭 기능
06) 직업별 전망
07) 적성 검사
08) 취업 성공 패키지 및 정부 지원금 관련 정보
09) 스카웃 정보
  10) 회사 평점
11) 회사별 필수 자격증 정보










[참조 사이트]
URL 1. 잡코리아 
URL 2. 사람인


선생님의 팁:
회사 / 개인 분류 명확하게

-----------------------------------------------------


[03] 프로젝트 전반적인 흐름, 역할 분담

[01] 프로젝트 전반적인 흐름(CBD(Component Based Development)) 
 
1. 프로젝트 입찰 및 수주
   - 제안서는 의뢰인이 생각하고 있는 방향을 미리 파악하여 사전 조율할 수
     있는 기회를 제공합니다. 아무리 작은 개인이 하는 프로젝트라도 단순한
     형태라도 제안서 작성을 권장합니다.
 
 
   - 1차 제안서
     . 프로젝트 진행의 필요성을 전달 합니다.
     . 제안서 제출 대상 기업이 프로젝트 진행에 관심이 있도록 유도를 합니다.
     . 같은 업종의 기업을 조사하여 현재 시장 동향, 전산화 한 후의 발생 효과를
       명시합니다.
 
   - 2차 제안서 제출
     . 1차 제안서를 받은 기업이 프로젝트에 관심을 보일경우 제작하여 
       대상 기업을 방문해 브리핑을 합니다.
     . 대상 기업이 최대한 관심을 갖도록 제안서를 세세하게 작성합니다.
  
 
 
※ 대규모 프로젝트 진행사: LG CNS, SK CNC, Samsung SDS 
 
 
 
 
 
2. 채택된 제안서에 따른 기획서 제출
   - 인건비, 각종 프로그램, 장비 구입비
   - 개발 기간
   - 지체 보상금: 1일당 견적금액의 1/1000, 최대 1,000만원을 넘지 않는다.
   - 프로젝트 진행에따른 중도금 반환 일정
     . 착수금: 30%, 1차 중도금 40, 2차 중도금 20%, 프로젝트 종료후 30일후 10% 
   - 프로젝트 종료후 유지보수 비용
 
 
 
 
 
3. 업무 분석 및 설계, 개발과 관련된 기획서 작성
   - 개발과 관련된 구체적인 프로젝트 일정을 PM/PL들이 산출
 
 
 
 
 
4. 의뢰인 요구사항 파악
   - 설계 분석팀에서 작성
   - 실무자와 거의 매일 많은 회의가 이루어짐
   - 유스케이스 모델(Usecase Model)의 작성
   - Tool: Rational Rose, StarUML
   - 새로 발결된 요구사항이나 무리한 요구 사항 발생시
     개발 금액 및 견적 재 조정 하거나 분석자는 개발 계획에
     지장이 없도록 요구사항 조절 정의
   - IT 비전문가가 이해할 수 있는 유일한 설계 문서임으로 의뢰인의
     요구가 충분히 반영되었는지 최대한 자세히 검토 후 작성
 
※ 요구사항은 한번 작성되어 결정이 된 후 무수히 개발 과정에서
   수정 될 수 있슴으로 추후 새로 발견된 요구사항은 개발 기간과
   추가 금액을 설정
 
 
 
 
 
5. 분석 객체 모델 작성(Class Diagram) - DTO
   - 개발 언어 독립적 설계(java, .net모두 적용가능한 설계)
   - RDBMS Modeling의 핵심 자료가 됨
   - Tool: StarUML
   
 
   
 
 
6. 분석 객체 모델 작성(Class Diagram) - 공통 인터페이스
   - 개발 언어 독립적 설계(java, .net모두 적용가능한 설계)
 
 
 
 
7. 분석 객체 모델 작성(Class Diagram) - DAO, Manager
   - 개발 언어 독립적 설계(java, .net모두 적용가능한 설계)
 
 
 
 
8. 설계 객체 모델 작성(Class Diagram) - DTO
   - Domain Class 추출
   - 객체간 간의 관계와 Attribute, Member Method 정의
   - 개발 언어 종속적 설계(java, .net 중 선택)
   - Tool: StarUML
 
 
 
 
9. 설계 객체 모델 작성(Class Diagram) - 공통 인터페이스
   - 개발 언어 종속적 설계(java, .net 중 선택)
   - Tool: StarUML
 
 
 
 
10. 설계 객체 모델 작성(Class Diagram) - DAO, Manager
   - 개발 언어 종속적 설계(java, .net 중 선택)
   - Tool: StarUML
 
 
 
 
11. UI(Proto Type, User Interface, Story Board))작성
 
   - 스토리 보드를 제작하여 협의후 통과된 결과물은 디자이너에게
     제공합니다.
 
   - 스토리 보드 제작의 원리 및 필요성의 이해
     . 사이트가 작동될 경우의 가상 화면을 먼저 보여줌
     . 보여주기 로직(Presentation Logic)과 밀접한 관련이 있음
 
   - 스토리 보드를 제작하여 협의후 통과된 결과물은 디자이너에게
     제공합니다.
 
   - 제작된 스토리보드를 이용해 디자이너는 HTML작업을하여 개발자에게
     넘기게되고 개발자는 받아서 JSP작업을 하게됩니다.
 
   - DreamWeaver를 이용해 HTML로 생성이 되도록 작성하는 방법이 있습니다.
     내부에 지정되는 컨텐츠는 반드시 테이블을 이용하여 배치되도록 합니다. 
 
   - A4지에 연필을 이용해 작성을 하는 방법이 있습니다.
     초안은 작성이 쉬우나 나중에 HTML로 재 편집해야합니다.
 
   - White Board, 파워포인트의 사용
 
 
 
 
12. 데이터베이스 모델링을 합니다.
   - 모델링의 참고 자료
     . 업무 분석 자료
     . 각종 결재 라인에 따른 출력 자료
     . 제작된 스토리보드
     . 객체 모델링 자료
     
   - Erwin 이용
     . 개념적(구현 안함), 논리적, 물리적 모델링을 구현합니다.
 
   - Domain Model의 작성(DB Modeling)
 
   - Tool: ER-win 4.1.2
 
 
 
 
 
13. 설계 유스케이스 실현 모델의 작성
   - Sequence Diagram의 작성
   - 클래스간의 호출 관계도 작성
   - Tool: StarUML
 
 
 
 
14. 각종 Framework에 따른 JAVA Class Code 생성 및 구현
    - iBATIS, MyBatis 구현
    - DTO, DAO, Manager(Service) 구현
    - Spring Controller 구현
    - JAVA 연동 테스트
  
 
 
 
15. 디자인 페이지와 연동
    - JSP 구현





[02] 역활 분담 방법
 
1. 실제 프로젝트에서의 수직적인 구조(경력자별로 배치)
   - 기획
   - DB 설계 
   - 기초 Framework 설계 
     . 각종 Framework으로 만들어진 소스 제공 
     . Servlet Container, Web Server 지정
     . JDBC Connection Pool, Upload/Dwonload Component
     . Utility Class
     . XML Parser
     . Template Framework(Sitemesh, Tiles, Velocity...)
   - Beans 개발자(Component 개발자, DTO, DAO, Manager, Action, Interface...)
   - JSP 개발자(Benas 개발자가 개발한 콤포넌트 사용 개발자)
   - 디자이너
 
 
 
 
2. 학원 OJT에서의 수평적인 구조
   - 기획부터 설계까지 구현해봄으로써 프로젝트의 전체적인 흐름을 알 수 있습니다. 
   - OJT는 수평적인 구조로 진행합니다.
   - 먼저 개발이 되어야 하는 부분을 먼저 할당하여 수행합니다.
   - 개인당 구현해야하는 테이블의 수는 3~4개이상 되어야 합니다.
 
 
 
 
 
 
[03] 각종 역활의 예
 
     - 관련 테이블은 3~4개이상 작성해야 합니다.
 
     - DAO상에 구현되는 콤포넌트의 기능은 CRUD를 구현합니다. 
       . C: Create, INSERT ~
       . R: Read, SELECT ~
       . U: Update, UPDATE ~
       . D: Delete, DELETE ~ 
 
 
 
1. 팀장 기본 기능(필수 구현)
   - 메인 페이지 디자인, Template, CSS
   - http://www.bestbook.net/
 
 
 
 
 
2. 회원 관련 기능
   - 관련 TABLE: 회원, 등급, 로그인 내역, 쪽지, 권한별 접근 가능 URI 테이블
 
   1) 회원(*)
      . 아이디 중복 확인, 별명 중복 확인, 우편번호 검색
      . 회원가입, 탈퇴, 정보 수정, 정보 보기, 로그인, 
      . 로그아웃, 로그인 내역, 아이디찾기
      . 비밀번호 찾기, 별명 수정, 비밀번호 수정
      . 회원 사진 전송 기능 
 
   2) 회원 등급 관리(AA, BA, CA, DA...)
      . 등급(권한) 변경
 
   3) 회원 관리(*)
      . 회원 삭제
   
   4) 로그인 내역(*)
      . 자신의 로그인 내역 조회
 
   5) 회원간 쪽지/파일 보내기 기능
 
   6) 등급 및 페이지별 회원 접근 권한 페이지 지정
 
 
 
 
 
3. 커뮤니티 관련 기능(*)
   - 관련 TABLE: 커뮤니티 코드, 데이터, 댓글, [파일]
 
   1) 커뮤니티 코드
      . 코드 등록, 삭제, 수정, 목록
 
   2) 커뮤니티 데이터
      . 글쓰기, 글 수정, 글삭제, 답변쓰기, 자료 올리기 
 
   3) 커뮤니티 댓글
      . 글쓰기, 글 수정, 글삭제, 댓글 목록
 
   4) 커뮤니티 관련 파일 저장 관리
      . 파일을 분류하여 분류별 각각의 폴더에 저장 
 
   5) 커뮤니티 관리
      . 게시판 생성, 수정, 삭제
 
 
 
 
 
4. 공지사항
   - TABLE: 공지시항 코드, 데이터
 
   1) 공지시항 코드 
      . 생성, 목록, 수정, 삭제                                    
 
   2) 공지사항 데이터
      . 생성, 목록, 수정, 삭제                                    
 
   3) 공지사항 관리
 
 
 
 
 
5. 설문조사 관련
   - TABLE: 설문조사 코드, 데이터, 데이터 항목
 
   1) 설문 조사 코드
      . 생성, 목록, 수정, 삭제                                    
 
   2) 설문 조사 데이터
      . 생성, 목록, 수정, 삭제                                    
 
   3) 설문 조사 관리
 
 
 
 
 
6. 기업 인트라넷 관련 
   - 직원 급여 관리
   - 호봉 관리
   - 인사 관리(개인 이력, 병역, 경력, 자격증 내역)
   - 온라인 재직 증명서 발급 관리
   - 온라인 경력 증명서 발급 관리
   - 문서 온라인 전자 결재
   - 출퇴근 내역 관리
 
 
 
 
 
7. 기업 커뮤니티
   - 직원별, 회원별 블로그 자동 생성 기능
   - 공지사항, 메모장, 연락처(명함), 게시판, 이미지 자료실
 
 
 
 
 
8. 웹 하드
 
 
 
 
 
9. 영화 예약 관련
 
   - 메인 화면: 영화 스냅샷 출력, 인기 영화 목록, 영화 동영상 보기, 새로운 영화
   - 예매: 예매 검색, 등록, 목록, 수정, 취소, 삭제
   - 좌석 선택 등록, 수정
   - 영화 순위 조회
   - 영화 정보 조회
   - 관람 후 댓글 등록
   - 예매 통계(날짜별, 연령대별, 성별)
 
 
 
 
 
10. 영화 예약 관리 관련
    - 영화 등록 및 목록, 수정, 삭제 관리
    - 회원 관리 기능    
 
 
   
 
 
11. 기타 관련 기능
   - 회원 문자 전송 기능(SMS)
   - 상품 코드 관리 
   - 상품 등록(상품 이미지)
   - 상품 목록
   - 상품 검색
   - 상품 화면 출력, 상품 관련 댓글  
   - 장바구니(쇼핑카트, 객체 버퍼링)  
   - 회원 주문, 결재, 비회원 구입 가능 여부 
   - 주문 관리, 주문(배송)조회
   - 주문시 수취인 주소 목록
   - 결재 관리
   - 환불 관리
   - 반송 관리, 소비자 반송 등록
   - 입고 관리
   - 출고 관리
   - 재고 관리
   - 배송 추적
   - 누적 포인트 관리
   - 세금 영수증 출력
   - 반품 관리
   - 납품 업체 관리
   - 고객 A/S 신청, 관리
   - 온라인 견적서 작성
   - 온라인 견적서 출력
   - 매출액 관리
     . 상품별, 월별, 년도별, 일별, 요일별, 시간대별, 성별, 연령별, 지역별
 
 
 
 
[과제] 역활 분담을 하여 bigdata 게시판에 등록해 주세요.



인덱스 페이지 - css 잘 하는 사람이 하는것


svn git 이용해서 형상관리하기











5. 수업

진도: 

hw: 


6. 할것



운영체제 - \150000 -네이버 검색




모니터 - 나의사랑삼성 (고정)

\30000 쿨러 - 쿨러마스터 Hyper 103 (92/13.8mm) 

\65000 파워 - SuperFlower SF-700R12A NOVA

\77000 케이스- 표준ATX 들어가는 것 L900 

\340000 cpu - i7 6700k

\130000 키보드 - 나의사랑그것 - 레오폴드 청축

\70000 메인보드 - 기가바이트 GA-h110m-ds2v 듀러블에디션 피씨디렉트  

ssd - 집에 많음! :D 3개...

\64000 램 - DDR4 삼성 8G PC4 17000

\260000 그래픽카드 - 이엠텍 XENON 지포스 GTX960 JETSTREAM D5 4GB



(회원)


강: 홰이스북

홍: 여행 사이트 - 날씨 

지: 나라 소개 커뮤니티

경: 취업 관련(잡코리아)★★★★★★

별: 구글 같이 검색 가능한 사이트

기: 택시 평가 사이트(일베 스타일)

전: 변호사 상담 사이트


강- 페이스북 안에 싸이월드처럼 볼 수 있는 공간 제공

홍- 국내 여행지 중에 좋은 곳을 묶어서 소개를 해주는 

지- 블로그 게시판 처럼 올리는 것

경- 기업 정보, 공채 달력, 채용 공고 제공하는 사이트

별- 검색 사이트

기-택시를 타고 / 게시판 제목에 택시 번호 입력 (기사 인성 평가)

전 - 법률 상담이 필요한 사람들이  상담글을 올리면 근처 변호사무소에서 예상 수임료를 제시해서 상담이 필요한 사람과 변호사들을 연결해 주는 서비스


---------------------------------------------------------------------------------------------------------------------


[과제] 프로젝트 유형과 주제를 결정해 주시기 바랍니다.


   - 유사 사이트와 구체적인 기능을 1~2줄로 요약하여 게시판에 등록합니다.

 

취업 관련 사이트

취업 관련 정보 제공 및 기업의 인재 유입과 개인 구직 활동에 도움이 되는 사이트

 

각팀은 2개정도의 주제에대해서 구체적인 기능을 유사사이트를 통해 시연 합니다.


 

1. 구직자 가입기능

01) 구직자 회원가입

02) 회원 가입시 이력서 첨부 기능

2. 검색기능

01) 분류(지역별 / 업종별)

3. 글 등록 기능

01) 개인 - 이력서


4. 회사 가입기능

01) 회사 회원가입 

02) 연봉 정보

03) 인재 정보


5. 고객 센터

01) 문의 사항

02) 공지 사항



6. 추가 기능

01) 면접 팁

02) 면접 후기

03) 공채 달력 제공

04) 로그인시 지역 정보 제공

05) 이력서 첨삭 기능

06) 직업별 전망

07) 적성 검사

08) 취업 성공 패키지 및 정부 지원금 관련 정보

09) 스카웃 정보

  10) 회사 평점

11) 회사별 필수 자격증 정보




제이쿼리 많이 사용& AJAX & 검색은 비동기통신 사용 & 프레임워크 많이 연구하기




강 - 이력서 입력 및 관리 기능


홍 - 구직자 회원가입 (이력서 첨부 기능 있음)


지 - 고객센터 - 문의 사항


김 - 고객 센터 - 공지사항 


전 - index - css구현 및 검색 기능 구현 (지역별 / 업종별) - 비동기통신


★ - 회사 회원가입


민 - 회사 관련 게시판 (연봉 정보 / 인재 정보)




개발에 들어가기 앞서서 기존 유사 사이트 검색 및 조사




'Programming' 카테고리의 다른 글

160706: 79회차  (0) 2016.07.06
160705: 78회차  (0) 2016.07.05
160701: 76회차  (0) 2016.07.01
160630: 75회차  (0) 2016.06.30
160629: 74회차  (0) 2016.06.29
Posted by DAVID

160701: 76회차

Programming 2016. 7. 1. 12:50

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것



스프링으로 변환 작업
1.
web.xml에 필터 한글처리 - 한글 매핑

2.
블로그의 POM.XML에서 - 세팅

3. 
ROOT-CONTEXT.XML
bean과 dependency 가져다 놓을 것 



---------------------------------

테스트 코드를 짠담에
view해야지

그 전에 view보다 controller가 우선!~~~
기능을 다 구현한 다음에 template


----------------------------------



mybatis xml 설정(crud)

DAO 실행(sqlSession Template)


dao JUnit Test

controller


view




5. 수업

진도: 

hw: 


6. 할것


0. 주제 선정

1. 요구 사항 분석

2. View 페이지 생성 (HTML로)

3. DB Modeling


해야할 것

수평적인 팀원 구조와 개인 작업의 필요성에 의한
한 사람당 한 기능씩 스프링을 이용한 홈페이지 작업 완료 

(DB, DAO,DTO, UI 등을 전부 구현)

(수석의 도움 많이 받을 것)


그 후에 하나의 홈페이지로 합친다.


css의 경우

1. 한 사람이 css 관리를 한다

2. 템플릿을 사용해서 가져다가 쓴다


형상관리의 경우

1. git을 사용한다

단점: 무료 버전의 경우 오픈소스화



'Programming' 카테고리의 다른 글

160705: 78회차  (0) 2016.07.05
160704: 77회차  (0) 2016.07.04
160630: 75회차  (0) 2016.06.30
160629: 74회차  (0) 2016.06.29
160628: 73회차  (0) 2016.06.28
Posted by DAVID

160630: 75회차

Programming 2016. 6. 30. 17:04

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것



무료로 sms 날릴 수 있는 api 찾아보기







--------------------------------


org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [spring.model.memo.memoDAO] for bean with name 'memodao' defined in class path resource [homepage.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: spring/model/memo/memoDAO (wrong name: spring/model/memo/MemoDAO)

at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1265)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:433)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

at spring.model.memo.MemoDAOTest.testTotal(MemoDAOTest.java:40)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:497)

at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)

at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)

at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)

at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)

at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)

at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)

at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)

at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)

at org.junit.runners.ParentRunner.run(ParentRunner.java:236)

at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)

at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Caused by: java.lang.NoClassDefFoundError: spring/model/memo/memoDAO (wrong name: spring/model/memo/MemoDAO)

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:760)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)

at java.net.URLClassLoader.access$100(URLClassLoader.java:73)

at java.net.URLClassLoader$1.run(URLClassLoader.java:368)

at java.net.URLClassLoader$1.run(URLClassLoader.java:362)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:361)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

at org.springframework.util.ClassUtils.forName(ClassUtils.java:258)

at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:417)

at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1283)

at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1254)

... 32 more



머니 매월 17일 / 매월 1일 신청! :>

o2 69o1 7ooo



5. 수업

진도: 

hw: 


6. 할것


스프링으로 변환 작업
1.
web.xml에 필터 한글처리 - 한글 매핑

2.
블로그의 POM.XML에서 - 세팅

3. 
ROOT-CONTEXT.XML
bean과 dependency 가져다 놓을 것 



---------------------------------

테스트 코드를 짠담에
view해야지

그 전에 view보다 controller가 우선!~~~
기능을 다 구현한 다음에 template


----------------------------------


'Programming' 카테고리의 다른 글

160704: 77회차  (0) 2016.07.04
160701: 76회차  (0) 2016.07.01
160629: 74회차  (0) 2016.06.29
160628: 73회차  (0) 2016.06.28
160627: 72회차  (0) 2016.06.27
Posted by DAVID

160629: 74회차

Programming 2016. 6. 29. 12:31

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것


오늘도 JUnit 테스트 케이스를 작성합니다.

STS에서요.


테스트하려면 모든 DAO 안에서 

@Autowired

private SqlSessionTemplate mybatis; //그림에서 보면 dao가 sqlSession Type을 가지고 있는 것

//DI는 autowired로 한당


public SqlSessionTemplate getMybatis() {

return mybatis;

}

public void setMybatis(SqlSessionTemplate mybatis) {

this.mybatis = mybatis;

}


이런 식으로 Setter랑 getter를 만들어줘야한다.


그리고


@BeforeClass

public static void setUpBeforeClass() throws Exception {

Resource resource = new ClassPathResource("blog.xml");

beans = new XmlBeanFactory(resource);

}



beforeclass에서 이거 꼭 해줘야 함!




-------------------------


캘린더 멤버 메모 junit 하기


Calendar - testLabelList 잘 모르겠음 

java.lang.ClassCastException: java.util.ArrayList cannot be cast to spring.model.calendar.CalendarDTO

at spring.model.calendar.CalendarDAOTest.testLabelList(CalendarDAOTest.java:128)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:497)

at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)

at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)

at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)

at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)

at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)

at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)

at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)

at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)

at org.junit.runners.ParentRunner.run(ParentRunner.java:236)

at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)

at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)





@Test //@Ignore

public void testLabelList() {


CalendarDAO dao = (CalendarDAO) beans.getBean("calendardao");

List list =  (List) dao.labelList("2016-12-31");

 

assertEquals(1, list.size());

}



리스트 형식으로 받아야 함



이건 5시 54분까지 다 했고!


이제 img Test 합니다~










5. 수업

진도: 

hw: 


6. 할것



'Programming' 카테고리의 다른 글

160701: 76회차  (0) 2016.07.01
160630: 75회차  (0) 2016.06.30
160628: 73회차  (0) 2016.06.28
160627: 72회차  (0) 2016.06.27
160624: 71회차  (0) 2016.06.24
Posted by DAVID

160628: 73회차

Programming 2016. 6. 28. 13:20

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것


[08]Spring_blog ReplyDAOTest 생성

1. ReplyDAO.java

package spring.model.bbs;
 
import java.util.List;
import java.util.Map;
 
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
 
@Repository
public class ReplyDAO {
 
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
 
public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
this.sqlSessionTemplate = sqlSessionTemplate;
}
 
public boolean create(ReplyDTO dto) {
boolean flag = false;
 
int cnt = sqlSessionTemplate.insert("reply.create", dto);
if (cnt > 0)
flag = true;
 
return flag;
}
 
public ReplyDTO read(int rnum) {
 
return (ReplyDTO) sqlSessionTemplate.selectOne("reply.read", rnum);
 
}
 
public boolean update(ReplyDTO dto) {
boolean flag = false;
 
int cnt = sqlSessionTemplate.update("reply.update", dto);
if (cnt > 0)
flag = true;
 
return flag;
}
 
public List<ReplyDTO> list(Map map) {
 
return sqlSessionTemplate.selectList("reply.list", map);
}
 
public int total(int bbsno) {
return (Integer) sqlSessionTemplate.selectOne("reply.total", bbsno);
}
 
public boolean delete(int rnum) {
boolean flag = false;
int cnt = sqlSessionTemplate.delete("reply.delete", rnum);
if (cnt > 0)
flag = true;
 
return flag;
}
 
/** 하나의 글의 여러댓글들 삭제 */
public int bdelete(int bbsno) throws Exception {
return sqlSessionTemplate.delete("reply.bdelete", bbsno);
 
}
}


2. ReplyDAOTest.java 생성







package spring.testl.bbs;
 
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
 
import spring.model.bbs.ReplyDAO;
import spring.model.bbs.ReplyDTO;
public class ReplyDAOTest {
private static BeanFactory beans;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
 
Resource resource = new ClassPathResource("blog.xml");
 
beans = new XmlBeanFactory(resource);
 
}
 
@AfterClass
public static void tearDownAfterClass() throws Exception {
 
}
 
@Before
public void setUp() throws Exception {
}
 
@After
public void tearDown() throws Exception {
 
}
 
@Ignore @Test
public void testSetSqlSessionTemplate() {
fail("Not yet implemented");
}
 
@Test @Ignore
public void testCreate() {
ReplyDAO dao = (ReplyDAO) beans.getBean("rdao");
ReplyDTO dto = new ReplyDTO();
dto.setBbsno(1);
dto.setContent("댓글2");
dto.setId("user1");
assertTrue(dao.create(dto));
}
 
@Test @Ignore
public void testRead() {
ReplyDAO dao = (ReplyDAO) beans.getBean("rdao");
ReplyDTO dto = dao.read(1);
assertEquals(dto.getBbsno(),1L);
assertEquals(dto.getId(),"user1");
assertEquals(dto.getContent(),"의견입니다.");
 
}
 
@Test
public void testUpdate() {
ReplyDAO dao = (ReplyDAO) beans.getBean("rdao");
ReplyDTO dto = new ReplyDTO();
dto.setBbsno(1);
dto.setContent("댓글2로변경");
dto.setId("user1");
dto.setRnum(1);
assertTrue(dao.update(dto));
 
}
 
@Test 
public void testList() {
ReplyDAO dao = (ReplyDAO) beans.getBean("rdao");
Map map = new HashMap();
map.put("bbsno", 1);
map.put("sno", 1);
map.put("eno", 6);
List<ReplyDTO> list = dao.list(map);
assertEquals(list.size(),5);
}
 
@Test 
public void testTotal() {
ReplyDAO dao = (ReplyDAO) beans.getBean("rdao");
int cnt = dao.total(1);
assertEquals(cnt,5);
}
 
@Test @Ignore
public void testDelete() {
ReplyDAO dao = (ReplyDAO) beans.getBean("rdao");
assertTrue(dao.delete(6));
}
 
@Test @Ignore
public void testBdelete() {
fail("Not yet implemented");
}
 
}
 



5. 수업

진도: 

hw: 


6. 할것



'Programming' 카테고리의 다른 글

160630: 75회차  (0) 2016.06.30
160629: 74회차  (0) 2016.06.29
160627: 72회차  (0) 2016.06.27
160624: 71회차  (0) 2016.06.24
160623: 70회차  (0) 2016.06.23
Posted by DAVID
이전페이지 다음페이지
블로그 이미지

by DAVID

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

글 보관함

«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

링크

카테고리

PC (112)
Programming (109)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
DAVID's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

PC

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • PC (112)
    • Programming (109)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바