추상화 추상화를 수행하는 이유는 어떤 대상들의 공통적인 특징을 뽑아내서 정의하고 대상의 관심있는 부분을 정리함으로써 대상의 세세한 부분까지 신경쓰지 않아도 되기 때문입니다. 예를 들어, 카페 관련 정보 앱을 개발한다고 생각하면 스타벅스의 내부 인테리어, 의자 개수, 종업원의 유니폼 같은 세세한 정보를 일일이 관심을 가지는 것 보단 카페의 보편적인 매...
디스크 컨트롤러 풀이 (힙, 우선순위 큐 사용) 프로그래머스 Lv 3 문제로 힙을 사용하여 효과적으로 풀 수 있습니다. 하지만 힙을 사용하기 전에 다음을 명확히 하는 것이 좋습니다. 문제에 주어진 예시로 봤을 때 (0, 3), (2, 6), (1, 9) 으로 작업을 처리했을 때 평균 처리시간이 제일 적은 것을 알 수 있습니다. 이로써 도출할 수 있는...
크루스칼 알고리즘 그래프 이론에서 모든 노드 정점을 연결하는 방법입니다. 최소 스패닝트리 라고도 불립니다. 가장 비용이 적은 간선부터 이미 연결돼 있는 노드인지 확인하며 트리를 완성합니다. 아래는 작은 그래프 예시를 들었습니다. 최소 스패닝트리 1, 2를 보시면 최소 비용 4로 모두 동일하지만 그래프 모양은 다릅니다. 이처럼 경우에 따라 스패닝트리가...
클래스 다이어그램에서의 관계의 종류 UML 다이어그램 종류 중 클래스 다이어그램은 시스템을 구성하는 클래스들 사이의 관계를 표현합니다. 요구 분석부터 설계, 구현 단계까지 폭넓게 사용되는 다이어그램입니다. 그 중에서 클래스들 사이의 관계에 대해 자세히 알아보겠습니다. 크게 연관, 일반화, 집합, 의존, 인터페이스 책임 관계로 나누어집니다. ...
스프링부트와 AWS로 혼자 구현하는 웹 서비스를 읽고나서 이 책을 읽기 전 저는 현재 취준생으로써 AWS를 활용한 기본적인 인프라지식과, Node.js 기반의 간단한 웹 프로그래밍 프로젝트를 수행한 경험이 있었고, 대기업 백엔드의 대부분을 차지하고 있는 Spring 프레임워크에 관심이 생겨 구매하여 읽게 되었습니다. 좋았던 점 실습 ...
리팩터링 리팩터링을 수행하는 이유는 다음과 같습니다 빠른 개발 좋은 설계 유지,보수성, 가독성이 좋아짐 사실 좋은 설계로 인해 자연스레 따라오는 장점들 같습니다. 그럼 리팩터링의 정의는 뭘까요? 코드의 핵심적인 기능은 유지하되, 코드의 구조를 변경함으로써 소프트웨어의 설계, 가독성, 유지 보수성을 높이는 작업 저같은 초보...
WebRTC 란 WebRTC(Web Real-Time Communication)은 웹 애플리케이션과 사이트가 중간자 없이 브라우저 간에 오디오나 영상 미디어를 포착하고 마음대로 스트림할 뿐 아니라, 임의의 데이터도 교환할 수 있도록 하는 기술입니다. WebRTC를 구성하는 일련의 표준들은 플러그인이나 제 3자 소프트웨어 설치 없이 종단 간 데이...
AI 에 대한 이해 이번 포스팅은 멀티캠퍼스 융복합프로젝트를 진행하면서 AI, IoT, 빅데이터, 클라우드 공부를 한 학생들이 서로의 도메인에 대한 이해를 높이기 위해 조사한 글입니다. 프로젝트를 진행하면서 AI가 무엇을 할 수 있는지? 무엇이 필요한지? 어디에서 정보들을 찾을 수 있는지? 를 중점으로 정리한 글입니다. 인공지능 기술의 발전은 기존...
정적호스팅 정적 호스팅 하는 방법 에서 Vue 앱을 웹팩으로 빌드하고 dist 폴더 아래의 파일을 aws s3 버킷에 업로드하여 호스팅했습니다. 오늘은 개발자의 컴퓨터에서 깃헙으로 푸쉬하면 자동으로 빌드를 수행하고 s3 버킷에 파일을 업로드 하는 작업을 자동화하겠습니다. 이를 구현하기 위해서, aws codepipeline, aws codebuild...
DynamoDB Amazon DynamoDB는 어떤 규모에서도 10밀리초 미만의 성능을 제공하는 키-값 및 문서 데이터베이스입니다. 완전관리형의 내구성이 뛰어난 다중 리전, 다중 마스터 데이터베이스로서, 인터넷 규모 애플리케이션을 위한 보안, 백업 및 복원, 인 메모리 캐싱 기능을 기본적으로 제공합니다. DynamoDB는 하루에 10조 개 이상...