KR20190079294A - 소스코드 표시장치, 소스코드 표시방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 - Google Patents

소스코드 표시장치, 소스코드 표시방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 Download PDF

Info

Publication number
KR20190079294A
KR20190079294A KR1020170181390A KR20170181390A KR20190079294A KR 20190079294 A KR20190079294 A KR 20190079294A KR 1020170181390 A KR1020170181390 A KR 1020170181390A KR 20170181390 A KR20170181390 A KR 20170181390A KR 20190079294 A KR20190079294 A KR 20190079294A
Authority
KR
South Korea
Prior art keywords
section
code
source code
unit
displayed
Prior art date
Application number
KR1020170181390A
Other languages
English (en)
Other versions
KR102067431B1 (ko
Inventor
배현섭
김준
오승욱
권민혁
Original Assignee
슈어소프트테크주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 슈어소프트테크주식회사 filed Critical 슈어소프트테크주식회사
Priority to KR1020170181390A priority Critical patent/KR102067431B1/ko
Priority to US15/903,443 priority patent/US10613839B2/en
Publication of KR20190079294A publication Critical patent/KR20190079294A/ko
Application granted granted Critical
Publication of KR102067431B1 publication Critical patent/KR102067431B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Abstract

실시 형태에 다른 소스코드 표시장치는 스크린을 포함하는 시각화부를 포함하고, 소스코드를 상기 스크린 상의 제1섹션과 제2섹션을 포함하는 화면에 표시하되, 상기 제1섹션에는 상기 소스코드 중 소정 코드유닛의 원본이 표시되고, 상기 제2섹션에는 상기 소스코드 중 상기 소정 코드유닛을 제외한 적어도 하나의 코드유닛이 표시되며, 상기 제2섹션에서 상기 적어도 하나의 코드유닛 각각은 해당 코드유닛의 대표 문자열로 표시된다. 여기서, 소스코드 표시장치는 상기 소스코드를 저장하고 있는 메모리부; 상기 메모리부로부터 상기 소스코드를 입력받아 상기 소스코드의 코드유닛마다 상기 대표 문자열을 추출하는 인덱싱부; 및 상기 제1섹션에 표시되어야 하는 상기 소정 코드유닛을 결정하고 상기 제1섹션과 상기 제2섹션의 비율을 결정하는 분석부;를 더 포함할 수 있다.

Description

소스코드 표시장치, 소스코드 표시방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체{SOURCE CODE DISPLAYING DEVICE, SOURCE CODE DIDSPLAYING METHOD, AND COMPUTER READABLE RECORDING MEDIUM HAVING PROGRAM PERFORMING THE SAME}
본 발명은 소스코드 표시장치, 소스코드 표시방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체에 관한 것이다. 보다 상세하게는 전체 소스코드에 대한 구성을 확인하도록 하면서도 소스코드의 읽기와 작성시 가독성을 향상시킬 수 있는 소스코드 표시장치, 소스코드 표시방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체에 관한 것이다.
일반적으로 소스코드(source code) 전체를 표시하는 기술은, 소스코드의 코드유닛 별로 대표 문자열을 추출하고 이를 표시장치에 표시함으로써 수행된다. 예컨대, 소스코드 유닛 별 대표 문자열은 해당 소스코드의 함수이름 및 변수이름 등을 포함할 수 있다. 소스코드를 표시하는 다른 기술로는, 단순히 코드를 축소하여 일종의 지도처럼 표시하는 것도 있다.
전술한 두 가지 방법은 일반적인 소스코드 편집기에서 제공되는 기법이다. 하지만, 전술한 방법들에 따라 소스코드를 표시하는 경우 소스코드에 대한 편집을 할 수 없는 단점이 있다. 즉, 기존의 소스코드를 편집하는 모드와 소스코드를 표시하는 모드가 분리되어 있어 소스코드의 편집 및/또는 작성과 소스코드 탐색 및/또는 보기 사이에 상호작용이 어려운 문제점이 있다. 따라서, 사용자가 소스코드의 탐색과 소스코드의 편집 및/또는 작성을 용이하게 수행할 수 있도록 하는 기술이 요구된다.
본 발명의 해결하고자 하는 과제는, 소스코드의 탐색/보기와 작성/편집이 가능하도록 소스코드를 표시할 수 있는 기법을 제공하는 것이다.
또한, 소스코드의 전체 구성을 표시하면서도 관심위치는 소스코드의 작성 및/또는 편집이 가능하도록 자세히 표시할 수 있도록 한다.
또한, 하나의 표시 화면에서 소스코드의 편집과 탐색이 동시에 가능하게 한다.
또한, 소스코드 표시장치에서 원본으로 표시된 부분은 편집/작성이 가능하고 나머지 부분은 코드 단위를 대표 문자열로 표시하여 코드 탐색이 가능하게 한다.
또한, 소스코드를 표시할 때 시각적인 심미성과 소스코드 가독성이 개선되도록 한다.
본 발명의 해결하고자 하는 과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
실시 형태에 다른 소스코드 표시장치는 스크린을 포함하는 시각화부를 포함하고, 소스코드를 상기 스크린 상의 제1섹션과 제2섹션을 포함하는 화면에 표시하되, 상기 제1섹션에는 상기 소스코드 중 소정 코드유닛의 원본이 표시되고, 상기 제2섹션에는 상기 소스코드 중 상기 소정 코드유닛을 제외한 적어도 하나의 코드유닛이 표시되며, 상기 제2섹션에서 상기 적어도 하나의 코드유닛 각각은 해당 코드유닛의 대표 문자열로 표시된다.
여기서, 소스코드 표시장치는 상기 소스코드를 저장하고 있는 메모리부; 상기 메모리부로부터 상기 소스코드를 입력받아 상기 소스코드의 코드유닛마다 상기 대표 문자열을 추출하는 인덱싱부; 및 상기 제1섹션에 표시되어야 하는 상기 소정 코드유닛을 결정하고 상기 제1섹션과 상기 제2섹션의 비율을 결정하는 분석부;를 더 포함할 수 있다.
여기서, 상기 소정 코드유닛은 관심위치가 포함된 코드유닛이며, 상기 관심위치는 상기 스크린 상의 커서의 위치, 디폴트로 지정된 위치, 또는 사용자에 의해 미리 지정된 위치일 수 있다.
여기서, 상기 제1섹션에 표시된 상기 소정 코드유닛에 대해 사용자가 코드 작성 또는 편집이 가능하도록 구성될 수 있다.
여기서, 상기 제2섹션에 표시된 상기 대표 문자열은 상기 제1섹션으로부터 멀어질수록 작게 표시될 수 있다.
다른 실시 형태에 따른 소스코드 표시방법은 스크린을 포함하는 시각화부에서, 소스코드를 상기 스크린 상의 제1섹션과 제2섹션을 포함하는 화면에 표시하는 단계를 포함하며, 상기 제1섹션에는 상기 소스코드 중 소정 코드유닛의 원본이 표시되고, 상기 제2섹션에는 상기 소스코드 중 상기 소정 코드유닛을 제외한 적어도 하나의 코드유닛이 표시되며, 상기 제2섹션에서 상기 적어도 하나의 코드유닛 각각은 해당 코드유닛의 대표 문자열로 표시된다.
여기서, 소스코드 표시방법은 상기 표시단계 전에, 메모리부로부터 상기 소스코드를 입력받아 인덱싱부에서 상기 소스코드의 코드유닛마다 상기 대표 문자열을 추출하는 단계; 및 분석부에서 상기 제1섹션에 표시되어야 하는 상기 소정 코드유닛을 결정하고 상기 제1섹션과 상기 제2섹션의 비율을 결정하는 단계;를 더 포함할 수 있다.
여기서, 상기 소정 코드유닛은 관심위치가 포함된 코드유닛이며, 상기 관심위치는 상기 화면 상의 커서의 위치, 디폴트로 지정된 위치, 또는 사용자에 의해 미리 지정된 위치일 수 있다.
여기서, 상기 제2섹션은 상기 제1섹션의 전단영역 및 후단영역으로 분리될 수 있다.
여기서, 상기 제1섹션에 표시된 상기 소정 코드유닛에 대해 코드 작성 또는 편집이 수행되는 단계를 더 포함할 수 있다.
여기서, 상기 제2섹션에 표시된 상기 대표 문자열은 상기 제1섹션으로부터 멀어질수록 작게 표시될 수 있다.
또 다른 실시 형태는, 상술한 소스코드 표시방법들 각각을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체를 포함한다.
실시 형태에 따른 소스코드 표시기술을 사용하면, 소스코드의 보기/탐색과 작성/편집이 가능하도록 소스코드를 표시할 수 있는 기법을 제공하는 이점이 있다.
또한, 소스코드의 전체 구성을 표시하면서도 관심위치는 소스코드의 작성 및/또는 편집이 가능하도록 자세히 표시할 수 있는 이점이 있다.
또한, 하나의 표시 화면에서 소스코드의 편집과 탐색이 동시에 가능하게 하는 이점이 있다.
또한, 소스코드 표시장치에서 원본으로 표시된 부분은 편집이 가능하고 나머지 부분은 코드 단위를 대표 문자열로 표시하여 코드 탐색이 가능하게 하는 이점이 있다.
또한, 소스코드를 표시할 때 시각적인 심미성과 소스코드 가독성이 개선되도록 하는 이점이 있다.
또한, 실시 형태에 따른 소스코드 표시기법을 사용하는 경우, 불필요한 코드 문맥은 제거하고 현재 작성/편집 중인 코드에 집중할 수 있도록 하여, 코드를 편집할 때 사용자의 코드 가독성이 향상될 수 있다.
또한, 실시 형태에 따른 소스코드 표시기법을 사용하는 경우, 사용자가 소정 코드유닛에 대한 코드 내용을 라인 단위로 확인할 수 있도록 하면서도 나머지 코드유닛에 대해서는 대표 문자열로 간단히 표시하여 소스코드의 전체 구성 또한 탐색/검색/확인할 수 있도록 한다.
도 1은 실시 형태에 따른 소스코드 표시장치에서 소스코드가 표시된 스크린 상의 화면 구성을 예시한다.
도 2는 실시 형태에 따른 소스코드 표시장치의 구성도이다.
도 3은 실시 형태에 따른 소스코드 표시방법의 개략적인 순서도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시 형태를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시 형태는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시형태는 서로 다르지만 상호 배타적일 필요는 없음을 이해하여야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시형태에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시형태로 구현될 수 있다. 또한, 각각의 개시된 실시 형태 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정될 수 있다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭할 수 있다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시 형태에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
이하에서, 소스코드는 적어도 하나 이상의 코드유닛으로 구성될 수 있다. 여기서, 코드유닛은 하나의 함수(function)를 나타내거나 및/또는 하나의 블록으로 표현될 수 있는 코드의 단위일 수 있다. 일반적으로 코드유닛별로 코드를 작성/편집하거나 테스트가 수행될 수 있다.
도 1은 실시 형태에 따른 소스코드 표시장치에서 소스코드가 표시된 스크린상의 화면 구성을 예시한다.
도 1은 C/C++ 프로그램 언어로 작성된 소스코드를 본 발명의 실시예에 따른 표시기법에 따라 표시된 것을 예시한다. 본 발명의 표시기법은 C/C++언어 이외의 다른 프로그램 언어에 대해서 적용될 수 있음은 당해 기술분야의 당업자에게 자명하다.
도 1을 참조하면, 스크린 상의 소스코드를 표시하는 화면(100)은 제1섹션(10)과 제2섹션(20, 30)을 포함한다. 실시예에서, 제1섹션(10)과 제2섹션(20, 30)은 스크린의 화면(100) 상에서 구분되어 있을 뿐이며 물리적으로 구분될 필요는 없다. 소스코드 중 소정 코드유닛은 제1섹션(10)에서 원본으로 표시된다. 소스코드 중 소정 코드유닛을 제외한 적어도 하나의 코드유닛이 제2섹션(20, 30)에 표시될 수 있다. 이때, 제2섹션(20, 30)에 표시되는 코드유닛은 원본이 표시되지 않으며 압축되어 표시될 수 있다.
제1섹션(10)에 표시되는 코드유닛은 관심위치를 포함하는 코드유닛일 수 있다. 여기서, 관심위치는 상기 화면 상의 커서의 위치, 디폴트로 지정된 위치, 또는 사용자에 의해 미리 지정된 위치일 수 있다. 도 1에서는 커서(11)가 제1섹션(10)에 표시된 코드유닛 중간에 위치하는 것이 예시되어 있다. 즉, 실시 형태에 따른 사용자가 작업을 수행하고 있는 코드유닛에 대해서는 코드 라인 전체를 제1섹션(10)에 표시하도록 하여, 사용자의 편집 및/또는 코드 작성이 가능하도록 구성될 수 있다.
제2섹션(20, 30)에 표시되는 코드유닛은 해당 코드유닛의 코드라인을 모두 표시하는 대신에 대표 문자열로만 각각의 코드유닛을 표시한다. 실시 형태에 따라, 제2섹션(20, 30)에는 제1섹션(10)에 표시된 코드유닛 전/후에 위치하는 코드유닛 전체가 표시될 수 있다. 이에 따라, 사용자는 제1섹션(10)에 표시된 코드유닛에 대해 편집 및/또는 작성을 수행하면서 해당 소스코드의 전체 구성을 제2섹션(20, 30)을 통해 탐색 및 검색할 수 있다.
이때, 제2섹션(20, 30)은 제1섹션(10)에 대해서 전단 제2섹션(20)과 후단 제2섹션(30)으로 구분될 수 있다. 도1에서 전단 제2섹션(20)은 제1섹션(10)의 상부에 배치되고 후단 제2섹션(30)은 제1섹션(10)의 하부에 배치되는 것이 예시되나, 실시예에 따라 전단 제2섹션(20)은 제1섹션(10)의 좌측에 배치되고 후단 제2섹션(30)은 제1섹션(10)의 우측에 배치될 수도 있다. 이러한 배치 관계는 실시 형태에 따라 달라질 수 있다. 전단 제2섹션(20)은 해당 소스코드에서 제1섹션(10)에 표시된 코드유닛의 전단의 코드유닛을 표시하고 후단 제2섹션(30)은 후단의 코드유닛을 표시할 수 있다.
또한, 제2섹션(20, 30)에 표시되는 적어도 하나의 코드유닛의 대표문자열은 관심위치(예컨대, 커서(11)의 위치)로부터 멀어질수록 작게 표시될 수 있다. 도 1에서 전단 제2섹션(20)에 5개의 코드유닛이 대표 문자열로 표시되어 있다. 이때, 각 대표 문자열은 21부터 25의 도면번호로 표시되며 문자열의 크기가 제1섹션(10)으로부터 멀어질수록 작아지는 것을 확인할 수 있다. 이와 마찬가지로, 도 1에서 후단 제2섹션(30)에 3개의 코드유닛이 대표 문자열로 표시되어 있다. 이때, 각 대표 문자열은 31부터 33의 도면번호로 표시되며 문자열의 크기가 제1섹션(10)으로부터 멀어질수록 작아지는 것을 확인할 수 있다.
이와 같은 화면 구성을 통해, 편집 등 작업이 수행되는 코드유닛의 가독성이 향상될 수 있으며 해당 코드유닛에 대한 집중도가 높아질 수 있다.
이때, 제2섹션(20, 30)에 표시되는 대표 문자열의 축소 비율은 시각적인 심미성과 가독성을 고려하여 결정될 수 있으며 아래서 더욱 상세하게 설명된다.
도 2는 실시 형태에 따른 소스코드 표시장치(200)의 구성도이다. 실시 형태에 따른 소스코드 표시장치(200)는 소스코드에 대해 코드유닛 별로 대표 문자열을 추출하도록 구성된 인덱싱부(220), 상기 소스코드를 화면에 표시하기 위한 렌더링 정보를 분석하도록 구성된 분석부(230) 및 상기 렌더링 정보에 따라 상기 소스코드를 스크린의 화면에 표시하는 시각화부(240)를 포함하여 구성될 수 있다.
실시 형태에 따라, 소스코드 표시장치(200)는 소스코드 파일을 저장하고 있는 메모리부(210)를 더 포함할 수 있다. 인덱싱부(220) 및/또는 분석부(230)는 메모리부(210)로부터 해당 소스코드를 입력받을 수 있다.
실시 형태에서, 인덱싱부(220)는 메모리부(210)로부터 소스코드를 입력받아 소스코드의 코드유닛마다 대표 문자열을 추출하도록 구성된다. 코드유닛의 대표 문자열은 해당 코드유닛을 식별할 수 있도록 코드유닛의 정보를 이용하여 새롭게 구성되는 문자열이다. 이러한 대표 문자열은 소스코드 표시장치(200)에서 기 결정되어 있을 수 있으며, 인덱싱부(220)는 해당 정보를 이용하여 코드유닛마다 대표 문자열을 추출할 수 있다.
실시 형태에서, 인덱싱부(220)는 코드유닛을 아래 표1과 같이 구분하고, 해당 코드유닛에 대해서 라인과 대응되는 문자열을 추출하도록 구성된다.
코드유닛 분류 대표 문자열
외부 코드 참조 유닛(reference) 추출 없음
변수 선언/정의 유닛(variable declaration/definition) 라인, 변수 이름, 타입
단순 타입 선언 유닛(simple type declaration/definition) 라인, 타입 이름
정의없는 클래스 타입 유닛(class type declaration without member method definition) 라인, 클래스 이름
정의가 포함된 클래스 타입 유닛(class type declaration with member method definition) 타입 이름과 정의된 함수 이름이 통합된 이름
함수 정의(function definition) 라인, 함수 이름, 함수 인자
C/C++ 프로그램 언어의 경우 코드유닛을 식별하고 구분하는 것이 용이하지 않으나, 상기 표1에 따른 코드유닛 분류 기법에 따를 경우 C/C++ 프로그램 언어로 작성된 소스코드에 대해서도 코드유닛의 분류 및 식별이 용이하게 될 수 있다.
실시 형태에서, 인덱싱부(220)는, 예컨대, 1만 라인 규모의 소스코드에 대해서 수초(예컨대, 1초) 내에 모든 코드유닛의 대표 문자열을 추출할 수 있는 성능이 요구될 수 있다.
실시 형태에서, 분석부(230)는 관심위치와 인덱싱부(220)의 출력을 입력으로 렌더링 정보를 분석할 수 있다. 인덱싱부(220)에 추출된 인덱싱 정보는 분석부(230)로 전달될 수 있다. 분석부(230)에서 분석되는 정보는 시각화부(240)가 화면에 소스코드를 정해진 규칙에 맞게 출력할 수 있도록 하는 정보일 수 있다.
여기서, 관심위치는, 예컨대, 사용자가 직접 소스코드의 원본을 확인하기를 원하는 위치일 수 있다. 또는, 사용자가 소스코드 중에서 편집 및/또는 코드 작성을 희망하는 위치일 수 있다. 또는, 표시장치(200)에서 강제로 관심위치로 지정된 디폴트 위치일 수 있다. 또는 사용자가 사전에 미리 지정한 위치일 수 있다. 이러한 관심위치는 소스코드 중 하나의 라인 또는 코드유닛일 수 있다. 또는, 관심위치는 소스코드 내에서 커서가 배치된 위치일 수 있다.
상기 관심위치는 메모리부(210)에 저장되어 있을 수 있다. 이러한 경우 관심위치는 메모리부(210)로부터 분석부(230)로 입력될 수 있다.
실시 형태에 따른 표시장치(200)는 제어부(미도시)를 더 포함할 수 있다. 실시 형태에 따라, 제어부는 사용자의 설정, 디폴트 설정, 또는 표시장치(200)에 대한 사용자의 조작을 통해 해당 관심위치에 대한 정보를 획득할 수 있다. 실시 형태에 따라 상기 관심위치에 대한 정보를 분석부(230)에 제공할 수 있다. 제어부는 표시장치(200)의 프로세서(processor)일 수 있다. 제어부는 실시 형태에 따른 소스코드 표시방법의 실행을 제어할 수 있다.
예컨대, 사용자가 표시장치(200)의 스크린에 표시된 소스코드에 커서를 위치시키는 경우, 해당 이벤트의 발생에 따라 본 발명의 실시예에 따른 소스코드 표시방법의 실행이 개시될 수 있다. 스크린 상에 표시된 소스코드의 소정 위치에 커서를 위치하는 이벤트가 발생한 경우 제어부는 본 발명의 소스코드 표시방법의 실행을 개시하도록 할 수 있다. 이에 따라, 제어부는 해당 이벤트 발생을 인덱싱부(220)에 전달할 수 있다. 또한, 제어부는 해당 이벤트 발생 및 이벤트 발생 위치(소스코드 내의 커서 위치)를 분석부(230)에 전달할 수 있다. 분석부(230)는 메모리부(210)로부터 전달되는 소스코드 및 인덱싱부(220)로부터 전달되는 인덱싱 정보를 통해 소스코드 내에서 커서가 위치된 라인이 포함된 코드유닛을 판단할 수 있다.
실시 형태에 따른 분석부(230)는 화면의 제1섹션(10)에 표시되어야 하는 코드유닛을 결정하고 화면(100)에서 제1섹션(10)과 제2섹션(20, 30)의 비율을 결정할 수 있다. 제1섹션(10)에 표시되어야 하는 코드유닛은 관심위치를 포함하는 코드유닛일 수 있다. 실시 형태에 따라, 도1에 예시된 바와 같이, 제2섹션(20, 30)은 전단 제2섹션(20)과 후단 제2섹션(30)을 포함할 수 있다. 분석부(230)는 제2섹션(20, 30)을 하나만 포함할 것인지 2개를 포함할 것인지도 결정할 수 있다.
실시 형태에 따라, 분석부(230)는 제1섹션(10), 전단 제2섹션(20) 및 후단 제2섹션(20, 30)의 비율을 결정하는 예는 아래와 같다. 소스코드를 표시하는 화면의 디폴트 비율은 20%:60%:20%일 수 있다. 여기서, 비율을 나타내는 순서는 전단 제2섹션(20), 제1섹션(10) 및 후단 제2섹션(30)이다. 이러한 디폴트 비율은 관심 위치를 포함하는 코드유닛의 규모에 따라 조정될 수 있다.
관심위치를 포함하는 코드유닛의 LOC(lines of code)가 화면에 표시할 수 있는 최대 LOC보다 큰 경우, 상기 비율은 5%:90%:5%로 한다.
관심위치를 포함하는 코드유닛의 LOC가 화면에 표시할 수 있는 LOC와 같으면 0%:100%:0%로 한다.
관심위치를 포함하는 코드유닛의 이전에 다른 코드유닛이 없는 경우, 0%:60%:40%로 한다.
관심위치를 포함하는 코드유닛의 이후에 다른 코드유닛이 없는 경우, 40%:60%:0%로 한다.
실시예에 따라 상기 비율은 사용자의 설정에 따라 변경될 수 있다. 또한, 실시예에 따라 상기 비율은 변경되어 적용될 수 있다.
시각화부(240)는 분석부(230)로부터 입력받은 렌더링 정보를 이용하여 소스코드를 화면에 표시할 수 있다. 이때, 시각화부(240)는 소정 규칙에 따라 소스코드를 화면에 표시할 수 있다. 이러한 소정 규칙에 대한 정보는 분석부(230)로부터 입력받거나 시각화부(240)에 디폴트로 설정되어 있을 수 있다.
소스코드를 화면에 표시하는 규칙은 아래의 내용을 포함할 수 있다.
전단 제2섹션(20)에 표시되는 대표 문자열은, 표시장치(200)에 설정된 기본 폰트(font) 크기부터 상단으로 갈수록 작아진다. 이때, 최소 폰트는 4pt일 수 있다.
후단 제2섹션(30)에 표시되는 대표 문자열은, 표시장치(200)에 설정된 기본 폰트 크기부터 하단으로 갈수록 작아진다. 이때, 최소 폰트는 4pt일 수 있다.
제1섹션(10)에 표시되는 코드는 표시장치(200)에 설정된 기본 폰트의 크기를 가진다.
실시예에 따라, 제2섹션(20, 30)에 표시되는 각 라인의 폰트 크기는 기본 폰트 크기와 최소 폰트 크기 사이의 선형 보간식(수식(1))을 적용하여 결정될 수 있다.
f(x)=(1-a)f(x1) + af(x2) 수식(1)
여기서, f(x)는 x 문자열의 폰트 크기, f(x1)은 x1 문자열의 폰트 크기 및 f(x2)는 x2 문자열의 폰트 크기를 나타낸다. 문자열 x1과 x2 사이의 거리를 1로 가정했을 때 a는 문자열 x와 x1 사이의 거리를 나타낸다.
수식(1)은 아래와 같이 코드로 표현될 수 있다.
Figure pat00001
실시예에 따라 해당 규칙을 코드로 변환하는 것은 다양한 방식으로 구현될 수 있다.
도3은 실시 형태에 따른 소스코드 표시방법의 개략적인 순서도이다. 도3에서 본 발명의 소스코드 표시방법의 일부 단계들은 생략되어 있다. 실시예에 따른 소스코드 표시방법은 소스코드의 인덱싱 단계(S310), 렌더링 정보 분석 단계(S320) 및 소스코드를 시각화하는 단계(S330)를 포함하여 수행될 수 있다.
시각화하는 단계(S330)는 스크린을 포함하는 시각화부에서, 소스코드를 상기 스크린 상의 제1섹션과 제2섹션을 포함하는 화면에 표시하는 단계를 포함하며, 상기 제1섹션에는 상기 소스코드 중 소정 코드유닛의 원본이 표시되고, 상기 제2섹션에는 상기 소스코드 중 상기 소정 코드유닛을 제외한 적어도 하나의 코드유닛이 표시되며, 상기 제2섹션에서 상기 적어도 하나의 코드유닛 각각은 해당 코드유닛의 대표 문자열로 표시될 수 있다.
인덱싱 단계(S310) 및 렌더링 정보 분석 단계(S320)는 상기 시각화하는 단계(S330) 전에 수행될 수 있다. 인덱싱 단계(S310)는 메모리부(210)로부터 상기 소스코드를 입력받아 인덱싱부(220)에서 상기 소스코드의 코드유닛마다 상기 대표 문자열을 추출하는 단계를 포함할 수 있다. 렌더링 정보 분석 단계(S320)는 분석부(230)에서 상기 제1섹션에 표시되어야 하는 상기 소정 코드유닛을 결정하고 상기 제1섹션과 상기 제2섹션의 비율을 결정하는 단계를 포함할 수 있다.
여기서, 소정 코드유닛은 관심위치가 포함된 코드유닛이며, 상기 관심위치는 상기 화면 상의 커서의 위치, 디폴트로 지정된 위치, 또는 사용자에 의해 미리 지정된 위치일 수 있다.
실시예에 따라 상기 제2섹션(20, 30)은 상기 제1섹션(10)의 전달 영역 및 후단 영역으로 분리될 수 있다.
실시예에 따라, 제1섹션(10)에 표시된 상기 소정 코드유닛에 대해 코드 작성 또는 편집이 수행되는 단계를 더 포함할 수 있다.
실시예에 따라, 제2섹션(20, 30)에 표시된 대표 문자열은 제1섹션(10)으로부터 멀어질수록 작게 표시될 수 있다.
도1 내지 도3에 도시된 실시 형태에 따른 소스코드 표시방법은 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독가능 기록매체를 통하여 수행될 수 있다. 상기 컴퓨터 판독가능 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 예를 들어, 상기 컴퓨터 판독가능 기록매체는, 도3에 도시된 각 단계들을 수행하는 기능 모듈들을 포함할 수 있다. 구체적으로, 상기 컴퓨터 판독가능 기록매체는, 코드 인덱싱을 수행하는 코드 인덱싱 모듈, 렌더링 정보를 분석하는 분석 모듈 및/또는 스크린의 화면에 소스코드를 표시하도록 하는 시각화 모듈을 포함할 수 있다. 또한, 실시예에 따라 추가적인 모듈을 포함할 수도 있다.
상기 컴퓨터 판독가능 기록매체는 실시 형태를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
실시 형태에 따른 소스코드 표시기법을 사용하는 경우, 불필요한 코드 문맥은 제거하고 현재 작성/편집 중인 코드에 집중할 수 있도록 하여, 코드를 편집할 때 사용자의 코드 가독성이 향상될 수 있다.
또한, 실시 형태에 따른 소스코드 표시기법을 사용하는 경우, 사용자가 소정 코드유닛에 대한 코드 내용을 라인 단위로 확인할 수 있도록 하면서도 나머지 코드유닛에 대해서는 대표 문자열로 간단히 표시하여 소스코드의 전체 구성 또한 탐색/검색/확인할 수 있도록 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시 형태를 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시 형태의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 형태에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (13)

  1. 스크린을 포함하는 시각화부를 포함하고,
    소스코드를 상기 스크린 상의 제1섹션과 제2섹션을 포함하는 화면에 표시하되,
    상기 제1섹션에는 상기 소스코드 중 소정 코드유닛의 원본이 표시되고,
    상기 제2섹션에는 상기 소스코드 중 상기 소정 코드유닛을 제외한 적어도 하나의 코드유닛이 표시되며, 상기 제2섹션에서 상기 적어도 하나의 코드유닛 각각은 해당 코드유닛의 대표 문자열로 표시되는,
    소스코드 표시장치.
  2. 제1항에 있어서,
    상기 소스코드를 저장하고 있는 메모리부;
    상기 메모리부로부터 상기 소스코드를 입력받아 상기 소스코드의 코드유닛마다 상기 대표 문자열을 추출하는 인덱싱부; 및
    상기 제1섹션에 표시되어야 하는 상기 소정 코드유닛을 결정하고 상기 제1섹션과 상기 제2섹션의 비율을 결정하는 분석부;를 더 포함하는,
    소스코드 표시장치.
  3. 제2항에 있어서,
    상기 소정 코드유닛은 관심위치가 포함된 코드유닛이며,
    상기 관심위치는 상기 스크린 상의 커서의 위치, 디폴트로 지정된 위치, 또는 사용자에 의해 미리 지정된 위치인,
    소스코드 표시장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제2섹션은 상기 제1섹션의 전단영역 및 후단영역으로 분리되는,
    소스코드 표시장치.
  5. 제1항 또는 제2항에 있어서,
    상기 제1섹션에 표시된 상기 소정 코드유닛에 대해 사용자가 코드 작성 또는 편집이 가능하도록 구성된,
    소스코드 표시장치.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제2섹션에 표시된 상기 대표 문자열은 상기 제1섹션으로부터 멀어질수록 작게 표시되는,
    소스코드 표시장치.
  7. 스크린을 포함하는 시각화부에서, 소스코드를 상기 스크린 상의 제1섹션과 제2섹션을 포함하는 화면에 표시하는 단계를 포함하며,
    상기 제1섹션에는 상기 소스코드 중 소정 코드유닛의 원본이 표시되고,
    상기 제2섹션에는 상기 소스코드 중 상기 소정 코드유닛을 제외한 적어도 하나의 코드유닛이 표시되며, 상기 제2섹션에서 상기 적어도 하나의 코드유닛 각각은 해당 코드유닛의 대표 문자열로 표시되는,
    소스코드 표시방법.
  8. 제7항에 있어서,
    상기 표시단계 전에,
    메모리부로부터 상기 소스코드를 입력받아 인덱싱부에서 상기 소스코드의 코드유닛마다 상기 대표 문자열을 추출하는 단계; 및
    분석부에서 상기 제1섹션에 표시되어야 하는 상기 소정 코드유닛을 결정하고 상기 제1섹션과 상기 제2섹션의 비율을 결정하는 단계;를 더 포함하는,
    소스코드 표시방법.
  9. 제 8 항에 있어서,
    상기 소정 코드유닛은 관심위치가 포함된 코드유닛이며,
    상기 관심위치는 상기 화면 상의 커서의 위치, 디폴트로 지정된 위치, 또는 사용자에 의해 미리 지정된 위치인,
    소스코드 표시방법.
  10. 제7항에 있어서,
    상기 제2섹션은 상기 제1섹션의 전단영역 및 후단영역으로 분리되는,
    소스코드 표시방법.
  11. 제7항에 있어서,
    상기 제1섹션에 표시된 상기 소정 코드유닛에 대해 코드 작성 또는 편집이 수행되는 단계를 더 포함하는,
    소스코드 표시방법.
  12. 제7항에 있어서,
    상기 제2섹션에 표시된 상기 대표 문자열은 상기 제1섹션으로부터 멀어질수록 작게 표시되는,
    소스코드 표시방법.
  13. 제7항 내지 제12항 중 어느 한 항의 소스코드 표시방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
KR1020170181390A 2017-12-27 2017-12-27 소스코드 표시장치, 소스코드 표시방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 KR102067431B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170181390A KR102067431B1 (ko) 2017-12-27 2017-12-27 소스코드 표시장치, 소스코드 표시방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
US15/903,443 US10613839B2 (en) 2017-12-27 2018-02-23 Source code display device, source code display method, and computer readable recording medium having program for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170181390A KR102067431B1 (ko) 2017-12-27 2017-12-27 소스코드 표시장치, 소스코드 표시방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체

Publications (2)

Publication Number Publication Date
KR20190079294A true KR20190079294A (ko) 2019-07-05
KR102067431B1 KR102067431B1 (ko) 2020-02-11

Family

ID=66951134

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170181390A KR102067431B1 (ko) 2017-12-27 2017-12-27 소스코드 표시장치, 소스코드 표시방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체

Country Status (2)

Country Link
US (1) US10613839B2 (ko)
KR (1) KR102067431B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141161A (ja) * 1993-11-16 1995-06-02 Oki Electric Ind Co Ltd プログラムファイルの作成方法およびその装置
JP2002366368A (ja) * 2001-06-08 2002-12-20 Matsushita Electric Ind Co Ltd ソースコード編集装置およびソースコード編集方法
KR20080094785A (ko) * 2006-02-10 2008-10-24 마이크로소프트 코포레이션 문서 개관 스크롤바, 스크롤바 렌더링 방법, 및 컴퓨터판독가능 매체
KR20130065706A (ko) * 2010-10-04 2013-06-19 미쓰비시덴키 가부시키가이샤 소프트웨어 생성 장치, 소프트웨어 생성 방법 및 프로그램 기억매체

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009664B2 (en) * 2011-03-31 2015-04-14 Infosys Limited Structural search of source code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141161A (ja) * 1993-11-16 1995-06-02 Oki Electric Ind Co Ltd プログラムファイルの作成方法およびその装置
JP2002366368A (ja) * 2001-06-08 2002-12-20 Matsushita Electric Ind Co Ltd ソースコード編集装置およびソースコード編集方法
KR20080094785A (ko) * 2006-02-10 2008-10-24 마이크로소프트 코포레이션 문서 개관 스크롤바, 스크롤바 렌더링 방법, 및 컴퓨터판독가능 매체
KR20130065706A (ko) * 2010-10-04 2013-06-19 미쓰비시덴키 가부시키가이샤 소프트웨어 생성 장치, 소프트웨어 생성 방법 및 프로그램 기억매체

Also Published As

Publication number Publication date
US20190196792A1 (en) 2019-06-27
US10613839B2 (en) 2020-04-07
KR102067431B1 (ko) 2020-02-11

Similar Documents

Publication Publication Date Title
CN108073555B (zh) 用于从电子文档生成虚拟现实环境的方法和系统
KR102134309B1 (ko) 모바일 및 다른 디스플레이 환경을 지원하기 위하여 대화형 사이트 및 애플리케이션을 자동 변환하는 시스템 및 방법
US7840891B1 (en) Method and system for content extraction from forms
US6801673B2 (en) Section extraction tool for PDF documents
US10318646B2 (en) Generating a structured document guiding view
US20090307266A1 (en) Processing a page
US20070038937A1 (en) Method, Program, and Device for Analyzing Document Structure
JP5774558B2 (ja) 手書き文書処理装置、方法及びプログラム
US20140212040A1 (en) Document Alteration Based on Native Text Analysis and OCR
US10261884B2 (en) Method for correcting violation of source code and computer readable recording medium having program performing the same
IL226027A (en) Two-way text checker and method
US20170132484A1 (en) Two Step Mathematical Expression Search
CA2666305C (en) Method, system, and program for supporting object selection in web page authoring
Zhao et al. Sketcholution: Interaction histories for sketching
US9049400B2 (en) Image processing apparatus, and image processing method and program
US7930320B2 (en) Apparatus, method, and program for visualizing boolean expressions
US20190188466A1 (en) Method, system and apparatus for processing a page of a document
US10055097B2 (en) Grasping contents of electronic documents
TW201523421A (zh) 決定用於擷取的文章之圖像
KR20210033730A (ko) Pdf 문서에서 텍스트 라인 정보를 기초로 단락의 구분선을 표시하는 전자 장치 및 그 동작 방법
KR20190079294A (ko) 소스코드 표시장치, 소스코드 표시방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
US11663398B2 (en) Mapping annotations to ranges of text across documents
US11514241B2 (en) Method, apparatus, and computer-readable medium for transforming a hierarchical document object model to filter non-rendered elements
CN114238689A (zh) 视频生成方法、装置、电子设备、存储介质和程序产品
Sutherland et al. vsInk: Integrating digital ink with program code in Visual Studio

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant