AttackOnNunu

Once more into the fray


  • 홈

  • About

  • 태그

  • 카테고리

  • 아카이브

  • 검색

Spring 개요

작성일 2019-01-22 In WEB 🌏 , SPRING 댓글:

가장 좋은 문서는 spring.io 공식 홈페이지에서 제공하는 documents 입니다. 개인적으로 공부하면서 작성하는 문서라 틀린 부분이 있을 수 있으니, 반드시 공식 문서를 참조하시기 바랍니다.

스프링 공식 홈페이지 > > 소스코드 > > 가이드


1. 스프링

공식 홈페이지 첫 화면을 보면 Spring : the source for modern java 라고 적혀있습니다.

이 문장만으로는 이해하기 어려워서 구글에 검색을 해도 우리나라에서는 스프링하면 스프링 프레임워크(Spring framework)를 주로 이야기해서 스프링의 정의에 대해 다루는 자료는 그렇게 많지 않았습니다.

그럼에도 스프링이란 무엇인지 명확하게 짚고 넘어가는 것이 좋을 것 같습니다.

스프링(Spring) 은


자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크

라는 정의를 가지고 있습니다.

얼핏 보면 감이 잘 안 잡히기 때문에 시간을 내셔서 제가 참조했던 ‘12bme’님의 포스트[^1] 를 자세히 읽어보시고 이해하시면 좋을 것 같습니다.

또한 공식 홈페이지에 따르면 Spring 개발진의 철학이 Rod Johnson이 2002년 10월에 출판한 ‘Expert One-on-One J2EE Design and Develpment’에 요약되어 있다고 하니 여유가 있다면 한번 읽어보면 깊은 이해를 하는데 도움이 될 것 같습니다.

스프링 개발진의 목표(Aim) 로는,

  • 스프링은 사용하기 즐거워야 하고
  • 여러분의 애플리케이션 코드가 스프링 API들에 의존해서는 안되며
  • JDO, Toplink, Hibernate와 같은 훌륭한 O/R mapping solution들과 경쟁하지 않지만, 통합을 촉진하는 것 입니다.

또한 공식 홈페이지에서 PROJECTS 탭을 보면 스프링을 활용한 다양한 프로젝트들을 보실 수 있습니다.

  • Spring Boot
  • Spring Framework
  • Spring Cloud
  • Etc …

이처럼 스프링은 어디서나 간단하고, 이식하기 쉬우며, 신속하고, 유연하게 JVM 기반의 시스템과 애플리케이션을 구축할 수 있어 ==다양한 프로젝트들의 디자인이 되는 모듈==이라고 생각할 수 있습니다.

[^1]: 스프링이란 무엇인가? - 12bme

2. 스프링 프레임워크란

위에서 언급한 12bme님의 포스트를 보셨으면 쉽게 이해하시겠지만, 엔터프라이즈 애플리케이션 개발이 어려운 이유는 사회가 점점 복잡해지고, 시스템에서 다루어야 하는 업무의 복잡도와 의존도가 높아져 개발의 복잡성이 증가했기 때문입니다. 이에 사용자의 요구를 빠르고 안정적이면서 확장 가능한 형태로 유지가히 위한 로우레벨(Low level) 수준의 기술적 처리가 필요해졌고 우리는 스프링 프레임워크를 통해 쉽게 자바 엔터프라이즈 애플리케이션을 개발할 수 있게 되었습니다.

history

2004년 3월 Spring Framework 1.0 버전을 시작으로, 포스트 작성일 기준(2019년 1월) Spring Framework는 5.1.4 버전이 최신 버전입니다.

짧게 스프링(Spring)이라고 불리는 스프링 프레임워크는 모든 플랫폼에서 자바 기반 엔터프라이즈 애플리케이션(JAVA EE) 개발을 편하게 해주는 종합적인 프로그래밍 및 구성 모델을 제공합니다.

프레임워크의 바탕인 스프링 의 핵심 요소가 애플리케이션 수준에서의 인프라 지원이기 때문에 스프링 프레임워크에서는 개발 환경 구축에 필요한 하부구조(Infrastructure)를 포괄적으로 제공하고 처리하기 때문에 개발자는 애플리케이션 개발(plumbing[^2])에 집중할 수 있게 되었습니다.

plumbing

참고로 스프링 프레임워크는 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자 정부 표준 프레임워크의 기반 기술입니다.

[^2]: 원문에는 plumbing이라는 단어로 표현하는데, 프레임워크가 부품들 다 만들어 놓으면 개발자는 그것들을 조립하는 느낌이라 이런 단어를 사용한 것 같습니다.




