전체 글

소프트웨어 개발 블로그
· Vision
색상의 표현과 색 공간 영상 복안법을 보기 전 간단하게 색 체계를 알아보자. 흔히 영상과 관련된 작업을 하다 보면 RGB, CMY, CMYK, Gamut, sRGB 등 여러 용어를 접할 수 있다. 이러한 용어들이 각각 무엇을 의미하는지 간단하게 정리한다. 빛의 3원색, 색의 3원색 영상을 전공하지 않아도 가장 많이 들을 수 있는 단어는 RGB이다. RGB란 Red, Green, Blue의 약어로 빛의 3원색을 의미한다. 이 색상은 색을 혼합할 수록 밝아지는 경향을 띄는데 이를 가산 혼합이라 한다. 따라서 결과적으로 3가지 색상을 동일하게 혼합하면 흰색으로 표현된다. 우리가 육안으로 바라보는 모든 피사체들은 빛의 반사를 통해 우리에게 접해지는데 이 빛이 RGB 형태인 셈이다. RGB의 값을 각각 동일한 비..
· Vision
최초의 이미지 생성 및 베이어 필터와 패턴 영상이 이미지 센서를 통해 최종적으로 디지털 데이터로 변환된다는 것을 배웠다. 그 과정 중 하나인 CFA(Color Filter Array)의 종류과 Raw Image에 대해 알아보자. Raw Image Raw란 사전적 의미로 날 것의, 가공되지 않은 것을 의미한다. 따라서 Raw Data란 말 그대로 가공되지 않은 데이터(영상)라 할 수 있다. 물론 실제로 아무런 가공이 되지 않은 것은 아니다. 다만 전반적인 프로세싱 과정 중 아직 압축 등의 변환이 되지 않은 순수한 데이터라 할 수 있다. Raw Image를 한마디로 정의하면 DSP(Digital Signal Processing)가 이뤄지지 않은 상태로 저장된 원본 데이터라 할 수 있다. 다른 의미로 Patt..
· Vision
흔히 카메라를 우리의 눈에 비교한다. 우리가 물체 또는 배경(이 후 피사체라 한다)을 보면 그 빛이 망막을 통해 형성되고 여러 과정을 거쳐 뇌에서 인식된다.본 문은 영상 처리의 기본이자, 영상이 저장되는 과정을 토대로 센서부터 포맷까지 살펴보도록 한다.참고로 영상이라는 단어는 이미지와 비디오(동영상)를 포함하는 의미이다. 동영상도 결과적으로 이미지의 집합이기 때문에… 그래서 영상 처리를 영어로 Image Processing이라 한다. 이미지 센서가장 먼저 알아볼 것은 이미지 센서이다. 컴퓨터 공학적인 측면에서 렌즈 등의 외부 장치는 제외하고 이미지 센서는 가장 핵심적인 장치라 할 수 있다.이미지 센서는 피사체의 정보를 읽어 해당 정보를 전기적 이미지 시그널로 변환해주는 장치이다. 현실의 물체는 빛 에너지..
· Vision
1. H.265/HEVC 표준의 개요HEVC 표준화 작업은 2010년 1월부터 MPEG(Moving Picture Expert Group)과 VCEG(Video Coding Experts Group)이 공동 설립한 JCT-VC(Joint Collaboration Team on Video Coding)에 의해 시작되었다.이전의 H.264/AVC 비디오 부호화 표준이 유선망과 무선망이 통합되고 방송과 통신이 융합되어 언제 어디서나 인터넷과 방송을 즐길 수 있는 방송 통신 융합 서비스 시대를 개척하였다면, 차세대 비디오 압축 기술인 HEVC는 방송 통신 융합 서비스를 한 단계 더욱 진보시킬 수 있는 표준이 될 것이다. 2. H.265/HEVC의 표준화 배경최근 3D 영상과 Ultra HD급 초고해상도 영상과 ..
· Vision
비디오 영상 포맷HEVC를 비롯한 표준 비디오 코덱들은 디지털 영상의 해상도와 시간 길이에 비례해서 늘어나는 데이터의 표현량을 줄이는 인코더와 압축 스트림(Stream)만으로도 양질의 영상을 복원하는 디코더로 구성된다. 1. 영상 취득우리가 인지하는 3차원 공간의 모든 위치들은 x, y, z 세 개의 연속 변수들로 충분히 표현할 수 있고, 지속적으로 흘러가는 모든 시간과 순간들도 연속된 도메인 위에 표현할 수 있다.그리고 이러한 것은 모두 적당한 시간 (ex. 기업의 1~4분기, 다이어트 한달 계획,..)을 기준으로 나누어 이산적으로 표현할 필요가 있다.영상의 이산 표현은연속성을 가지는 시간을 이산 도메인에서 표현하는 경우는, 동영상을 취득, 저장, 재현 하는 경우에도 적용되는데 우리가 멀티미디어 장치를..
· Undefined
스프링 개념 프레임워크는 개발자에게 구조화된 기본 뼈대를 제공함으로서 기본 구조를 정하고 이 구조 위에서 코드를 작성하게 함으로서 기본적인 코드를 작성하는 시간 낭비를 줄여줍니다. 스프링 프레임워크 역시 DI를 사용하여 디자인 패턴에 대한 자세한 이해가 없어도 객체를 싱글턴 패턴으로 사용할 수 있도록 만들어 줍니다. 싱글턴 : 인스턴트가 하나 뿐인 특별한 객체. 어디서든 접근 가능한 객체 스프링 프레임워크는 스프링 컨테이너라는 런타임 엔진을 제공하며 이 컨테이너는 생성에서 소멸까지 객체의 라이프 사이클을 관리하며 이 과정에서 IoC와 DI를 사용합니다. 스프링 용어 IoC는 Inversion of Control의 약자로 말 그대로 프로그램의 제어 흐름 구조가 바뀌는 것을 의미합니다. IoC를 통하여 객체..
· Undefined
JSP 환경에서 Ajax를 통하여 데이터베이스에 접근하고, 이를 통해 간단한 데이터를 출력하는 예제입니다. MySQL을 기준으로 작성되었습니다. 먼저 mysql-connector-{JAVA Version}-bin.jar 파일을 다운받아 해당 프로젝트의 WEB-INF 아래 lib 폴더에 복사합니다. JDBC connector 등록 및 DO 추가 프로젝트 폴더의 src 폴더에 패키지를 생성하고, DAO 클래스를 등록합니다. 예를들어 주소록 프로그램이라면 addrDAO.java 와 같이 적당한 이름으로 생성합니다. // JDBC connector 등록과 DO 추가 public class PortraDAO { Connection conn = null; PreparedStatement pstmt = null; /..
· Undefined
PDCA 모델 각 주기와 PMBOK의 5가지 프로세스 PDCA 사이클이란 어떤 일을 함에 있어 계획(Plan)하고 실천에 옮겨 실행(Do)하고, 이러한 실행이 옳은지 그른지 또는 유익한지 해한지를 검증(Check)하여 잘못된 점을 개선(Act)하고 다음번에는 보다 발전된 계획으로 실행하고 검증하여 개선해 나가는 반복적인 사이클이라 할 수 있다. PMBOK은 Project Management Body Of Knowledge의 약자로 각 산업의 프로젝트에 일반적인 관리방법들을 체계적으로 확립하고 틀로 고안한 지식체계이다. 이는 개시(Initiating), 계획(Planning), 실행(Executing), 모니터링과 통제(Monitoring and Controlling), 종료(Closing)으로 이루어진다..
· Undefined
애자일 기법과 폭포수 모델 비교 애자일 방법론은 2000년대 무렵 새롭게 대두된 단어로 기존의 방법론에서 탈피한 새롭지만 강력한 방법론 중 하나이다. 소프트웨어 공학이라는 학문에서는 계획, 요구사항 분석부터 설계, 구현, 테스트 등을 거치면 완벽한 소프트웨어가 될 것이라 생각했다. 하지만 사용자의 요구사항은 빈번하게 변경되고 완벽한 설계라 생각했던 것이 구현함을 통해 실제로 잘못된 길이었다는 것을 알게 되었고 이로 하여금 애자일 방법론이라는 기존의 정통적인 방법론과는 다른 절차가 대두되었다. 쉽게 말해 애자일이란 기존의 워터폴(폭포수) 모델은 자동차를 만드는데 있어 차의 프레임을 구축하고, 바퀴를 설계하고, 다음으로 차량 내부를 설계하고, 좌석을 개선하는 방식과 같이 절차적인 형식을 띄었다. 그러나 애자..
· Undefined
소프트웨어 공학의 출현 배경 공학은 일반적으로 과학이나 수학을 기초로 구조나 기계, 생상 공정, 시스템 등을 생산에 합리적이고 체계적인 방법으로 적용시키는 학문을 의미한다. 이러한 원리 아래 대두된 소프트웨어 공학은 소프트웨어를 분석, 설계, 개발, 테스트, 유지보스 단계를 거쳐 개발하고 이와 관련된 전반적인 방법론 등을 연구하는 분야이다. 소프트웨어가 발전하지만 그에 따른 사용자의 요구는 더욱 급격히 증가되었고 결과적으로 소프트웨어의 위기를 불러왔다. 공학이 없던 당시 소프트웨어 개발은 개발 예산의 초과와 기간의 지연, 프로그래머 개인의 판단과 역량에 의한 소프트웨어 개발 추친, 소프트웨어 품질 문제 등이 있었고 결과적으로 체계적이고 기술적 검토를 거치지 않은 소프트웨어에 대한 신뢰는 무너졌다. 이러한..
· Undefined
시스템 개발 패러다임 4가지 과거 틀이 정해지지 않은 소프트웨어 개발은 이에 위기를 불러왔고 그 결과 소프트웨어 개발 방법론이 등장하게 되었다. 소프트웨어 패러다임으로 우리는 개발에 대한 여러 가지 시각과 관점, 틀을 생각하게 되었고 다양한 생각의 전환으로 목표를 달성하기 위해 필요한 방법, 개발 환경 및 관리에 대한 포괄적인 틀을 고려한 결과 많은 방식 중 대표적인 4가지 방법론이 대두되었다. 폭포수 모델(Waterfall Model) 폭포수 모델은 고전적 라이프 사이클 패러다임이라 불리며 건축과 같은 설계 공학에서 가장 많이 사용되고 있는 기법이다. 소프트웨어 개발에단계적이며 체계적인 순차적 접근법을 사용하여 정의하고 있으며 개념 정립에서 구현까지 하향식 접근 방법을 사용하여 요구사항 분석, 설계같은..
· Undefined
요구사항 명세서와 설계 문서의 차이 요구사항 명세서(Requirements specification)는 요구사항 분석(Requirements Analysis)단계에서 작성되는데 이는 하드웨어나 소프트웨어의 측면부터 시작하여 사용자의 요구사항, 타당성, 비용과 시간 등을 종합적으로 분석하고 이를 산출하여 만들어진 문서이다. 요구사항 명세서는 다른 말로 기능명세서(functional spec..) 또는 목표 문서 (target document)라고도 한다. 반면 설계 문서(design document)는 설계(Design)단계에서 작성되는데 이는 시스템의 안정감과 생명력, 유지 보수에 대한 대비, 품질 향상을 위하여 작성된다. 따라서 요구사항 명세서는 설계 전 소프트웨어 공학에 있어 전반적으로 추상적인 부분..
· Undefined
애플리케이션 서버 애플리케이션 서버(H/W)는 웹 서버와 데이터 베이스 서버 중간에 위치, 웹 애플리케이션 서버(WAS)가 동작하는 하드웨어를 의미한다. 애플리케이션 서버(S/W, WAS와 거의 유사한 의미)는 웹 용 프로그램을 동작시킬 수 있도록 해주는 소프트웨어 플랫폼을 의미한다. 웹 애플리케이션 서버(WAS) 자세히 보기 컴퓨팅 서버 일종의 슈퍼 컴퓨터로, 다양한 분야에서 사용되는 초고속/대용량 컴퓨터를 의미한다. 기존 슈퍼 컴퓨터가 주로 과학 기술 연산 분야를 목적으로 이용되었다면, 현재의 슈퍼 컴퓨터는 군사, 경제, 사회 통계 까지 넓은 분야로 확장되어 가고 있으며, 많은 기업에서 클라우딩 환경 제공을 위해 슈퍼 컴퓨터를 사용하는 경우가 늘어나고 있다. 데이터베이스 서버 정보를 저장하기 위한 서..
· Language/C++
MFC란? Microsoft Foundation Class 마이크로 소프트에서 만든 클래스 MFC의 배경 윈도우 프로그래밍은 기본적으로 수많은 API가 사용된다. 이는 다양한 기능을 제공하지만 실제로 코딩을 하는 사람들에게 너무나도 복잡하고 많은 라이브러리로 개발자의 혼란을 불러 일으켰다. 따라서 마이크로소프트에서는 1990년 윈도우 API 함수를 캐슐화하여 라이브러리를 만들었고, 이후 이것은 MFC로 발전되었다. 따라서 MFC는 마이크로소프트에서 API 함수를 각 기능별로 클래스화한 형태로 만든 것이라 할 수 있으며 현재 MFC 라이브러리는 Visual C++에 기본적으로 포함되어 제공된다. MFC 계층도 MFC의 계층 구조를 간단하게 살펴보면 크게 CObject와 CObject에서 파생되지 않은 클래..
· Language/C++
참조자 (Reference) – 변수에 또 하나의 이름 지정 – 변수 앞에 & 연산자를 사용하여 선언 int A = 10; int &ReferenceA = A; 사용 목적 참조자를 사용한 Call by reference 호출 가능 (ex. swap 함수) #include using namespace std; void Swap(int& x, int& y) { // 참조자 사용 int temp; temp = x; x = y; y = temp; } void main() { int a = 100, b = 1; Swap(a, b); // int &x = a, int &y = b와 동일 cout
lasiyan
LA Dev.