달력

12

« 2019/12 »

  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  


 

 

인터프리터(Interpreter)

·       인터프리터 방식의 언어는 모두 인터프리터를 필요로 합니다.

·       프로그램 문장을 하나씩 번역하고 실행할 있도록 하는 프로그램

·       매번 사용할때마다 변환해 주어야 합니다.

·       고급언어로 작성된 원시코드를 한번에 줄씩 읽어 들여서 실행하는 프로그램

·       소스 코드(source code) 읽고 해석하여 수행하는 프로그램입니다.

·       컴파일 과정이 없기 때문에 개발하는 과정에서 사용하면 유용합니다.

·       기계어 코드를 현재 시스템에서 돌아갈 있도록 에뮬레이션하는 역할

·       실행 속도가 느리고 메모리 사용이 비효율적이라는 단점이 있습니다.

 

 

https://bit.ly/2MdOQsU

https://en.wikipedia.org/wiki/Interpreter_(computing)

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

What Most Schools Don't Teach

https://www.youtube.com/watch?time_continue=1&v=nKIu9yen5nc

5m 43s

 


 

 

 

 

President Obama asks America to learn computer science

https://www.youtube.com/v/6XvmhE1J9PY&autoplay=1&rel=0

1m 417s

 


 

 

 

 

 

 

The Hour of Code is here

https://www.youtube.com/v/FC5FbmsH4fw&autoplay=1&rel=0

2m 22s

 

 

 

 

 

 

 

 

 

code.org

https://code.org/


 



Posted by codedragon codedragon

댓글을 달아 주세요


 

 

릴리즈 노트의 중요성

·         릴리즈 노트에는 테스트 결과 정보가 포함됩니다. 사용자에게 최종 배포된 릴리즈 노트를 보면 테스트가 어떻게 진행됐는지, 개발 팀의 제공 사양을 얼마나 준수했는지를 확인해 있습니다.

·         사용자에게 보다 확실한 정보를 제공합니다.

·         기본적으로 전체적인 제품의 수행 기능 서비스의 변화를 공유합니다.

·         자동화 개념과 함께하여 적용하여 전체적인 버전 관리 릴리즈 정보를 체계적으로 관리할 있습니다.

·         릴리즈 노트 작성시 현재 시제로 작성되어야 하며 명확하고 정확하며 완전한 정보() 제공해야 합니다

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

소프트웨어 품질을 평가하기 위한 필요요소

·         보통 소프트웨어는 다양한 언어와 시스템으로 구성되어 있기 때문에 UI부터 데이터베이스까지 폭넓은 기술을 보유해야 합니다.

·         소프트웨어 구성요소들의 상호 의존성을 고려한 소프트웨어의 자세한 설계도를 제작 있어야 합니다.

·         소프트웨어 관련 정보 뿐만 아니라 무엇을 해야 하는지 소프트웨어 품질 개선을 개선을 위한 활동 안내를 주어야 합니다.

 



Posted by codedragon codedragon

댓글을 달아 주세요



 

 

모듈(Module)

·       독립되어 있는 하나의 소프트웨어 또는 하드웨어 단위

·       기능을 제공하는 개별 파일

·       프로그램의 일부분

 

https://bit.ly/2QwTwsg

http://terms.co.kr/module.htm

 

 

 

Python - 모듈(module)

http://codedragon.tistory.com/6976

 


Posted by codedragon codedragon

댓글을 달아 주세요


 동기 vs 비동기 

동기

비동기

synchronous

blocking

asynchronous

Non-blocking

동시에 일어나는, 같은 시기(同期) 의미합니다.

동시에 일어나지 않는, 같은 시기가 아닌(非同期)것을 의미합니다.

데이터를 기준 동기클럭에 맞추어서 보내는 방식입니다.

·       데이터를 기준 동기클럭에 상관없이 서로간 정한 속도로 보내는 방식입니다.

·       상대방의 일정 신호에 의해서 다음 동작이 이루어지는 동작방식을 가집니다. 상대방이 받을 준비 됬다는 신호를 받아서 byte 보내고 수신측에는 byte 받은 보내도 된다는 신호를 보내고 신호를 확인한 계속 보내는 방식입니다.

·       어떤 루틴을 완전히 끝내고 제어를 반납하는 방식입니다.

상대방의 상태와 관계없이 일방적으로 동작합니다.

·       일단 한번 전송 시작되면 신호를 받았는 확인없이 모든 byte 보냅니다.

·       요청한 동작이 완료되지 않아도 일단 제어권을 반납한 자기 할일을 계속 하는 방식입니다.

 

·       동기식에서는 어떤일을 처리하는 동안 다른 프로그램은 정지상태가 되므로 실제 CPU 느려지는 것은 아니지만 시스템 전체적으로는 효율이 떨어지게 됩니다.

·       동기 방식에 비해 좀더 복잡하지만 결과가 주어지는 시간이 길어져도 시간 동안 다른 작업을 있으므로 좀더 효율적으로 자원을 사용할 있다는 장점이 있습니다

설계가 간단하고 직관적이지만, 결과가 반환될 때까지 아무것도 못하고 대기해야 하는 단점이 있습니다.

·       비동기방식은 요청만 보내고 다른 작업을 하다가 읽은 데이터가 준비됐다는 신호를 받으면 다시 처리하는 방식입니다.

·       .동기방식은 데이터 읽기 요청과 동시에 호출한 자리에서 처리가 완료될 때까지 대기하지만 다른 함수를 호출할 없습니다.

·       함수 호출을 하고 바로 다음것을 수행하다가 처리 완료 이벤트가 오면 다시 처리를 해주는 방식입니다.

