응용 SW 기초 기술 활용 - 5

김상우·2022년 3월 24일
0
post-thumbnail

개발 환경 구축

  • 하드웨어 환경
    • 사용자와의 인터페이스 역할을 하는 클라이언트(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++
    IDEAJava, JSP, XML, Go, Kotlin, PHP 등
  • 빌드 도구

    • 소스 코드 파일ㅇ들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 과정 또는 결과물
    • 수행 작업 : 전처리(Preprocessing), 컴파일(Compile) 등
    • 종류
      • Ant(Another Neat Tool)
        • 자바 프로젝트의 공식적인 빌드 도구
        • 정해진 규칙 또는 표준이 없음
      • Maven
        • Ant의 대안
        • 의존성(Dependency)을 설정하여 라이브러리를 관리
        • 규칙이나 표준이 존재하여 예외 사항만 기록
      • Gradle
        • Ant, Maven을 보완
        • 안드로이드 스튜디오의 공식 빌드 도구
        • 그루비(Groovy) 기반의 빌드 스크립트 사용
  • 기타 협업 도구

    • 개발에 참여하는 사람들이 서로 다른 작업 환경에서 원활하게 프로젝트를 수행할 수 있도록 도와주는 도구
    • 일정관리, 업무흐름 관리, 정보 공유, 커뮤니케이션 등의 업무 보조 도구가 여기에 포함

서버

  • 서버 개발
    • 웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 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
        • 사용자의 요청에 적절한 서비스를 호출하여, 그 결과를 사용자에게 반환하는 코드를 구현하는 과정
profile
아침엔 운동하고 밤엔 잠을 잔다.

0개의 댓글

관련 채용 정보