CS(14)
-
카프카란?
1. Pub / Sub 메시징 시스템 Pub / Sub 구조로 이루어진 비동기 메세지 전송 방식 Publisher / Producer 에서 메세지 시스템에 메세지를 보내 저장하면 Subscriber / Consumer 에서 메세지 데이터를 받는다. 저장된 메세지는 수신자가 정해져있지 않다. 구독을 신청한 수신자만이 정해진 메세지를 받을 수 있다. 수신자도 누가 발행자가 누군지 모른다. * 일반 네트워크 통신으로 메시지를 보낼 경우 문제점 N:N 연결로 클라이언트가 많아지면 느려질수 있고 이를 대응하기 위해 확장성이 떨어진다. 특정 클라이언트가 갑작스럽게 서버가 다운되어 사라지면 메세지를 받지 못하여 메세지가 유실될 수 있다. * Pub / Sub 구조의 네트워크 통신 Publisher 가 Subscrib..
2022.10.15 -
어노테이션은 무엇일까요?
@ 어노테이션 사전적 의미로는 '주석' 자바에서만큼은 특별한 의미를 담은 주석 즉, 자바코드에 주석처럼 달아 프로그램에게 추가적인 정보를 제공해주는 메타데이터 자바나 스프링이 제공해주는 것도 있고 사용자가 직접 만들 수도 있다. * 메타데이터 : 데이터의 대한 속성정보이다. 쉽게말해서 어떤 목적을 가지고 만들어진 데이터! 어노테이션에서는 다른 데이터를 설명해주는 데이터라고 이해하면 된다. @ 어노테이션을 사용하는 이유 컴파일러에게 코드작성 문법에러를 체크하도록 정보를 제공한다. 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보를 제공한다. 코드를 실행시 특정기능을 실행할 수 있도록 정보를 제공한다. 대표적인 자바에서 사용하는 어노테이션 @Override 선언한 메서드가 오버라이드 되었다는 것을 나타냅..
2022.06.16 -
(객체지향 관점에서) 스프링 프레임워크를 바라봤을 때 장단점이 무엇이라고 생각하나요?
스프링이 지향하는 목적 : POJO 프로그래밍 방식 진정한 POJO란 객체 지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 말한다. 스프링에 IOC/DI, AOP는 POJO 프로그래밍을 손쉽게 할 수 있도록 지원하는 기술이다. POJO (Plain Old Java Object)기반의 구성 - 코드를 개발 할 떄, 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않음을 의미한다. Java 코드를 이용해서 객체를 구성하는 방식 그대로 스프링에서 사용할 수 있다. (내부적으로 별도의 API 를 사용하지 않고 일반적인 java코드로 객체 구성한다라는 의미.) - 자유롭게 객체 지향적 설계를 구현할 수 있다. 이 말의 의미는 개발자는 가장..
2022.06.15 -
객체 지향적 설계 원칙이란?
SOLID란 객체 지향 프로그래밍을 하면서 지켜야하는 5대 원칙으로 각각 SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙)의 앞글자를 따서 만들어졌다. SOLID 원칙을 철저히 지키면 시간이 지나도 변경이 용이하고, 유지보수와 확장이 쉬운 소프트웨어를 개발하는데 도움이 되는 것으로 알려져있다. [ 단일 책임의 원칙(SRP, Single Responsibility Principle) ] 단일 책임의 원칙(SRP, Single Responsibility Principle)은 하나의 모듈은 한 가지 책임을 가져야 한다는 것으로, 이것은 모듈이 변경되는 이유가 한가지여야 함을 의미한다. 여기서 변경의 이유가 한가지라는 것..
2022.06.14 -
객체지향 프로그래밍의 장점은?
1. 재사용성에 용이하다. 상속을 통해 프로그래밍시 코드의 재사용을 높일 수 있음. 예시 코드 ) class 도형{ public void move(){ 출력 : "부모클래스" } } class 삼각형 extends 도형{ public void stop(){ 출력 : "자식클래스" } } - 삼각형은 도형을 상속받았기 때문에 move 와 stop 메소드 호출 가능 2. 생산성 향상 잘 설계된 클래스를 만들어서 독립적인 객체를 사용함으로써 개발의 생산성을 향상시킬 수 있음. 3. 자연적인 모델링 우리 일상생활의 모습의 구조가 객체에 자연스럽게 녹아들어 있기 때문에 생각하고 있는 것을 그대로 자연스럽게 구현할 수 있다. 4. 유지보수의 우수성 프로그램 수정시 추가, 수정을 하더라도 캡슐화를 통해 주변 영향이 ..
2022.06.14 -
CDN (Content Delivery Network) 란
CDN - 콘텐츠 전송 네트워크 CDN 이란 물리적으로 떨어져 있는 사용자에게 콘텐츠를 더 빠르게 제공하기 위해 고안된 기술이다. 예를 들어서 우리나라에 있는 사람이 미국에 있는 서버로부터 이미지 파일 등을 다운로드하려고 하면 시간이 오래 걸리는데 느린 응답 속도와 다운로드 시간을 극복하기 위해 서버를 분산시켜 캐싱해두고, 빠르게 다운로드할 수 있게 한다. (* 캐싱은 좀 더 빠른 메모리 영역으로 데이터를 가져와서 접근하는 방식) 그래서 이 CDN 은 콘텐츠에 대한 요청이 발생하면 사용자와 가장 가까운 위치에 존재하는 서버로 매핑시켜, 요청된 파일의 캐싱된(사전 저장된) 버전으로 요청을 처리한다. 서버가 파일을 찾는 데 실패한 경우 CDN 플랫폼의 다른 서버에서 콘텐츠를 찾은 다음 엔드 유저에게 응답을 ..
2022.04.18