백엔드 개발자가 인터넷 개념을 제대로 이해하는 것은 필수다. 단순히 "인터넷을 사용한다"는 것과 "인터넷이 어떻게 동작하는지 이해한다"는 것은 다르다. 이번 글을 통해 인터넷이 어떻게 동작하는지 기본 개념부터 실제 데이터가 전달되는 과정까지 차근차근 짚어보려고 한다. 1. 인터넷이란 무엇인가?: 인터넷은 전 세계의 컴퓨터와 네트워크를 연결하는 거대한 네트워크다. 우리가 웹 사이트를 방문하거나 온라인 게임을 하거나 이메일을 보낼 때, 이 모든 작업이 인터넷을 통해 이루어진다. 하지만 단순히 "네트워크"라고만 하면 설명이 부족한데, 인터넷은 분산된 네트워크 시스템이다. 즉, 특정한 중앙 서버가 모든 연결을 담당하는 것이 아니라, 수많은 네트워크 장비와 서버가 서로 연결되어 있는 거대한 구조다. 💥인터넷을 ..
1. 개요이기종 시스템이 개별적으로 동작하면 데이터 교환이 원활하지 않고, 중복 개발 및 관리 부담이 커진다. 이를 해결하기 위해 EAI(Enterprise Application Intergration 기업 애플리케이션 통합) 및 ESB(Enterprise Service Bus 엔터프라이즈 서비스 버스)가 등장했다. 이번 포스팅에서는 EAI와 ESB의 개념과 차이점 그리고 예시까지 다뤄보겠다.2. EAI (Enterprise Application Intergration)EAI는 기업 내 다양한 시스템들을 하나의 중앙 허브를 통해 연결하는 방식특징Point-to-Point 통합 방식을 중앙 허브를 통해 관리각 애플리케이션이 직접 연결되지 않고, EAI 플랫폼이 모든 메시지를 변환 및 중계주로 대형 기업에서..
REST: REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미함 HTTP URI(Uniform Resoruce Identifier)를 통해 자원을 명시HTTP Method(POST, GET, PUT, DELETE, PATCH 등)을 사용함해당 자원에 대한 CRUD Operation을 적용하는 것을 의미CRUD OperationCreate : 데이터 생성 (POST)Read : 데이터 조회 (GET)Update : 데이터 수정 (PUT, PATCH)Delete : 데이터 삭제 (DELETE)REST 구성 요소자원 (Resource) : HTTP URI자원에 대한 행위 (Verb) : HTTP Method자원에 ..
1. GoFDesign Patterns -> Elements of Reusable Object-Oriented Software를 집필한 저자 4명을 말함에릭감마(Erich Gamma)리차드 헬름(Richard Helm)랄프 존슨(Ralph Johnson)존 블리시데스(John Vlissides)2. 디자인 패턴모듈의 세분화된 역할이나 모듈들 간의 인터페이스 구현 방식을 설계할때 참조할 수 있는 방식소프트웨어를 설계할 때 자주 발생하는 문제들에 대한 재사용 가능한 해결책디자인 패턴은 세 가지 카테고리로 분류되어 23개의 패턴이 있음디자인 패턴 사용의 이점디자인 패턴 사용시 검증된 해결책을 제공하므로, 같은 문제를 반복해서 해결할 필요 없이 패턴을 적용하여 빠르게 개발 가능패턴을 사용하면 코드 변경이 용이하..
SOLID라고 하는 5가지 객체지향 설계원칙이 있다. OOP의 개념이 이해가 되고 습득이 되어 해당 개념 또한 습득하여 내 것으로 만들어보고자 한다. 1. 단일 책임 원칙 - SRP (Single Responsibility Principle) 클래스는 단 한개의 책임을 가져야 함'책임' -> 기능정도로 보면 됨하나의 클래스는 하나의 기능을 담당하여 하나의 책임을 수행할 수 있도록 함만일 하나의 클래스에 기능이 여러개라면 기능 변경이 일어났을때 수정해야할 코드가 많아짐SRP 원칙을 따름으로써 한 책임의 변경으로부터 다른 책임의 변경으로의 연쇄작용을 극복할 수 있게됨단일 책임 원칙의 목적은 프로그램의 유지보수성을 높이기 위한 설계 기법모듈이 변경되는 이유가 한가지 여야 함SOLID 원칙의 기초가 됨SRP..
자격증 공부를 위해 객체지향 프로그래밍에 대해 단순 암기만 했었는데 이번 글을 통해 해당 패러다임이 왜 필요한지 그리고 특징은 무엇인지를 알아보면서 제대로 학습해보고자 한다.과거를 알면 현재를 알고 현재를 알면 미래를 알 수 있듯이 먼저, 객체지향 프로그래밍을 이해하기전에 객체지향 프로그래밍이 등장하기 이전의 패러다임을 이해할 필요가 있다. 1. 순차적 프로그래밍정의한 기능의 흐름에 따라 순서대로 동작을 추가하며 프로그램을 완성하는 방식간단한 프로그램이라면 흐름이 눈으로 보이기 때문에 매우 직관적이지만 프로그램의 규모가 커지면 곤란하게 된다.(ex 스파게티 코드)2. 절차적 프로그래밍'절차'는 함수를 의미한다. 따라서 반복되는 동작을 함수 및 프로시저 형태로 모듈화하는 방식반복 동작을 모듈화하여 코드르 ..