개발환경 구축

▶ 프로그램 개발을 위한 도구 (빌구태형)

  • 빌드 도구 : 작성한 코드의 빌드 및 배포를 수행
    • Ant, Gradle, Maven
  • 구현 도구 : 개발자의 코드 작성과 디버깅, 수정 등과 같은 작업을 지원하는 도구
    • Eclipse, IntelliJ, Spring Tool Suite, NetBeans, Visual Studio
  • 테스트 도구 : 코드의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구
    • xUnit, PMD, Findbugs, Cppcheck, Sonar
  • 형상 관리 도구 : 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리를 위한 도구
    • Git, CVS, Subversion

▶ 하드웨어 개발환경 : 서버 하드웨어 개발 환경

⦁  웹 서버 : HTTP를 이용한 요청/응답 처리, 웹 상의 정적 콘텐츠 처리 (Apache, Nginx, GWS)

⦁  웹 애플리케이션 서버 : 동적 콘텐츠(Servlet, JSP)를 처리 (Tomcat, Resin, Jeus)

⦁  데이터베이스 서버

⦁  파일 서버

▶ 소프트웨어 개발환경

⦁  운영체제 : Windows, Linux, Unix

⦁  미들웨어 : Tomcat, Jeus, Weblogic

⦁  DBMS : Oracle, MySQL, MS-SQL,

▶ 형상 관리(Configuration Management)

소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동

▶ 형상 관리의 절차(식통감기)

⦁  형상 식별 : 형상 관리 대상 정의 및 식별

⦁  형상 통제 : 형상 항목 버전 관리를 위해 변경 여부와 변경 활동 통제

⦁  형상 감사 : 소프트웨어 베이스라인의 무결성 평가, 베이스라인 변경 시 요구사항과 일치하는지 검토

→ 베이스 라인 : 개발과정의 각 단계별 산출물에 대한 변화를 통제하는 시점의 기준

⦁  형상 기록 : 형상 및 변경관리에 대한 각종 수행결과 기록

▶ 소프트웨어 형상 관리 도구

⦁  공유 폴더 방식(RCS, SCCS) : 매일 개발이 완료된 파일은 약속된 위치의 공유 폴더에 복사하는 방식

⦁  클라이언트/서버 방식(CVS, SVN) : 중앙에 버전 관리 시스템을 향시 동작시키는 방식

⦁  분산 저장소 방식(Git) : 로컬 저장소와 원격 저장소로 분리되어 분산 저장하는 방식

→ CVS : 서버와 클라이언트로 구성, 다수의 인원이 동시에 운영체제로 접근 가능

→ SVN(Subversion) : 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와줌

→ RCS : 소스 파이릐 수정을 한 사람 만으로 제한

→ Bitkeeper : SVN과 비슷, 대규모 프로젝트에서 빠른 속도 내도록 개발된 형상 관리 도구

공통 모듈 구현

▶ 모듈(Module)

하나의 완전한 기능을 수행할 수 있는 독립된 실체

▶ 모듈화(Modularity) 

소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 시스템을 분해하고 추상화하는 기법

(추상화 : 복잡한 자료, 모듈, 시스템으로부터 핵심적인 개념 또는 기능을 간추려내는 기법)

▶ 모듈화 기법

⦁  루틴 : 소프트웨어에서 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임

⦁  메인 루틴, 서브 루틴

▶ 응집도(Cohesion) : 모듈의 독립성을 나타내는 정도, 모듈 내부 구성요소 간 연관 정도

⦁  Coincidental Cohesion(우연적 응집도) : 모듈 내부의 구성요소가 각 연관이 없을 경우

⦁  Logical Cohesion(논리적 응집도) : 유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우

⦁  Temporal Cohesion(시간적 응집도) : 특정 시간에 처리 되어야 하는 활동들

⦁  Procedural Cohesion(절차적 응집도) : 모듈이 다수의 관련 기능을 갖고, 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우

⦁  Communication Cohesion(통신적 응집도) : 동일한 입력과 출력을 사용해 다른 기능을 수행하는 활동들이 모임

⦁  Sequential Cohesion(순차적 응집도) : 모듈 내 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우

⦁  Functional Cohesion(기능적 응집도) : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우

▶ 결합도(Coupling): 모듈 내부가 아닌 외부의 모듈과의 연관도, 모듈 간의 상호 의존성, 모듈 간의 관련성

⦁  Content Coupling(내용 결합도) : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우

⦁  Common Coupling(공통 결합도) : 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 갱신하는 식으로 상호작용하는 경우

⦁  External Coupling(외부 결합도) : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 경우

⦁  Control Coupling(제어 결합도) : 어떻게 처리를 해야 한다는 제어요소가 전달되는 경우

⦁  Stamp Coupling(스탬프 결합도) : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우

⦁  Data Coupling(자료 결합도) : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우

▶ 공통 모듈(또는 서버 프로그램)의 구현 절차 (화이트박스 기법을 활용)

DTO/VO -> SQL -> DAO -> Service -> Controller -> View

  • DAO : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체
  • DTO(Data Transfer Object) : 프로세스 사이에서 데이터를 전송하는 객체
  • VO : 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체

▶ 팬인(Fan-In) / 팬 아웃(Fan-Out)

⦁  팬인 : 모듈 자신을 기준으로 들어오면 팬인

⦁  팬 아웃 : 모듈 자신을 기준으로 나가면 팬 아웃

▶ JUnit : 자바 프로그래밍 언어용 단위 테스트 도구

배치 프로그램 구현

▶ 배치 프로그램

일련의 작업들을 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법

⦁  배치 프로그램 유형 : 이벤트 배치, 온디맨드(사용자의 명시적 요구) 배치, 정기 배치

▶ 배치 스케줄러

일괄 처리를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구

⦁  배치 스케줄러 종류 : 스프링 배치, 쿼츠 스케줄러

▶ Corn 표현식

⦁  리눅스/유닉스 크론 표현식 : 분시일 월요연

⦁  쿼츠 크론 표현식 : 초분시일 월요연


출처
https://powerdev.tistory.com/84
https://jaeuk2274.tistory.com/48

profile
이사중입니다!🌟https://velog.io/@devkyoung2

0개의 댓글

관련 채용 정보