본문 바로가기

백엔드/개발9

OSGi에 대하여 알아보자 OSGi란? OSGi (Open Service Gateway initiative - 개방형 서비스 게이트웨이 이니셔티브) 프레임워크는 모듈형 소프트웨어 프로그램과 라이브러리를 개발 및 배포하기위한 자바 프레임 워크이다. 각 번들은 강하게 결합하고, 동적으로 로딩이 가능한 class, jar 그리고 명시적으로 외부 종속성을 선언하는 환경설정파일의 모음이다. 쉽게 이야기해서 OSGI는 번들 단위로 관리하고 실행할 수 있는 프레임워크를 말한다. OSGi 적용분야 이클립스 IDE OSGi 서비스 플랫폼은 홈게이트웨이 텔레매틱스 단말(예:BMW, SimensVDO), 모바일 단말 산업 자동화, 빌딩 자동화 PDA / 스마트폰 / 태블릿 등의 모바일 단말 그리드 컴퓨팅 백색가전 (예: BSH, 보쉬-지멘스 가전 합.. 2022. 5. 3.
Java OSGi Tutorial Github 소스 MathConsumer : https://github.com/yscho03/MathConsumer MathService : https://github.com/yscho03/MathService Tutorial (튜토리얼) 1. OSGi "MathConsumer" 생성 1-1. MathConsumer 프로젝트 생성 Activator Code package org.tutorial.helloosgi.mathconsumer; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class Activator implements BundleActivator { private static B.. 2022. 5. 3.
Java + Gradle을 사용하여 gRPC 서비스를 만들어보자 gRPC가 무엇인지 알아보기 전에 RPC가 무엇인지 알아보자. RPC란? RPC(Remote Procedure Call - 원격 프로시저 호출)는 다른 위치에서 클라이언트 요청을 통해 원격 프로세스를 실행하는 기술이다. RPC 사용의 여러가지 문제로 인해 개발자는 오늘날 대부분의 최신 분산 컴퓨팅 솔루션에서 RPC 사용을 피하고 REST 아키텍처를 선호하고 있다. RPC 문제점 RPC의 문제점은 무엇이길래 이렇게 사용을 안하게 되었을까? Sam Newman의 Building Microservices: Designing Fine-Grained Systems 는 마이크로서비스에서 RPC를 사용하는 3가지 이유가 여전히 의심스럽다고 언급했다. 주요 기술 결함으로는 다음과 같다. Java RMI와 같은 기술은 .. 2022. 4. 28.
Spring Boot - Hello World 시작해보기 Hello World 시작 1. 패키지 생성 오른쪽 마우스로 New → Package을 클릭하여준다. 생성할 패키지 이름을 입력한다 . (점)으로 구분하면 된다. 2. 컨트롤러 클래스 생성 SapleController.java가 만들어졌으면 다음과 같이 코딩한다. 먼저 class 위에 @RestController 어노테이션으로 지정해주자. @GetMapping 어노테이션은 www.웹 주소/hello 요청을 처리하겠다는 의미이다. package com.sample.dev.api; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestC.. 2022. 4. 13.
Spring Boot 환경설정 환경설정 방법 1. STS 다운로드 https://spring.io/tools 접속하여 STS(Spring Tool Suite)을 다운로드하여 설치한다. 다운받은 jar 파일을 클릭하면 압축이 자동으로 해제된다. 2. OpenJDK 설치 https://jdk.java.net/java-se-ri/8-MR3 접속하여 다운로드한다. 윈도우 같은 경우 Windows 10 i586 Java Development Kit 을 클릭하여 다운로드하면 된다. 3. STS 실행 및 JDK 환경설정 3-1. STS 실행하고 워크스페이스 작업공간을 설정 3-2. Installed JREs 설정 Window → Perferences 를 클릭한다. 3-3. Compiler 설정 compiler를 다운받은 openJDK 버전에 맞게.. 2022. 4. 13.
Django-DSL 동적 INDEX 생성 환경 Python 3.6 Django 2.1.1 ElasticSearch 3.6.x 요약 Django와 ElasticSearch을 연동해서 사용 중이다. 이번달은 LOG_201901, 다음달은 LOG_201902 ...으로 동적으로 INDEX (RDB 용어로는 테이블)을 생성하여 사용하고 싶다. ORM(Model)의 Meta 정보에 넣었으나 코드를 넣었으나 INDEX가 날짜별로 자동 생성되지 않고 처음 생성된 INDEX(예) LOG_201901) 에만 계속 쌓이는 문제가 있었다. 실행한 model 소스는 아래와 같다. 무엇이 문제일까? from elasticsearch_dsl import DocType, Text, Integer, Date import datetime class Statistics(Doc.. 2019. 2. 3.
Django - 프론트엔드 SPA 연동시 context parameter 설정 환경 Python 3.6 Django 2.1.1 VueJS Single Application 요약 Django 서버쪽에서 뷰 페이지(프론트)를 렌더링을 할때 특정 파라미터를 전달을 하여 사용하고싶은데 Django Template Code는 SPA의 어플리케이션 (Vue, React, Angular)의 템플릿 코드랑 겹쳐서 사용을 하기 애매하다. 예) {{ test = context.test }} 대응 서버쪽에서 context 에서 특정 파라미터를 설정하여 보내면 view.py에서 설정한 HTML 페이지 (정적인 페이지로 프론트에서 SPA 어플리케이션이 렌더링을 하기 전 단계이다. 프론트 페이지 렌더링 하기 전단계) 에서 javascript 전역 변수에 담아 사용하는 방법이다. view.py 코드 def .. 2018. 12. 31.
Django - 웹 서버 기동시 LOG 파일 엑세스 오류 환경 ㆍPython 3.6 ㆍDjango 2.1.1 요약 Django의 settings.py 에서 다음과 같이 일단위로 로그 파일을 생성하게 설정하였으나 어느날 다음과 같은 오류가 발생하였다. # logger LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': "[%(asctime)s][%(levelname)s][%(name)s:%(lineno)s][%(funcName)s] %(message)s", 'datefmt': "%Y-%m-%d %H:%M:%S" }, }, 'handlers': { 'file': { 'class': 'logging.handlers.TimedRotatingF.. 2018. 12. 31.
Django - DEBUG = False 일 경우 정적 파일 경로 설정 방법 환경 Python 3.6 Django 2.1.1 VueJS Single Application 요약 Django의 settings.py 에서 DEBUG = False 일 경우 프론트 페이지에서 static URL로 파일을 엑세스 할 수가 없다. 원인 static URL을 Django의 가이드 문서대로 아래의 코드와 같이 추가해주면 settings.py에 DEBUG = True에서 설정할 경우 static URL로 접근해도 파일 엑세스에 아무 이상이 없다. from django.conf.urls.static import static urlpatterns = [ ... url(r'^$', index_view, {}, name='index'), ] # We use a single global DRF Router.. 2018. 12. 31.
728x90
반응형