본문 바로가기

IT 지식/기타5

Container & Docker Container 프로세스가 격리된 공간에서 동작하도록 하는 기술이다. 즉, 어플리케이션을 라이브러리 등과 한꺼번에 묶어 배포함으로써, 서로 다른 컴퓨팅 환경에 구애받지 않고 어플리케이션이 안정적으로 실행할 수 있게 만드는 기술이다. 컨테이너는 빠른 개발과 배포가 가능하다는 장점이 있다. Docker 도커란 리눅스 상에서 소프트웨어를 라이브러리, 시스템 도구, 런타임 등과 함께 컨테이너로 패키징한 소프트웨어 플랫폼이다. 도커를 사용하면 환경에 구애받지 않고 어플리케이션을 빠르게 개발하고, 배포할 수 있다. 즉, 도커는 컨테이너를 기반으로 하는 오픈소스의 가상화 플랫폼으로 볼 수 있다. 그렇다면 왜 굳이 컨테이너를 토대로 가상화를 수행해야 하는 것일까? 기존의 가상화라 하면 OS를 가상화하는 방법이 있다... 2021. 5. 17.
Kafka Kafka 아파치 카프카(Apache Kafka)는 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메시지 브로커 프로젝트이다. 이 프로젝트는 실시간 데이터 피드를 관리하기 위해 통일된, 높은 처리량, 낮은 지연시간을 지닌 플랫폼을 제공하는 것이 목표이다. 요컨대 분산 트랜잭션 로그로 구성된[2], 상당히 확장 가능한 pub/sub 메시지 큐로 정의할 수 있으며, 스트리밍 데이터를 처리하기 위한 기업 인프라를 위한 고부가 가치 기능이다. https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EC%B9%B4%ED%94%84%EC%B9%B4 위키피디아의 글을 보면 알 수 있듯, 카프카는 pub-sub 모델의 메시지 큐이다. 분산환경에 특화되어 설계되었고.. 2021. 5. 17.
Git과 Github 두 명 이상의 개발자가 하나의 프로그램을 개발한다고 생각해보자. 예를 들어 10개의 요구사항을 가진 프로그램을 만들기 위해 A 개발자는 1~5 기능을, B 개발자는 6~10 기능을 만든다. 그런데 이를 한 컴퓨터에서 진행할 수는 없다. 그러면 한 명이 컴퓨터를 이용할 때 다른 한 명은 강제로 휴식을 할 수 밖에 없고, 이러한 방법은 당연히 효율적이지 못하니까. 그렇다면 서로 다른 컴퓨터에서 작업을 해야할 것이다. 그런데 이렇게 만들어진 작업물은 결국에는 별도로 만들어진 것이라, 중간중간 테스트를 원한다면, 혹은 서로 연동되어야 하는 기능들이 존재하게 된다면 결국 두 개의 작업물들은 합쳐져야 한다. 그리고 이 과정을 프로그램 개발이 끝날 때까지 반복해야 한다. 이 과정은 너무 귀찮다. 또한 그렇게 합쳐졌을.. 2021. 5. 9.
Spring Framework 프레임워크? 프레임워크란 특정한 목적에 맞게 프로그래밍을 하기 위한 약속이다. 요리를 예시로 들면, 어느 요리던 비록 사람에 따라 다르게 조리되겠지만 반드시 필요한 재료는 존재한다. 예를 들어 김치찌개에는 김치와 돼지고기 정도는 반드시 필요하다. 프레임워크는 이렇게 특정한 목적에 맞는 어플리케이션을 개발하기 위해, 필수적인 것들을 모아놓은 것이다. 프레임워크와 라이브러리 내가 직접 면접에서 받은 질문은 아니고, 잡플래닛의 면접 후기 중에서 해당 질문이 나왔었다는 글이 기억났다. 앞서 설명했듯, 프레임워크는 말 그대로 특정한 목적에 맞는 어플리케이션을 개발하기 위해 필수적인 것들을 모아놓은, 일종의 틀 혹은 뼈대이다. 그에 반해 라이브러리는 단순히 활용 가능한 도구들의 집합으로 볼 수 있다. 쉬운 설명을 .. 2021. 5. 8.
[JAVA & JavaScript] 자바와 자바 스크립트 아무것도 모르던 대학교 새내기 시절에는, C를 발전시켜 C++을 만들고, C++을 발전시켜 C#을 만든 것처럼 자바 스크립트가 자바를 발전시켜 만든 언어인줄 알았다. '자바 스크립트'의 이름 때문이었던 것으로 기억한다. 하지만 자바와 자바 스크립트는 사실 이름만 비슷할 뿐이다. 왜 굳이 이름 앞에 '자바'를 붙여서 사람을 헷갈리게 만드나 싶을 정도로 전혀 다른 언어이다. 자바는 일반적인 프로그래밍 언어이다. 하지만 자바 스크립트는 웹에서의 상호작용과 애니메이션을 만들기 위해 개발된 언어이다. 인터넷 초창기 시절 사람들은 넷스케이프라는 브라우저를 자주 사용했다. 당시 넷스케이프의 개발자인 '브렌던 아이크'가 사용자의 입력을 받아 컴퓨터에게 상호작용하는 명령을 내릴 수 있는 프로그래밍 언어를 개발했는데, 이.. 2021. 3. 30.