etc./IT 용어 사전

    IoC(Inversion of Control)이란?

    IoC(Inversion of Control)이란?

    Java SE 프로그램은 개발자가 main() 메소드 안에 구현한 순서대로 실행됩니다. 즉, 프로그램이 실행되는 순서를 개발자가 제어할 수 있게 되는 것입니다. 반면 Java EE 프로그램은 실행의 흐름을 개발자가 아닌 컨테이너가 제어합니다. 이처럼 개발자가 아닌 제3자가 프로그램의 실행 흐름을 제어하는 특성을 두고 IoC(Inversion of Control) 즉, 우리말로 번역하면 "제어의 역전"이라고 부릅니다. 대표적으로 서블릿이 IoC 특성을 가지고 있습니다. Java EE 기반 프로그램을 개발할 때에는 애플리케이션 컨테이너들이 프로그램을 어떤 순서로 실행시키는지를 알고, 해당 순서에 맞게 개발해야 합니다. 다음은 서블릿의 실행 순서입니다. 1) 클라이언트로부터 요청을 받는다. 2) 최초의 요청인..

    JVM, JRE, JDK란?

    JVM, JRE, JDK란?

    자바는 다른 프로그래밍 언어와 달리 소스 파일을 컴파일(compile)하면 머신코드가 아닌 바이트코드가 만들어집니다. 기계어코드는 컴퓨터에서 바로 실행이 가능하지만 바이트코드는 그렇지 않습니다. 따라서 바이트코드를 기계어코드로 변환해서 사용해야 하는데, 이 역할을 수행하는 것이 바로 JVM(Java Virtual Machine)입니다. 자바 개발자는 바이트코드로 된 실행 파일을 배포하므로, 이 파일을 실행하려면 반드시 실행하는 컴퓨터에도 JVM이 설치되어 있어야 합니다. C JAVA 소스 파일 .c .java ↓ ↓ 실행 파일 .exe (기계어코드) .class (바이트코드) ↓ ↓ OS JVM ↓ OS JRE(Java Runtime Environment)란 JVM와 함께 기타 실행 시 필요한 파일들이 ..

    애플릿, 서블릿, JSP란? (웹에서의 자바 기술)

    애플릿, 서블릿, JSP란? (웹에서의 자바 기술)

    0. 초창기 웹 정적인 페이지만 보여주었습니다. 즉 실시간으로 보여주어야 하는 동적인 데이터들을 처리하지 못했습니다. 1. 애플릿(Applet) 서버에서 클라이언트로 간단한 기능을 처리할 수 있는 실행 파일을 전송하는 방식입니다. 현재는 HTML5, CSS 등의 기술들이 애플릿을 대신해서 많이 사용되고 있지만, 자바가 현재 위치까지 오게 해준 데에는 애플릿의 공로가 큽니다. 2. 서블릿(Servlet) 클라이언트가 웹 브라우저를 통해 요청하면 서버에서 실행한 후 결괏값만을 클라이언트로 전송하는 방식입니다. 즉 서블릿은 애플릿의 약점은 보완한 기술이라 할 수 있습니다. 3. JSP(Javaserver Page) JSP는 서블릿과 똑같은 기능을 가지고 있어, 동일한 기술이라 보아도 무방합니다. 다만 다음과 ..

    Kubernetes란?

    Kubernetes란?

    Kubernetes [쿠버네티스; K8s] 쿠버네티스란, 클라우드화된 애플리케이션을 빠르게 자동적으로 배포하고 컨테이너들의 오케스트레이션, 스케일링 등을 제공하는 '컨테이너 관리 시스템'입니다. 여기서 오케스트레이션이란, 시스템과 서비스, 애플리케이션 설정을 자동화하여 자원을 관리하고 조정하는 것을 의미합니다. 그렇다면 '컨테이너 오케스트레이션'은 컨테이너의 배포, 관리, 확장을 자동화하는 것을 의미하는 거겠죠. 기존 가상 컴퓨터 기반 클라우드 서비스는 많은 자원을 필요로 한다는 점과 가상 컴퓨터 시동 시간이 오래 걸린다는 문제점이 있었습니다. 이러한 문제점을 해결하기 위해 등장한 것이 Kubernetes인 것입니다. 쿠버네티스는 2015년 부터 '클라우드 네이티브 컴퓨팅 재단(CNCF)'의 산하 프로젝..

    AWS란?

    AWS란?

    Amazon Web Service [아마존 웹 서비스] 아마존이라 함은 해외 쇼핑몰 사이트 정도로 익히 알려져 있습니다. 하지만 IT 업계에선 아마존의 영향력이 생각 이상으로 큽니다. 아마존은 새로운 기술에 끊임없이 투자하는 기업으로 유명한데요. B2C 영역에선 '킨들'이, B2B 영역에선 'AWS'가 그러한 투자의 결과물이라고 보면 됩니다. 아마존이 킨들로 e북 시장을 새롭게 개척했던 것처럼 AWS는 클라우드 기술을 대중화하는 데 큰 공을 세웠습니다. AWS는 아마존의 자회사로서, 2006년에 설립되었습니다. 주력 제품은 클라우드 서비스입니다. AWS에서 말하는 클라우드는 '네이버 클라우드'나 '구글 드라이브'와는 조금 다른 개념인데요, 네이버 클라우드나 구글 드라이브가 '일반 소비자'를 대상으로 서비..

    우분투(Ubuntu)란?

    우분투(Ubuntu)란?

    " PC와 TV, 스마트폰과 태블릿에도 쓰이는 만능 OS " 윈도우, 안드로이드 iOS등과 같이 여러 운영체제(OS) 중 하나입니다. 2013년 미국 아스베이거스 2013 소비자가전쇼(CES)에서 캐노니컬이라는 기업이 우분투 운영체제가 탑재된 스마트폰과 태블릿 PC를 선보였습니다. PC와 스마트폰, 태블릿PC에서 함께 쓸 수 있는 윈도우8처럼 우분투 역시 데스크톱PC와 스마트폰, PC에서 함께 쓸 수 있는 운영체제란 점에 이목이 집중됐습니다. 우분투는 리눅스 OS의 배포판 중 하나로 특히 데스크톱PC에서 사용할 수 있게 특화되었습니다. 우분투 재단의 지원 하에 소스코드가 공개되었고, 그 덕분에 우분투는 누구나 내려받아 무료로 사용할 수 있습니다. 우분투라는 이름은 아프리카의 일부 지역에서 '공동체 의식에..

    DevOps란?

    DevOps란?

    DevOps [데브옵스] " Development(개발) + Operations(운영) " 소프트웨어 개발 방법론 중 하나로, 개발 담당자와 운영 담당자가 연계하여 협력하는 방식을 뜻합니다. 즉 시스템 개발자(개발)와 정보기술 전문가(운영)사이의 소통, 협업, 통합 및 자동화를 강조합니다. 이러한 데브옵스의 개념은 애자일 소프트웨어 개발과 지속적 통합 등의 개념과도 관련이 있습니다. 애자일 소프트웨어 개발에서는 작은 변경을 자주 출시하기 때문에 개발 담당자와 운영 담당자의 협업이 중요하기에, 이러한 개발 방법의 보편화와 함께 데브옵스에 대한 개념도 널리 퍼지게 되었습니다. 데브옵스라는 용어는 2008년 애자일 컨퍼런스에서 Andrew Caly Shafer와 Patrick Debois가 "애자일 인프라스트..