CDA 란?

작성일 2019-01-19 In 기타 📦 댓글:

Related Post


본 문서는 IHIS 연구소의 ‘HL7 Clinical Document Architecture Release 2’ pdf 문서를 기반으로 작성 되었습니다.


CDA 개요

@[toc]

1. CDA의 정의(Definition)

정식 명칭은 The HL7 Clinical Document Architecture (CDA)로
“공유 목적으로 하는 임상 문서(clinical document)의 구조와 의미를 명시하는 문서 표기(Markup)의 표준” 이라고 정의 되어있다.

임상문서는 의사가 환자를 진료 후 진단된 병명 및 진료내역 등을 기술하고 투약, 주요 실시검사 내용 등 주요 진료결과를 포함하는 문서이다.
임상 문서(Clinical document)는 다음과 같은 특성을 가진다 :
    - Persistence (존속성)
     - 문서는 지역 및 규제 요건에 의해 정의된 기간 동안 변경되지 않은 상태로 계속 존재한다.
    - Stewardship (관리 책임)
     - 문서는  그 관리를 위임받은 기관에 의해 보존된다.
    - Potential for authentication (인증가능성)
     - 문서는 합법적으로 인증받고자 하는 정보의 집합물이다.
    - Context (문맥))
     - 임상 문서에 대한 기본 맥락(default context)를 설정한다.
    - Wholeness (전체성)
     - 문서의 인증은 전체적으로 적용되며 문서 전체 맥락(context)이 없는 부분에는 적용되지 않는다.
    - Human readability (가독성)
     - 사람이 읽을 수 있어야 한다.

2. CDA의 주요 특성(Key aspects)

  • Extensible Markup Language (XML)로 인코딩 된다.
  • HL7 Reference Information Model(이하 RIM)로부터 기계처리적 의미가 유도되고 HL7의 버전 3 데이터 타입을 사용한다
  • 표현력이 풍부하고 유연하다.
    • document 레벨, section 레벨, entry 레벨의 템플릿은 일반적인 CDA 명세를 통제하기 위해 사용될 수 있다

3. CDA의 목표

  • 환자의 보호에 우선권을 둔다.
  • 가능한 광범위한 시스템에서 사용이 가능하도록 하면서 비용이 효율적이게 구현한다.
  • 전문 지식의 수준이 다른 사용자들도 판독이 가능하도록 지원한다.
  • 인코딩된 정보가 오래 유지되도록 한다.
  • 합리적이고 빠르게 디자인이 되도록 한다.

4. CDA Document의 주요 요소들

CDA document

  • The Header
    • <ClinicalDocument> 태그와 <structuredBody> 태그 사이에 있다
    • 문서를 확인하고 분류하며 ==인증, 진료, 환자, 관련된 제공자들의 정보==를 담는다.
  • The Body
    • 진료 보고서(clinical report)를 담고 있다.
    • 1)비정형화(unstructured blob) 또는, 2)정형화된 표기(structured markup) 둘 중 하나이다.
    • 위 예제는 <structuredBody> 태그로 정형화된 구조이고, document section이 되풀이해서 올 수 있는 recursive 구조이다.

5. CDA “levels”

PDF 문서에서 이 부분은 표 하나만 있어서 추가 자료 조사를 통해 작성하였습니다. 따라서 부족한 본인이 작성했기에 잘못된 내용이 있을 수도 있습니다.

CDA, Release One CDA, Release Two
CDA Level One The unconstrained CDA specification. 규제되지 않은 CDA 규정
CDA Level Two The CDA specification with section-level templates applied. 색션 레벨의 템플릿을 적용한 CDA 규정
CDA Level Three The CDA specification with entry-level (and optionally section-level) templates applied. 엔트리 레벨(선택적 색션 레벨) 템플릿을 적용한 CDA 규정
  • CDA는 2가지 버전이 있다

    • 첫 번째 버전(Release One)에서는 단순 CDA 설계의 목표를 달성하기 위한 XML DTDs 또는 XML Schemas 계층구조를 세 단계(level)로 나눈 것이다.
      CDA level

    • 두 번째 버전(Release Two)에서는 하나의 CDA XML Schema로 이루어지고, HL7 templates들을 계층적으로 적용해 나가는 구조이다.
      CDA Release2

