정보처리기사의 개발 환경 단원을 암기 목록으로만 남기지 않도록, 각 도구가 개발 흐름의 어느 단계에서 쓰이는지 기준으로 다시 정리했습니다.
프로그램 개발 환경 구성 가이드
출제 빈도: 하 빈출 태그: 언어별 특징, 배치 프로그램
개발 환경은 IDE 하나만 뜻하지 않는다. 요구사항을 기록하고 설계를 표현하는 단계부터 코드를 작성하고 테스트한 뒤 버전 관리와 빌드·배포로 넘기는 단계까지 여러 도구가 연결된다. 시험에서는 제품 이름을 묻는 경우가 많지만, 실제로는 각 도구가 담당하는 입력과 산출물을 구분하면 외우기 쉽다.
프로그래밍 언어
언어 선정 기준
- 난이도
- 수행환경
- 개발자의 경험과 지식
- 고려사항:
- 적정성
- 효율성
- 이식성
- 친밀성
- 범용성
기본 개념
- 프로그래밍 언어: 하드웨어가 명령을 수행하게끔 지시하는 표기법, 문법, 구문
- 하드웨어: 기계장치
- 소프트웨어: 개발되는 프로그램
- 프로그래밍: 프로그램 제작 절차
- 코딩: 프로그램을 코드로 작성
- 구성요소:
- 문법(Syntax): 구문
- 코드(Semantic): 의미 체계
언어 수준
- 저급 언어:
- 배우기 어려움
- 성능 빠름
- 기계친화적
- 고급 언어:
- 배우기 쉬움
- 성능 느림
- 인간친화적
언어 번역 프로그램
- 원시 프로그램: 프로그래밍 언어로 작성한 프로그램 코드
- 번역기 종류:
- 어셈블러: 어셈블리어 코드 번역
- 컴파일러: 고급 언어 코드 전체 번역
- 인터프리터: 행 단위 번역 (목적 프로그램 미생성)
주요 프로그래밍 언어
C
- 문법의 간결성과 효율성
- 포인터 타입 제공
C++
- C언어와 객체지향 기술 통합
- 복잡한 규격 보유
Java
- 객체지향 개발 목적
- class 활용
- 분산 환경 시스템과 보안성 지원
- Garbage Collector 통한 메모리 관리
JavaScript
- 객체지향과 스크립트 언어 결합
- 웹페이지 구현
- 특징:
- 쉬운 난이도
- 프로토타입 기반 객체 상속
- 상대적으로 낮은 보안성과 성능
Python
- 단순한 문법 구조
- 높은 이식성
- 동적 타이핑 지원
- 객체지향 스크립트 언어
- 시스템 직접 제어 외 대부분 기능 수행 가능
PHP
- HTML 포함 서버측 스크립트 언어
- 객체지향 프로그래밍 지원
- 보안 취약성 존재
개발 환경 구성
하드웨어 환경
- 클라이언트 환경:
- PC
- 웹 브라우저
- 모바일 앱
- 서버 환경:
- 웹 서버
- 앱 서버
- DB 서버
- 파일 서버
소프트웨어 환경
1. 요구사항 관리 도구
요구사항의 등록, 우선순위, 담당자, 변경 이력과 추적 관계를 관리한다. 사용자 요구가 어떤 설계·구현·테스트 항목으로 이어졌는지 연결하는 추적성이 핵심이다. Jira, Azure DevOps Boards 같은 이슈 추적 도구를 사용할 수도 있고, 규모가 큰 조직에서는 요구사항 전용 도구를 사용하기도 한다.
2. 모델링 도구
텍스트 요구사항을 UML, ERD, 데이터 흐름도, 화면 흐름처럼 검토 가능한 모델로 표현한다. 모델 자체가 목적이 아니라 개발자·기획자·테스터가 같은 구조를 이해하고, 구현 전에 누락과 충돌을 찾는 데 의미가 있다.
3. 소프트웨어 구현 도구
- IDE(통합 개발 환경):
- 주요 기능:
- Coding
- Compile
- Debugging
- Deployment
- DB Link
- 종류:
- Eclipse
- Visual Studio Code
- IntelliJ
- NetBeans
- 주요 기능:
4. 테스트 도구
- 품질 강화 목적
- 종류:
- xUnit
- STAF
- Valgrind
- JMeter
5. 형상관리 도구
- 산출물 버전 관리
- 종류:
- CVS
- Subversion
- Git
6. 빌드 도구
- 소스 빌드 및 배포 지원
- 종류:
- Ant
- Maven
- Gradle
요구사항과 모델링 도구가 “무엇을 만들 것인가”를 명확히 한다면, IDE와 테스트 도구는 “어떻게 구현하고 검증할 것인가”를 돕는다. 형상관리와 빌드 도구는 검증된 소스를 반복 가능한 결과물로 만드는 역할을 맡는다.
배치 프로그램
특징
- 사용자 상호작용 없는 일괄처리
- 주요 장점:
- 대용량 데이터 처리
- 자동화
- 견고함
- 안정성
- 높은 성능
Spring Batch
- Spring Source사와 Accenture사 공동작업
- 스프링 프레임워크 3대 요소:
- DI
- AOP
- 서비스 추상화
Quartz Scheduler
- 스프링 프레임워크 플러그인
- 특징:
- Job과 Trigger 분리
- 유연한 오픈소스 스케줄러
댓글이 보이지 않으면 GitHub에 로그인한 뒤 새로고침해 주세요. 공개 댓글은 로그인 상태에서 더 안정적으로 표시됩니다.