✏️ 메시지 지향 미들웨어(MOM)
·
CS
MOM (Message Oriented Middleware)MOM은 메시지 지향 미들웨어로서 어플리케이션의 메시지를 중간에서 관리해주는 시스템미들웨어: 응용프로그램과 운영체제 사이에서 두 요소간 차이에 상관없이 통신을 가능하게 하는 계층MOM의 특징비동기 방식으로 메시지 전달많은 MOM은 메세지 큐 시스템 기반으로 하지만, 브로드 캐스트, 멀티 캐스트 방식도 있음메시지 교환을 위한 표준화되노 프로토콜을 가짐➡ 메시지 형식, 교환 방식, 라우팅 등을 정의하여 서로 다른 애플리케이션 간의 통신 원활히 함➡ JMS, AMQP, MQTTMOM의 장점클라이언트 시스템간 종속성 ⬇ 결속성 ⬇메시지 송신하는 송신자는 수신자 주소 몰라도 전달할 수 있음수신자의 메시지는 송신자가 보낸 메시지와 다를 수 있음(송수신측 요..
✏️ 기능적 요구사항 vs 비기능적 요구사항
·
CS
기능적 요구사항: 시스템 서비스 또는 기능들에 대한 요구사항어떤 서비스를 제공하는가어떤 입출력을 제공하는가어떤 상황에서 어떻게 행동하는가무엇을 처리하는가➡ 시스템 기능, 입력, 출력, 예외사항 등 ex) 은행 자금 관리 서비스 연동ex) 인사 및 조직 정보 연계ex) 고객 대상 채널 업무 연계 기능 구현 비기능적 요구사항: 소프트웨어 기능들에 대한 조건(시스템 속성)과 제약사항에 관한 요구사항 사용성: 사용자가 어떻게 쉽게 사용할 수 있는가성능: 특정 기능이 특정 시간 내에 실행공간: 특정 기능 수행시 메모리 최대 사용가능량신뢰성: 특정 기능 수행시 실패할 가능성이 몇 %보다 낮아야 하는가이식성: 다양한 플랫폼 위에서 작동하는가배포: SW 어떻게 배포할 것인가구현: 어떤 방법론? 어떤 프로그래밍 언어?표..
✏️ 플랫폼
·
CS
플랫폼 이란?플랫폼은 애플리케이션을 구동시키는 데 필요한 소프트웨어의 환경동일 플랫폼 내에서는 상호 호환이 가능하도록 만들어진 결합체를 의미공급자, 수요자 등 복수 그룹이 참여해 각 그룹이 얻고자 하는 가치를 공정한 거래로 교환할 수 있도록 구축된 환경 플래폼의 유형싱글 사이드 플랫폼: 제휴 관계를 통해 소비자-공급자 연결하는 형태ex) 아이튠즈, 안드로이드 마켓투 사이드 플랫폼: 두 그룹 중개하고 모두에게 개방하는 형태ex) 소개팅 앱멀티 사이드 플랫폼: 다양한 이해관계 그룹 연결하여 중개하는 형태ex) 페이스북, 인스타그램 플랫폼 성능 분석시 고려항목(측정 항목)경과시간사용률응답시간가용성(Availability)처리량💭 경사 응가 처리 ㅋㅋ
✏️ SOLID 객체지향 프로그래밍의 5가지 원칙
·
CS
SOLID 원칙(객체지향 설계 원칙)1. SPR(Single Responsibility): 단일 책임 원칙클래스는 단 한 개의 책임(=기능)을 가져야 함한 클래스가 수행할 수 있는 기능이 여러 개면 안됨책임을 분리해서 한 개만 가져야 함2. OCP(Open-Close): 개방-폐쇄 원칙 [추상화]확장(=새로운 기능 추가)에는 열려있어야 하고, 변경에는 닫혀있어야 함.기능 추가 요청이 오면 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야함.하나의 모듈 내 기능을 수정할 때, 다른 모듈을 계속해서 수정해야 한다면 유지보수가 복잡할 것.OCP는 추상화(인터페이스)와 상속(다형성) 등을 통해 구현할 수 있다. 자주 변화되는 부분을 추상화함으로써 기존 코드 수정하지 않고도 기능을 확장할 ..
[Spring] Spring Boot vs Spring
·
CS/CS 면접 준비
1. Spring Framework자바 기반의 오픈소스 백엔드 프레임워크.대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있음IoC ( Inversion of Control ) : 제어의 역행제어의 주체가 개발자가 아닌 프레임워크라는 뜻으로 때에 따라 프레임워크가 작성된 코드를 호출하는 기술. 객체의 생명주기의 관리까지 모든 객체에 대한 제어권을 프레임워크가 가진다.DI ( Dependency Injection ) : 의존성 주입의존성 객체를 개발자가 생성하지 않고 클래스를 Bean으로 등록해놓으면 Bean으로 등록된 객체를 프레임워크가 찾아서 알아서 주입해주는 기술이다. 이를 통해 모듈간의 결합도를 낮출 수 있다.AOP ( Aspect Orie..
[Spring JPA] JPA(Java Persistence API)란?
·
CS/CS 면접 준비
1. JPA(Java Persistence API)란?자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음즉, 실제로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크 JPA가 개발자 대신 SQL을 자동으로 생성하고 객체를 매핑해줌으로써 객체지향적으로 개발할 수 있게 도와준다. Java에서 사용하는 대표적인 ORM으로는 JPA와 그의 구현체 Hibernate가 있다. JPA가 등장하기 전에는 MyBatis라는 Object Mapping 기술을 이용하였는데, MyBatis는 Java 클래스 코드와 직접 작성한 SQL 코드를 매핑 시켜주어야 했다.하지만! JPA와 같은 ORM기술은 객체가 DB에 연결되기 때문에 SQL을 직접 ..
[네트워크] REST API란?
·
CS/CS 면접 준비
✔ REST API란 ? 클라이언트와 서버 간의 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스REST 기반으로 서비스 API를 구현한 것!   REST API를 제공하는 웹 서비스를 RESTful 하다고 할 수 있다. RESTful을 사용하는 가장 큰 이유는 Client와 Server에서 이해하기 쉽고 사용하기 쉽게하기 위해서.RESTful한 API를 구현하는 근본적인 목적이 성능향상 X'일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것' ex) RESTful 하지 않은 API: CRUD기능을 모두 POST로만 처리하는 API ✔  REST란?Representational State Transfer의 약자로1. 자원을 이름으로 구분하여 (=자원의 표현) ..