Today I Learned/정보처리기사

개발 기술 환경

Malachai Lee 2022. 4. 9. 22:57

메타인지의 늪에 빠지는것은 평생 질문을 던져야 하는 프로페셔널 개발자에게 가장 조심해야 할 행동이다. 너무 익숙해서, 너무 많이 사용해서 이미 우리들과 물아일체가 되어버린 개발환경이지만, 지금 우리 사회에서 제일 빨리 변하는 상식이기도 하다. 언제나 기존의 가치에 도전하도록 하자.

운영체제

MS사의 Windows, 애플의 Mac OS, 오픈소스인 Linux 등의 데스크탑/랩탑 운영체제 뿐만 아니라 구글의 Android, 애플의 iOS 등 다양한 운영체제 위에서 개발을 진행한다. 소프트웨어인 운영체제에 따라 하드웨어의 가격도 천차만별이기 때문에, 어떤것을 선택하여 환경을 구성해야 되는지도 선택하기 어렵다.

운영체제는 하드웨어와 소프트웨어의 리소스를 관리하고, 컴퓨터 프로그램을 위한 공통 서비스를 제공하는 소프트웨어다.

운영체제를 선택하기 위해선 고려해야 할 사항들이 있다.

가용성: 장기간 시스템을 운영할 때, 장애발생의 가능성이 있는가

성능: 시스템을 운영할 때 적은 자원을 소모하고 처리속도가 빠른가

기술 지원: 문제를 방지하고, 발생했을떄 원활하게 해결할 수 있는가

구축 비용: 합리적인 가격이거나 예산 분배에 적절한가

주변 기기: 이미 사용하는 기기들에 대해 범용적인가

 

미들웨어

미들웨어란 사용자의 특정한 요구대로 만들어 제공하는 프로그램으로, 운영 체제와 응용 소프트웨어의 중간에서 조정과 중개의 역할을 수행하는 소프트웨어이다.

데이터 관리, 애플리케이션 서비스, 메시징, 인증 및 API 관리는 주로 미들웨어를 통해 처리된다.

자신이 속한 집단이나 회사, 프로젝트의 빠르고 편한 생산목적 달성을 위해 소프트웨어적 개발작업을 간편하게 만들어주는 회사, 재단, 오픈소스로부터 제공되는 소프트웨어라고 생각하면 될 것 같다. 이 소프트웨어는 라이브러리부터 소프트웨어의 형태를 띄는 비즈니스로직의 집합체까지 광범위한 범위를 담고있다.

 

DBMS

사용자와 데이터베이스 사이에서 정보를 생성하고 DB를 관리하는 소프트웨어

우리가 흔히 알고있는 데이터베이스들은 MySQL, MongoDB, NoSQL 등이 있다. 이것들은 사실 데이터베이스 자체라 말 할순 없고, 스토리지에 저장되어있는 데이터베이스를 간편하게 괸리할 수 있도록 기능을 제공해주는 관리 시스템이다. 이를 DBMS라 부른다.

DBMS는 DB의 구성, 접근방법, 유지관리에 모든 책임을 진다.

JDBC는 데이터베이스와 연결을 구축하고 SQL 구문을 구성, DB와의 정보 통신을 목적으로 응용프로그램과 DBMS 사이에서 통역을 진행하여 자바언어로 프로그래밍 할 수 있게 도와준다.

 

WAS

Web Application Server의 약자로, 동적인 콘텐트츠를 처리하기 위해 사용되는 소프트웨어(미들웨어)이다.

먼저, Static page와 Dynamic Page의 차이를 알아야 할 필요가 있다.

Static pages

image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들을 의미한다.

웹 서버에서 요청에 알맞은 파일을 반환하며, 항상 동일한 정적 페이지를 반환한다.

웹 서버에서 제공한다.

Dynamic pages

들어온 요청에 맞게 동적으로 만들어진 컨텐츠를 의미한다.

데이터베이스, 서버 내 로직 등을 활용해 만들어진 컨텐츠를 반환한다.

웹 어플리케이션 서버에서 제공한다.

WAS는 HTTP 위에서 클라이언트의 요청에 맞게 비즈니스 로직을 통해 알맞은 응답을 전송하는 동적 페이지 제공자라고 할 수 있다.

비즈니스 로직 구현 용이성을 위해 개발단에서 데이터접근 관리, 세션 관리, 트랜잭션 관리 등 다양한 라이브러리와 기능 및 인터페이스를 제공해준다.

자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 WAS를 사용하지만 서버 부하의 방지, 보안 강화, WS에 WAS를 연결하여 Load balancing 등 WAS가 해결할 수 없는 문제들을 위해 WS 또한 부분적으로 사용이 된다.

 

오픈소스

'Today I Learned > 정보처리기사' 카테고리의 다른 글

자료구조  (0) 2022.04.11
요구사항 정의  (0) 2022.04.09
프로토타입 모형  (0) 2022.04.08
폭포수 모형  (0) 2022.04.08
소프트웨어 생명주기  (0) 2022.02.15