As-a-service IaaS(Infrastucture-as-a-service), PaaS(Platform-as-a-service), SaaS(Software-as-a-service)의 차이점은 뭘까? 우선 "As-a-service" 가 무슨 뜻인지 알아야 한다. "As-a-service"는 보통 제 3자로부터 제공받는 클라우드 컴퓨팅 서비스를 뜻한다. 클라우드 컴퓨팅 서비스를 이용하면 사용자는 더 적은 온-프레미스 인프라를 관리하게 된다. 온-프레미스 인프라는 사용자에게 많은 책임을 전가한다. 만약 모든 하드웨어와 소프트웨어가 온-프레미스라면, 사용자는 모든 것을 유지보수 및 관리해야 한다. 하지만 제 3자로부터 클라우드 컴퓨팅 서비스를 제공받는다면 많은 부분의 관리를 제 3자에게 맡기고 더 중요한 ..
OLTP(Online Transaction Processing)란? OLTP란 트랜잭션 지향 애플리케이션을 손쉽게 관리할 수 있도록 도와주는 정보 시스템의 한 계열로서, 일반적으로 데이터 기입 및 트랜잭션 처리를 위해 존재한다. -위키백과- OLTP는 동시에 발생하는 다수의 트랜잭션을 실행하는 데이터 처리 유형이다. OLTP는 쿼리를 실행하고, 데이터 무결성을 유지하는 것을 목표로 한다. 예를 들어 은행의 ATM 기계는 OLTP 과정을 거친다. ATM 기계로 돈을 통장에 입금한다고 하자. 가장 먼저 카드를 삽입하면 ATM이 카드 정보를 인식한다. 카드를 인식했으면 돈을 기계에 넣는다. ATM은 돈을 세면서 잘못된 돈은 없는지 확인한다. 확인이 끝나면 돈을 보관하고 통장에 돈을 입금한다. 이러한 과정 ..
깃 브랜치(Git Branch)란 무엇인가 개발을 하다 보면 코드를 여러 방향으로 개발할 일이 생긴다. 예를 들어 A라는 코드를 B로 바꿔보기도 하고, C로 바꿔보기도 하며 가장 효율적인 코드를 찾아나갈 수도 있다. 이렇게 독립적으로 개발하는 것이 브랜치의 기본 개념이다. 브랜치는 말 그대로 가지이다. 하나의 나무에서 여러 갈래로 가지가 뻗어나가는 것처럼, 하나의 코드에서 여러 개의 코드로 갈라지며 다양한 개발 흐름을 만들어 낼 수 있다. 혼자 개발할 때 뿐만 아니라, 여러 사람이 협업하여 개발할 때 브랜치는 더욱 빛을 발한다. 어떤 개발자는 A라는 코드에 B기능을 추가하고, 또 다른 개발자는 동시에 C라는 기능을 추가할 수 있다. 커밋과 브랜치 깃은 데이터를 변경사항으로 기록하지 않고 일련의 스냅샷(s..
온-프레미스(On-premise)와 클라우드(Cloud) AWS에 대해 알기 위해선 온-프레미스와 클라우드에 대해 알아야 한다. 온-프레미스 저장소는 회사의 서버가 조직의 인프라 내에 호스트 되어 있으며, 많은 경우 사내에 물리적으로 존재한다. 따라서 온-프레미스 저장소는 서버를 회사의 사내 IT 팀 등이 직접 제어, 관리, 유지 및 조달한다. 또한 데이터와 기타 정보는 로컬 네트워크를 통해 공유된다. 쉽게 말해 회사가 직접 저장소를 관리한다고 보면 된다. 클라우드 저장소는 아마존(Amazon)과 같은 외부 서비스 공급자가 데이터를 호스트 한다. 즉, 클라우드 공급자가 모든 하드웨어, 소프트웨어 및 기타 지원 인프라를 조달하고 자사의 데이터 센터에 설치 및 관리한다. 또한 인터넷을 통해 PC, 웹 브라우..
데이터베이스 트리거(Trigger)란? 데이터베이스 트리거는 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업을 의미한다. 트리거는 INSERT, DELETE, UPDATE 같은 DML(데이터 조작 언어)의 데이터 상태 관리를 자동화하는데 사용된다. 트리거(Trigger)는 말 그대로 방아쇠이다. 방아쇠를 당기면 총에서 총알이 발사되듯, 트리거가 실행되면 일련의 작업을 수행하게 된다. 트리거 유형트리거는 크게 행 트리거와 문장 트리거가 존재한다. 행 트리거 : 테이블 안의 영향을 받은 행 각각에 대해 실행된다. 변경 전 또는 변경 후의 행은 OLD, NEW라는 가상 줄 변수를 사용하여 읽을 수 있다.문장 트리거 : INSERT, UPDATE, DELETE 문에 대해 한 번만 실행된다. 또한 트리거..
CDN(Contents Delivery Network)란? CDN(Contents Delivery Network)이란 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크이다. 사용자는 웹 사이트를 방문할 때 해당 웹 사이트 서버의 데이터가 인터넷을 통해 사용자의 컴퓨터에 도달하게 된다. 이때 사용자가 해당 서버에서 멀리 떨어져 있는 경우 동영상이나 이미지와 같은 대용량 파일을 로드할 때 많은 시간이 걸리게 된다. 반면 사용자와 가까운 거리에 있는 CDN 서버에 웹 사이트 콘텐츠를 저장해놓으면 사용자는 훨씬 빠른 속도로 콘텐츠를 로드할 수 있다. 즉, CDN은 콘텐츠 전송 시간을 줄여주는 네트워크이다. CDN의 동작 방식CDN의 목적은 지연 시간을 줄이는 ..
1. 인텔리제이 공식 홈페이지 접속 https://www.jetbrains.com/idea/ IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains A Capable and Ergonomic Java IDE for Enterprise Java, Scala, Kotlin and much more... www.jetbrains.com 2. Download 버튼 누르기 3. 버전 선택하기 다운로드 페이지에 들어가면 운영체제를 선택할 수 있다. macOS를 선택하면 두 가지 버전을 선택할 수 있다. 또한, Intel 맥북을 사용한다면 Intel 버전을 선택해야 하고, m1~m2 맥북을 사용한다면 Apple Sillicon을 선택해야 한다. Community ..
@RequestMapping 실무에서 사용되는 대부분의 컨트롤러는 @RequestMapping을 사용한다. 컨트롤러의 메서드에 @RequestMapping 어노테이션을 붙이면 해당 URL이 호출될 때 이 메서드가 호출된다. 어노테이션을 기반으로 동작하므로 메서드의 이름을 임의로 지을 수 있다. 예를 들어 @Controller public class BoardController{ @RequestMapping("/board/article") public ModelAndView getArticle(HttpServletRequest request, HttpServletResponse response){ ... } } .../board/article URL이 호출되면 getArticle 메서드가 호출된다. 또한 ..
Spring MVC Framework란? MVC는 Model-View-Controller의 약자로 하나의 디자인 패턴을 뜻한다. Spring MVC에 대해 이해하려면 Model, View, Controller에 대한 이해가 필수이니 해당 내용에 대해 잘 모른다면 다음을 참고하자. [Web] MVC 패턴이란? MVC 패턴의 등장 배경 MVC 패턴의 등장 배경 하나의 서블릿 혹은 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리한다면, 너무 많은 역할을 하게 되어 유지보수가 어렵다. 또한, UI를 일부 수정하는 일과 비즈니스 code-lab1.tistory.com Spring MVC Framework는 웹 애플리케이션을 빌드하기 위한 프레임워크이다. 다른 MVC Framework 들도 웹 어플리케이션을 ..
HTTP 헤더 HTTP 헤더는 HTTP 전송에 필요한 모든 부가정보를 담고 있다. 메시지 바디의 내용, 크기, 압축, 인증, 요청 클라이언트, 서버 정보 등등... 매우 많은 정보들이 들어있다. 표준 헤더의 내용은 너무나 많기 때문에 모든 내용에 대해 궁금하다면 다음을 참고하자. List of HTTP header fields - Wikipedia HTTP header fields are a list of strings sent and received by both the client program and server on every HTTP request and response. These headers are usually invisible to the end-user and are only proc..
맥북 m1 자바(JDK 17) 다운로드 Intel 맥북의 경우는 상관 없지만, m1은 Oracle Java 11버전을 지원하지 않는다. 따라서 Oracle Java가 아닌 다른 Java를 설치하는 식으로 Java를 사용했다. 하지만 Java 17버전 부터는 드디어 m1을 지원하게 되었다. 참고로 JRE, JDK, Java 버전에 대해 잘 모른다면 다음을 참고하자. [JAVA] JRE 와 JDK의 차이? Java 8, 11, 17 에 대하여 [JAVA] JRE 와 JDK의 차이? Java 8, 11, 17 에 대하여 JRE, JDK란? 처음 Java를 설치하려고 보니 JRE, JDK 등이 존재하는 것을 확인할 수 있다. 둘의 차이는 무엇일까? 참고) [JAVA] 자바(JAVA)란? 자바의 특징 자바(JAV..
HTTP 상태 코드란? 웹 서비스를 이용하다 보면 종종 "404 Not Found"라는 오류 메시지를 볼 수 있다. 이러한 오류 메시지는 HTTP 상태 코드를 기반으로 한다. HTTP 상태 코드는 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다. HTTP 상태 코드는 3자리 숫자로 이루어져 있으며 첫 번째 자리가 1부터 5까지 존재하며, 크게 아래와 같이 분류된다. 1xx (Informational) : 요청이 수신되어 처리중 2xx (Successful) : 요청 정상 처리 3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요 4xx (Client Error) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error) : ..