반응형
개발 환경 구축
- 하드웨어 환경
- 사용자와의 인터페이스 역할을 하는 클라이언트(Client)와 서비스를 제공하는 서버(Server)로 구성
- 클라이언트 종류 : 개인용 컴퓨터(PC), 스마트폰
- 서버 종류
- 웹 서버(Web Server) : 클라이언트로부터 직접 요청을 받아 처리하며 저용량의 정적 파일들을 제공
- 웹 어플리케이션 서버(WAS; Web Application Server) : 동적 서비스 제공, 웹 서버와 데이터베이스 서버 또는 파일 서버 사이에서 인터페이스 역할을 수행
- 데이터베이스 서버(DB Server) : 데이터베이스와 이를 관리하는 DBMS 운영
- 파일 서버(File Server) : 데이터베이스에 저장하기에는 비효율적이거나, 서비스 제공을 목적으로 유지하는 파일 저장
- 소프트웨어 환경
- 시스템 소프트웨어와 개발 소프트웨어로 구성
- 시스템 소프트웨어 종류 : 운영체제(OS), 웹 서버 및 WAS 운용을 위한 서버 프로그램, DBMS 등
- 개발 소프트웨어 종류
- 요구사항 관리 도구 : 요구사항의 수집, 분석, 추적 등을 편리하게 도와주는 소프트웨어
- 설계/모델링 도구 : UML(통합 모델링 언어)을 지원하며, 개발의 전 과정에서 설계 및 모델링을 도와주는 소프트웨어
- 구현 도구 : 개발 언어를 통해 애플리케이션의 실제 구현을 지원하는 소프트웨어
- 빌드 도구 : 구현 도구를 통해 작성된 소스의 빌드 및 배포, 라이브러리 관리를 지원하는 소프트웨어
- 테스트 도구 : 모듈들이 요구사항에 적합하게 구현되었는지 테스트 하는 소프트웨어
- 형상 관리 도구 : 산출물들을 버전별로 관리하여 품질 향상을 지원하는 소프트웨어
- 웹 서버(Web Server)의 기능
기능 내용
HTTP/HTTPS 지원 | 브라우저로부터 요청을 받아 응답할 때 사용되는 프로토콜 |
통신 기록(Communication Log) | 처리한 요청들을 로그 파일로 기록하는 기능 |
정적 파일 관리(Managing Static Files) | HTML, CSS, 이미지 등의 정적 파일들을 저장하고 관리하는 기능 |
대역폭 제한(Bandwidth Throttling) | 네트워크 트패픽의 포화를 방지하기 위해 응답 속도를 제한하는 기능 |
가상 호스팅(Virtual Hosting) | 하나의 서버로 여러 개의 도메인 이름을 연결하는 기능 |
인증(Authentication) | 사용자가 합법적인 사용자인지를 확인하는 기능 |
- 개발 언어 선정 기준
- 적정성 : 개발하려는 소프트웨어의 목적에 적합해야 함
- 효율성 : 코드의 작성 및 구현이 효율적이어야 함
- 이식성 : 다양한 시스템 및 환경에 적용이 가능해야 함
- 친밀성 : 개발 언어에 대한 개발자들의 이해도와 활용도가 높아야 함
- 범용성 : 다른 개발 사례가 존재하고 여러 분야에서 활용되고 있어야 함
개발 지원 도구
- IDE(Integrated Development Environment)
- 통합 개발 환경, 다양한 툴을 하나의 인터페이스로 통합하여 제공하는 환경
- 종류
이클립스(Eclipse) Java, C, C++, PHP, JSP 등 비주얼 스튜디오(Visual Studio) Basic, C, C++, C#, .NET 등 엑스 코드(Xcode) C, C++, C#, Java, AppleScript 등 안드로이드 스튜디오(Android Studio) Java, C, C++ IDEA Java, JSP, XML, Go, Kotlin, PHP 등 - 빌드 도구
- 소스 코드 파일ㅇ들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 과정 또는 결과물
- 수행 작업 : 전처리(Preprocessing), 컴파일(Compile) 등
- 종류
- Ant(Another Neat Tool)
- 자바 프로젝트의 공식적인 빌드 도구
- 정해진 규칙 또는 표준이 없음
- Maven
- Ant의 대안
- 의존성(Dependency)을 설정하여 라이브러리를 관리
- 규칙이나 표준이 존재하여 예외 사항만 기록
- Gradle
- Ant, Maven을 보완
- 안드로이드 스튜디오의 공식 빌드 도구
- 그루비(Groovy) 기반의 빌드 스크립트 사용
- Ant(Another Neat Tool)
- 기타 협업 도구
- 개발에 참여하는 사람들이 서로 다른 작업 환경에서 원활하게 프로젝트를 수행할 수 있도록 도와주는 도구
- 일정관리, 업무흐름 관리, 정보 공유, 커뮤니케이션 등의 업무 보조 도구가 여기에 포함
서버
- 서버 개발
- 웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 WAS에 탑재하는 것
- 대표적인 프로그래밍 언어 : Java, JavaScript, Python, PHP, Ruby 등
- 프레임워크
- 다양한 네트워크 설정, 요청 및 응답 처리, 아키텍처 모델 구현 등을 손쉽게 처리할 수 있도록 클래스나 인터페이스를 제공하는 소프트웨어
- 대부분 모델-뷰-컨트롤러(MVC) 패턴을 기반에 둠
- 종류
- Spring : Java기반의 프레임워크, 전자정부 표준 프레임워크의 기반 기술로 사용
- Node.js : Javascript기반의 프레임워크, 실시간 입출력이 빈번한 애플리케이션에 적합
- Django : Python기반의 프레임워크, 컴포넌트의 재사용과 플러그인 화를 강조하여 신속한 개발이 가능
- Codeigniter : PHP기반의 프레임워크, 인터페이스가 간편하여 서버 자원을 적게 사용
- Ruby on Rails : Ruby기반의 프레임워크, 데이터베이스 작업을 단순화 및 자동화 하여 개발 코드의 길이가 짧아져 신속한 개발이 가능
- 개발 과정
- DTO/VO, SQL, DAO, Service, Controller를 각각 구현하는 과정
- 구현 과정
- DTO/VO
- 데이터 교환을 위해 사용할 객체를 만드는 과정
- 송수신할 데이터의 자료형(Data Type)에 맞는 변수 및 객체 생성
- SQL
- 데이터의 삽입, 변경, 삭제 등의 작업을 수행할 SQL문을 생성하는 과정
- 소스코드 내에 직접 입력, 또는 별도의 XML 파일로 관리
- DAO
- 데이터베이스에 접근하고, SQL을 활용해 데이터를 실제로 조작하는 코드를 구현하는 과정
- Service
- 사용자의 요청에 응답하기 위한 로직을 구현하는 과정
- Controller
- 사용자의 요청에 적절한 서비스를 호출하여, 그 결과를 사용자에게 반환하는 코드를 구현하는 과정
- DTO/VO
반응형
'License > 정보처리산업기사 실기' 카테고리의 다른 글
[정보처리산업기사 실기] UI 테스트 (0) | 2025.03.29 |
---|---|
[정보처리산업기사 실기] 응용 SW 기초 기술 활용 - 6 (2) | 2025.03.29 |
[정보처리산업기사 실기] 응용 SW 기초 기술 활용 - 4 (0) | 2025.03.29 |
[정보처리산업기사 실기] 응용 SW 기초 기술 활용 - 3 (1) | 2025.03.29 |
[정보처리산업기사 실기] 응용 SW 기초 기술 활용 - 2 (0) | 2025.03.29 |