본문 바로가기

전체138

Lombok이란? 간편한 코드 작성, 가독성, 유지보수를 편리하게 해주는 Lombok *자세한 설명 생략 ▷ Lombok 이란? Java의 라이브러리로 반복되는 메소드를 Annotation을 사용해서 자동으로 작성해 주는 라이브러리 *Annotation(@) : 작성한 코드에 대해 추가적인 정보를 제공하여 기능을 실행 *Annotation 종류 : - 표준 어노테이션(Java에서 기본적으로 제공) - 메타 어노테이션 (Annotation을 정의하는데 사용) - 사용자 정의 어노테이션(사용자가 직접 정의) Lombok을 이용해서 작성한 코드는 컴파일 과정에서 Annotation을 이용해 코드를 생성 후 자동 컴파일 ▷ 참고 [자바] 자주 사용되는 Lombok 어노테이션 Engineering Blog by Dale Seo w.. 2023. 7. 25.
Docker 란? 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼 *자세한 설명 생략 ▷ Docker 란? Container 기반의 오픈소스 가상화 플랫폼 하나의 Host OS위에 Docker를 설치하여 다수의 Container를 생성하고 관리 *Container : 리눅스 자체 기능을 사용한 프로세스 단위의 독립된 환경 안의 가상공간 *Container에 필요한 커널은 Host OS의 커널을 공유하여 사용 (애플리케이션을 구동하는데 필요한 패키지만 있으면 Container 구동) *커널 : 컴퓨터 자원을 관리하는 OS의 핵심 부분(쉘 : 사용자와 커널 사이의 인터페이스) VM보다 가볍고 빠르고 효율적 확장성과 이식성이 뛰어남 Docker가 설치돼 있다면 Image를 통해 Container 실행.. 2023. 7. 24.
TDD, BDD, DDD란? 다양한 개발 방법론 중 TDD, BDD, DDD의 기본 개념을 간단히 소개 *자세한 설명 생략 ▷ TDD(Test Driven Development) - 테스트 주도 개발 *코드 양 증가(테스트 코드들의 관리 이슈)로 빠른 생산성이 요구되는 시점에는 적용이 어려움 테스트 코드를 먼저 작성(단위 테스트) 짧은 개발 서클을 반복하는 개발 방식 요구사항에 따른 테스트 케이스를 설정 해당 코드를 리팩토링 하는 과정으로 프로그래밍을 진행 작동하는 깔끔한 코드를 작성 새로운 기능 추가 시 기존 기능들과 성능 평가 ▷ BDD(Behavior Driven Development) - 행동 주도 개발 TDD에서 파생 테스트 코드 자체가 요구사항이 되도록 개발하는 방식(통합 테스트) 코드가 수행할 행위에 대한 명세를 먼저 .. 2023. 7. 23.
PWA 란? PWA의 기본 개념을 간단히 소개 *자세한 설명 생략 ▷ PWA(Progressive Web App)이란? - Web에 최신 기술을 더하여 브라우저가 있는 환경(데스크톱, 태블릿, 모바일)이면 어디에서나, 마치 Native App과 같은 사용성을 가진 Web App을 제공하고자 하는 시도이자 방법론 *HTML, CSS, 자바스크립트와 같은 웹 기술들을 사용해 App과 같은 기능을 갖춘 Web App *푸시 알림 등 Native App의 기능 제공 *Native App, Web App의, Hybrid App의 : 아래 참고 - 최초 구글이 PWA라는 이름으로 방법론과 개념을 제시하였고, 자신들의 브라우저인 Chrome에 새롭게 개발한 것이 아닌 최신 Web API를 접목시키고 확장 *구글뿐만이 아니라 다른.. 2023. 3. 14.
HTML5 란? HTML5의 기본 개념을 간단히 소개 *자세한 설명 생략 ▷HTML5 란? *모바일 웹에 핵심 기술 *최신 버전의 웹 브라우저들은 모두 HTML5를 지원 - HyperText Markup Language의 약자로 HTML의 5번째 버전을 의미 * HTML : 웹페이지를 만드는 데 사용되는 Markup Language로, 각 웹페이지는 HTML 태그를 통해 구성 * HyperText : 다른 페이지로 이동하거나 같은 페이지 내의 다른 데이터로 이동하는 것(링크) * Markup Language : 태그를 이용하여 문서나 데이터의 구조를 명시하는 언어 - 기존 HTML 보다 표현할 수 있는 기능들이 다양해서 더 많은 표현 가능 *브라우저 내에 영상 플레이가 내장되어 있지 않거나 추가로 설치하지 않아도 인터넷.. 2023. 3. 9.
WebSocket vs Socket vs Socket I.O 간단한 개념 소개를 통해 어떻게 다른지 파악*자세한 설명 생략  ▷ 소켓(Socket) 이란? <p sty.. 2023. 2. 17.
카프카(Kafka)란? 카프카의 기본 개념을 간단히 소개 *자세한 설명 생략 ▷ 카프카(Kafka) 란? - 고성능 분산형 데이터 스트리밍 플랫폼 *스트리밍 플랫폼(Streaming Platform) : 데이터 스트림을 읽고 쓰고 저장하고 처리하는 시스템 *데이터 스트림(이벤트 스트림, 스트리밍 데이터) : 끊임없는 지속적인 데이터 흐름 - Message Broker 역할을 할 수 있도록 구현(발행/구독) - 기존 메시징 시스템과는 달리 Message를 메모리 대신 파일 시스템에 쌓아두고 관리 ▷ 카프카(Kafka) 주요 구성 - KafkaCluster : 여러 개의 Broker를 구성한 클러스터(확장성, 고가용성) - Broker : 카프카 애플리케이션이 설치된 서버 또는 노드 *3개 이상의 Broker로 구성하여 사용하는 .. 2023. 2. 7.
메시지 큐(Message Queue)란? 메시지 큐의 기본 개념을 간단히 소개 *자세한 설명 생략 ▷ 메시지 큐(Message Queue)란? - 메시지 지향 미들웨어(MOM : Message Oriented Middleware)를 구현한 시스템 *미들웨어 : Application들을 연결해 서로 데이터를 교환할 수 있게 해주는 소프트웨어 *메시지 지향 시스템 : 메시지 API를 통해 각 분산되어 있는 Application 간 데이터를 교환할 수 있도록 하는 시스템 *비동기방식, Publisher/Subscribe 로 구성 - 프로세스(프로그램) 간 데이터를 교환할 때 사용하는 기술 - 대용량 데이터를 처리하기 위한 배치 작업이나, 채팅 서비스, 비동기 데이터를 처리할 때 활용 *모든 요청을 메시지 큐에 보내고, 서버는 큐를 가져와 부담을 줄이.. 2023. 2. 6.
서블릿(Servlet) 이란? 서블릿의 기본 개념을 간단히 소개 *자세한 설명 생략 ▷ 서블릿(Servlet) 이란? - 클라이언트 요청을 처리하고, 그 결과를 반환하는 자바 웹 프로그래밍 기술 - Java로 구현된 CGI *CGI(Common Gateway Interfac) : 웹서버와 외부 프로그램 사이에서 정보를 주고받는 방법이나 규약 ▷ 서블릿(Servlet) 특징 - 정적인 웹 프로그램의 문제점을 보완하여 동적인 여러 가지 기능을 제공 - 웹 브라우저에서 요청시 기능을 수행 - Thread를 이용해 동작 - HttpServlet 클래스를 상속받아 활용 - 보안 기능 적용 용이 *인증(Authentication), 인가(Authorization), 비밀보장(Confidentiality), 데이터 무결성(Data Integrit.. 2023. 2. 3.
728x90
728x90