6. 보안성, 기고성, 데이터 무경성

  • CDA 문서를 보내고 받는 애플리케이션 시스템은
    • 문서 인증, 기밀 유지 및 보존에 대한 모든 법적 요구 사항을 충족해야한다.
    • 대중 매체를 통한 통신의 경우, 송신자(source)/수신자(recipient) 인증 및 캡슐화(요약)된 문서의 안전한 전송을 취한 암호화 기술이 요구될 수 있으므로 표준의 범위를 벗어나는 상용 도구로 해결 해야한다.
  • CDA는
    • 애플리케이션 시스템이 중요한 데이터에 대한 접근을 관리하는데 도움이 되는 기밀성 상태 정보를 제공한다. 기밀성 상태(confidentiality status)는 전체 문서 또는 문서의 특정 부분에 적용될 수 있다.




Markup? Markdown!

작성일 2019-01-17 In BLOG 🗂 , MARKDOWN 댓글:

Github Page를 시작 하면서 처음으로 Markdown 언어를 사용하게 되었습니다.
처음 웹 프로그래밍을 배울 때 HTML부터 배우면서 Hyper Text Markup Language(HTML)의 정확한 의미와 뜻은 알지 못한체 그저 태그로 구성된 문서(!)라는 정도로만 이해하고 넘겼습니다.

뜬금없이 HTML과 Markup에 대해 언급해서 의아하실 수 있지만, Markdown에 대한 위키피디아 정의를 보면 ‘Markdown is a lightweight markup language’라고 언급되어 있습니다.
여기서 HTML에 대한 정의를 깊게 이야기하진 않겠지만, 적어도 Markup은 무엇인지 알고 Markdown에 대해서 알아보도록 하겠습니다.

Markup 이란?

‘Markup’이란 단어는 비즈니스나 법률 등에도 다른 의미로 사용되는데, 프로그래밍에서는 쉽게 말해 어딘가에 표시를 해두는 것을 뜻합니다.
이해를 돕기 위해 예를 들어보겠습니다.

예 1) 표시가 없을 때

  • HTML을 가르쳐드립니다 핵심 태그만 알면 당신도 HTML의 고수가 될 수 있습니다 19/01/17 세미나실

예 2) 표시가 있을 때

  • 제목 : HTML을 가르쳐드립니다
  • 내용 : 핵심 태그만 알면 당신도 HTML의 고수가 될 수 있습니다
  • 날짜 : 19/01/17
  • 장소 : 세미나실

표시가 있음으로 단락(HTML에서는 Tag로 표현합니다)이 구분되고 직관적으로 이해하기도 쉬워졌습니다. 즉, Markup 언어를 사용하면 문서(text)를 구조적으로 표현할 수 있습니다.

Markdown 이란?

마크다운 언어는 사람들이 읽기 쉽고 쓰기 쉬운 플레인 텍스트 포맷을 사용하여 쓸 수 있으면서 구조적으로 유효한 HTML로 선택적 변환이 가능하게 하는 것을 목표로 2004년 존 그루버가 에런 스위츠와 협업하여 만든 언어입니다.
특수기호와 문자를 이용하는 비교적 매우 간단한 문법 구조로 빠르게 컨텐츠를 작성할 수 있고 보다 직관적으로 이해할 수 있습니다.

이해를 돕기 위해 일상에서 자주 사용되는 예를 들어보겠습니다.

  • SNS의 태그 기능 ex) 페이스북, 인스타그램
  • 깃허브 README.md 등…

맨 처음 언급한 위키피디아 내용처럼 마크다운 언어는 마크업 언어를 좀 더 직관적이고 간결하게 문서를 작성하게 해주는 언어입니다.

마크다운의 장-단점

장점

1. 간결하다.
2. 별도의 도구없이 작성가능하다.
3. 다양한 형태로 변환이 가능하다.
3. 텍스트(Text)로 저장되기 때문에 용량이 적어 보관이 용이하다.
4. 텍스트파일이기 때문에 버전관리시스템을 이용하여 변경이력을 관리할 수 있다.
5. 지원하는 프로그램과 플랫폼이 다양하다.

단점

1. 표준이 없다.
2. 표준이 없기 때문에 도구에 따라서 변환방식이나 생성물이 다르다.
3. 모든 HTML 마크업을 대신하지 못한다.

참조 :

  • https://brunch.co.kr/@coveryou/14
  • https://cordelia273.space/15




1…3233
NUNU

NUNU

개인적으로 공부하면서 정리한 내용들을 블로그에 남기고 있습니다.
99 포스트
18 카테고리
53 태그
RSS
Creative Commons
© 2021 NUNU
Powered by Hexo v3.9.0
|
Theme – NexT.Mist v7.2.0