본문 바로가기

전체 글

(137)
[CS BASIC] 미들웨어(Middle Ware) 솔루션 미들웨어 솔루션이란? 컴퓨터 제작 회사가 사용자의 특정한 요구대로 만들어 제공하는 프로그램으로, 운영 체제와 응용 소프트웨어의 중간에서 조정과 중개의 역할을 수행하는 소프트웨어 미들웨어 (Middleware)의 특징 서로 다른 기종 간의 하드웨어나 프로토콜, 통신환경 등을 연결하여 응용프로그램과 운영환경 간에 원만한 통신이 이루어질 수 있게 서비스를 제공하는 소프트웨어 분산 시스템에서 다양한 부분을 관리하고 통신하며 데이터를 교환하게 해주는 소프트웨어로 볼 수 있다. 위치 투명성(Location Transparency)을 제공한다. 분산 시스템의 여러 컴포넌트가 요구하는 재사용가능한 서비스의 구현을 제공한다. 애플리케이션과 사용자 사이, 프로그램과 환경 간의 분산서비스를 제공한다. 표준화된 인터페이스를 ..
[CS BASIC] 시스템 인터페이스와 인터페이스 대상 식별 시스템 아키텍처 요구사항 하드웨어 소프트웨어를 모두 포함하는 전체 시스템에 대한 논리적 기능 체계 그리고 그것을 실현하기 위한 구성 방식, 시스템 전체의 최적화를 목표로 한다. 요구사항과 시스템의 전체 생명주기를 고려한다. 시스템의 구성, 동작 원리를 정확하게 표현해야 하며 각 컴포넌트에 대한 설계, 구현을 지원하는 수준으로 자세히 기술한다. 각 컴포넌트 사이의 상호작용, 외부 환경과의 관계를 기술한다. 시스템 인터페이스 식별 개발 대상과 시스템 연계 시스템 사이의 인터페이스를 식별하는 것이다. 시스템의 업무 정의서, 시스템 아키텍처 정의서, 유스케이스 정의서 등을 통하여 송신, 수신, 중계 시스템을 식별한다. 인터페이스 요구명세서, 인터페이스 요구사항 목록을 기반으로 개발 대상과 시스템과 연계된 내/외..
[CS BASIC] HTTP, HTTPS, HTTP Method 1. HTTP란? HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜 1.1. 프로토콜(Protocol) 이란? 둘 이상의 통신개체간에 교환되는 메세지 포멧과 순서뿐 아니라, 메세지의 송수신과 이벤트에 따른 행동들을 정의한다. 여러 계층으로 나눠진 네트워크 구조에서 동일 계층에서 사용하는 표준화된 통신 규약으로,네트워크 기능을 효율적으로 발휘하기 위한 협정 1.1.1. 프로토콜의 주요기능 단편화와 재합성 캡슐화 주소지정, 순서지정, 흐름제어 연결제어, 오류제어, 동기화, 다중화 1.2. HTTP의 기본 구조 ① 시작 라인 (Start line) 기본적으로 HTTP 버젼에 대한 정보를 가지고 있으며, Response인지 Reques..
[CS BASIC] 디자인 패턴과 GoF(Gang of Four) 디자인 패턴(Design Pattern)이란? 각 모듈의 세분화된 역할이나 모듈들 간의 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 자주 사용하는 설계 형태를 정형화하여 유형별로 설계 템플릿을 만들어 두고 소프트웨어 개발 중 나타나는 과제를 해결하기 위한 방법 중 한 가지다. 다양한 응용 소프트웨어 시스템들을 개발할 때 서로 간에 공통되는 설계 문제가 존재하는 데, 각 해결책 사이에도 공통점이 있으며 이러한 유사점을 패턴이라 한다. 개발자 간 원활한 의사소통, 소프트웨어 구조 파악 용이, 설계 변경에 대한 유연한 대처, 개발의 효율성, 유지보수성, 운용성 등 소프트웨어 품질 향상에 도움을 준다. 객체 지향 프로그래밍 설계 시 유사한 상황에서..
[CS BASIC] 소프트웨어 아키텍처 디자인 패턴(Software Architecture Design Pattern) 소프트웨어의 아키텍처(Architecture)란? 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조로 볼수 있다. 데이터 중심 아키텍처는 공유 데이터저장소를 통해 접근자 간의 통신이 이루어지므로 각 접근자의 수정과 확장이 용이하다. 이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정한다. 소프트웨어 아키텍처 패턴의 장점 개발 시간의 단축 고품질 소프트웨어 안정적 개발 가능 개발 단계 관계자 간 의사소통이 간편함 시스템 구조 이해도가 높아 유지보수에 유리함 시스템 아키텍처의 종류 계층화 패턴 (Layered pattern) | OSI 참조 모델 등 모듈들로 응집된 계층 단위로 SW를 구성. 계층간에 사용 가능의 관계로 표현 n-티어 아키텍처 패턴이라고도 불림. 구조화된 프로그..
[회고] 소보로(SOBORO), 프로젝트 회고록 들어가기 전에.... 안녕하세요, 개발자 1-hee 입니다. 오늘은 처음으로 플레이스토어에 앱을 출시했던 첫 번째 안드로이드 앱 프로젝트 회고록을 작성해보려고 합니다. 아마추어 안드로이드 개발자가 앱 출시 하겠다며 도전했던 7주간의 이야기 지금 바로 시작해볼게요. 주제 선정 이번 프로젝트는 인공지능 기술을 사용한 서비스 개발에 도전해보았어요. 저희 팀은 구체적인 주제를 무엇으로 할까 고민하다가 STT와 TTS 기술을 사용해 청각 장애인분들을 위한 서비스 개발해보기로 결정했습니다. 이때, 서비스에 대한 홍보성으로 아래와 같이 소개 글도 작성해 보았습니다. Visualize Your Voice, 당신의 목소리를 보여드립니다. 🎵 소보로(SOBORO)는 모든 소리가 하나되는 세상을 지향합니다. 🌎 소보로(SO..
[회고] FLOS, 프로젝트 회고록 들어가기 전에.... 안녕하세요, 개발자 1-hee 입니다. 오늘은 올해 1월 부터 약 7주간 진행한 프로젝트 회고록을 작성해 보려고 합니다. 아마추어 개발자 교육생 6명이 모여서 서비스 하나를 만들어보기 위해 고군분투 했던 이야기 지금 바로 시작해볼게요. 주제 선정 이번 프로젝트는 우리가 일상 속에서 사용하는 SNS를 주제로 새로운 서비스를 만드는 도전을 해보았습니다. 물론, 실제 SNS 서비스를 제공하려면 Facebook, Instagram, Tiktok이라는 거대한 기업에 도전하는 격이었지만, 우리 팀은 우리의 창의성을 무기로 프로젝트에 도전을 하기로 결정했습니다. "남들에게 보여주기 위한 서비스가 아닌, 서로에게 공감하는 것에 중점을 둔 SNS를 만들어보자." 이 한마디가 이번 프로젝트에서 우리 ..
[알고리즘] 투 포인터와 부분합 투포인터란? "정렬된" 리스트 상에서 두 개의 포인터(= index 좌표) 를 사용하여 순차적으로 접근하면서 구간의 값이 목표 값과 같을 때까지 포인터를 조작하며 원하는 부분합과 구간을 구할 수 있는 알고리즘 기법입니다. 투 포인터는 주로 1차원 배열 상에서 부분합 등을 구할 때 주로 사용하게 되는데요. 이때 무조건 1차원 배열이라고 해서 투포인터를 사용할 수 있는 것은 아니며, 배열이 정리되어 있지 않다면 정렬된 상태로 만들어 주어야 합니다. 투포인터는 O(N)의 시간 복잡도를 가집니다. 알고리즘 설명 정렬된 값을 가지는 1차원 배열이 주어지고, K라는 값을 가지는 배열 속 숫자들의 부분합을 구한다고 가정해보겠습니다. 이 경우 투포인터를 사용하면 아래와 같이 포인터의 이동을 표현할 수 있는데요. 배열의..