4) 기본 개발환경 구축
- CentOS - RHEL의 복제본
- RHEL - Red Hot Enterprise Linux의 약자, 레드햇에서 만들어 판매하는 리눅스
- 7버전 다운로드 -> https://www.centos.org/download/
- 파티션 설정
- Use entire drive : 전체 드라이브
- Replace existing Linux System : 존재하는 리눅스 시스템 대체
- Use free space : 남은 공간 사용
- 개발 도구 설치
- 형상관리 도구 - CVS, Git 등
- UML 지원 도구 - StarUML, RSA 등
- 인터페이스 발생기 - 스위그
- 테스트 자동화 도구 - Junit 등
- 디버거 - GDB(GNU 디버거)
- 빌드 도구 - Maven 등
- 통합 개발환경 개요
- 통합 개발환경(IDE) : 많은 도구의 기능을 하나의 패키지에 묶은 것
-> 이클립스, 델파이, C++빌더, MS 비주얼스튜디오, Xcode, WinDev 등
-> 요즈음 개인 PL가 아닌 클라우드 환경에서 개발하도록 PaaS 이용 혹은 VDI 이용
* VDI : 데스크톱 가상화(Visual Desktop Infrastructure) 물리적으로 존재하진 않지만 실제 작동하는 컴퓨터 안에서 작동하는 또 하나의 컴퓨터를 만들 수 있는 기술
- 통합 개발 환경 구성
- 파일 서버 구성
- UI 프레임워크 구성
- 개발 프레임워크 구성
-> 애플리케이션 아키텍트(AA)나 공통 개발자는 보통 일반 개발자가 쉽게 개발환경을 구축할 수 있도록 모든 설치파일을 zip파일 등으로 압축하여 일괄 설치할 수 있도록 구성해 두는 것이 좋음
-> 이클립스(Exlipse)내 모든 프로젝트에는 개발 CODE Template를 적용하도록 설정, 코드 품질 표준화
* 스프링 프레임워크 : Java 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크, 동적인 웹사이트를 개발하기 위한 서비스 제공, 전자 정부 표준 프레임워크의 기반 기술로서 쓰임
- 개발 환경 구성 시 고려사항
-> PMD나 Sonar같은 소스 품질 관리 도구를 설치, 개발 품질 지속적 체크
-> 소스 품질 Secure 코딩 함께 점검
-> 개발 진척률, 소스 품질 수준, 오류 발생룰, 오류 개선률, 등을 상세하게 지표화하여 지속적이고 자동적으로 관리하는 소프트웨어 비주얼라이제이션(SW Visualization)을 달성할 것
- 기반 서버 설치
- 웹 서버 : 웹 서버와 WAS는 사용자와 데이터베이스 사이에서 사용자가 원하는 모습의 웹 페이지를 만들어 안전하게 결과를 전달하는 미들웨어이다.
-> 브라우저와 웹 서버 사이의 통신은 HTTP(Hypertext Transfer Protocol)를 사용하여 수행
-> 웹 서버 기능
- HTTP
- 통신 기록
- 인증
- HTTP 지원
- 정적 콘텐츠 관리
- 가상 호스팅
- 대역폭 스로틀링 -> QoS 보장
* 동적 콘텐츠 : 서버사이트 스크입트 언어를 이용하여 사용자 요청에 의해 생성되는 컨텐츠
* 정적 콘텐츠 : 미리 생성된 페이지를 사용자 요청에 의해 바로 응답하는 컨텐츠
-> 주요 제춤
- 아파치 웹서버(Apache Web Server)
- NGINX : Nginx 사의 이고르시소브
- IIS(Internet Information Service) : 마이크로소프트사
- WAS(Web Application Server)
사용자의 요청 페이지가 웹 서버 자신이 처리할 페이지인지 WAS가 처리할 페이지인지 결정하고, WAS에 요청을 전달할 때는 L4 장비 등을 이용해 로드 밸런싱을 통해 WAS에 골고루 요청 전달
-> jsp와 같은 동적 페이지 실행, DB와의 통신을 위해 로직 처리, 그 결과를 정적 페이지인 HTML로 변환하여 웹 서버에 전달
-> 동적인 컨텐츠(*.jsp)와 JDBC 드라이버를 통해 DB 접속 관리
-> WAS 기능
- HTTP
- HTTPS 지원 : 8443
- AJP(Apache Jsew Protocol) : 8009
- 커넥션 풀
-> 주요 제품
- Tomcat - 아파치 소프트웨어 재단
- JBoss - 레드햇
- JEUS - TMaxSoft
-> Tomcat 주요 모델
- Cluster : http 세션 로드 밸런싱
- Catalina : 컨테이너
- Coyote : http 컴포넌트
- Jasper : JSP에 대한 요청 수행
- DB 서버
- My SQL의 기능
- cross-platform support
- Independent storage engines
- Transactions
- Query caching
- Replication
- MariaDB의 기능
- 쓰레드 풀
- 샤딩 기술 - 물리적으로 다른 DB에 데이터를 수평 분할 방식으로 분산 저장
- 가상 칼럼 - 수식과 조건문 이용 데이터의 가용 결과 저장
- 멀티소스 리플레케이션
- Slow Explain
- PHP(Hypertext Preprocessor)
-> 텍스트, 특히 HTML의 처리에 강점
- 패키지
- 패키지 방식 개발
-> 여러 성공 사례의 노하우를 기반으로 만들어진 개발된 제품을 이용하여 시스템을 구축하는 방식
'전공 > 정보처리기사 실기' 카테고리의 다른 글
정보처리기사 실기 - 11. 제품 소프트웨어 패키징 /코드서명/릴리즈노트/난독화/형상관리 (0) | 2021.05.21 |
---|---|
정보처리기사 실기 - 10. 응용 SW 기초 기술 활용(7) /흐름제어/혼잡제어/UDP/라우팅 (0) | 2021.05.21 |
정보처리기사 실기 - 10. 응용 SW 기초 기술 활용(6) /네트워크 기초 활용하기 -1 (0) | 2021.05.17 |
정보처리기사 실기 - 10. 응용 SW 기초 기술 활용(5) /데이터베이스 기초 활용하기 -2 (0) | 2021.05.16 |
정보처리기사 실기 - 10. 응용 SW 기초 기술 활용(4) /데이터베이스 기초 활용하기 -1 (0) | 2021.05.16 |