·       비동기 메소드는 메소드를 호출만 결과를 기다리지 않습니다. (내부적으로 다른 쓰레드에게 작업을 수행하도록 지시만 하고 결과를 기다리지 않고 돌아옵니다.)


 


 

작업순서:

Work A -> Work A-1 -> Work B -> Work B-1 -> Work C

작업순서:

Work A -> Work B -> Work C

Work A-1 ->

Work B-1 ->

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

 

Architecture(아키텍처)

·         건축분야에서 많이 사용되는 용어로 건축물의 뼈대와 특성을 결정 짓는 기본 구조 얘기합니다.

·         비즈니스 요구사항을 만족시키기 위해 전체 시스템에 대한 구조 정의합니다.

·         건축 분야뿐아니라 엔터프라이즈 아키텍처, 소프트웨어 아키텍처, 시스템 아키텍처, 조직 아키텍처, 정보 아키텍처 모든 기술분야에 적용할 있습니다.

·         아키텍처는 사용자 요구사항 따라 설계됩니다.

 

 

http://bit.ly/2Iq45eJ

http://www.terms.co.kr/architecture.htm

https://en.wikipedia.org/wiki/Systems_architecture

 

 

 

 

 

아키텍처 어원

·         First, Chief, Govern 의미를 가진 Arch 기술의 의미를 가진 Tech 합성어입니다.

·         합성어의 의미는 건물을 지을 전체 구조를 관리한다는 의미입니다.

 

Archi

First, Chief, Govern

tect

technique

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

사용자의 요구분석을 위해 주로 하는 기법

시스템 개발을 위한 단계는 사용자의 요구분석과 현재의 시스템에 대한 분석이라 있다.

 

·       사용자 면접

·       설문 조사를 통한 의견 수렴

·       현재 사용 중인 각종 문서 검토

 http://codedragon.tistory.com/8149


 

 

정보시스템 구축시 운영체제 데이터베이스관리시스템에 관련 요구사항을 식별할 고려해야 사항

·       리눅스를 기반으로 하는 시스템은 하드웨어 소프트웨어 소유 비용이 가장 적게 든다.

·       안정적이고 신뢰할 있는 대용량 처리를 위해서는 유닉스 기반 시스템이 선호되고 있다

·       리스크(RISC) 설계방식이 적용된 (ARM) 칩은 스마트폰이나 태블릿에 주로 채용되고 있다

·       Oracle, DB2 대규모, 대량 데이터 처리에 안정적이라는 장점을 가진다.

http://codedragon.tistory.com/6278

http://codedragon.tistory.com/6239

 

 

 

WEB/WAS 서버의 CPU용량 산정을 위하여 어떠한 절차


http://codedragon.tistory.com/5433

 


 

 

CPU 용량 산정 방법

CPU(OPS단위) =

동시 사용자 X 사용자당 오퍼레이션 X

업무 용도 보정 X 인터페이스 부하 보정 X

피크타임 부하 보정 X 클러스터 보정 X 시스템 여유율 / 시스템목표활용율

 

 


[피크타임 부하 보정 예시]

구분

적용값

설명

1.5

특정시간이나 특정일에 매우 과도한 부하가 걸리는 경우

1.4

특정한 마감일에 과도한 부하가 걸리는 경우

1.3

특정 시간대에 매일 혹은 매주 피크타임이 있는 경우

기타

1.2

피크타임이 존재하나 부하 차이가 존재하지 않는 경우

https://codedragon.tistory.com/5433

 

 

 

현행 시스템 분석서 작성 절차

구분

설명

정보 시스템을 분석하는 관점

·       정보 시스템 구성 /기능 인터페이스

·       현행 시스템 아키텍처 소프트웨어

·       하드웨어 네트워크

해당 자료 수집

·       인터뷰와 현장조사를 수행하여

·       작성 현행화

정보 시스템 요건 도출 관점 분석

·       정보 시스템 구성 / 기능 구성도

·       인터페이스 구성도

·       현행 시스템 아키텍처 구성도

·       소프트웨어 구성도

·       하드웨어 구성도

·       네트워크 구성도

분석 내용 작성

·       분석 내용 작성

현행 시스템 분석서 도출

·       현행 시스템 분석서 도출

 

https://codedragon.tistory.com/9032

 


Posted by codedragon codedragon

댓글을 달아 주세요

 

 

4단계:기술적 위험 분석

요구사항을 만족시키기 위하여 적용한 기술의 복잡성, 검증 여부, 의존성 등에 대하여 위험 발생 가능성, 영향도 파악합니다.

 

 

기술의 특성

내용

복잡성

·         기술의 안정성, 시장성, 개방성을 저해하는 모든 요소

·         하드웨어, 소프트웨어, 솔루션의 적용이 아키텍처와 불일치

검증 여부

·         적용 기술에 대한 조직 무경험

·         외부 지원 불가능

의존성

·         특허 라이선스에 따른 문제

·         특정 업체 기술에 대한 의존

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

1단계:성능 용량산정의 적정성

개발 기술 환경, 정의 시스템 용량산정 방법”에서 목표 시스템의 용량이 산정되면, 과거 유사 프로젝트 경험치를 적용하여 필요시 재조정한 , 성능 관련 비기능 요구 사항과 비교하여 적정성 여부를 판단합니다.

 

 

 

 

 

성능 용량산정 적정성 확인

·       성능평가 확인

·       응답시간 평가

·       가용성 확인

·       확장성 확인

 

 



Posted by codedragon codedragon

댓글을 달아 주세요